骑士 发表于 2006-10-29 17:10:00

用acedCommand发送命令绘制PLine(或者MLINE),能否实现

用acedCommand发送命令绘制PLine(或者MLINE),能否实现
我这样写的

ads_point point;
if(RTNORM != acedGetPoint(NULL, "\n起点:", point))
{
if(pDockPane)
{
   pDockPane->SetTreeCheckBox(FALSE);
}
return RTNORM;
}
acutPrintf("\n指定下一点:");
int nRet = acedCommand(RTSTR, "._MLine",RTSTR, "J", RTSTR, "Z",RTSTR, "S", RTSHORT, nBuffer, RT3DPOINT, point, RTSTR,"\\",0);
可是MLINE命令在绘制一点之后,就继续执行下面代码了。
有没有什么方法能让MLINE绘制完成之后再执行接下来的代码
不知道有没有这样的方法。

骑士 发表于 2006-10-29 17:19:00

<P>就是说,不知道用户会输入几点点,等待用户输入,根据用户输入点画出MLINE,直到用户结束绘制,(回车或右键),或着取消绘制。</P>
<P>如果</P>
<P>acedCommand(RTSTR, "._MLine",RTSTR, "J", RTSTR, "Z",RTSTR, "S", RTSHORT, nBuffer, RT3DPOINT, point, RTSTR,"<A href="file://%22,0/" target="_blank" ><FONT color=#000000>\\",0</FONT></A>);</P>
<P>等待用户输入一次</P>
<P>acedCommand(RTSTR, "._MLine",RTSTR, "J", RTSTR, "Z",RTSTR, "S", RTSHORT, nBuffer, RT3DPOINT, point, RTSTR,"<A href="file://%22,0/" target="_blank" ><FONT color=#000000>\\",RTSTR,"</A><A href="file://%22,0/" target="_blank" ><FONT color=#000000>\\",</FONT></A><A href="file://%22,0/" target="_blank" >0</FONT></A>);</P>
<P>等待用户输入两次</P>
<P>……</P>
<P>可是我也不知道用户会输入几次</P>
<P>麻烦</P>
<P>不行的话就自己实现这样的效果了</P>
<P>注:我是在做一查询功能,用户输入绘制一带状区域,进行查询。所以,有此问题</P>

HuaiYu 发表于 2006-10-29 21:14:00

<P>用 command&nbsp; 的话这样还不如用 Lisp 来做的简单</P>
<P>要用 arx 来做的话应该是用AcGePoint3dArray 建立一个 Array 同时用acedGrDraw实时画出来吧</P>
页: [1]
查看完整版本: 用acedCommand发送命令绘制PLine(或者MLINE),能否实现