给cad发送命令的五种方法

1、acedCommand()

acedCommand(RTSTR,_T("UNDO"),RTSTR,_T("M"),RTNONE);//标记;

acedCommand(RTSTR,_T("UNDO"),RTSTR,_T("B"),RTNONE);//后退;

2、sendStringToExecute()

CString strCommand;
strCommand.Format(_T("ZOOM\nw\n%lf,%lf,%lf\n%lf,%lf,%lf\n"),MinPt.x,MinPt.y,MinPt.z,MaxPt.x,MaxPt.y,MaxPt.z);
acDocManager->sendStringToExecute(acDocManager->curDocument(),strCommand,true,false,false);//使用zoom命令定位区域
//最后一个参数用来设置是否在命令行上回显

3、ads_queueexpr()

CString strCmdLoad;
//加载有组名的菜单文件
strCmdLoad.Format(_T("(if (null (menugroup \"%s\"))
(command \"menuload\" \"%s\"))"), strMenuGroup, strFilePath);
ads_queueexpr((LPTSTR)(LPCTSTR)strCmdLoad);//此函数,相当于程序结束后,给CAD发送一个加载菜单的命令

4、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);
}

5、Com 方法

void SendCommandTest(void)
{      
    IAcadApplicationPtr pApp = acedGetIDispatch(TRUE);
    IAcadDocumentPtr pDoc;  
    pApp->get_ActiveDocument(&pDoc);   
    pDoc->SendCommand( _T("_POINT 4,4,0 ") );
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值