Files
envi-code/SourceCode/Code2026/tg_shs/shs_siteplan/TDbPlaceTree.h
T

35 lines
1.3 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
#include "dbmain.h"
#include "TChangeClass.h"
2026-10-04 00:04:20 +08:00
////拖动布树,仅仅用来做偏移时jig的绘制,其他功能没有实
2026-09-28 15:28:50 +08:00
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:
2026-10-04 00:04:20 +08:00
// 造块
2026-09-28 15:28:50 +08:00
bool MakeBlockReference(AcGePoint3d ptInsert,AcGiWorldDraw *pWd);
2026-10-04 00:04:20 +08:00
// 模拟造块,因为真实造块会非常卡
2026-09-28 15:28:50 +08:00
bool SimulateMakeBlockReference(AcGePoint3d ptInsert,AcGiWorldDraw *pWd);
2026-10-04 00:04:20 +08:00
// 直线样式生成树
2026-09-28 15:28:50 +08:00
void LineStyle(AcDbLine *pLine, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis);
2026-10-04 00:04:20 +08:00
// 圆弧样式生成树
2026-09-28 15:28:50 +08:00
void ArcStyle(AcDbArc *pArc, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis, double dBugle);
2026-10-04 00:04:20 +08:00
// 多段线样式生成树
2026-09-28 15:28:50 +08:00
void PolyLineStyle(AcDbPolyline *pPolyLine, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis);
private:
2026-10-04 00:04:20 +08:00
double m_dRad; // 半径
double m_dDis; // 间距
AcDbObjectId m_idBlk; // 块ID
BOOL m_bIsSetDis; // 是否设置间距可调
BOOL m_bIsRotation;// 是否设置随机旋转
2026-09-28 15:28:50 +08:00
AcDbPolyline m_polyLine;
};