[求助]利用acedCommand实现圆角功能!!
<p>想利用acedCommand来完成圆角的功能,可关于ads_name的传入有些不明白,RETURN CODE也搞不太懂,各位大虾快来指点阿!!!!</p><p>代码如下:</p><p>ads_name lineName1, lineName2; //需要做圆角的两条直线,已经得到了其ads_name了</p><p>......</p><p> acedCommand(RTSTR, "FILLET", RTSTR, "R", RTSTR, "10", RTENAME, lineName1, RTENAME, lineName2, RTNONE);</p><p>调试结果,一直到对半径的设置都是对的,可输入ads_name时,就没反应了。。。</p><p><br/></p> <p>这样写,参代码如下,</p><p>//2007-07-20<br/>ads_name name1,name2;<br/> ads_point p1, p2;<br/> ads_real rad;<br/> char strad;<br/> if (acedEntSel("\n选择要倒角的第一边:",name1,p1)!=RTNORM)return;<br/> if (acedEntSel("\n选择要倒角的第一边:",name2,p2)!=RTNORM)return;<br/> if (acedGetReal("\n请输入转角半径:",&rad)!=RTNORM)return;<br/> acdbRToS(rad,2,2,strad);<br/> acutPrintf("\n输出半径字符%s\n",strad);<br/> acedCommand(RTSTR,"FILLET",RTSTR,"R",RTSTR,strad,0);<br/> acedCommand(RTSTR,"FILLET",RTLB,RTENAME,name1,RTPOINT,p1,RTLE,RTLB,RTENAME,name2,RTPOINT,p2,RTLE,0);</p> <p>ads_point p1, p2;是用来干什么的阿?</p><p>为什么要定义他们呢?圆角时,不是只输入了要操作的两个实体对象就可以了么?那不是只要把实体的ads_name给出就可以了么?ads_point又是记录什么的?如何得到的。。。</p><p>另外,我是想在我连续画好两个直线之后,可以自动的作圆角,不需要用户在界面上操作。。。怎么办呢?</p> 把你的代码给我看一看,或者你看一下acedCommand处理命令时输入对象时的用法了解一下RTLB....RTLE的用法就明白了, <p>这位大虾~~~可以把你QQ给俺不?这上聊不方便。。。MY:277934491</p> <p>终于搞定了~~~我把acedCommand(RTSTR, "FILLET", RTSTR, "R", RTSTR, "10", RTLB,RTENAME, lineName1, RTPOINT,p1,RTLE, RTLB,RTENAME, lineName2, RTPOINT,p1,RTLE,RTNONE);分写成两句:</p><p>acedCommand(RTSTR,"FILLET",RTSTR,"R",RTSTR,"10",0);</p><p>acedCommand(RTSTR , "FILLET" , RTLB , RTENAME , lineName1 , RTPOINT , pt1 , RTLE , RTLB , RTENAME , lineName2 ,RTPOINT , pt2 , RTLE , 0);</p><p>结果,圆角就成功了!!</p><p>可为什么不能把对半径的设置和对象的选择放在一起,一次定义呢?<br/></p> 乱!!!!! 楼主能不能发个LISP看看 (SETVAR "FILLETRAD" 3);设置倒圆角半径(vl-cmdf ".fillet" (entsel)(entsel))
页:
[1]