本文迁移自本人网易博客,写于2015年11月16日。
1、ads_queueexpr( _T("(command\"_POINT\" \"1,1,0\")") );
该函数CAD未公开,使用时提前声明下就可以了。可以参考帮助文件中:Tips and Techniques 。
2、acDocManager->sendStringToExecute(curDoc(), _T("_POINT 2,2,0 "));
该函数在Arx帮助中有详细说明。
3、acedCommand(RTSTR, _T("_POINT"), RTSTR,_T("5,5,0"), RTNONE);
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 ") );
}