39 lines
1.5 KiB
C++
39 lines
1.5 KiB
C++
#pragma once
|
|
class CParallelDimStyle
|
|
{
|
|
public:
|
|
CParallelDimStyle(void);
|
|
~CParallelDimStyle(void);
|
|
public:
|
|
void ParallelDimensioning(BOOL bParallelDim);
|
|
//解析实体得到实体内的line,在此函数中添加需要识别的实体
|
|
void AnalysisTgEntToLine(const AcDbEntity* pEnt, TDPtrList<TGGeCurveSegment> &lstResult);
|
|
//与直线相交的第一条线,如果第一条线是弧线获取标注线
|
|
TGGeCurveSegment GetFirstInterLine(TDPtrList<TGGeCurveSegment> &lstInput, TGGeCurveSegment& ln, TGGeCurveSegment &segForArc);
|
|
//与直线相交的最后一条线,解析图块时使用
|
|
TGGeCurveSegment GetLastInterLine(TDPtrList<TGGeCurveSegment> &lstInput, const TGGeCurveSegment& ln);
|
|
//过滤平行线
|
|
void GetParallelLine(TDPtrList<TGGeCurveSegment> &lstInput, TDPtrList<TGGeCurveSegment> &lstResult, const TGGeCurveSegment& segln);
|
|
void GetParallelLineForArc(TDPtrList<TGGeCurveSegment> &lstInput, TDPtrList<TGGeCurveSegment> &lstResult, const TGGeCurveSegment& segln);
|
|
//与直线的交点
|
|
int GetInterPt(TDPtrList<TGGeCurveSegment> &lstInterLine, TADSGePointList& lstInterPt, TGGeCurveSegment& segln);
|
|
//获取图块内的line
|
|
void Get2DCurveFromBlock(AcDbBlockTableRecord &blockRec, ads_matrix matForInsert,TDPtrList<TGGeCurveSegment> &lstResult);
|
|
|
|
TGGeCurveSegment m_segSelLine;//选择实体的直线
|
|
CStringList m_lstLayer;//图层过滤集
|
|
};
|
|
|
|
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();
|
|
};
|
|
|