ARX给CAD发送命令的五种方法

原文链接

ads_queueexpr( _T(“(command/”_POINT/” /”1,1,0/”)”) );该函数CAD未公开,使用时提前声明下就可以了。可以参考帮助文件中:Tips and Techniques 。

acDocManager->sendStringToExecute(curDoc(), _T(“_POINT 2,2,0 “));该函数在Arx帮助中有详细说明。

acedCommand(RTSTR, _T(“_POINT”), RTSTR,_T(“5,5,0”), RTNONE);

Windows API 方法
void SendCmdToAcad(ACHAR *cmd)
{
COPYDATASTRUCT cmdMsg;
cmdMsg.dwData = (DWORD)1;
cmdMsg.cbData = (DWORD)(_tcslen(cmd) + 1) * sizeof(ACHAR);
cmdMsg.lpData = cmd;
SendMessage(adsw_acadMainWnd(), WM_COPYDATA, NULL, (LPARAM)&cmdMsg);
}

Com 方法
void SendCommandTest(void)
{
IAcadApplicationPtr pApp = acedGetIDispatch(TRUE);
IAcadDocumentPtr pDoc;
pApp->get_ActiveDocument(&pDoc);
pDoc->SendCommand( _T(“_POINT 4,4,0 “) );
}

在AutoCAD ARX中注册新命令需要使用acedRegCmds函数,该函数用于注册命令并将其添加到AutoCAD命令列表中,以便用户可以通过命令行或菜单等方式访问新命令。 下面是使用acedRegCmds函数注册新命令的示例代码: ``` #include "acdbabb.h" #include "aced.h" #include "adslib.h" void myCommand() { // 在这里编写新命令的实现代码 } void initApp() { // 注册新命令 acedRegCmds(0, // 命令组号,0表示默认命令组 acdbHostApplicationServices()->findString("MYCOMMAND"), // 命令名 myCommand, // 命令实现函数 ACRX_CMD_MODAL, // 命令类型,ACRX_CMD_MODAL表示模态命令 NULL); // 命令帮助文件名,NULL表示没有帮助文件 } void unloadApp() { // 卸载新命令 acedRegCmds(0, // 命令组号,0表示默认命令组 acdbHostApplicationServices()->findString("MYCOMMAND"), // 命令名 NULL, // 命令实现函数,NULL表示卸载该命令 ACRX_CMD_MODAL, // 命令类型,ACRX_CMD_MODAL表示模态命令 NULL); // 命令帮助文件名,NULL表示没有帮助文件 } // 定义ARX程序的入口点函数 IMPLEMENT_ARX_ENTRYPOINT(MyArxApp) AcRx::AppRetCode MyArxApp(const AcRx::AppMsgCode msg, void* pkt) { switch(msg) { case AcRx::kInitAppMsg: // 进行ARX程序的初始化操作 initApp(); break; case AcRx::kUnloadAppMsg: // 进行ARX程序的卸载操作 unloadApp(); break; default: break; } return AcRx::kRetOK; } ``` 在上面的示例代码中,我们在initApp函数中使用acedRegCmds函数注册新命令,其中第一个参数为命令组号,这里我们使用默认命令组,第二个参数为命令名,这里我们使用字符串"MYCOMMAND"作为命令名,第三个参数为命令实现函数,这里我们使用myCommand函数作为命令实现函数,第四个参数为命令类型,这里我们使用ACRX_CMD_MODAL表示模态命令,最后一个参数为命令帮助文件名,这里我们不需要帮助文件,所以使用NULL表示没有帮助文件。 在unloadApp函数中,我们使用acedRegCmds函数卸载新命令,其中第三个参数为NULL表示卸载该命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值