211 lines
3.9 KiB
C++
211 lines
3.9 KiB
C++
#include "StdAfx.h"
|
|
#include "StdArx.h"
|
|
#include "resource.h"
|
|
#include "CoreTools.h"
|
|
|
|
HINSTANCE _hdllInstance = NULL ;
|
|
|
|
#ifndef _ttof
|
|
#define _ttof(pszVal) _tcstod((pszVal), NULL)
|
|
#endif
|
|
|
|
void AddCommand(const TCHAR* cmdGroup, const TCHAR* cmdInt, const TCHAR* cmdLoc,
|
|
const int cmdFlags, const AcRxFunctionPtr cmdProc, const int idLocal = -1);
|
|
|
|
void InitApplication();
|
|
void UnloadApplication();
|
|
|
|
AC_IMPLEMENT_EXTENSION_MODULE(PlumbingDLL);
|
|
|
|
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
|
|
{
|
|
if (dwReason == DLL_PROCESS_ATTACH)
|
|
{
|
|
_hdllInstance = hInstance;
|
|
PlumbingDLL.AttachInstance(hInstance);
|
|
}
|
|
else if (dwReason == DLL_PROCESS_DETACH)
|
|
{
|
|
PlumbingDLL.DetachInstance();
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
|
|
{
|
|
switch (msg)
|
|
{
|
|
case AcRx::kInitAppMsg:
|
|
acrxDynamicLinker->unlockApplication(pkt);
|
|
acrxDynamicLinker->registerAppMDIAware(pkt);
|
|
InitApplication();
|
|
break;
|
|
case AcRx::kUnloadAppMsg:
|
|
UnloadApplication();
|
|
break;
|
|
}
|
|
return AcRx::kRetOK;
|
|
}
|
|
|
|
#define ADD_CMD(cmd, func) CoreTools::AddCommand(_T("PLMB_Cmd"), _T(#cmd), _T(#cmd), ACRX_CMD_TRANSPARENT | ACRX_CMD_USEPICKSET, func)
|
|
|
|
void InitApplication()
|
|
{
|
|
acrxBuildClassHierarchy();
|
|
|
|
//室内管线
|
|
ADD_CMD(CR_SCGX, CR_SCGXCmdFnc);
|
|
|
|
//初始设置
|
|
ADD_CMD(WD_CSSZ, WD_CSSZCmdFnc);
|
|
|
|
//绘制管线
|
|
ADD_CMD(WD_HZGX, WD_HZGXCmdFnc);
|
|
|
|
//引出管线
|
|
ADD_CMD(WD_YCGX, WD_YCGXCmdFnc);
|
|
|
|
//管径变更
|
|
ADD_CMD(WD_GJBG, WD_GJBGCmdFnc);
|
|
|
|
//管线套管
|
|
ADD_CMD(WD_GXTG, WD_GXTGCmdFnc);
|
|
|
|
//端加弯头
|
|
ADD_CMD(WD_DJWT, WD_DJWTCmdFnc);
|
|
|
|
//弯头连管
|
|
ADD_CMD(WD_WTLG, WD_WTLGCmdFnc);
|
|
|
|
//管线连接
|
|
ADD_CMD(WD_GXLJ, WD_GXLJCmdFnc);
|
|
|
|
//管线变径
|
|
ADD_CMD(WD_GXBJ, WD_GXBJCmdFnc);
|
|
|
|
//三通连接
|
|
ADD_CMD(WD_STLJ, WD_STLJCmdFnc);
|
|
|
|
//添加三通
|
|
ADD_CMD(WD_TJST, WD_TJSTCmdFnc);
|
|
|
|
//添加四通
|
|
ADD_CMD(WD_TJST, WD_TJSTCmdFnc);
|
|
|
|
//添加堵头
|
|
ADD_CMD(WD_TJDT, WD_TJDTCmdFnc);
|
|
|
|
//添加法兰
|
|
ADD_CMD(WD_CRFL, WD_CRFLCmdFnc);
|
|
|
|
//插对法兰
|
|
ADD_CMD(WD_CDFL, WD_CDFLCmdFnc);
|
|
|
|
//遮挡断开
|
|
ADD_CMD(WD_ZDDK, WD_ZDDKCmdFnc);
|
|
|
|
//去除断开
|
|
ADD_CMD(WD_QCDK, WD_QCDKCmdFnc);
|
|
|
|
//管端断管
|
|
ADD_CMD(WD_GDDG, WD_GDDGCmdFnc);
|
|
|
|
//管线虚段
|
|
ADD_CMD(WD_GXXD, WD_GXXDCmdFnc);
|
|
|
|
//去除虚段
|
|
ADD_CMD(WD_QCXD, WD_QCXDCmdFnc);
|
|
|
|
//合并管线
|
|
ADD_CMD(WD_HBGX, WD_HBGXCmdFnc);
|
|
|
|
//设备
|
|
//放置水箱
|
|
ADD_CMD(WD_FZSX, WD_FZSXCmdFnc);
|
|
|
|
//放置水泵
|
|
ADD_CMD(WD_FZSB, WD_FZSBCmdFnc);
|
|
|
|
//放置洁具
|
|
ADD_CMD(WD_FZJJ, WD_FZJJCmdFnc);
|
|
|
|
//消火栓箱
|
|
ADD_CMD(WD_XHSX, WD_XHSXCmdFnc);
|
|
|
|
//布置喷头
|
|
ADD_CMD(WD_PZPT, WD_PZPTCmdFnc);
|
|
|
|
//布雨水斗
|
|
ADD_CMD(WD_BYSD, WD_BYSDCmdFnc);
|
|
|
|
//置灭火器
|
|
ADD_CMD(WD_ZMHQ, WD_ZMHQCmdFnc);
|
|
|
|
//排水附件
|
|
ADD_CMD(WD_PSFJ, WD_PSFJCmdFnc);
|
|
|
|
//给水附件
|
|
ADD_CMD(WD_GSFJ, WD_GSFJCmdFnc);
|
|
|
|
//消防附件
|
|
ADD_CMD(WD_XFFJ, WD_XFFJCmdFnc);
|
|
|
|
//设备连管
|
|
ADD_CMD(WD_SBLG, WD_SBLGCmdFnc);
|
|
|
|
//设备占位
|
|
ADD_CMD(WD_SBZW, WD_SBZWCmdFnc);
|
|
|
|
//设备设计
|
|
ADD_CMD(WD_SBSJ, WD_SBSJCmdFnc);
|
|
|
|
//设备族库
|
|
ADD_CMD(WD_SBZK, WD_SBZKCmdFnc);
|
|
|
|
//室外管线
|
|
ADD_CMD(WD_SWGX, WD_SWGXCmdFnc);
|
|
|
|
//置检查井
|
|
ADD_CMD(WD_ZJCJ, WD_ZJCJCmdFnc);
|
|
|
|
//管线接井
|
|
ADD_CMD(WD_GXJJ, WD_GXJJCmdFnc);
|
|
|
|
//置消火栓
|
|
ADD_CMD(WD_ZXHS, WD_ZXHSCmdFnc);
|
|
|
|
//栓连管线
|
|
ADD_CMD(WD_SLGX, WD_SLGXCmdFnc);
|
|
|
|
//双击井 DBL_AEC_ASMBLWELL
|
|
ADD_CMD(DBL_AEC_ASMBLWELL, DBL_AEC_ASMBLWELL);
|
|
|
|
void WD_SKJS();
|
|
// 消火栓栓口计算
|
|
ADD_CMD(WD_SKJS, WD_SKJS);
|
|
|
|
// 喷淋设置
|
|
void WD_PLSZ();
|
|
ADD_CMD(WD_PLSZ, WD_PLSZ);
|
|
|
|
// 布置喷头
|
|
|
|
void WD_BZPT_RY();
|
|
void WD_BZPT_JX();
|
|
void WD_BZPT_ZX();
|
|
void WD_BZPT_HX();
|
|
void WD_BZPT_JD();
|
|
|
|
ADD_CMD(WD_RYPT, WD_BZPT_RY);
|
|
ADD_CMD(WD_JXPT, WD_BZPT_JX);
|
|
ADD_CMD(WD_ZXPT, WD_BZPT_ZX);
|
|
ADD_CMD(WD_HXPT, WD_BZPT_HX);
|
|
ADD_CMD(WD_JDPT, WD_BZPT_JD);
|
|
|
|
}
|
|
|
|
void UnloadApplication()
|
|
{
|
|
acedRegCmds->removeGroup(_T("PLMB_Cmd"));
|
|
}
|