guliande 发表于 2010-6-1 10:46:00

[求助]如何把封闭图形的各个线段衔接起来后,用AcDbPolyLine表达出来

<p>&nbsp; </p>
<p>大家好,我是带着一个困扰很久的问题加入了明经,刚才看了一些帖子,备受鼓舞和启发。</p>
<p>我现在在搞数控火焰切割机的CAD二次开发,就是把绘制的图形进行刀补处理(轮廓向外扩或向内缩),然后转换为16进制的加工文件。</p>
<p>我参考了一下别人的程序,有的是像做“面域”一样把封闭图形的各个线段连接起来,然后进行刀补。然而,查看其DXF ,又不像面域处理的DXF。</p>
<p>比如</p>
<p>我画了一个100*100的矩形(逐段画的),别人的处理结果是</p>
<p>AcDbPolyline</p>
<p>&nbsp;90</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4</p>
<p>&nbsp;70</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1</p>
<p>&nbsp;43</p>
<p>0.0</p>
<p>&nbsp;10</p>
<p>500.0</p>
<p>&nbsp;20</p>
<p>500.0</p>
<p>&nbsp;10</p>
<p>600.0</p>
<p>&nbsp;20</p>
<p>500.0</p>
<p>&nbsp;10</p>
<p>600.0</p>
<p>&nbsp;20</p>
<p>400.0</p>
<p>&nbsp;10</p>
<p>500.0</p>
<p>&nbsp;20</p>
<p>400.0</p>
<p>如果有圆弧的话,就会多一个参数</p>
<p>比如最后结尾的线段是一个180°的圆弧</p>
<p>AcDbPolyline</p>
<p>&nbsp;90</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4</p>
<p>&nbsp;70</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1</p>
<p>&nbsp;43</p>
<p>0.0</p>
<p>&nbsp;10</p>
<p>500.0</p>
<p>&nbsp;20</p>
<p>500.0</p>
<p>&nbsp;10</p>
<p>600.0</p>
<p>&nbsp;20</p>
<p>500.0</p>
<p>&nbsp;10</p>
<p>600.0</p>
<p>&nbsp;20</p>
<p>400.0</p>
<p>&nbsp;10</p>
<p>500.0</p>
<p>&nbsp;20</p>
<p>400.0</p>
<p>&nbsp;42</p>
<p>-0.9999999999999998</p>
<p>总结一下问题如何把封闭图形的各个线段(或许绘制时顺序很乱)依次衔接起来后,用AcDbPolyLine表达出来。</p>
<p>请问,通过VBA可以做到这个功能吗,怎么做到?如果不能,哪有什么好的办法,谢谢各位先!!</p>
<p>&nbsp;</p>

guliande 发表于 2010-6-2 07:55:00

高手们??

henanlypl 发表于 2010-6-5 11:20:00

做两个遍历,做个动态数组,把与上一段线的顶点相同的顶点加进数组,然后画线就可以了

bifenba 发表于 2010-6-5 11:50:00

<p>楼上说得对</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>足球比分 篮球比分&nbsp; NBA赛程表 即时比分 足球赛程 足球指数 网球比分 开发比分网 阴阳冕 </p>

guliande 发表于 2010-6-7 15:46:00

<p>那画线的时候,可以把原来的线段删除吗,怎么删除,然后,可以自动保存为DXF 格式吗?</p>

洋葱老爹 发表于 2010-6-20 21:10:00

用对象的delete方法删除,最后可以自动保存为DXF格式的.
页: [1]
查看完整版本: [求助]如何把封闭图形的各个线段衔接起来后,用AcDbPolyLine表达出来