Files
envi-code/SourceCode/Code2026/tg_shs/shs_TwtKernal/DrawDrainChamfer.h
T

40 lines
1.6 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#ifndef __CDRAWDRAINCHAMFER_H__
2026-09-28 15:28:50 +08:00
#define __CDRAWDRAINCHAMFER_H__
class CDrawDrainChamfer
{
public:
2026-10-04 00:04:20 +08:00
// 生成倒角
2026-09-28 15:28:50 +08:00
void MakeChamfer(SSearchPipeList *pListAll, PickSet &ssAll, double dChamferLen);
private:
2026-10-04 00:04:20 +08:00
// 获得待修改次管线信息
2026-09-28 15:28:50 +08:00
bool GetChamferInfo(const AcDbObjectId &IdPipeM, const AcDbObjectId &idPipeBra, std::map<AcDbObjectId,AcGePoint3dArray> &dataMap, double dChamferLen);
2026-10-04 00:04:20 +08:00
// 是否为立管
2026-09-28 15:28:50 +08:00
bool IsVerticalPipe(const AcDbObjectId &id);
2026-10-04 00:04:20 +08:00
// 是否在选择集内
2026-09-28 15:28:50 +08:00
bool IsValidPipe(PickSet &ssAll, AcDbObjectId &id);
2026-10-04 00:04:20 +08:00
// 节点上的管线是否都在选择集内
2026-09-28 15:28:50 +08:00
bool IsAllVaildPipe(PickSet &ssAll, SSearchPipeList *pLst);
2026-10-04 00:04:20 +08:00
// 节点上是否有管线与id管线共线
2026-09-28 15:28:50 +08:00
bool IsExistOnLine(AcDbObjectId &id, SSearchPipeList *pLst, SSearchPipeList *&pLstOut);
2026-10-04 00:04:20 +08:00
// 两管是否共线
2026-09-28 15:28:50 +08:00
bool IsOnSameLine(const AcDbObjectId &id1, const AcDbObjectId &id2);
2026-10-04 00:04:20 +08:00
// 管线长度是否大于倒角长度
2026-09-28 15:28:50 +08:00
bool IsOverChamferLen(AcDbObjectId &id, double dChamferLen);
2026-10-04 00:04:20 +08:00
// 获得所有需要修改的管线的信息
2026-09-28 15:28:50 +08:00
void GetPipeMap(SSearchPipeList *pListAll, std::map<AcDbObjectId,AcGePoint3dArray> &dataMap, double dChamferLen, PickSet &ssAll, std::vector<AcDbObjectId> &vecId);
2026-10-04 00:04:20 +08:00
// 修改管线
2026-09-28 15:28:50 +08:00
void ModifyPipe(std::map<AcDbObjectId, AcGePoint3dArray> &dataMap, std::vector<AcDbObjectId> &vecId);
2026-10-04 00:04:20 +08:00
// 获得管道系统的第一根管道
2026-09-28 15:28:50 +08:00
void GetFristPipeNode(SSearchPipeList *pLstIn, SSearchPipeList *&pLstOut);
2026-10-04 00:04:20 +08:00
// 获得需要修改的次管道的最小长度
2026-09-28 15:28:50 +08:00
void GetMinPipeLen(SSearchPipeList *pLst, PickSet &ssAll, const AcDbObjectId &idM, double &dMin);
};
#endif