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

133 lines
2.6 KiB
C++

#include "StdAfx.h"
#include "StdArx.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("ISODRAFT"), _T(#cmd), _T(#cmd), ACRX_CMD_TRANSPARENT | ACRX_CMD_USEPICKSET, func)
void InitApplication();
void UnloadApplication();
AC_IMPLEMENT_EXTENSION_MODULE(ISODraftDLL);
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
_hdllInstance = hInstance;
ISODraftDLL.AttachInstance(hInstance);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
ISODraftDLL.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()
{
//轴测绘制
ADD_CMD(IS_ZCHZ, PL_ZCHZCmd);
//轴测绘制
ADD_CMD(ISODRAW, PL_ZCHZCmd);
//添加焊点
ADD_CMD(IS_TJHD, PL_TJHDCmd);
//插入阀门
ADD_CMD(IS_CRFM, PL_CRFMCmd);
//系统阀门
ADD_CMD(IS_XTFM, PL_XTFMCmd);
//标注阀门
ADD_CMD(IS_BZFM, PL_BZFMCmd);
//标注标高
ADD_CMD(IS_BZBG, PL_BZBGCmd);
//标注尺寸
ADD_CMD(IS_BZZC, PL_BZZCCmd);
ADD_CMD(IS_ZCBZ, PL_ZCBZCmd);
//标注管径
ADD_CMD(IS_BZGJ, PL_BZGJCmd);
//垫片间隙
ADD_CMD(IS_DPJX, PL_DPJXCmd);
//插单法兰
ADD_CMD(IS_CDFL, PL_CDFLCmd);
//插双法兰
ADD_CMD(IS_CSFL, PL_CSFLCmd);
//插入变径
ADD_CMD(IS_CRBJ, PL_CRBJCmd);
//布支吊架
ADD_CMD(IS_BZDJ, PL_BZDJCmd);
//标注管件
ADD_CMD(IS_GZGJ, PL_GZGJCmd);
//序号标注
ADD_CMD(IS_XHBZ, PL_XHBZCmd);
//流向箭头
ADD_CMD(IS_LXJT, PL_LXJTCmd);
//智能联动
//反应器
//测试
ADD_CMD(GTST, PL_GTSTCmd);
}
void UnloadApplication()
{
acedRegCmds->removeGroup(_T("ISODRAFT"));
}
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);
}
}