Files
envi-code/SourceCode/Code2026/Dimension/SprinklerDimPipeDnDlg.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

652 lines
19 KiB
C++

// SprinklerDimPipeDnDlg.cpp : implementation file
//
#include "stdafx.h"
#include "DbEquipment.h"
#include "SprinklerDimPipeDnDlg.h"
#include "globalFunc.h"
#include "AcDbObjectPtr.h"
#include "DbPipe.h"
#include "layerdef.h"
#include "PickEntSet.h"
#include "TRegProperty.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
void DoDimSprinkPipeDn(SSearchPipeList *pListAll, CSprinklerDimPipeDnDlg *pDlg, int &idx)
{
AcDbObjectId id = NULL;
id = pListAll->m_ID;
pListAll->m_iNum = 0;
if(pListAll->m_iType == 2){
if(pDlg->m_bK){
ads_name ent;
acdbGetAdsName(ent, id);
double dK = _tstof(GlobalFunc::ReadXdata(ent, _T("SPRINKLER_K")));
if(dK < 0.01)
dK = 80;
pListAll->m_nSpare = dK;
}
else{
pListAll->m_iNum = 1;
}
}
ads_name ent1;
acdbGetAdsName(ent1, id);
Entity ent;
ent = ent1;
long len = pListAll->m_lstNode.Length();
for(long i=0;i<len;i++){
SSearchPipeList *pList = pListAll->m_lstNode[i];
DoDimSprinkPipeDn(pList, pDlg, idx);
pListAll->m_iNum += pList->m_iNum;
pListAll->m_nSpare += pList->m_nSpare;
}
if(pDlg->m_bK){
double dNum = pListAll->m_nSpare / 80 + 0.9; //这个地方不能四舍五入,大于80就算是2个喷头 2009-1-7
pListAll->m_iNum = (int)dNum;
}
idx++;
if(!ent.Is(_T("AEC_ZT_PIPE")))
return;
int iRadius(0);
if(pDlg){
if(pListAll->m_iNum <= pDlg->m_iDn25)
iRadius = 25;
else if(pListAll->m_iNum <= pDlg->m_iDn32)
iRadius = 32;
else if(pListAll->m_iNum <= pDlg->m_iDn40)
iRadius = 40;
else if(pListAll->m_iNum <= pDlg->m_iDn50)
iRadius = 50;
else if(pListAll->m_iNum <= pDlg->m_iDn70)
iRadius = 65;
else if(pListAll->m_iNum <= pDlg->m_iDn80)
iRadius = 80;
else if(pListAll->m_iNum <= pDlg->m_iDn100)
iRadius = 100;
else if(pListAll->m_iNum <= pDlg->m_iDn125)
iRadius = 125;
else if(pListAll->m_iNum <= pDlg->m_iDn150)
iRadius = 150;
else if(pListAll->m_iNum > pDlg->m_iDn150)
iRadius = 200;
//2008-11-6 如果没有这1档,则降1档管径
if(iRadius == 200 && pDlg->m_iDn200 == 0)
iRadius = 150;
if(iRadius == 150 && pDlg->m_iDn150 == 0)
iRadius = 125;
if(iRadius == 125 && pDlg->m_iDn125 == 0)
iRadius = 100;
}
if(iRadius == 65 && pDlg->m_bDn70)
iRadius = 70;
// DoDimPipeDn(ent, iRadius, _T("自动"), g_nPipeDnHeight, FALSE); // cet 2010.5.18 del 增加标注字高修改
GlobalFunc::DoDimPipeDn(ent, iRadius, _T("自动"), pDlg->GetDimFontHeight(), FALSE, FALSE); // cet 2010.5.18 add
// 设置标注距管距离 zxl 2014.04.08 add
OPENOBJ_BEGIN(ent, AcDb::kForWrite, CDbPipe, pPipe);
if(pPipe != NULL)
{
pPipe->InitLabelLocation(pDlg->m_dDst * GlobalFunc::DocGetPScale());
}
OPENOBJ_END();
// zxl 2013.09.04 add 添加最小显示管径,管径小于设定值时不显示
if (iRadius < pDlg->m_dMinDn)
{
OPENOBJ_BEGIN(ent, AcDb::kForWrite, CDbPipe, pPipe);
if(pPipe != NULL)
{
pPipe->EnableDrawLabel(FALSE);
}
OPENOBJ_END();
}
acedSetStatusBarProgressMeterPos(idx);
}
void DimPipeDnFromSprink()
{
CTemporaryResourceOverride vTemp;
CSprinklerDimPipeDnDlg dlg;
if(dlg.DoModal() != IDOK)
return;
Entity entMainPipe;
RBList rbMask = ads_buildlist( -4, _T("<or"),
-4, _T("<and"), RTDXF0, _T("AEC_ZT_PIPE"), 8, LAY_PIPE_SPRINKLE, -4, _T("and>"),
-4, _T("<and"), RTDXF0, _T("AEC_ZT_PIPE"), 8, LAY_PIPE_SPRINKLE2, -4, _T("and>"),
-4, _T("<and"), RTDXF0, _T("AEC_ZT_PIPE"), 8, LAY_PIPE_SPRINKLE3, -4, _T("and>"),
-4, _T("<and"), RTDXF0, _T("AEC_ZT_PIPE"), 8, LAY_VPIPE_SPRINKLE, -4, _T("and>"),
-4, _T("<and"), RTDXF0, _T("AEC_ZT_PIPE"), 8, LAY_VPIPE_SPRINKLE2,-4, _T("and>"),
-4, _T("<and"), RTDXF0, _T("AEC_ZT_PIPE"), 8, LAY_VPIPE_SPRINKLE3,-4, _T("and>"),
-4, _T("or>"), NULL);
if(GlobalFunc::SelectEntity(_T("\n请选择喷淋干管<退出>"), entMainPipe, rbMask) != RTNORM)
return;
SSearchPipeList *pListAll = new SSearchPipeList();
PickSet ssAll(SS_FREE);
ssAll += entMainPipe;
if(!GlobalFunc::SearchSprinkPipeSys(entMainPipe, NULL, pListAll, ssAll)){
AfxMessageBox(_T("喷淋系统有回路!"));
delete pListAll;
return;
}
acedSetStatusBarProgressMeter(_T("标注中..."), 0, ssAll.Length());
int idx(0);
DoDimSprinkPipeDn(pListAll, &dlg, idx);
acedRestoreStatusBar();
GlobalFunc::UpdateMultDim();
delete pListAll;
}
/////////////////////////////////////////////////////////////////////////////
// CSprinklerDimPipeDnDlg dialog
CSprinklerDimPipeDnDlg::CSprinklerDimPipeDnDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSprinklerDimPipeDnDlg::IDD, pParent), m_dDst(0), m_spinDst(0.5)
{
//{{AFX_DATA_INIT(CSprinklerDimPipeDnDlg)
m_iDn100 = 0;
m_iDn125 = 0;
m_iDn150 = 0;
m_iDn32 = 0;
m_iDn25 = 0;
m_iDn40 = 0;
m_iDn70 = 0;
m_iDn50 = 0;
m_iDn80 = 0;
m_iLevel = 1;
m_bK = TRUE;
m_bDn70 = FALSE;
m_iDn200 = 0;
m_dDimFontHeight = 0.0;
m_dMinDn = 25;
m_dDst = 2;
//}}AFX_DATA_INIT
}
void CSprinklerDimPipeDnDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSprinklerDimPipeDnDlg)
DDX_Text(pDX, IDC_EDIT_DN100, m_iDn100);
DDX_Text(pDX, IDC_EDIT_DN125, m_iDn125);
DDX_Text(pDX, IDC_EDIT_DN150, m_iDn150);
DDX_Text(pDX, IDC_EDIT_DN32, m_iDn32);
DDX_Text(pDX, IDC_EDIT_DN25, m_iDn25);
DDX_Text(pDX, IDC_EDIT_DN40, m_iDn40);
DDX_Text(pDX, IDC_EDIT_DN70, m_iDn70);
DDX_Text(pDX, IDC_EDIT_DN50, m_iDn50);
DDX_Text(pDX, IDC_EDIT_DN80, m_iDn80);
DDX_Text(pDX, IDC_COMBO_MINDN, m_dMinDn);
DDX_Radio(pDX, IDC_RADIO_LEVEL1, m_iLevel);
DDX_Check(pDX, IDC_CHECK_K, m_bK);
DDX_Check(pDX, IDC_CHECK_DN70, m_bDn70);
DDX_Text(pDX, IDC_EDIT_DN200, m_iDn200);
DDX_Text(pDX, IDC_EDT_DIMFONTHEIGHT, m_dDimFontHeight);
//}}AFX_DATA_MAP
DDX_Text(pDX, IDC_EDIT_DST, m_dDst);
DDX_Control(pDX, IDC_SPIN_DST, m_spinDst);
}
BEGIN_MESSAGE_MAP(CSprinklerDimPipeDnDlg, CDialog)
//{{AFX_MSG_MAP(CSprinklerDimPipeDnDlg)
ON_BN_CLICKED(IDC_RADIO_LEVEL1, OnRadioLevel1)
ON_BN_CLICKED(IDC_RADIO_LEVEL2, OnRadioLevel2)
ON_BN_CLICKED(IDC_BUTTON_DEFAULT, OnButtonDefault)
ON_BN_CLICKED(IDC_RADIO_LEVEL3, OnRadioLevel3)
ON_MESSAGE(WM_ACAD_KEEPFOCUS, onAcadKeepFocus)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSprinklerDimPipeDnDlg message handlers
BOOL CSprinklerDimPipeDnDlg::OnInitDialog()
{
CDialog::OnInitDialog();
TRegProperty regProp(_T("SoftWare\\SHANGHUASOFT\\2023"), _T("Sprinkler"));
regProp.SetTopRootKey(HKEY_CURRENT_USER);
if (!regProp.GetValue(_T("DistDimToLine"), m_dDst))
{
m_dDst = 2;
}
UpdateData(FALSE);
m_spinDst.SetRange(0, 10);
Default();
UpdateDlgData(TRUE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSprinklerDimPipeDnDlg::OnRadioLevel1()
{
UpdateDn(FALSE);
UpdateDn(TRUE);
UpdateData(FALSE);
}
void CSprinklerDimPipeDnDlg::OnRadioLevel2()
{
UpdateDn(FALSE);
UpdateDn(TRUE);
UpdateData(FALSE);
}
void CSprinklerDimPipeDnDlg::OnRadioLevel3()
{
UpdateDn(FALSE);
UpdateDn(TRUE);
UpdateData(FALSE);
}
LONG_PTR CSprinklerDimPipeDnDlg::onAcadKeepFocus(UINT_PTR, LONG_PTR)
{
POINT pt;
::GetCursorPos(&pt);
CRect rect;
GetWindowRect(&rect);
if (!(rect.PtInRect(pt)))
{
return FALSE;
}
return TRUE;
}
void CSprinklerDimPipeDnDlg::OnButtonDefault()
{
Default();
UpdateDn(TRUE);
UpdateData(FALSE);
}
void CSprinklerDimPipeDnDlg::Default()
{
m_iSprinklerArray1[0] = 1;
m_iSprinklerArray1[1] = 3;
m_iSprinklerArray1[2] = 5;
m_iSprinklerArray1[3] = 10;
m_iSprinklerArray1[4] = 18;
m_iSprinklerArray1[5] = 48;
m_iSprinklerArray1[6] = 64;
m_iSprinklerArray1[7] = 80;
m_iSprinklerArray1[8] = 100;
m_iSprinklerArray1[9] = 0;
m_iSprinklerArray2[0] = 1;
// cet 2011.5.13 modify
// m_iSprinklerArray2[1] = 2;
// m_iSprinklerArray2[2] = 3;
m_iSprinklerArray2[1] = 3;
m_iSprinklerArray2[2] = 4;
m_iSprinklerArray2[3] = 8;
m_iSprinklerArray2[4] = 12;
m_iSprinklerArray2[5] = 32;
m_iSprinklerArray2[6] = 64;
m_iSprinklerArray2[7] = 80;
m_iSprinklerArray2[8] = 100;
m_iSprinklerArray2[9] = 0;
m_iSprinklerArray3[0] = 1;
m_iSprinklerArray3[1] = 2;
m_iSprinklerArray3[2] = 3;
m_iSprinklerArray3[3] = 6;
m_iSprinklerArray3[4] = 10;
m_iSprinklerArray3[5] = 30;
m_iSprinklerArray3[6] = 64;
m_iSprinklerArray3[7] = 80;
m_iSprinklerArray3[8] = 100;
m_iSprinklerArray3[9] = 0;
}
void CSprinklerDimPipeDnDlg::UpdateDn(BOOL bIsRead)
{
//UpdateData(TRUE);
if(bIsRead){
if(m_iLevel == 0){
m_iDn25 = m_iSprinklerArray1[0];
m_iDn32 = m_iSprinklerArray1[1];
m_iDn40 = m_iSprinklerArray1[2];
m_iDn50 = m_iSprinklerArray1[3];
m_iDn70 = m_iSprinklerArray1[4];
m_iDn80 = m_iSprinklerArray1[5];
m_iDn100 = m_iSprinklerArray1[6];
m_iDn125 = m_iSprinklerArray1[7];
m_iDn150 = m_iSprinklerArray1[8];
m_iDn200 = m_iSprinklerArray1[9];
}
else if(m_iLevel == 1){
m_iDn25 = m_iSprinklerArray2[0];
m_iDn32 = m_iSprinklerArray2[1];
m_iDn40 = m_iSprinklerArray2[2];
m_iDn50 = m_iSprinklerArray2[3];
m_iDn70 = m_iSprinklerArray2[4];
m_iDn80 = m_iSprinklerArray2[5];
m_iDn100 = m_iSprinklerArray2[6];
m_iDn125 = m_iSprinklerArray2[7];
m_iDn150 = m_iSprinklerArray2[8];
m_iDn200 = m_iSprinklerArray2[9];
}
else if(m_iLevel == 2){
m_iDn25 = m_iSprinklerArray3[0];
m_iDn32 = m_iSprinklerArray3[1];
m_iDn40 = m_iSprinklerArray3[2];
m_iDn50 = m_iSprinklerArray3[3];
m_iDn70 = m_iSprinklerArray3[4];
m_iDn80 = m_iSprinklerArray3[5];
m_iDn100 = m_iSprinklerArray3[6];
m_iDn125 = m_iSprinklerArray3[7];
m_iDn150 = m_iSprinklerArray3[8];
m_iDn200 = m_iSprinklerArray3[9];
}
}
else{
if(m_iLevel == 0){
UpdateData(TRUE);
m_iSprinklerArray1[0] = m_iDn25;
m_iSprinklerArray1[1] = m_iDn32;
m_iSprinklerArray1[2] = m_iDn40;
m_iSprinklerArray1[3] = m_iDn50;
m_iSprinklerArray1[4] = m_iDn70;
m_iSprinklerArray1[5] = m_iDn80;
m_iSprinklerArray1[6] = m_iDn100;
m_iSprinklerArray1[7] = m_iDn125;
m_iSprinklerArray1[8] = m_iDn150;
m_iSprinklerArray1[9] = m_iDn200;
}
else if(m_iLevel == 1){
UpdateData(TRUE);
m_iSprinklerArray2[0] = m_iDn25;
m_iSprinklerArray2[1] = m_iDn32;
m_iSprinklerArray2[2] = m_iDn40;
m_iSprinklerArray2[3] = m_iDn50;
m_iSprinklerArray2[4] = m_iDn70;
m_iSprinklerArray2[5] = m_iDn80;
m_iSprinklerArray2[6] = m_iDn100;
m_iSprinklerArray2[7] = m_iDn125;
m_iSprinklerArray2[8] = m_iDn150;
m_iSprinklerArray2[9] = m_iDn200;
}
else if(m_iLevel == 2){
UpdateData(TRUE);
m_iSprinklerArray3[0] = m_iDn25;
m_iSprinklerArray3[1] = m_iDn32;
m_iSprinklerArray3[2] = m_iDn40;
m_iSprinklerArray3[3] = m_iDn50;
m_iSprinklerArray3[4] = m_iDn70;
m_iSprinklerArray3[5] = m_iDn80;
m_iSprinklerArray3[6] = m_iDn100;
m_iSprinklerArray3[7] = m_iDn125;
m_iSprinklerArray3[8] = m_iDn150;
m_iSprinklerArray3[9] = m_iDn200;
}
}
}
void CSprinklerDimPipeDnDlg::UpdateDlgData(BOOL bIsRead)
{
UpdateData(TRUE);
TRegProperty regProp(_T("SoftWare\\SHANGHUASOFT\\2023"), _T("Sprinkler"));
regProp.SetTopRootKey(HKEY_CURRENT_USER);
if(bIsRead){
regProp.GetValue(_T("MinPipe25"), m_iSprinklerArray1[0]);
regProp.GetValue(_T("MinPipe32"), m_iSprinklerArray1[1]);
regProp.GetValue(_T("MinPipe40"), m_iSprinklerArray1[2]);
regProp.GetValue(_T("MinPipe50"), m_iSprinklerArray1[3]);
regProp.GetValue(_T("MinPipe70"), m_iSprinklerArray1[4]);
regProp.GetValue(_T("MinPipe80"), m_iSprinklerArray1[5]);
regProp.GetValue(_T("MinPipe100"), m_iSprinklerArray1[6]);
regProp.GetValue(_T("MinPipe125"), m_iSprinklerArray1[7]);
regProp.GetValue(_T("MinPipe150"), m_iSprinklerArray1[8]);
regProp.GetValue(_T("MinPipe200"), m_iSprinklerArray1[9]);
regProp.GetValue(_T("MidPipe25"), m_iSprinklerArray2[0]);
regProp.GetValue(_T("MidPipe32"), m_iSprinklerArray2[1]);
regProp.GetValue(_T("MidPipe40"), m_iSprinklerArray2[2]);
regProp.GetValue(_T("MidPipe50"), m_iSprinklerArray2[3]);
regProp.GetValue(_T("MidPipe70"), m_iSprinklerArray2[4]);
regProp.GetValue(_T("MidPipe80"), m_iSprinklerArray2[5]);
regProp.GetValue(_T("MidPipe100"), m_iSprinklerArray2[6]);
regProp.GetValue(_T("MidPipe125"), m_iSprinklerArray2[7]);
regProp.GetValue(_T("MidPipe150"), m_iSprinklerArray2[8]);
regProp.GetValue(_T("MidPipe200"), m_iSprinklerArray2[9]);
regProp.GetValue(_T("MaxPipe25"), m_iSprinklerArray3[0]);
regProp.GetValue(_T("MaxPipe32"), m_iSprinklerArray3[1]);
regProp.GetValue(_T("MaxPipe40"), m_iSprinklerArray3[2]);
regProp.GetValue(_T("MaxPipe50"), m_iSprinklerArray3[3]);
regProp.GetValue(_T("MaxPipe70"), m_iSprinklerArray3[4]);
regProp.GetValue(_T("MaxPipe80"), m_iSprinklerArray3[5]);
regProp.GetValue(_T("MaxPipe100"), m_iSprinklerArray3[6]);
regProp.GetValue(_T("MaxPipe125"), m_iSprinklerArray3[7]);
regProp.GetValue(_T("MaxPipe150"), m_iSprinklerArray3[8]);
regProp.GetValue(_T("MaxPipe200"), m_iSprinklerArray3[9]);
// cet 2010.5.18 add
if (!regProp.GetValue(_T("DimFontHeight"),m_dDimFontHeight))
{
m_dDimFontHeight = g_Option::instance().g_nPipeDnHeight;
}
if (!regProp.GetValue(_T("MinShowDn"), m_dMinDn))
{
m_dMinDn = 25;
}
UpdateDn(TRUE);
UpdateData(FALSE);
}
else{
regProp.SetValue(_T("MinPipe25"), m_iSprinklerArray1[0]);
regProp.SetValue(_T("MinPipe32"), m_iSprinklerArray1[1]);
regProp.SetValue(_T("MinPipe40"), m_iSprinklerArray1[2]);
regProp.SetValue(_T("MinPipe50"), m_iSprinklerArray1[3]);
regProp.SetValue(_T("MinPipe70"), m_iSprinklerArray1[4]);
regProp.SetValue(_T("MinPipe80"), m_iSprinklerArray1[5]);
regProp.SetValue(_T("MinPipe100"), m_iSprinklerArray1[6]);
regProp.SetValue(_T("MinPipe125"), m_iSprinklerArray1[7]);
regProp.SetValue(_T("MinPipe150"), m_iSprinklerArray1[8]);
regProp.SetValue(_T("MinPipe200"), m_iSprinklerArray1[9]);
regProp.SetValue(_T("MidPipe25"), m_iSprinklerArray2[0]);
regProp.SetValue(_T("MidPipe32"), m_iSprinklerArray2[1]);
regProp.SetValue(_T("MidPipe40"), m_iSprinklerArray2[2]);
regProp.SetValue(_T("MidPipe50"), m_iSprinklerArray2[3]);
regProp.SetValue(_T("MidPipe70"), m_iSprinklerArray2[4]);
regProp.SetValue(_T("MidPipe80"), m_iSprinklerArray2[5]);
regProp.SetValue(_T("MidPipe100"), m_iSprinklerArray2[6]);
regProp.SetValue(_T("MidPipe125"), m_iSprinklerArray2[7]);
regProp.SetValue(_T("MidPipe150"), m_iSprinklerArray2[8]);
regProp.SetValue(_T("MidPipe200"), m_iSprinklerArray2[9]);
regProp.SetValue(_T("MaxPipe25"), m_iSprinklerArray3[0]);
regProp.SetValue(_T("MaxPipe32"), m_iSprinklerArray3[1]);
regProp.SetValue(_T("MaxPipe40"), m_iSprinklerArray3[2]);
regProp.SetValue(_T("MaxPipe50"), m_iSprinklerArray3[3]);
regProp.SetValue(_T("MaxPipe70"), m_iSprinklerArray3[4]);
regProp.SetValue(_T("MaxPipe80"), m_iSprinklerArray3[5]);
regProp.SetValue(_T("MaxPipe100"), m_iSprinklerArray3[6]);
regProp.SetValue(_T("MaxPipe125"), m_iSprinklerArray3[7]);
regProp.SetValue(_T("MaxPipe150"), m_iSprinklerArray3[8]);
regProp.SetValue(_T("MaxPipe200"), m_iSprinklerArray3[9]);
// cet 2010.5.18 add
regProp.SetValue(_T("DimFontHeight"),m_dDimFontHeight);
regProp.SetValue(_T("MinShowDn"), m_dMinDn);
}
}
void CSprinklerDimPipeDnDlg::OnOK()
{
// zxl 2013.09.04 add
if (!UpdateData(TRUE))
{
return;
}
UpdateDn(FALSE);
UpdateDlgData(FALSE);
TRegProperty regProp(_T("SoftWare\\SHANGHUASOFT\\2023"), _T("Sprinkler"));
regProp.SetTopRootKey(HKEY_CURRENT_USER);
regProp.SetValue(_T("DistDimToLine"), m_dDst);
CDialog::OnOK();
}
//**************************************************************************
// 暂时作废
//**************************************************************************
//BOOL GetSprinkFormPipe(Entity ent, AcDbObjectId &idRet1, AcDbObjectId &idRet2)
//{
// BOOL bRet = FALSE;
// OPENOBJ_BEGIN(ent, AcDb::kForRead, CDbPipe, pPipe);
// if(pPipe){
// AcDbObjectId nodeId1(NULL), nodeId2(NULL);
// nodeId1 = pPipe->GetNode(0);
// nodeId2 = pPipe->GetNode(1);
// if(IsSprinkler(nodeId1)){
// idRet1 = nodeId1;
// bRet = TRUE;
// }
// if(IsSprinkler(nodeId2)){
// idRet2 = nodeId2;
// bRet = TRUE;
// }
// }
// OPENOBJ_END();
// return bRet;
//void DimPipeDnFromSprink2()
//{
// Entity ent;
// if(GlobalFunc::SelectEntity(_T("\n请选择喷淋干管<退出>"), ent, RBList()) != RTNORM)
// return;
// AcDbObjectId idFront = NULL;
// acdbGetObjectId(idFront, ent);
// PickSet ss(SS_FREE);
// GetAllPipeAndEqByNode(idFront, Entity(), ss);
// ss.Redraw(3);
//void GetAllPipeAndEqByPipe(AcDbObjectId pipeId, Entity entFront, PickSet &ss)
//{
// AcDbObjectId idFront = NULL;
// acdbGetObjectId(idFront, entFront);
//
// OPENOBJ_BEGIN(pipeId, AcDb::kForRead, CDbPipe, pPipe);
// if(pPipe){
// AcDbObjectId nodeId1(NULL), nodeId2(NULL);
// nodeId1 = pPipe->GetNode(0);
// nodeId2 = pPipe->GetNode(1);
// if(!IsEquipment(nodeId1))
// GetAllPipeAndEqByNode(nodeId1, entFront, ss);
// else if(idFront != nodeId1)
// ss += nodeId1;
// if(!IsEquipment(nodeId2))
// GetAllPipeAndEqByNode(nodeId2, entFront, ss);
// else if(idFront != nodeId2)
// ss += nodeId2;
// }
// OPENOBJ_END();
// return;
//void GetAllPipeAndEqByNode(AcDbObjectId nodeId, Entity entFront, PickSet &ss)
//{
// AcDbObjectId idFront = NULL;
// acdbGetObjectId(idFront, entFront);
//
// PickSet ssSelf(SS_FREE);
// OPENOBJ_BEGIN(nodeId, AcDb::kForRead, TDbPipeNode, pNode);
// if(pNode){
// int num = pNode->GetInterfaceNum();
// for(int i=0;i<num;i++){
// TPipeInterface face;
// pNode->GetInterface(i, face);
// AcDbObjectId nextPipeId = face.m_idPipe;
// if(idFront == nextPipeId)
// return;
// ssSelf += nextPipeId;
// }
// }
// OPENOBJ_END();
// ss += ssSelf;
//BOOL SearchPipeSys(Entity ent, Entity entFront, SSearchPipeList *pListAll, PickSet &ssAll)
//{
// AcDbObjectId id = NULL;
// acdbGetObjectId(id, ent);
// pListAll->m_ID = id;
// PickSet ss(SS_FREE);
// int len(0);
//
// if(ent.Is(_T("AEC_ZT_PIPE")))
// GetAllPipeAndEqByPipe(id, entFront, ss);
// else if(ent.Is(_T("ATS_EQUIPMENT"))){
// GetAllPipeAndEqByNode(id, Entity(), ss);
// ss -= entFront;
// }
// ss -= ent;
//
// for(long j=0;j<ss.Length();j++){
// Entity entTmp = ss[j];
// if(entTmp.In(ssAll) > 0){
// return FALSE;
// }
// }
//
// ssAll += ss;
// len = ss.Length();
// for(long i=0;i<ss.Length();i++){
// Entity entTmp = ss[i];
// SSearchPipeList *pList = new SSearchPipeList();
// acdbGetObjectId(id, entTmp);
// pList->m_ID = id;
// if(!SearchPipeSys(entTmp, ent, pList, ssAll))
// return FALSE;
// pListAll->m_lstNode.Append(pList);
// }
// return TRUE;
//}