【转载】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 ") );

}

posted @ 2013-04-14 13:30  编号一百零二  阅读(699)  评论(0编辑  收藏  举报