35 lines
1.2 KiB
C++
35 lines
1.2 KiB
C++
#pragma once
|
|
#include "dbmain.h"
|
|
#include "TChangeClass.h"
|
|
|
|
////拖动布树,仅仅用来做偏移时jig的绘制,其他功能没有实
|
|
class TDbPlaceTree: public AcDbEntity
|
|
{
|
|
public:
|
|
TDbPlaceTree();
|
|
void SetPolyPath(XPoly2D poly2D);
|
|
void UpdatePlaceTreeData(double dRad, double dDis, bool bIsSetDis, bool bIsRotation, AcDbObjectId idBlk);
|
|
virtual ~TDbPlaceTree(void);
|
|
virtual Adesk::Boolean subWorldDraw(AcGiWorldDraw *pWd);
|
|
private:
|
|
// 造块
|
|
bool MakeBlockReference(AcGePoint3d ptInsert,AcGiWorldDraw *pWd);
|
|
|
|
// 模拟造块,因为真实造块会非常卡
|
|
bool SimulateMakeBlockReference(AcGePoint3d ptInsert,AcGiWorldDraw *pWd);
|
|
|
|
// 直线样式生成树
|
|
void LineStyle(AcDbLine *pLine, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis);
|
|
// 圆弧样式生成树
|
|
void ArcStyle(AcDbArc *pArc, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis, double dBugle);
|
|
// 多段线样式生成树
|
|
void PolyLineStyle(AcDbPolyline *pPolyLine, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis);
|
|
|
|
private:
|
|
double m_dRad; // 半径
|
|
double m_dDis; // 间距
|
|
AcDbObjectId m_idBlk; // 块ID
|
|
BOOL m_bIsSetDis; // 是否设置间距可调
|
|
BOOL m_bIsRotation;// 是否设置随机旋转
|
|
AcDbPolyline m_polyLine;
|
|
}; |