#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()); }