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

236 lines
7.3 KiB
C++

#include "StdAfx.h"
#include "StdArx.h"
#include "resource.h"
#include "CoreTools.h"
#include "KTParamService.h"
HINSTANCE _hdllInstance = NULL ;
#ifndef _ttof
#define _ttof(pszVal) _tcstod((pszVal), NULL)
#endif
void InitApplication();
void UnloadApplication();
AC_IMPLEMENT_EXTENSION_MODULE(EarthWormDLL);
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
_hdllInstance = hInstance;
EarthWormDLL.AttachInstance(hInstance);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
EarthWormDLL.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("SHPLANTST"), _T(#cmd), _T(#cmd), ACRX_CMD_TRANSPARENT | ACRX_CMD_USEPICKSET, func)
void InitApplication()
{
acrxBuildClassHierarchy();
// 注册参数化图形服务
CKTEntityDumb::rxInit();
KTParamService::rxInit();
KTParamServiceRegister();
// pid-pipe
ADD_CMD(PI_HZGX, PL_KTPIDMajor1);
ADD_CMD(PL_KTPIDMajor2, PL_KTPIDMajor2);
ADD_CMD(PI_HCGX, PL_KTPIDMinor1);
ADD_CMD(PL_KTPIDMinor2, PL_KTPIDMinor2);
ADD_CMD(PI_HYBX, PL_KTPIDINSTLINE);
ADD_CMD(PI_SXXG, PL_KTAttribEdit);
ADD_CMD(PI_GXXK, PL_KTPIPEWMO);
ADD_CMD(PI_GXLJ, PL_KTPIPECONNECT);
ADD_CMD(PI_GDSM, PI_OnPIDReport);
// pid-pipedim
ADD_CMD(PI_KTPDIMONLINE, PL_KTPDIMONLINE); //在线标注
ADD_CMD(PI_KTPDIMONLINET, PL_KTPDIMONLINET); //在线上标
ADD_CMD(PI_KTPDIMONLINEB, PL_KTPDIMONLINEB); //在线下标
ADD_CMD(PI_KTPDIMLEADER, PL_KTPDIMLEADER); //引出标注
ADD_CMD(PI_KTPDIMLEADERT, PL_KTPDIMLEADERT); //引出上标
ADD_CMD(PI_KTPDIMLEADERY, PL_KTPDIMLEADERY); //垂直标注一
ADD_CMD(PI_KTPDIMLEADERYT, PL_KTPDIMLEADERYT); //垂直标注二
ADD_CMD(PI_KTPDIMPLINE, PL_KTPDIMPLINE); //批量标注
ADD_CMD(PI_KTPDIMSIDEH, PL_KTPDIMSIDEH); //端头标注一
ADD_CMD(PI_KTPDIMSIDEV, PL_KTPDIMSIDEV); //端头标注二
ADD_CMD(PI_KTDIMPIPEEL, PL_KTDIMPIPEEL); //标高标注
ADD_CMD(PI_KTDIMVALVE, PL_KTDIMVALVE); //阀门标注一
ADD_CMD(PI_KTDIMVALVE1, PL_KTDIMVALVE1); //阀门标注二
ADD_CMD(PI_KTDIMGRA, PL_KTDIMGRA); //坡度标注
ADD_CMD(PI_KTCElev, PL_KTCElev); //连续标高
ADD_CMD(PI_KTPDIR, PL_KTPDIR); //直径符号
ADD_CMD(PI_KTPCROSS, PL_KTPCROSS); //交叉符号
ADD_CMD(PI_KTPBREAK, PL_KTPBREAK); //断开符号
ADD_CMD(PI_KTPTEMP, PL_KTPTEMP); //保温或伴热
ADD_CMD(PI_KTDimValveEL, PL_KTDimValveEL); //阀门标高
ADD_CMD(PI_KTPIDEquDim, PL_KTPIDEquDim); //设备标注
ADD_CMD(PI_KTPIDNozzleDim, PL_KTPIDNozzleDim); //管嘴标注
// pid-equ
ADD_CMD(PI_SFTHRQ , PL_KTExchangeDouble);
ADD_CMD(PI_FSEHRQ, PL_KTExchangeDoubleEK);
ADD_CMD(PI_TRHRQ, PL_KTProcessFlow);
ADD_CMD(PI_DFTHRQ, PL_KTSingleEnd);
ADD_CMD(PI_FSYHRQ, PL_KTSingleEK);
ADD_CMD(PI_TGSHRQ, PL_KTSuper);
ADD_CMD(PI_GBSHRQ, PL_KTExcPipe);
ADD_CMD(PI_YXGHRQ, PL_KTExcUPipe);
ADD_CMD(PI_PTLXBY, PL_KTCentrifuqal1);
ADD_CMD(PI_PTLXBE, PL_KTCentrifuqal2);
ADD_CMD(PI_PTQSBY, PL_KTDeep1);
ADD_CMD(PI_PTQSBE, PL_KTDeep2);
ADD_CMD(PI_PTSTB, PL_KTDual);
ADD_CMD(PI_CYBFHY, PL_KTHoriz1);
ADD_CMD(PI_CYBFHE, PL_KTHoriz2);
ADD_CMD(PI_PTBFH, PL_KTInline);
ADD_CMD(PI_PTXZB, PL_KTRotary);
ADD_CMD(PI_PTWXBY, PL_KTTurbine1);
ADD_CMD(PI_PTWXBE, PL_KTTurbine2);
ADD_CMD(PI_PTZKB, PL_KTVacuum);
ADD_CMD(PI_CYBFHS, PL_KTPumpVert1);
ADD_CMD(PI_CYBFHT, PL_KTPumpVert2);
ADD_CMD(PL_KTPIDNozzle, PL_KTPIDNozzle);
ADD_CMD(PI_SZSYTL, PL_KTPIDSTV1);
ADD_CMD(PI_PZSYTL, PL_KTPIDSTV2);
ADD_CMD(PI_GDCFYQ, PL_KTOnPIDR1);
ADD_CMD(PI_LGSFYQ, PL_KTOnPIDR2);
ADD_CMD(PI_LHCFYQ, PL_KTOnPIDR3);
ADD_CMD(PI_PTFYF, PL_KTOnPIDR4);
ADD_CMD(PL_KTPIDCompressor1, PL_KTPIDCompressor1);
ADD_CMD(PL_KTPIDCompressor2, PL_KTPIDCompressor2);
ADD_CMD(PI_CGYB, PL_KTDiscBubble);
ADD_CMD(PI_DCYB, PL_KTSharedBubble);
ADD_CMD(PI_JSYB, PL_KTComputerBubble);
ADD_CMD(PI_LGYB, PL_KTLogicBubble);
ADD_CMD(PI_ZNYB, PL_KTPilotBubble);
ADD_CMD(PI_LXJT, PL_KTPIDFDA);
ADD_CMD(PI_CXJT, PL_KTPIDSArrow);
ADD_CMD(PI_CZJT, PL_KTPIDMArrow);
ADD_CMD(PI_CDJT, PL_KTPIDLArrow);
ADD_CMD(PI_CJJT, PL_KTPIDOUTArrow);
ADD_CMD(PL_KTPIDUserdefine, PL_KTPIDUserdefine);
ADD_CMD(PI_CRYC, PL_KTPIDCHIMNEY);
ADD_CMD(PI_CRHJYC, PL_KTPIDTORCH);
ADD_CMD(PL_KTPIDREPORT, PL_KTPIDREPORT);
ADD_CMD(PL_KTPIDSPEC1, PL_KTPIDSPEC1);
ADD_CMD(PL_KTPIDSPEC2, PL_KTPIDSPEC2);
ADD_CMD(PL_KTPIDCRD, PL_KTPIDCRD);
ADD_CMD(PI_BWBR, PL_KTPIDINS);
ADD_CMD(PI_GHXG, PL_KTPIDLINENOMO);
ADD_CMD(PI_GYBB, PL_GYBBCmd);
// pid-value
ADD_CMD(PI_CJYB, PI_CJYB);
ADD_CMD(PI_CRZF, PL_KTPIDVGate);
ADD_CMD(PI_CJZF, PL_KTPIDVGlobe);
ADD_CMD(PI_CRQF, PL_KTPIDVBall);
ADD_CMD(PI_CZHF, PL_KTPIDVCheck1);
ADD_CMD(PL_KTPIDVCheck2, PL_KTPIDVCheck2);
ADD_CMD(PI_CRDF, PL_KTPIDVButt);
ADD_CMD(PI_TJFM, PL_KTPIDVInst);
ADD_CMD(PI_SSFM, PL_KTPIDVHydr);
ADD_CMD(PI_STFM, PL_KTPIDV3V);
ADD_CMD(PI_XTFM, PL_KTPIDV4V);
ADD_CMD(PI_CRJF, PL_KTPIDVAngle);
ADD_CMD(PI_CAQF, PL_KTPIDVRelif);
ADD_CMD(PI_GMFM, PL_KTPIDVDiaph);
ADD_CMD(PI_CZXF, PL_KTPIDVNeedle);
ADD_CMD(PI_XSFM, PL_KTPIDVPlug);
ADD_CMD(PI_JYFM, PL_KTPIDVDes);
ADD_CMD(PI_CCBF, PL_KTPIDVClose);
ADD_CMD(PL_KTPIDVGroup1, PL_KTPIDVGroup1);
ADD_CMD(PL_KTPIDVGroup2, PL_KTPIDVGroup2);
ADD_CMD(PL_KTPIDVGroup3, PL_KTPIDVGroup3);
ADD_CMD(PL_KTPIDVDim1, PL_KTPIDVDim1);
ADD_CMD(PL_KTPIDVDim2, PL_KTPIDVDim2);
ADD_CMD(PL_KTPIDHandV, PL_KTPIDHandV);
ADD_CMD(PL_KTPIDONLINE, PL_KTPIDONLINE);
ADD_CMD(PI_CRMB, PL_KTPIDMB);
ADD_CMD(PI_BMB1, PL_KTPID8MB1);
ADD_CMD(PI_BMB2, PL_KTPID8MB2);
ADD_CMD(PI_TXGL, PL_KTPIDTfilter);
ADD_CMD(PI_WZGL, PL_KTPIDWfilter);
ADD_CMD(PI_YXGL, PL_KTPIDYfilter);
ADD_CMD(PI_ZXGL, PL_KTPIDZfilter);
ADD_CMD(PI_BGSJ, PL_KTPIDSHIJING);
ADD_CMD(PI_CJBQ, PL_KTPIDJBQ);
ADD_CMD(PI_CHHQ, PL_KTPIDJTHHQ);
ADD_CMD(PI_CRAD, PL_KTPIDLD);
ADD_CMD(PI_CRLD, PL_KTPIDLouD);
ADD_CMD(PI_WYLD, PL_KTPIDWLouD);
ADD_CMD(PI_BYLQ, PL_KTPIDMBQYCool);
ADD_CMD(PI_CPSQ, PL_KTPIDPSQ);
ADD_CMD(PI_QYLQ, PL_KTPIDQYCool);
ADD_CMD(PI_CWQL, PL_KTPIDWEN);
ADD_CMD(PI_CXQZ, PL_KTPIDXQZ);
ADD_CMD(PI_CXSQ, PL_KTPIDXSQ);
ADD_CMD(PI_CXLB, PL_KTPIDKong);
ADD_CMD(PI_CZHQ, PL_KTPIDNFire);
ADD_CMD(PI_CRFT, PL_KTPIDCAP);
ADD_CMD(PI_CRDT, PL_KTPIDNODE);
ADD_CMD(PL_KTPIDVDEL, PL_KTPIDVDEL);
ADD_CMD(PI_MTO, PI_MTO);
ADD_CMD(PI_PTLSRQ, PL_KTVslVert);
ADD_CMD(PI_QZLSRQ, PL_KTVslVertSkirt);
ADD_CMD(PI_SJLSRQ, PL_KTVslVertCone);
ADD_CMD(PI_SJQZRQ, PL_KTVslVertSkirtCone);
ADD_CMD(PI_PDLSRQ, PL_KTVslVertFlat);
ADD_CMD(PI_PTWSRQ, PL_KTVslHorz);
ADD_CMD(PI_SJWSRQ, PL_KTVslHorzEcc);
ADD_CMD(PL_KTVslTanks, PL_KTVslTanks);
ADD_CMD(PL_KTVslComponents, PL_KTVslComponents);
//pid-parampart
ADD_CMD(PI_DYSBFH, PL_KTPARTDEFINE);
ADD_CMD(PI_CRSBFH, PL_KTPARTINSERT);
// 杂项符号
ADD_CMD(PI_CSWX, PI_CSWX); // 水位线
ADD_CMD(PI_CDPX, PI_CDPX); // 地平线
ADD_CMD(PI_CRBG, PI_CRBG); // 地标高
//标高更新
ADD_CMD(PI_BGGX,PI_BGGXCmdFnc);
//测试
ADD_CMD(PI_TEST, PI_TESTCmdFnc);
}
void UnloadApplication()
{
acedRegCmds->removeGroup(_T("SHCRACKTOOLS"));
// 删除参数化图形服务
KTParamServiceRemove();
deleteAcRxClass(CKTEntityDumb::desc());
deleteAcRxClass(KTParamService::desc());
}