willcan 发表于 2005-8-21 13:16:00

谁能帮我看看这段代码是什么意思?

<P>这段代码对应了CAD里的什么操作?始终弄不明白,尤其是那些函数里的参数.求哪位看出个所以然的谈谈自己的想法,感激不尽!</P>
<P>void SetVars(int cmd,int bpmd,int fdia, int cmddia)<BR>{<BR>&nbsp;struct resbuf *cmdRes,*bpmdRes,*fdiaRes, *cmddias;</P>
<P>&nbsp;cmdRes&nbsp; = ads_newrb(RTSHORT);<BR>&nbsp;bpmdRes = ads_newrb(RTSHORT);<BR>&nbsp;fdiaRes = ads_newrb(RTSHORT);<BR>&nbsp;cmddias = ads_newrb(RTSHORT);</P>
<P>&nbsp;cmdRes -&gt;resval.rint = cmd;<BR>&nbsp;bpmdRes-&gt;resval.rint = bpmd;<BR>&nbsp;fdiaRes-&gt;resval.rint = fdia;<BR>&nbsp;cmddias-&gt;resval.rint = cmddia;</P>
<P>&nbsp;ads_setvar("cmdecho",cmdRes);<BR>&nbsp;ads_setvar("blipmode",bpmdRes);<BR>&nbsp;ads_setvar("filedia",fdiaRes);<BR>&nbsp;ads_setvar("cmddia",cmddias);</P>
<P>&nbsp;ads_relrb(cmdRes);<BR>&nbsp;ads_relrb(bpmdRes);<BR>&nbsp;ads_relrb(fdiaRes);<BR>&nbsp;ads_relrb(cmddias);<BR>}</P>
<P>void PostAcadCommand(CString theCmdLine)<BR>{<BR>&nbsp;&nbsp;&nbsp;CWnd * pACad = (CWnd::FromHandle(adsw_acadMainWnd()))-&gt;GetTopWindow( );</P>
<P>&nbsp;&nbsp;&nbsp;LPARAM lParam = 0x00190001;<BR>&nbsp;&nbsp;&nbsp;int len = theCmdLine.GetLength();<BR>&nbsp;&nbsp;&nbsp;for(int i=0; i&lt;len;i++)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;pACad-&gt;PostMessage( WM_CHAR, WPARAM(theCmdLine), lParam);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;return;<BR>}</P>
<P>void CFrameDlg::OnOK() <BR>{</P>
<P>&nbsp;&nbsp;&nbsp;csPath = "D:\\1.dwg";</P>
<P>&nbsp;&nbsp;&nbsp;SetVars(0,0,0,1);<BR>&nbsp;&nbsp;&nbsp;ads_command(RTSTR, "._tilemode", RTSTR,"0", RTNONE);<BR>&nbsp;&nbsp;&nbsp;ads_command(RTSTR,"._pspace",RTNONE);<BR>&nbsp;&nbsp;&nbsp;ads_command(RTSTR,"._insert",RTSTR,(LPCTSTR)csPath, RTSTR, "0,0,0", RTREAL,1.0,RTSTR,"",RTSTR,"",RTNONE);<BR>&nbsp;&nbsp;&nbsp;ads_command(RTSTR, "._zoom", RTSTR,"_extents", RTNONE);<BR>&nbsp;&nbsp;&nbsp;ads_printf("continue MVIEW to insert Model space viewports for output.\n");<BR>&nbsp;&nbsp;&nbsp;SetVars(1,0,1,1);<BR>&nbsp;&nbsp;&nbsp;PostAcadCommand("._mview ");</P>
<P>}</P>

风之助 发表于 2005-8-23 20:49:00

<P>以上一些函数都属于ads函数,在ObjectARX中不再用了,采用了新的函数名(新旧函数对照表见adsmigr.h)</P>
<P>#define&nbsp;ads_newrb&nbsp;acutNewRb<BR>#define&nbsp;ads_relrb&nbsp;acutRelRb</P>
<P>#define&nbsp;ads_setvar&nbsp;acedSetVar</P>
<P>#define&nbsp;ads_command&nbsp;acedCommand</P>
<P>#define&nbsp;ads_printf&nbsp;acutPrintf</P>
<P>这几个函数的具体用法参见doc中acutNewRb、acutRelRb、acedSetVar、acedCommand、acutPrintf、acutNewRb全局函数的用法。</P>
页: [1]
查看完整版本: 谁能帮我看看这段代码是什么意思?