Files
envi-code/SourceCode/Code2026/tg_shs/shs_annotate/ParallelDimStyle.h
T

38 lines
1.6 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
class CParallelDimStyle
{
public:
CParallelDimStyle(void);
~CParallelDimStyle(void);
public:
void ParallelDimensioning(BOOL bParallelDim);
2026-10-04 00:04:20 +08:00
//解析实体得到实体内的line,在此函数中添加需要识别的实体
2026-09-28 15:28:50 +08:00
void AnalysisTgEntToLine(const AcDbEntity* pEnt, TDPtrList<TGGeCurveSegment> &lstResult);
2026-10-04 00:04:20 +08:00
//与直线相交的第一条线,如果第一条线是弧线获取标注线
2026-09-28 15:28:50 +08:00
TGGeCurveSegment GetFirstInterLine(TDPtrList<TGGeCurveSegment> &lstInput, TGGeCurveSegment& ln, TGGeCurveSegment &segForArc);
2026-10-04 00:04:20 +08:00
//与直线相交的最后一条线,解析图块时使用
2026-09-28 15:28:50 +08:00
TGGeCurveSegment GetLastInterLine(TDPtrList<TGGeCurveSegment> &lstInput, const TGGeCurveSegment& ln);
2026-10-04 00:04:20 +08:00
//过滤平行线
2026-09-28 15:28:50 +08:00
void GetParallelLine(TDPtrList<TGGeCurveSegment> &lstInput, TDPtrList<TGGeCurveSegment> &lstResult, const TGGeCurveSegment& segln);
void GetParallelLineForArc(TDPtrList<TGGeCurveSegment> &lstInput, TDPtrList<TGGeCurveSegment> &lstResult, const TGGeCurveSegment& segln);
2026-10-04 00:04:20 +08:00
//与直线的交点
2026-09-28 15:28:50 +08:00
int GetInterPt(TDPtrList<TGGeCurveSegment> &lstInterLine, TADSGePointList& lstInterPt, TGGeCurveSegment& segln);
2026-10-04 00:04:20 +08:00
//获取图块内的line
2026-09-28 15:28:50 +08:00
void Get2DCurveFromBlock(AcDbBlockTableRecord &blockRec, ads_matrix matForInsert,TDPtrList<TGGeCurveSegment> &lstResult);
2026-10-04 00:04:20 +08:00
TGGeCurveSegment m_segSelLine;//选择实体的直线
CStringList m_lstLayer;//图层过滤集
2026-09-28 15:28:50 +08:00
};
class TDimParallelArg
{
public:
DListStack<XPoint> m_ptStack;
void AddDim(AcDbObjectId idDim, XPoint ptNew);
void RemoveDim(AcDbObjectId idDim, XPoint ptOld);
void Step(XPoint ptNew);
BOOL CanUndo();
void Undo(AcDbObjectId idDim);
XPoint GetLastPoint();
};