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

523 lines
24 KiB
C++

#include "stdafx.h"
#include <PipeTools.h>
#include <DbWell.h>
#include <DbDoubleLinePipe.h>
#include <DbVerticalSection.h>
#include <DbVerticalSectionFeed.h>
#include <DbPipeValve.h>
#include <DbFlangeFitting.h>
#include <TDbPipeMultDim.h>
#include <DbVPipeDim.h>
#include <DbFireExtinguisher.h>
#include "HidePipeDlg.h"
#include "TgTwtSettingDlg.h"
#include "rxregsvc.h"
extern TARCH_IMPEXP int g_bDownloadT3Split;
HINSTANCE _hdllInstance = NULL ;
AC_IMPLEMENT_EXTENSION_MODULE(arxmfcDLL);
extern void InitAol(const TCHAR *szAppName);
extern "C"
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
_hdllInstance = hInstance;
arxmfcDLL.AttachInstance(hInstance);
// Insert this DLL into the resource chain
// new CDynLinkLibrary(arxmfcDLL);
//Init for AOL
InitAol(TCHXD);
InitGeLib();
//InitAcUiDLL();
}
else if (dwReason == DLL_PROCESS_DETACH)
{
arxmfcDLL.DetachInstance();
}
return TRUE;
}
void AddInitSetDlg(CAdUiTabExtensionManager* pXtabManager);
// 以下是命令函数
//管线绘制
extern void CmdPipe(); //绘制管线
extern void EquipLineToPipe(); //设备连管
extern void JoinPipe2Sanitary(); //管连洁具
extern void DrawMutiPipe(); //绘制多管
extern int LispPipe(); //LISP绘制管线
extern int ISetPipeMatDnType();
extern void CmdPipeByLine(); //沿线绘管
extern void DrawDoublePipe(); //绘双线管
extern void DoubleLineValave(); //双线阀门
//管线编辑
extern void EditPipeCmd(); //修改管线
extern void SetPipeThickOrThin(); //管线粗细
extern void ExternSysPipe(); //管线延长
extern void FilletPipe(); //管线倒角
extern void ErasePipeCmd(); //删除管线
extern void PipeWireBreak(); //管线打断
extern void Join2Pipe(); //管线连接
extern void SetPipeUp(); //管线置上
extern void SetPipeDown(); //管线置下
extern void ChangeDnDim(); //更改管径
//extern void SetPipeElevation(); //单管标高
extern void ChangePipeMatCmd(); //变更管材
extern void CalcEleByGradient(); //坡度定高
extern void SelVPipeCmd(); //选择管线
extern void CalcGradientEle(); //坡高计算
//extern void EditOutdoorPipe(); //查修管线
extern void PipeWireUpDown(); //管线升降
//立管
extern void DrawStandPipeCmd(); //立管布置
extern void DrawStandPipeBy2Pipe(); //上下扣弯
extern void SetVerPipeRadius(); //立管半径
//extern void PlusPipeSerial(); //编号增一
//extern void MinusPipeSerial(); //编号减一
//extern void VPipeSerialSort(); //立管排序
//设备
extern void CmdValve(); //阀门阀件
extern void InsFeedAccessory(); //给水附件
extern void InsDrainAccessory(); //排水附件
extern void CmdPipeAttachment(); //管道附件
extern void EditEquipCmd(); //修改附件
//extern void ShowPipeElevation(); //显示标高
extern void InsBreakPipeSign(); //断管符号
extern void MoveEquipment(); //设备移动
extern void InsSysAttchment(); //系统附件
extern void ScaleEquipment(); //设备缩放
extern void InsCornerValave(); //角阀
extern void Ins34CornerValave(); //三四通阀
extern void BuildValveCmd(); //造 阀 门
extern void BuildAttchCmd(); //造 附 件
extern void ChangeBlkInsPt(); //改接线点
extern void ReversalEquip(); //附件翻转
extern void SetBlockWidth(); //图块加粗
extern void InsTwtMeter(); //常用仪表
//消防
extern void InsPlanHydrant(); //布消火栓
extern void SprinklerByLine(); //直线喷头
extern void SprinklerByRect(); //矩形喷头
extern void SprinklerByFree(); //任意喷头
extern void SprinklerByInter(); //交点喷头
extern void SprinklerBySector(); //扇形喷头
extern void ModifySprinkler(); //修改喷头
extern void SprinklerCalc(); //喷淋计算
extern void ReplaceHydrant(); //消防替换
extern void SprinklerOrientation(); //喷头定位
extern void SprinklerIsometry(); //等距喷头
extern void SprinklerConv(); //喷头转化
extern void ReversalHydrant(); //翻转消火栓
extern void ShowProtectRadius(); //保护半径
extern void HydrantCalc(); //消防计算
extern void LinkHydrant(); //连消火栓
extern void FindLongPath(); //最远路径
extern void SprinklerByArc(); //弧线喷头
extern void EditHydrantCmd(); //改消火栓
extern void LayFireExtinguisher(); //布置灭火器
extern void LinkHydrantNew(); //连消火栓
//系统
extern void BuildSysPipe(); //系统生成
extern void SprinklerSys(); //喷淋系统
extern void HydrantSys(); //消防系统
extern void PrincipleSys(); //绘展开图
extern void DrawAerate(); //通 气 帽
extern void InsSysHydrant(); //消 火 栓
extern void ScalePipeSys(); //系统缩放
extern void SelectPipeSys(); //系统选择
extern void InsCheckCmd(); //检 查 口
extern void Plan2SysWaterTank(); //水箱系统
extern void ModifyFloorLine(); //改楼层线
//管线标注
extern void StandPipeDimCmd(); //立管标注
extern void TextOnPipe(); //管线文字
extern void DimSprinklerLength(); //喷头尺寸
extern void FindAndInsteadVPipeDim();//查替立编
//其它
extern void AmountAllMaterial(); //材料统计
extern void FiltreErase(); //过滤删除
extern void InsTwtBlock(); //常用图块
extern void ConverseOldDwg(); //旧图转化
extern void InsHole(); //基础洞
extern void InsFloorHole(); //楼板洞
extern void MoveFlooorHole(); //移动楼板洞
extern void DrainChamfer(); //排水倒角
extern void InsertBushing(); //套管插入
extern void HidePipeByEquipment();
//洁具
extern void InsSanitary(); //任意洁具
extern void DefineSanitary(); //定义洁具
extern void SanitaryInLib(); //洁具入库
extern void ReplaceSanitary(); //洁具替换
extern void MirrorSantitary(); //镜像洁具转换
extern void NewDefineSanitary(); //新定义洁具
extern void AutoPipeLinkSanitary(); //新管连洁具
//计算
extern void ModifyNg(); //修改当量
extern void PrincipleDirt(); //污水原理
extern void CalcDirtPipeDn(); //污水计算
extern void ResidenceFeedCalc(); //住宅给水计算
extern void PrincipleFeed(); //住宅给水原理
extern void PrinciplePubFeed(); //公建给水原理
extern void PrincipleIndustryFeed(); //工业给水原理
//帮助
extern void HelpTwtLaw(); //规范查询
extern void AboutTwt(); //版本信息
extern void HelpFlash(); //在线演示
extern void HelpTwt(); //在线帮助
//图层管理
extern void TwtLayerManCmd(); //图层管理
extern void DestroyTwtLayerManBar();
extern void ModifySelLayer();
extern void SetAllPipeLayOpenCmd();
extern void SetViewPortPipeSysCmd(); // 视口系统
//菜单开关
extern int GetBoldPipeState(); //粗细读取
extern int SetBoldPipeState(); //粗细设置
extern void MovePipes();
extern void FireExtinguisherEditCmd();
extern int ISetRoomV();//zxl 2013.06.03 add
//void InitGroupIdConfig(BOOL bTrue);
extern void LineTypeLibCmd();
extern void LineTypeMan();
extern void TgDwgLibEx();
extern void SetSnapAngByLineCmd();
extern void SetPipeMatSpec(); //管材规格
extern void OutDrainCalc(); //室外水力
void tzsz();
// 以下是编辑函数
int EditPipe(AcDbObjectId id);
int EditEquipment(AcDbObjectId id);
int EditDoublePipe(AcDbObjectId id);
int EditValve(AcDbObjectId id);
int EditDoublePipeNode(AcDbObjectId id);
int EditFireExtinguisher(AcDbObjectId id);
static AecObjectEditMethod g_pOldEditPipe=NULL;
static AecObjectEditMethod g_pOldEditEquip=NULL;
static AecObjectEditMethod g_pOldEditDoublePipe=NULL;
static AecObjectEditMethod g_pOldEditVerticalSection=NULL;
static AecObjectEditMethod g_pOldEditVerticalSectionFeed=NULL;
static AecObjectEditMethod g_pOldEditValve=NULL;
static AecObjectEditMethod g_pOldEditDoublePipeNode=NULL;
static AecObjectEditMethod g_pOldEditFireExtinguisher = NULL;
static ArxCommandTable g_acedCmdTable[] = {
{_T("ztgx"), CmdPipe,ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET}, // hzgx 绘制管线-> 总图管线 2003.9.18
{_T("lgbz"), DrawStandPipeCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 立管布置 2003.9.16
{_T("fmfj"), CmdValve, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 阀门阀件 2003.9.19
//{_T("xtsc"), BuildSysPipe, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 系统生成 2003.9.26
{_T("gxdd"), PipeWireBreak, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管线打断 2003.9.27
//{_T("gsfj"), InsFeedAccessory, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 给水附件 2003.10.13
//{_T("psfj"), InsDrainAccessory, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 排水附件 2003.10.17
//{_T("bxhs"), InsPlanHydrant, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 布消火栓 2003.10.20
//{_T("zxpt"), SprinklerByLine, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 直线喷头 2003.10.21
//{_T("jxpt"), SprinklerByRect, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 矩形喷头 2003.10.22
//{_T("rypt"), SprinklerByFree, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 任意喷头 2003.10.24
//{_T("xgpt"), ModifySprinkler, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 修改喷头 2003.10.28
{_T("sxkw"), DrawStandPipeBy2Pipe, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 上下扣弯 2003.10.28
{_T("xggx"), EditPipeCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 修改管线 2003.10.29
{_T("gdfj"), CmdPipeAttachment, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管道附件 2003.10.30
//{_T("bzlg"), StandPipeDimCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 立管标注 2003.10.30
//{_T("cltj"), AmountAllMaterial, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 材料统计 2003.10.31
{_T("gxcx"), SetPipeThickOrThin, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管线粗细 2003.11.4
//{_T("ryjj"), InsSanitary, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 任意洁具 2003.11.6
{_T("gxlj"), Join2Pipe, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管线连接 2003.11.6
//{_T("psxt"), SprinklerSys, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 喷淋系统 2003.11.7
{_T("xtfj"), InsSysAttchment, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 系统附件 2003.11.11
//{_T("xfxt"), HydrantSys, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 消防系统 2003.11.11
//{_T("xgfj"), EditEquipCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 修改附件 2003.11.12
//{_T("hzkt"), PrincipleSys, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 绘展开图 2003.11.13
//{_T("scgx"), ErasePipeCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 删除管线 2003.11.18
{_T("gxwz"), TextOnPipe, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管线文字 2003.11.19
//{_T("bbxx"), AboutTwt, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 版本信息 2003.12.2
//{_T("ptcc"), DimSprinklerLength, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 喷头尺寸 2003.12.5
//{_T("sblg"), EquipLineToPipe, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 设备连管 2003.12.8
//{_T("pljs"), SprinklerCalc, ACRX_CMD_MODAL }, // 喷淋计算 2003.12.8
//{_T("dgfh"), InsBreakPipeSign, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 断管符号 2003.12.8
//{_T("sbyd"), MoveEquipment, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 设备移动 2003.12.8
{_T("gxzs"), SetPipeUp, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管线置上 2003.12.12
{_T("gxzx"), SetPipeDown, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管线置下 2003.12.12
//{_T("gljj"), JoinPipe2Sanitary, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管连洁具 2003.12.19
//{_T("tqm"), DrawAerate, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 通气帽 2003.12.22
//{_T("gggj"), ChangeDnDim, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 更改管径 2004.1.5
{_T("hzdg"), DrawMutiPipe, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 绘制多管 2004.1.6
//{_T("gfcx"), HelpTwtLaw, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 规范查询 2004.2.2
//{_T("tckz"), TwtLayerManCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 图层控制 2004.2.16
//{_T("ModifySelLayer"),ModifySelLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET },// 改变图层 2004.2.17
{_T("gxdj"), FilletPipe, ACRX_CMD_MODAL}, // 管线倒角 2004.2.24
//{_T("xhs"), InsSysHydrant, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 系统消火栓 2004.2.25
//{_T("xtsf"), ScalePipeSys, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 系统缩放 2004.2.25
//{_T("sbsf"), ScaleEquipment, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 设备缩放 2004.3.3
//{_T("ptdw"), SprinklerOrientation, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 喷头定位 2004.3.18
//{_T("djpt"), SprinklerIsometry, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 等距喷头 2004.3.22 上华给排水7 内部测试版 发行
{_T("gxyc"), ExternSysPipe, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管线延长 2004.3.24
{_T("sstf"), Ins34CornerValave, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 三四通阀 2004.3.25
{_T("jf"), InsCornerValave, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 角阀 2004.3.26
//{_T("xtxz"), SelectPipeSys, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW }, // 系统选择 2004.4.5
//{_T("glsc"), FiltreErase, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 过滤删除 2004.4.12
//{_T("cytk"), InsTwtBlock, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 常用图块 2004.5.17
//{_T("zxys"), HelpFlash, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 在线演示 2004.5.19
{_T("gxld"), MovePipes, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 管线联动 2013.08.22
{_T("hsxg"), DrawDoublePipe, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 绘双线管 2004.6.7
{_T("zfm"), BuildValveCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 造阀门 2004.6.11
//{_T("sxfm"), DoubleLineValave, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 双线阀门 2004.6.14
{_T("zfj"), BuildAttchCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 造附件 2004.6.18
//{_T("ptzh"), SprinklerConv, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 喷头转化 2004.7.1
//{_T("zxbz"), HelpTwt, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 在线帮助 2004.7.8
//{_T("gsyl"), PrincipleFeed, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 给水原理 2004.7.22
//{_T("fjfz"), ReversalEquip, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 附件翻转 2004.7.27
//{_T("lgbj"), SetVerPipeRadius, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 立管半径 2004.8.25
//{_T("xgdl"), ModifyNg, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 修改当量 2004.9.6
//{_T("tkjc"), SetBlockWidth, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 图块加粗 2004.9.7
//{_T("zzgs2"), ResidenceFeedCalc, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 住宅给水 2004.9.7
//{_T("jjrk"), SanitaryInLib, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 洁具入库 2004.9.14
//{_T("jjth"), ReplaceSanitary, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 洁具替换 2004.9.15
//{_T("bhbj"), ShowProtectRadius, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 保护半径 2005.1.19
//{_T("xfjs"), HydrantCalc, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 消防计算 2005.1.31
//{_T("jxjj"), MirrorSantitary, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 镜像洁具转换2005.3.14
// {_T("SetAllPipeLayOpen"), SetAllPipeLayOpenCmd, ACRX_CMD_TRANSPARENT },
{_T("cyyb"), InsTwtMeter, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 常用仪表 2005.5.25
//{_T("jtzh"), ConverseOldDwg, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 旧图转化 2005.7.25
//{_T("lxhs"), LinkHydrant, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 连消火栓 2005.11.1
//{_T("jxhs"), LinkHydrant, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 接消火栓 2005.11.1
// {_T("jck"), InsCheckCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 检查口 2006.1.20
// {_T("wsyl"), PrincipleDirt, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 污水原理 2006.2.14
// {_T("wsjs"), CalcDirtPipeDn, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 污水计算 2006.2.14
// {_T("jdpt"), SprinklerByInter, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 交点喷头 2006.6.16
// {_T("sxpt"), SprinklerBySector, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 扇形喷头 2006.6.16
// {_T("zylj"), FindLongPath, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW }, //最远路径 2006.6.23
// {_T("sxxt"), Plan2SysWaterTank, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 水箱系统 2006.10.26
// {_T("gjgs"), PrinciplePubFeed, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 公建给水 2006.11.30
// {_T("hxpt"), SprinklerByArc, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 弧线喷头 2007.3.21 移入twt_anotate cet 2012.2.29
//{_T("xzgx"), SelVPipeCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW }, //选择管线 2007.11.23
//{_T("gxhs"), EditHydrantCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 改消火栓 2007.11.23
{_T("yxhg"), CmdPipeByLine, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 沿线绘管 2008.1.28
{_T("bggc"), ChangePipeMatCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW }, //变更管材 2008.6.23
//{_T("pddg"), CalcEleByGradient, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 坡度定高 2008.9.2
//{_T("glcx"), ModifyFloorLine, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 改楼层线 2008.12.16
//{_T("skxt"), SetViewPortPipeSysCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //视口系统 2009.4.24
//{_T("gygs"), PrincipleIndustryFeed, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //工业给水 2009.9.25
//{_T("jcd"), InsHole, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //基础洞 2009.10.09
//{_T("lbd"), InsFloorHole, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //楼板洞 2009.10.23
//{_T("ydlbd"), MoveFlooorHole, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //移动楼板洞 2009.10.28
//{_T("psdj"), DrainChamfer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //排水倒角 2010.5.25
{_T("pgjs"), CalcGradientEle, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //坡高计算 2010.9.25 cet
{_T("tgcr"), InsertBushing, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //套管插入 2011.02.15 cet
//{_T("dyjj"), NewDefineSanitary, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //新定义洁具 2011.11.08 zxl
//{_T("kljj"), AutoPipeLinkSanitary, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET}, //新管连洁具 2012.3.30 add
//{_T("ctlb"), FindAndInsteadVPipeDim, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET}, //查替立编 2012.08.28 add
//{_T("bmhq"), LayFireExtinguisher, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET}, //布置灭火器 2013.1.25 add
//{_T("lxhs"), LinkHydrantNew, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET}, //连消火栓 2013.03.04 add
{_T("gxsj"), PipeWireUpDown, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET}, //管线升降 2013.11.21 add
//{_T("gmhq"), FireExtinguisherEditCmd, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET}, //修改灭火器 2014.02.12 add
{_T("gxzd"), HidePipeByEquipment, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET}, //管线遮挡 2014.04.01 add
{_T("xxk"), LineTypeLibCmd, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET}, // 线型库
{_T("xxgl"), LineTypeMan, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET}, // 线型库
{_T("tztj"), TgDwgLibEx, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //上华图集 2007.6.19
{_T("yxzj"), SetSnapAngByLineCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //上华图集 2007.6.19
{_T("gcgg"), SetPipeMatSpec, ACRX_CMD_MODAL}, // 管材规格 2004.2.9
{_T("swsl"), OutDrainCalc, ACRX_CMD_MODAL}, // 室外水力 2004.6.23
{_T("tzsz"), tzsz, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET}, // 设置
};
void OnLoadApp()
{
for (int i = 0; i < ELEMENTS(g_acedCmdTable); i++)
{
acedRegCmds->addCommand(_T("SHWF_CMD"), g_acedCmdTable[i].szCmdGlobal,
g_acedCmdTable[i].szCmdGlobal, g_acedCmdTable[i].nCmdFlag, g_acedCmdTable[i].pFun);
}
g_pOldEditPipe = TDbPipe::SetEditMethod(EditPipe);
g_pOldEditEquip = TDbEquipment::SetEditMethod(EditEquipment);
g_pOldEditDoublePipe = TDbDoubleLinePipe::SetEditMethod(EditDoublePipe);
// g_pOldEditVerticalSection=TDbVerticalSection::SetEditMethod(EditVerticalSection); 移入twt_outdoor cet 2012.3.13
// g_pOldEditVerticalSectionFeed=TDbVerticalSectionFeed::SetEditMethod(EditVerticalSectionFeed); 移入twt_outdoor cet 2012.3.13
g_pOldEditValve = TDbPipeValve::SetEditMethod(EditValve);
g_pOldEditDoublePipeNode = TDbFlangeFitting::SetEditMethod(EditDoublePipeNode);
g_pOldEditFireExtinguisher = TDbFireExtinguisher::SetEditMethod(EditFireExtinguisher);
// g_pOldEditMutiPipeDim=TDbPipeMultDim::SetEditMethod(EditMutiPipeDim);
// g_pOldEditVPipeDim = TDbVPipeDim::SetEditMethod(EditVPipeDim);
acedRegisterExtendedTab(_T("twt_kernal.ARX"), _T("OptionsDialog"));
//InitGroupIdConfig(TRUE);
}
void OnUnloadApp()
{
DestroyTwtLayerManBar();
acedRegCmds->removeGroup(_T("SHWF_CMD"));
TDbPipe::SetEditMethod(g_pOldEditPipe);
TDbEquipment::SetEditMethod(g_pOldEditEquip);
TDbDoubleLinePipe::SetEditMethod(g_pOldEditDoublePipe);
// TDbVerticalSection::SetEditMethod(g_pOldEditVerticalSection);
// TDbVerticalSectionFeed::SetEditMethod(g_pOldEditVerticalSectionFeed);
TDbPipeValve::SetEditMethod(g_pOldEditValve);
TDbFlangeFitting::SetEditMethod(g_pOldEditDoublePipeNode);
TDbFireExtinguisher::SetEditMethod(g_pOldEditFireExtinguisher);
//InitGroupIdConfig(FALSE);
// TDbPipeMultDim::SetEditMethod(g_pOldEditMutiPipeDim);
// TDbVPipeDim::SetEditMethod(g_pOldEditVPipeDim);
}
int OnDwgUnload()
{
//TValveReactor::Detach();
return RTNORM;
}
int OnDwgLoaded()
{
// xg_setvar(_T("CMDECHO"), 0);
if(g_nProductId != 14)
return RTNORM;
int iMode;
xg_getvar(_T("PDMODE"), &iMode);
if(iMode != 0)
xg_setvar(_T("PDMODE"), 0);
TDbPsConfig *pConfig = GetDwgPsGlobal(AcDb::kForRead);
if (pConfig){
g_bIsPipeThick = pConfig->IsLineWeight();
g_nBreakPipeWidth = pConfig->GetBreakWidth();
g_nPipeTextBreak = pConfig->GetPipeTextDis();
g_iElbowType = pConfig->GetElbowType();
pConfig->close();
}
return RTNORM;
}
//////////////////////////////////////////////////////////////
//
// Entry point
//
//////////////////////////////////////////////////////////////
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
switch (msg) {
case AcRx::kInitAppMsg:
acrxUnlockApplication(pkt);
acrxDynamicLinker->registerAppMDIAware(pkt);
OnLoadApp();
break;
case AcRx::kLoadDwgMsg:
OnDwgLoaded();
break;
case AcRx::kInvkSubrMsg:
break;
case AcRx::kSaveMsg:
break;
case AcRx::kUnloadDwgMsg: //Bug no message coming
OnDwgUnload();
break;
case AcRx::kInitDialogMsg:
//AddInitSetDlg((CAdUiTabExtensionManager*)pkt);
break;
case AcRx::kUnloadAppMsg:
OnUnloadApp();
break;
}
return AcRx::kRetOK;
}
void tzsz()
{
CTemporaryResourceOverride vTemp;
CTgTwtSettingDlg dlg;
dlg.DoModal();
}
void AddInitSetDlg(CAdUiTabExtensionManager* pXtabManager)
{
// if(g_nProductId != 14)
// return;
// ASSERT(g_pInitSetDlg==NULL);
// CTemporaryResourceOverride vTemp;
// g_pInitSetDlg = new CTgTwtSettingDlg;
// BOOL suc = pXtabManager->AddTab(_hdllInstance, IDD_TG_TWT_SETTING,
// _T("上华设置"), g_pInitSetDlg);
//if(!suc)
// Callme();
}