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

1280 lines
42 KiB
C++

// SprinklerModifyDlg.cpp : implementation file
//
#include "stdafx.h"
#include "SprinklerModifyDlg.h"
#include "DbEquipment.h"
#include "DbPipe.h"
#include "globalFunc.h"
#include "AcDbObjectPtr.h"
#include "PickEntSet.h"
#include "layerdef.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
namespace
{
void ModifyPipeEquimentAttachment(CDbPipe *pPipe)
{
if (pPipe != NULL)
{
XPoint ptTmp = pPipe->StartPoint();
XPoint ptTmp2 = pPipe->EndPoint();
AcDbObjectId nodeId1(NULL), nodeId2(NULL);
nodeId1 = pPipe->GetNode(0);
nodeId2 = pPipe->GetNode(1);
OPENOBJ_BEGIN(nodeId1, AcDb::kForRead, CDbEquipment, pEquip);
OPENOBJ_END();
OPENOBJ_BEGIN(nodeId2, AcDb::kForRead, CDbEquipment, pEquip);
OPENOBJ_END();
DList<AcDbObjectId> lstAttachment;
pPipe->GetAttachments(lstAttachment);
int len = lstAttachment.Length();
for (int m = 0; m<len; m++)
{
AcDbObjectId idTmp = *lstAttachment[m];
OPENOBJ_BEGIN(idTmp, AcDb::kForWrite, CDbPipeAttachment, pValve);
if (pValve) {
XPoint ptLoc = pValve->GetLocation();
AcDbLine line(ptTmp, ptTmp2);
XPoint pt;
line.getClosestPointTo(ptLoc, AcGeVector3d::kZAxis, pt);
ptLoc = pt;
pValve->SetLocation(ptLoc);
// 设置方向
XCurveSegment seg(ptTmp, ptTmp2, 0);
XVector3D vectBase(seg.EndPoint().x - seg.StartPoint().x, seg.EndPoint().y - seg.StartPoint().y, seg.EndPoint().z - seg.StartPoint().z);
vectBase.Normalize();
if (vectBase.y < -0.000001
||(vectBase.y<0.000001&&vectBase.y>=-0.000001&&vectBase.x<0)) //管线逆向绘制
{
vectBase.x = -vectBase.x;
vectBase.y = -vectBase.y;
}
pValve->SetDirection(vectBase);
}
OPENOBJ_END();
}
}
}
void ModifyPipeEquimentAttachment(AcDbObjectId idPipe)
{
CDbPipe *pPipe = NULL;
acdbOpenObject(pPipe, idPipe, AcDb::kForRead);
if (pPipe != NULL)
{
ModifyPipeEquimentAttachment(pPipe);
pPipe->close();
}
}
}
//***************************************************************************************************
// 编辑喷头
//***************************************************************************************************
int EditSprinkler(AcDbObjectId id)
{
if(!id)
return RTERROR;
int iStyle(-1), iPos(-1), iK(80);
ads_name ent;
acdbGetAdsName(ent, id);
double nPipeLen(0), nAngle(0), nScale(1), nEle(0), nRadius(0);
double dPipeDn = 0.0; // 增加接管管径 zxl 2012.06.20 add
dPipeDn = _tstof(GlobalFunc::ReadXdata(ent, _T("LINKINGPIPE_DN")));
if (fabs(dPipeDn - 0.0) < 0.001)
{
dPipeDn = 25.0;
}
nRadius = _tstof(GlobalFunc::ReadXdata(ent, _T("HYDRANT_RADIUS")));
iK = _ttoi(GlobalFunc::ReadXdata(ent, _T("SPRINKLER_K")));
const TCHAR *szBlkName = NULL;
CString csDwb = g_csDwbPath + _T("TwtSys");
XString xsTmp, xsTmp2, xsTmp3, xsTmp4, xsTmp5, xsTmp6, xsTmp7, xsTmp13, xsTmp14, xsTmp15, xsTmp8;
XString xsTmp16, xsTmp17; // cet 2013.1.5 add
CString m_csSysBlk1 = _T("TWTSYS(00000283)"); //闭 系统
CString m_csSysBlk2 = _T("TWTSYS(00000126)"); //开 系统
CString m_csSysBlk3 = _T("TWTSYS(00000130)"); //侧喷、墙 系统
CString m_csSysBlk4 = _T("TWTSYS(00000530)"); //水喷雾 系统 zxl 2011.12.19 add
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000125"), xsTmp) != RTNORM) //开 闭
return 1;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000128"), xsTmp2) != RTNORM) //上下喷
return 1;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000129"), xsTmp3) != RTNORM) //侧墙
return 1;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000131"), xsTmp4) != RTNORM) //侧喷
return 1;
if (GlobalFunc::LoadDwbBlock(csDwb, _T("00000529"), xsTmp8) != RTNORM)//水喷雾
{
return 1;
}
if (GlobalFunc::LoadDwbBlock(csDwb, _T("00000540"), xsTmp16) != RTNORM) // cet 2013.1.5 add 直立型水幕
{
return 1;
}
if (GlobalFunc::LoadDwbBlock(csDwb, _T("00000541"), xsTmp17) != RTNORM) // cet 2013.1.5 add 下垂型水幕
{
return 1;
}
if(g_Option::instance().g_bBlk3D){
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000365"), xsTmp13) != RTNORM)
return 1;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000366"), xsTmp14) != RTNORM)
return 1;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000367"), xsTmp15) != RTNORM)
return 1;
}
//系统
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000283"), xsTmp5) != RTNORM) //闭式
return 1;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000126"), xsTmp6) != RTNORM) //开式
return 1;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000130"), xsTmp7) != RTNORM) //侧墙
return 1;
OPENOBJ_BEGIN(id, AcDb::kForRead, CDbEquipment, pEquip);
if(pEquip){
AcDbObjectId id2 = pEquip->GetBlock2d();
OPENOBJ_BEGIN(id2, AcDb::kForRead, AcDbBlockTableRecord, pRecord);
if(pRecord){
pRecord->getName(szBlkName);
}
OPENOBJ_END();
nEle = pEquip->GetLocation().z / 1000;
if(_tcsicmp(szBlkName, xsTmp2) == 0 ||
_tcsicmp(szBlkName, xsTmp) == 0 ||
_tcsicmp(szBlkName, xsTmp4) == 0 ||
_tcsicmp(szBlkName, xsTmp3) == 0 ||
_tcsicmp(szBlkName, xsTmp8) == 0 ||
_tcsicmp(szBlkName, xsTmp16) == 0 ||
_tcsicmp(szBlkName, xsTmp17) == 0 ) // cet 2013.1.5 modify 增加直立型水幕,下垂型水幕
{ //是喷头
if(_tcsicmp(szBlkName, xsTmp) == 0){
if(_tcsicmp((const TCHAR*)m_csSysBlk1, pEquip->GetSysBlock()) == 0)
iStyle = 1; //闭
else if(_tcsicmp((const TCHAR*)m_csSysBlk2, pEquip->GetSysBlock()) == 0)
iStyle = 0; //开
if(pEquip->IsHidePipe())
iPos = 0;
else
iPos = 1;
}
else if(_tcsicmp(szBlkName, xsTmp2) == 0){
iStyle = 1; //闭
iPos = 2; //上下喷
}
else if(_tcsicmp(szBlkName, xsTmp3) == 0){
iStyle = 2; //侧墙
iPos = 1; //下喷
}
else if(_tcsicmp(szBlkName, xsTmp4) == 0){
iStyle = 3; //侧喷
iPos = 1; //下喷
}
else if (_tcsicmp(szBlkName, xsTmp8) == 0)//zxl 2011.12.20 add
{
iStyle = 1;
iPos = 3;
}
else if (_tcsicmp(szBlkName, xsTmp16) == 0) // cet 2013.1.5 add
{
iStyle = 1; // 闭
iPos = 4; // 直立型水幕
}
else if (_tcsicmp(szBlkName, xsTmp17) == 0) // cet 2013.1.5 add
{
iStyle = 1; // 闭
iPos = 5; // 下垂型水幕
}
nPipeLen = pEquip->GetPipeLength();
nAngle = GlobalFunc::Radian2Angle(pEquip->GetAngle());
nScale = pEquip->GetScale();
}
else if(_tcsicmp(szBlkName, xsTmp5) == 0 || _tcsicmp(szBlkName, xsTmp6) == 0 || _tcsicmp(szBlkName, xsTmp7) == 0){//系统喷头 闭
if(_tcsicmp(szBlkName, xsTmp5) == 0)
iStyle = 1;
else if(_tcsicmp(szBlkName, xsTmp6) == 0)
iStyle = 0;
else
iStyle = 2;
nScale = pEquip->GetScale();
nAngle = GlobalFunc::Radian2Angle(pEquip->GetAngle());
if(fabs(nAngle) < 0.001)
iPos = 1; //下喷
else if(fabs(nAngle - 180) < 0.001)
iPos = 0; //上喷
int num = pEquip->GetInterfaceNum();
if(num == 1){
CPipeInterface face;
pEquip->GetInterface(0, face);
AcDbObjectId nextPipeId = face.m_idPipe;
OPENOBJ_BEGIN(nextPipeId, AcDb::kForRead, CDbPipe, pPipe);
if(pPipe){
nPipeLen = pPipe->Length();
}
OPENOBJ_END();
}
}
}
OPENOBJ_END();
CTemporaryResourceOverride vTemp;
CSprinklerModifyDlg dlg;
dlg.m_bEle = TRUE;
dlg.m_bPipeLen = TRUE;
dlg.m_bRadius = TRUE;
dlg.m_bRotate = TRUE;
dlg.m_bScale = TRUE;
dlg.m_bStyle = TRUE;
dlg.m_bK = TRUE;
dlg.m_iPos1 = iPos;
dlg.m_nScale = nScale;
dlg.m_iStyle = iStyle;
dlg.m_nEle = nEle;
dlg.m_nPipeLen = fabs(nPipeLen);
dlg.m_nRotate = nAngle;
dlg.m_nRadius = nRadius;
dlg.m_iK = iK;
dlg.m_dPipeDn = dPipeDn;// 增加接管管径 zxl 2012.06.20 add
if(dlg.DoModal() != IDOK)
return 1;
if(dlg.m_bRadius)
GlobalFunc::WriteXdata(ent, _T("HYDRANT_RADIUS"), XString(_T("%.2f"), dlg.m_nRadius));
if(dlg.m_bK)
GlobalFunc::WriteXdata(ent, _T("SPRINKLER_K"), XString(_T("%d"), dlg.m_iK));
// 增加接管管径 zxl 2012.06.20 add
if (fabs(dlg.m_dPipeDn - 0.0) < 0.001)
{
dlg.m_dPipeDn = 25.0;
}
GlobalFunc::WriteXdata(ent, _T("LINKINGPIPE_DN"), XString(_T("%.2f"), dlg.m_dPipeDn));
OPENOBJ_BEGIN(ent, AcDb::kForWrite, CDbEquipment, pEquip);
if(pEquip){
BOOL bIsSys = FALSE;
AcDbObjectId id2 = pEquip->GetBlock2d();
OPENOBJ_BEGIN(id2, AcDb::kForRead, AcDbBlockTableRecord, pRecord);
if(pRecord){
pRecord->getName(szBlkName);
}
OPENOBJ_END();
if(_tcsicmp(szBlkName, xsTmp5) == 0 || _tcsicmp(szBlkName, xsTmp6) == 0){
bIsSys = TRUE;
}
if(dlg.m_bScale)
pEquip->SetScale(dlg.m_nScale);
if(dlg.m_bRotate)
pEquip->SetAngle(dlg.m_nRotate*PI/180);
if(dlg.m_bPipeLen){
if(bIsSys){
if(fabs(dlg.m_nPipeLen) < 1)//还是留一个尾巴,为下次修改接管做准备
dlg.m_nPipeLen = 5;
XPoint ptLoc = pEquip->GetLocation();
int num = pEquip->GetInterfaceNum();
if(num == 1){
CPipeInterface face;
pEquip->GetInterface(0, face);
AcDbObjectId nextPipeId = face.m_idPipe;
OPENOBJ_BEGIN(nextPipeId, AcDb::kForWrite, CDbPipe, pPipe);
if(pPipe){
XPoint ptStart, ptEnd, ptTmp;
ptStart = pPipe->StartPoint();
ptEnd = pPipe->EndPoint();
if(ptEnd == ptLoc){
ads_polar(ptStart, ads_angle(ptStart, ptEnd), dlg.m_nPipeLen, ptTmp);
pPipe->SetPoints(ptStart, ptTmp);
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
}
else if(ptStart == ptLoc){
ads_polar(ptEnd, ads_angle(ptEnd, ptStart), dlg.m_nPipeLen, ptTmp);
pPipe->SetPoints(ptTmp, ptEnd);
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
}
}
OPENOBJ_END();
}
}
else{
if(nPipeLen > 0)
pEquip->SetPipeLength(dlg.m_nPipeLen);
else if(nPipeLen < 0)
pEquip->SetPipeLength(-dlg.m_nPipeLen);
}
}
if(dlg.m_bEle){
XPoint ptTmp = pEquip->GetLocation();
ptTmp.z = dlg.m_nEle * 1000;
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
int num = pEquip->GetInterfaceNum();
for(int j=0;j<num;j++){
CPipeInterface face;
pEquip->GetInterface(j, face);
AcDbObjectId nextPipeId = face.m_idPipe;
OPENOBJ_BEGIN(nextPipeId, AcDb::kForWrite, CDbPipe, pPipe);
if(pPipe && !pPipe->IsVertical()){
XPoint ptStart, ptEnd;
ptStart = pPipe->StartPoint();
ptEnd = pPipe->EndPoint();
// cet 2010.9.27 modify 只修改与喷头相连的一端
// ptStart.z = dlg.m_nEle * 1000;
// ptEnd.z = dlg.m_nEle * 1000;
// pPipe->SetStartPoint(ptStart);
// pPipe->SetEndPoint(ptEnd);
XPoint ptLoc = pEquip->GetLocation();
if (ptStart.Distance2d(ptLoc) < 1e-3)
{
ptStart.z = dlg.m_nEle * 1000;
pPipe->SetStartPoint(ptStart);
}
else if (ptEnd.Distance2d(ptLoc) < 1e-3)
{
ptEnd.z = dlg.m_nEle * 1000;
pPipe->SetEndPoint(ptEnd);
}
ModifyPipeEquimentAttachment(pPipe);
}
OPENOBJ_END();
}
}
if(dlg.m_bStyle){
if(bIsSys){
if(dlg.m_iStyle == 0) //开式
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp6));
else if(dlg.m_iStyle == 1) //闭式
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp5));
else if(dlg.m_iStyle == 2 || dlg.m_iStyle == 3) //侧墙
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp7));
nAngle = GlobalFunc::Radian2Angle(pEquip->GetAngle());
if(!((iPos == 1 && dlg.m_iPos1 == 0) || (iPos == 0 && dlg.m_iPos1 == 1))) {
if(fabs(nAngle) < 0.001)
iPos = 1; //下喷
else if(fabs(nAngle - PI) < 0.001)
iPos = 0; //上喷
CPipeInterface face;
pEquip->GetInterface(0, face);
AcDbObjectId nextPipeId = face.m_idPipe;
XPoint ptLoc = pEquip->GetLocation();
OPENOBJ_BEGIN(nextPipeId, AcDb::kForWrite, CDbPipe, pPipe);
if(pPipe){
XPoint ptStart, ptEnd, ptTmp;
ptStart = pPipe->StartPoint();
ptEnd = pPipe->EndPoint();
if(iPos == 1 && dlg.m_iPos1 == 0) //将下喷改为上喷
pEquip->SetAngle(PI);
else if(iPos == 0 && dlg.m_iPos1 == 1)//将上喷改为下喷
pEquip->SetAngle(0);
//将管线镜像过来
if(ptEnd == ptLoc){
ads_polar(ptStart, ads_angle(ptEnd, ptStart), pPipe->Length(), ptTmp);
pPipe->SetPoints(ptStart, ptTmp);
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
}
else if(ptStart == ptLoc){
ads_polar(ptEnd, ads_angle(ptStart, ptEnd), pPipe->Length(), ptTmp);
pPipe->SetPoints(ptTmp, ptEnd);
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
}
}
OPENOBJ_END();
}
}
if(dlg.m_iPos1 == 2){//上下喷
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp2));
pEquip->SetHidePipe(TRUE);
pEquip->SetSysBlock(m_csSysBlk1);
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp15));
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(fabs(pEquip->GetPipeLength()));
}
if (dlg.m_iPos1 == 3)//水喷雾
{
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp8));
pEquip->SetHidePipe(TRUE);
pEquip->SetSysBlock(m_csSysBlk4);
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp13));
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(fabs(pEquip->GetPipeLength()));
}
if(dlg.m_iStyle == 2){//侧墙
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp3));
pEquip->SetSysBlock(m_csSysBlk3);
pEquip->SetHidePipe(TRUE);
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(-fabs(pEquip->GetPipeLength()));
}
if(dlg.m_iStyle == 3){//侧喷
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp4));
pEquip->SetSysBlock(m_csSysBlk3);
pEquip->SetHidePipe(FALSE);
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(-fabs(pEquip->GetPipeLength()));
}
if (dlg.m_iPos1 == 4) // cet 2013.1.5 add 直立型水幕
{
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp16));
pEquip->SetHidePipe(TRUE);
pEquip->SetSysBlock(_T("TWTSYS(00000542)"));
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp14));
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(fabs(pEquip->GetPipeLength()));
}
if (dlg.m_iPos1 == 5) // cet 2013.1.5 add 下垂型水幕
{
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp17));
pEquip->SetHidePipe(TRUE);
pEquip->SetSysBlock(_T("TWTSYS(00000542)"));
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp13));
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(-fabs(pEquip->GetPipeLength()));
}
if(dlg.m_iPos1 != 2 && dlg.m_iStyle != 2 && dlg.m_iStyle != 3 && dlg.m_iPos1 != 3
&& dlg.m_iPos1 != 4 && dlg.m_iPos1 != 5){ // cet 2013.1.5 modify 排出直立型水幕和下垂型水幕 (判断条件咋写的不大清楚暂时这样更改)
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp));
if(dlg.m_iStyle == 0)
pEquip->SetSysBlock(m_csSysBlk2);
else if(dlg.m_iStyle == 1)
pEquip->SetSysBlock(m_csSysBlk1);
if(dlg.m_iPos1 == 0){ //上喷
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp14));
nPipeLen = fabs(dlg.m_nPipeLen);
pEquip->SetHidePipe(TRUE);
pEquip->SetPipeLength(nPipeLen);
}
else if(dlg.m_iPos1 == 1){ //下喷
nPipeLen = -fabs(dlg.m_nPipeLen);
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp13));
pEquip->SetHidePipe(FALSE);
pEquip->SetPipeLength(nPipeLen);
}
}
}
}
OPENOBJ_END();
return 1;
}
//***************************************************************************************************
// 修改喷头
//***************************************************************************************************
void ModifySprinkler()
{
PickSet ss(SS_FREE), ssPt(SS_FREE);
RBList rbMask(RTDXF0, _T("AEC_ZT_EQUIPMENT"), 8, LAY_EQUIP_SPRINKLE, NULL);
const TCHAR *szBlkName = NULL;
CString m_csSysBlk1 = _T("TWTSYS(00000283)"); //闭 系统
CString m_csSysBlk2 = _T("TWTSYS(00000126)"); //开 系统
CString m_csSysBlk3 = _T("TWTSYS(00000130)"); //侧喷、墙 系统
CString m_csSysBlk4 = _T("TWTSYS(00000530)");//水喷雾 系统 zxl 2011.12.19 add
CString csDwb = g_csDwbPath + _T("TwtSys");
XString xsTmp, xsTmp2, xsTmp3, xsTmp4, xsTmp5, xsTmp6, xsTmp7, xsTmp13, xsTmp14, xsTmp15, xsTmp8;
XString xsTmp16, xsTmp17; // cet 2013.1.5 add
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000125"), xsTmp) != RTNORM) //开 闭
return;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000128"), xsTmp2) != RTNORM) //上下喷
return;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000129"), xsTmp3) != RTNORM) //侧墙
return;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000131"), xsTmp4) != RTNORM) //侧喷
return;
if (GlobalFunc::LoadDwbBlock(csDwb, _T("00000529"), xsTmp8) != RTNORM)//水喷雾
{
return;
}
if (GlobalFunc::LoadDwbBlock(csDwb, _T("00000540"), xsTmp16) != RTNORM) // cet 2013.1.5 add 直立型水幕
{
return;
}
if (GlobalFunc::LoadDwbBlock(csDwb, _T("00000541"), xsTmp17) != RTNORM) // cet 2013.1.5 add 下垂型水幕
{
return;
}
if(g_Option::instance().g_bBlk3D){
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000365"), xsTmp13) != RTNORM)
return;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000366"), xsTmp14) != RTNORM)
return;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000367"), xsTmp15) != RTNORM)
return;
}
//系统
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000283"), xsTmp5) != RTNORM) //闭式
return;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000126"), xsTmp6) != RTNORM) //开式
return;
if(GlobalFunc::LoadDwbBlock(csDwb, _T("00000130"), xsTmp7) != RTNORM) //侧墙
return;
if(GlobalFunc::SelectEntities(_T("\n请选择要修改的喷头<退出>"), ss, rbMask) != RTNORM)
return;
long len = ss.Length();
int iStyle(-1), iPos(-1), iK(80);
double nPipeLen(0), nAngle(0), nScale(1), nEle(0), nRadius(0);
double dPipeDn = 0.0;// 增加接管管径 zxl 2012.06.20 add
for(long i=0;i<len;i++){
Entity ent = ss[i];
nRadius = _tstof(GlobalFunc::ReadXdata(ent, _T("HYDRANT_RADIUS")));
// 增加接管管径 zxl 2012.06.20 add
dPipeDn = _tstof(GlobalFunc::ReadXdata(ent, _T("LINKINGPIPE_DN")));
if (fabs(dPipeDn - 0.0) < 0.001)
{
dPipeDn = 25.0;
}
iK = _ttoi(GlobalFunc::ReadXdata(ent, _T("SPRINKLER_K")));
if(iK < 1)
iK = 80;
OPENOBJ_BEGIN(ent, AcDb::kForRead, CDbEquipment, pEquip);
if(pEquip){
AcDbObjectId id = pEquip->GetBlock2d();
OPENOBJ_BEGIN(id, AcDb::kForRead, AcDbBlockTableRecord, pRecord);
if(pRecord){
pRecord->getName(szBlkName);
}
OPENOBJ_END();
nEle = pEquip->GetLocation().z / 1000;
if(_tcsicmp(szBlkName, xsTmp2) == 0 ||
_tcsicmp(szBlkName, xsTmp) == 0 ||
_tcsicmp(szBlkName, xsTmp4) == 0 ||
_tcsicmp(szBlkName, xsTmp3) == 0 ||
_tcsicmp(szBlkName, xsTmp8) == 0 ||
_tcsicmp(szBlkName, xsTmp16) == 0 ||
_tcsicmp(szBlkName, xsTmp17) == 0 ) // cet 2013.1.5 modify 增加直立型水幕,下垂型水幕
{ //是喷头
if(_tcsicmp(szBlkName, xsTmp) == 0){
if(_tcsicmp((const TCHAR*)m_csSysBlk1, pEquip->GetSysBlock()) == 0)
iStyle = 1; //闭
else if(_tcsicmp((const TCHAR*)m_csSysBlk2, pEquip->GetSysBlock()) == 0)
iStyle = 0; //开
if(pEquip->IsHidePipe())
iPos = 0;
else
iPos = 1;
}
else if(_tcsicmp(szBlkName, xsTmp2) == 0){
iStyle = 1; //闭
iPos = 2; //上下喷
}
else if(_tcsicmp(szBlkName, xsTmp3) == 0){
iStyle = 2; //侧墙
iPos = 1; //下喷
}
else if(_tcsicmp(szBlkName, xsTmp4) == 0){
iStyle = 3; //侧喷
iPos = 1; //下喷
}
else if (_tcsicmp(szBlkName, xsTmp8) == 0)
{
iStyle = 1;//闭
iPos = 3;//水喷雾
}
else if (_tcsicmp(szBlkName, xsTmp16) == 0) // cet 2013.1.5 add
{
iStyle = 1; // 闭
iPos = 4; // 直立型水幕
}
else if (_tcsicmp(szBlkName, xsTmp17) == 0) // cet 2013.1.5 add
{
iStyle = 1; // 闭
iPos = 5; // 下垂型水幕
}
nPipeLen = pEquip->GetPipeLength();
ssPt += ent;
nAngle = GlobalFunc::Radian2Angle(pEquip->GetAngle());
nScale = pEquip->GetScale();
}
else if(_tcsicmp(szBlkName, xsTmp5) == 0 || _tcsicmp(szBlkName, xsTmp6) == 0 || _tcsicmp(szBlkName, xsTmp7) == 0){//系统喷头 闭
if(_tcsicmp(szBlkName, xsTmp5) == 0)
iStyle = 1;
else if(_tcsicmp(szBlkName, xsTmp6) == 0)
iStyle = 0;
else
iStyle = 2;
nScale = pEquip->GetScale();
nAngle = GlobalFunc::Radian2Angle(pEquip->GetAngle());
if(fabs(nAngle) < 0.001)
iPos = 1; //下喷
else if(fabs(nAngle - 180) < 0.001)
iPos = 0; //上喷
else
continue;
int num = pEquip->GetInterfaceNum();
if(num != 1)
continue;
CPipeInterface face;
pEquip->GetInterface(0, face);
AcDbObjectId nextPipeId = face.m_idPipe;
OPENOBJ_BEGIN(nextPipeId, AcDb::kForRead, CDbPipe, pPipe);
if(pPipe){
nPipeLen = pPipe->Length();
}
OPENOBJ_END();
ssPt += ent;
}
}
OPENOBJ_END();
}
if(ssPt.Length() < 1)
return;
CTemporaryResourceOverride vTemp;
CSprinklerModifyDlg dlg;
dlg.m_iPos1 = iPos;
dlg.m_nScale = nScale;
dlg.m_iStyle = iStyle;
dlg.m_nEle = nEle;
dlg.m_nPipeLen = fabs(nPipeLen);
dlg.m_nRotate = nAngle;
dlg.m_nRadius = nRadius;
dlg.m_iK = iK;
dlg.m_dPipeDn = dPipeDn;// 增加接管管径 zxl 2012.06.20 add
if(dlg.DoModal() != IDOK)
return;
for(i=0;i<ssPt.Length();i++){
Entity ent = ssPt[i];
// 增加接管管径 zxl 2012.06.20 add
if (fabs(dlg.m_dPipeDn - 0.0) < 0.001)
{
dlg.m_dPipeDn = 25.0;
}
GlobalFunc::WriteXdata(ent, _T("LINKINGPIPE_DN"), XString(_T("%.2f"), dlg.m_dPipeDn));
if(dlg.m_bRadius)
GlobalFunc::WriteXdata(ent, _T("HYDRANT_RADIUS"), XString(_T("%.2f"), dlg.m_nRadius));
if(dlg.m_bK)
GlobalFunc::WriteXdata(ent, _T("SPRINKLER_K"), XString(_T("%d"), dlg.m_iK));
OPENOBJ_BEGIN(ent, AcDb::kForWrite, CDbEquipment, pEquip);
if(pEquip){
BOOL bIsSys = FALSE;
AcDbObjectId id = pEquip->GetBlock2d();
OPENOBJ_BEGIN(id, AcDb::kForRead, AcDbBlockTableRecord, pRecord);
if(pRecord){
pRecord->getName(szBlkName);
}
OPENOBJ_END();
if(_tcsicmp(szBlkName, xsTmp5) == 0 || _tcsicmp(szBlkName, xsTmp6) == 0){
bIsSys = TRUE;
}
if(dlg.m_bScale)
pEquip->SetScale(dlg.m_nScale);
if(dlg.m_bRotate)
pEquip->SetAngle(dlg.m_nRotate*PI/180);
if(dlg.m_bPipeLen){
if(bIsSys){
if(fabs(dlg.m_nPipeLen) < 1)//还是留一个尾巴,为下次修改接管做准备
dlg.m_nPipeLen = 5;
XPoint ptLoc = pEquip->GetLocation();
int num = pEquip->GetInterfaceNum();
if(num != 1)
continue;
CPipeInterface face;
pEquip->GetInterface(0, face);
AcDbObjectId nextPipeId = face.m_idPipe;
OPENOBJ_BEGIN(nextPipeId, AcDb::kForWrite, CDbPipe, pPipe);
if(pPipe){
XPoint ptStart, ptEnd, ptTmp;
ptStart = pPipe->StartPoint();
ptEnd = pPipe->EndPoint();
if(ptEnd == ptLoc){
ads_polar(ptStart, ads_angle(ptStart, ptEnd), dlg.m_nPipeLen, ptTmp);
pPipe->SetPoints(ptStart, ptTmp);
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
}
else if(ptStart == ptLoc){
ads_polar(ptEnd, ads_angle(ptEnd, ptStart), dlg.m_nPipeLen, ptTmp);
pPipe->SetPoints(ptTmp, ptEnd);
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
}
}
OPENOBJ_END();
}
else{
if(nPipeLen > 0)
pEquip->SetPipeLength(dlg.m_nPipeLen);
else if(nPipeLen < 0)
pEquip->SetPipeLength(-dlg.m_nPipeLen);
}
}
if(dlg.m_bEle){
XPoint ptTmp = pEquip->GetLocation();
ptTmp.z = dlg.m_nEle * 1000;
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
int num = pEquip->GetInterfaceNum();
for(int j=0;j<num;j++){
CPipeInterface face;
pEquip->GetInterface(j, face);
AcDbObjectId nextPipeId = face.m_idPipe;
OPENOBJ_BEGIN(nextPipeId, AcDb::kForWrite, CDbPipe, pPipe);
if(pPipe && !pPipe->IsVertical()){
XPoint ptStart, ptEnd;
ptStart = pPipe->StartPoint();
ptEnd = pPipe->EndPoint();
ptStart.z = dlg.m_nEle * 1000;
ptEnd.z = dlg.m_nEle * 1000;
pPipe->SetStartPoint(ptStart);
pPipe->SetEndPoint(ptEnd);
}
OPENOBJ_END();
}
}
if(dlg.m_bStyle){
if(bIsSys){
if(dlg.m_iStyle == 0) //开式
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp6));
else if(dlg.m_iStyle == 1) //闭式
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp5));
else if(dlg.m_iStyle == 2 || dlg.m_iStyle == 3) //侧墙
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp7));
nAngle = GlobalFunc::Radian2Angle(pEquip->GetAngle());
if(!((iPos == 1 && dlg.m_iPos1 == 0) || (iPos == 0 && dlg.m_iPos1 == 1)))
continue;
if(fabs(nAngle) < 0.001)
iPos = 1; //下喷
else if(fabs(nAngle - PI) < 0.001)
iPos = 0; //上喷
CPipeInterface face;
pEquip->GetInterface(0, face);
AcDbObjectId nextPipeId = face.m_idPipe;
XPoint ptLoc = pEquip->GetLocation();
OPENOBJ_BEGIN(nextPipeId, AcDb::kForWrite, CDbPipe, pPipe);
if(pPipe){
XPoint ptStart, ptEnd, ptTmp;
ptStart = pPipe->StartPoint();
ptEnd = pPipe->EndPoint();
if(iPos == 1 && dlg.m_iPos1 == 0) //将下喷改为上喷
pEquip->SetAngle(PI);
else if(iPos == 0 && dlg.m_iPos1 == 1)//将上喷改为下喷
pEquip->SetAngle(0);
//将管线镜像过来
if(ptEnd == ptLoc){
ads_polar(ptStart, ads_angle(ptEnd, ptStart), pPipe->Length(), ptTmp);
pPipe->SetPoints(ptStart, ptTmp);
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
}
else if(ptStart == ptLoc){
ads_polar(ptEnd, ads_angle(ptStart, ptEnd), pPipe->Length(), ptTmp);
pPipe->SetPoints(ptTmp, ptEnd);
pEquip->SetLocation(ptTmp);
pEquip->SetInsert(ptTmp);
}
}
OPENOBJ_END();
continue;
}
if(dlg.m_iPos1 == 2){//上下喷
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp2));
pEquip->SetHidePipe(TRUE);
pEquip->SetSysBlock(m_csSysBlk1);
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp15));
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(fabs(pEquip->GetPipeLength()));
}
if (dlg.m_iPos1 == 3)//水喷雾
{
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp8));
pEquip->SetHidePipe(TRUE);
pEquip->SetSysBlock(m_csSysBlk4);
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp13));
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(fabs(pEquip->GetPipeLength()));
}
if (dlg.m_iPos1 == 4) // cet 2013.1.5 add 直立型水幕
{
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp16));
pEquip->SetHidePipe(TRUE);
pEquip->SetSysBlock(_T("TWTSYS(00000542)"));
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp14));
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(fabs(pEquip->GetPipeLength()));
}
if (dlg.m_iPos1 == 5) // cet 2013.1.5 add 下垂型水幕
{
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp17));
pEquip->SetHidePipe(TRUE);
pEquip->SetSysBlock(_T("TWTSYS(00000542)"));
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp13));
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(-fabs(pEquip->GetPipeLength()));
}
if(dlg.m_iStyle == 2){//侧墙
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp3));
pEquip->SetSysBlock(m_csSysBlk3);
pEquip->SetHidePipe(TRUE);
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(-fabs(pEquip->GetPipeLength()));
}
if(dlg.m_iStyle == 3){//侧喷
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp4));
pEquip->SetSysBlock(m_csSysBlk3);
pEquip->SetHidePipe(FALSE);
if(!dlg.m_bPipeLen)
pEquip->SetPipeLength(-fabs(pEquip->GetPipeLength()));
}
if(dlg.m_iPos1 != 2 && dlg.m_iStyle != 2 && dlg.m_iStyle != 3 && dlg.m_iPos1 != 3
&& dlg.m_iPos1 != 4 && dlg.m_iPos1 != 5){ // cet 2013.1.5 modify 排出直立型水幕和下垂型水幕 (判断条件咋写的不大清楚暂时这样更改)
pEquip->SetBlock2d(GlobalFunc::GetBlkIdByName(xsTmp));
if(dlg.m_iStyle == 0)
pEquip->SetSysBlock(m_csSysBlk2);
else if(dlg.m_iStyle == 1)
pEquip->SetSysBlock(m_csSysBlk1);
if(dlg.m_iPos1 == 0){ //上喷
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp14));
nPipeLen = fabs(dlg.m_nPipeLen);
pEquip->SetHidePipe(TRUE);
pEquip->SetPipeLength(nPipeLen);
}
else if(dlg.m_iPos1 == 1){ //下喷
nPipeLen = -fabs(dlg.m_nPipeLen);
pEquip->SetBlock3d(GlobalFunc::GetBlkIdByName(xsTmp13));
pEquip->SetHidePipe(FALSE);
pEquip->SetPipeLength(nPipeLen);
}
}
}
}
OPENOBJ_END();
}
}
/////////////////////////////////////////////////////////////////////////////
// CSprinklerModifyDlg dialog
CSprinklerModifyDlg::CSprinklerModifyDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSprinklerModifyDlg::IDD, pParent), m_spinPipeLen(50)
{
//{{AFX_DATA_INIT(CSprinklerModifyDlg)
m_bPipeLen = FALSE;
m_bStyle = FALSE;
m_iPos1 = 0;
m_nPipeLen = 250;
m_iStyle = 0;
m_nScale = g_Option::instance().g_nSprinklerRadius;
m_bScale = FALSE;
m_bRotate = FALSE;
m_nRotate = 0.0;
m_bEle = FALSE;
m_nEle = 0.0;
m_bRadius = FALSE;
m_nRadius = 0.0;
m_bK = FALSE;
m_iK = 0;
m_dPipeDn = 0.0;
//}}AFX_DATA_INIT
}
void CSprinklerModifyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSprinklerModifyDlg)
DDX_Control(pDX, IDC_SPIN_PIPELEN, m_spinPipeLen);
DDX_Check(pDX, IDC_CHECK_PIPELEN, m_bPipeLen);
DDX_Check(pDX, IDC_CHECK_STYLE, m_bStyle);
DDX_Radio(pDX, IDC_RADIO_POS1, m_iPos1);
DDX_Text(pDX, IDC_EDIT_PIPELEN, m_nPipeLen);
DDX_Radio(pDX, IDC_RADIO_TYPE1, m_iStyle);
DDX_Text(pDX, IDC_EDIT_SCALE, m_nScale);
DDX_Check(pDX, IDC_CHECK_SCALE, m_bScale);
DDX_Check(pDX, IDC_CHECK_ROTATE, m_bRotate);
DDX_Text(pDX, IDC_EDIT_ROTATE, m_nRotate);
DDX_Check(pDX, IDC_CHECK_ELE, m_bEle);
DDX_Text(pDX, IDC_EDIT_ELE, m_nEle);
DDX_Check(pDX, IDC_CHECK_RADIUS, m_bRadius);
DDX_Text(pDX, IDC_EDIT_RADIUS, m_nRadius);
DDX_Check(pDX, IDC_CHECK_K, m_bK);
DDX_Text(pDX, IDC_EDIT_K, m_iK);
DDX_Text(pDX, IDC_EDIT_PIPEDN, m_dPipeDn);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSprinklerModifyDlg, CDialog)
//{{AFX_MSG_MAP(CSprinklerModifyDlg)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_CHECK_STYLE, OnCheckStyle)
ON_BN_CLICKED(IDC_CHECK_PIPELEN, OnCheckPipelen)
ON_BN_CLICKED(IDC_RADIO_TYPE1, OnRadioType1)
ON_BN_CLICKED(IDC_RADIO_TYPE2, OnRadioType2)
ON_BN_CLICKED(IDC_RADIO_TYPE3, OnRadioType3)
ON_BN_CLICKED(IDC_RADIO_POS1, OnRadioPos1)
ON_BN_CLICKED(IDC_RADIO_POS2, OnRadioPos2)
ON_BN_CLICKED(IDC_RADIO_POS3, OnRadioPos3)
ON_BN_CLICKED(IDC_CHECK_SCALE, OnCheckScale)
ON_BN_CLICKED(IDC_RADIO_TYPE4, OnRadioType4)
ON_BN_CLICKED(IDC_CHECK_ROTATE, OnCheckRotate)
ON_BN_CLICKED(IDC_CHECK_ELE, OnCheckEle)
ON_BN_CLICKED(IDC_CHECK_RADIUS, OnCheckRadius)
ON_BN_CLICKED(IDC_CHECK_K, OnCheckK)
ON_BN_CLICKED(IDC_RADIO_POS6, OnRadioPos6)
ON_BN_CLICKED(IDC_RADIO_ERECT, OnRadioErect)
ON_BN_CLICKED(IDC_RADIO_DROOP, OnRadioDroop)
ON_MESSAGE(WM_ACAD_KEEPFOCUS, onAcadKeepFocus)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSprinklerModifyDlg message handlers
BOOL CSprinklerModifyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_spinPipeLen.SetRange(0, 900);
OnCheckStyle();
OnCheckPipelen();
OnCheckScale();
OnCheckRotate();
OnCheckEle();
OnCheckK();
OnCheckRadius();
OpenSlide();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSprinklerModifyDlg::OnOK()
{
CDialog::OnOK();
}
void CSprinklerModifyDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
OpenSlide();
}
void CSprinklerModifyDlg::OpenSlide()
{
CString csSldName;
UpdateData();
if(m_iStyle == 0 && m_iPos1 == 0) //开 上喷
csSldName = _T("TWT(PT3)");
else if(m_iStyle == 0 && m_iPos1 == 1)//开 下喷
csSldName = _T("TWT(PT4)");
else if(m_iStyle == 1 && m_iPos1 == 0)//闭 上喷
csSldName = _T("TWT(PT2)");
else if(m_iStyle == 1 && m_iPos1 == 1)//闭 下喷
csSldName = _T("TWT(PT1)");
else if(m_iStyle == 1 && m_iPos1 == 2)//闭 上下喷
csSldName = _T("TWT(PT5) && m_iPos1 == 1");
else if(m_iStyle == 2) //侧墙 下喷
csSldName = _T("TWT(PT6)");
else if(m_iStyle == 3) //侧墙 下喷
csSldName = _T("TWT(PT7)");
else if (m_iStyle == 1 && m_iPos1 == 3)//闭 水喷雾
{
csSldName = _T("TWT(PT8)");
}
else if (m_iStyle == 1 && m_iPos1 == 4) // cet 2013.1.5 add 闭 直立型水幕
{
csSldName = _T("TWT(PT9)");
}
else if (m_iStyle == 1 && m_iPos1 == 5) // cet 2013.1.5 add 闭 下垂型水幕
{
csSldName = _T("TWT(PT10)");
}
else{
csSldName = _T("");
}
CWnd *pWnd = GetDlgItem(IDC_STATIC_PREVIEW);
GlobalFunc::DrawSlide((const TCHAR*)csSldName, pWnd);
}
void CSprinklerModifyDlg::OnCheckStyle()
{
UpdateData();
CWnd *pWnd1 = GetDlgItem(IDC_RADIO_TYPE1);
CWnd *pWnd2 = GetDlgItem(IDC_RADIO_TYPE2);
CWnd *pWnd3 = GetDlgItem(IDC_RADIO_TYPE3);
CWnd *pWnd4 = GetDlgItem(IDC_RADIO_POS1);
CWnd *pWnd5 = GetDlgItem(IDC_RADIO_POS2);
CWnd *pWnd6 = GetDlgItem(IDC_RADIO_POS3);
CWnd *pWnd7 = GetDlgItem(IDC_RADIO_TYPE4);
CWnd *pWnd8 = GetDlgItem(IDC_RADIO_POS6);
CWnd *pWnd9 = GetDlgItem(IDC_RADIO_ERECT); // cet 2013.1.5 add
CWnd *pWnd10 = GetDlgItem(IDC_RADIO_DROOP); // cet 2013.1.5 add
if(m_bStyle){
if (pWnd1)
pWnd1->EnableWindow(TRUE);
if (pWnd2)
pWnd2->EnableWindow(TRUE);
if (pWnd3)
pWnd3->EnableWindow(TRUE);
if (pWnd4)
pWnd4->EnableWindow(TRUE);
if (pWnd5)
pWnd5->EnableWindow(TRUE);
if (pWnd6)
pWnd6->EnableWindow(TRUE);
if (pWnd7)
pWnd7->EnableWindow(TRUE);
if (pWnd8)
pWnd8->EnableWindow(TRUE);
if (pWnd9)
pWnd9->EnableWindow(TRUE); // cet 2013.1.5 add
if (pWnd10)
pWnd10->EnableWindow(TRUE); // cet 2013.1.5 add
}
else {
if (pWnd1)
pWnd1->EnableWindow(FALSE);
if (pWnd2)
pWnd2->EnableWindow(FALSE);
if (pWnd3)
pWnd3->EnableWindow(FALSE);
if (pWnd4)
pWnd4->EnableWindow(FALSE);
if (pWnd5)
pWnd5->EnableWindow(FALSE);
if (pWnd6)
pWnd6->EnableWindow(FALSE);
if (pWnd7)
pWnd7->EnableWindow(FALSE);
if (pWnd8)
pWnd8->EnableWindow(FALSE);
if (pWnd9)
pWnd9->EnableWindow(FALSE); // cet 2013.1.5 add
if (pWnd10)
pWnd10->EnableWindow(FALSE); // cet 2013.1.5 add
}
}
void CSprinklerModifyDlg::OnCheckPipelen()
{
UpdateData();
CWnd *pWnd1 = GetDlgItem(IDC_EDIT_PIPELEN);
CWnd *pWnd2 = GetDlgItem(IDC_SPIN_PIPELEN);
CWnd *pWnd3 = GetDlgItem(IDC_EDIT_PIPEDN);
if(m_bPipeLen){
pWnd1->EnableWindow(TRUE);
pWnd2->EnableWindow(TRUE);
pWnd3->EnableWindow(TRUE);
}
else{
pWnd1->EnableWindow(FALSE);
pWnd2->EnableWindow(FALSE);
pWnd3->EnableWindow(FALSE);
}
}
void CSprinklerModifyDlg::OnCheckK()
{
UpdateData();
CWnd *pWnd1 = GetDlgItem(IDC_EDIT_K);
if(m_bK)
pWnd1->EnableWindow(TRUE);
else
pWnd1->EnableWindow(FALSE);
}
void CSprinklerModifyDlg::OnCheckScale()
{
UpdateData();
CWnd *pWnd1 = GetDlgItem(IDC_EDIT_SCALE);
if(m_bScale)
pWnd1->EnableWindow(TRUE);
else
pWnd1->EnableWindow(FALSE);
}
void CSprinklerModifyDlg::OnCheckRotate()
{
UpdateData();
CWnd *pWnd1 = GetDlgItem(IDC_EDIT_ROTATE);
if(m_bRotate)
pWnd1->EnableWindow(TRUE);
else
pWnd1->EnableWindow(FALSE);
}
void CSprinklerModifyDlg::OnCheckEle()
{
UpdateData();
CWnd *pWnd1 = GetDlgItem(IDC_EDIT_ELE);
if(m_bEle)
pWnd1->EnableWindow(TRUE);
else
pWnd1->EnableWindow(FALSE);
}
void CSprinklerModifyDlg::OnRadioType1()
{
UpdateData();
if(m_iPos1 == 2){
m_iPos1 = 1;
UpdateData(FALSE);
}
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioType2()
{
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioType3()
{
UpdateData();
m_iPos1 = 1;
UpdateData(FALSE);
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioType4()
{
UpdateData();
m_iPos1 = 1;
UpdateData(FALSE);
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioPos1()
{
UpdateData();
if(m_iStyle == 2 || m_iStyle == 3){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioPos2()
{
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioPos3()
{
UpdateData();
if(m_iStyle == 2 || m_iStyle == 3){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
else if(m_iStyle == 0){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioPos6()
{
UpdateData();
if(m_iStyle == 2 || m_iStyle == 3){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
else if(m_iStyle == 0){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioErect()
{
UpdateData();
if(m_iStyle == 2 || m_iStyle == 3){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
else if(m_iStyle == 0){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
OpenSlide();
}
void CSprinklerModifyDlg::OnRadioDroop()
{
UpdateData();
if(m_iStyle == 2 || m_iStyle == 3){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
else if(m_iStyle == 0){
m_iPos1 = 1;
UpdateData(FALSE);
return;
}
OpenSlide();
}
LONG_PTR CSprinklerModifyDlg::onAcadKeepFocus(UINT_PTR, LONG_PTR)
{
POINT pt;
::GetCursorPos(&pt);
CRect rect;
GetWindowRect(&rect);
if (!(rect.PtInRect(pt)))
{
return FALSE;
}
return TRUE;
}
void CSprinklerModifyDlg::OnCheckRadius()
{
UpdateData();
CWnd *pWnd1 = GetDlgItem(IDC_EDIT_RADIUS);
if(m_bRadius)
pWnd1->EnableWindow(TRUE);
else
pWnd1->EnableWindow(FALSE);
}