133 lines
2.5 KiB
C++
133 lines
2.5 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);
|
|
}
|
|
}
|