xinsuiyizhi 发表于 2007-8-27 21:06:00

如何修改已经存在的PLINE 中的圆弧的半径

<p>各位达人好:</p><p></p><p>小弟我初学ARX,遇到一个关于修改已经存在的PLINE 中的圆弧的半径的问题。</p><p></p><p>现假设已经得到它的ads_name是ss,</p><p>es = acdbGetObjectId(PolyId, ss);<br/>&nbsp;es = acdbOpenAcDbEntity(pEnt, PolyId, AcDb::kForWrite);<br/>&nbsp;AcDbPolyline *pPoly = AcDbPolyline::cast(pEnt);</p><p>&nbsp;int numVer = pPoly-&gt;numVerts();</p><p>&nbsp;pEnt-&gt;close();<br/>&nbsp;<br/>&nbsp;AcGeCircArc2d arc;<br/>&nbsp;double budge;</p><p>double radius = 200;<br/>&nbsp;<br/>&nbsp;for (int i=0; i&lt;numVer; i++)<br/>&nbsp;{<br/>&nbsp;&nbsp;es = pPoly-&gt;getBulgeAt(i, budge);<br/>&nbsp;&nbsp;if (budge)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;pPoly-&gt;getArcSegAt(i, arc);<br/>&nbsp;&nbsp;&nbsp;arc.setRadius(radius);<br/>&nbsp;&nbsp;&nbsp;pPoly-&gt;reset(Adesk::kTrue, i);<br/>&nbsp;&nbsp;}<br/>&nbsp;}</p><p>调试没有错误,但问题就是执行的时候,并没有达到修改圆弧半径的目的,不知道为什么,望各位大哥大姐尽快的帮帮忙,这真的关系到小弟我一生的幸福!我这几天都块急疯了!</p>

fpiw 发表于 2007-8-28 08:54:00

用AcDbPolyline::setBulgeAt(unsigned int index,double bulge)

xinsuiyizhi 发表于 2007-8-28 12:47:00

<p>在pline中凸度被定义为顶点与下一点所形成的弧的角度的1/4的正切值,所以这样看起来好像通过修改凸度是不能改变圆弧的半径的!</p>
页: [1]
查看完整版本: 如何修改已经存在的PLINE 中的圆弧的半径