Files
envi-code/SourceCode/Code2026/PipelineSpecCmd/PipelineSpecCmd.cpp
T
2026-09-28 15:28:50 +08:00

115 lines
2.4 KiB
C++

#include "StdAfx.h"
#include "StdArx.h"
#include "resource.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);
#define ADD_CMD(cmd, func) \
void func();\
AddCommand(_T("SHSPECPIPE"), _T(#cmd), _T(#cmd), ACRX_CMD_TRANSPARENT | ACRX_CMD_USEPICKSET, func)
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;
}
void InitApplication()
{
#ifdef ZWCAD
acrxLoadModule(ACRX_T("PipeHangerCmd.zrx"), 1);
#else
acrxLoadModule(ACRX_T("PipeHangerCmd.arx"), 1);
#endif
//等级管线
ADD_CMD(PL_DJGX,PL_DJGXCmd);
//曲率管线
//ADD_CMD(PL_QUGX, PL_QUGXCmd);
//加补强圈
//半管接头
//支管补强===
ADD_CMD(PL_ZGBQ,PL_JBQQCmd);
//八字盲板
ADD_CMD(PL_BZMB,PL_BZMBCmd);
//放置插板
ADD_CMD(PL_FZCB, PL_FZCBCmd);
//变径弯头
ADD_CMD(PL_BJWT, PL_BJWTCmd);
//管线双击 工业? 临时注释掉 后期分辨
ADD_CMD(DBL_AEC_EWPIPE_SPEC, DBL_AEC_EWPIPE_SPEC);
//TEST
ADD_CMD(PP_TEST, PP_TESTCmd);
}
void UnloadApplication()
{
acedRegCmds->removeGroup(_T("SHSPECPIPE"));
#ifdef ZWCAD
acrxDynamicLinker->unloadModule(_T("PipeHangerCmd.zrx"));
#else
acrxDynamicLinker->unloadModule(_T("PipeHangerCmd.arx"));
#endif
}
void AddCommand(const TCHAR* cmdGroup, const TCHAR* cmdInt, const TCHAR* cmdLoc,
const int cmdFlags, const AcRxFunctionPtr cmdProc, const int idLocal)
{
TCHAR cmdLocRes[65];
if (idLocal != -1)
{
::LoadString(_hdllInstance, idLocal, cmdLocRes, 64);
acedRegCmds->addCommand(cmdGroup, cmdInt, cmdLocRes, cmdFlags, cmdProc);
}
else
{
acedRegCmds->addCommand(cmdGroup, cmdInt, cmdLoc, cmdFlags, cmdProc);
}
}