luckyliya 发表于 2006-3-28 13:43:00

(求助斑竹)真的好困惑,为什么求外轮廓的周长就不行呢

<P>以下是求面域周长的代码,求内轮廓都行,但为什么求外轮廓的周长就不行呢?</P>
<P><FONT color=#0000ff>Public</FONT> <FONT color=blue><FONT color=blue>Sub</FONT></FONT> clist<FONT color=red>(</FONT><FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=blue>Dim</FONT> pt <FONT color=blue>As</FONT> Variant<BR>&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=blue>Dim</FONT> spt <FONT color=blue>As</FONT> <FONT color=blue>String</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=blue>Dim</FONT> i <FONT color=blue>As</FONT> Integer<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; pt <FONT color=blue>=</FONT> ThisDrawing.Utility.getpoint<FONT color=red>(</FONT>, vbCrLf &amp; <FONT color=#880000>"输入要计算周长对象的内部一点:"</FONT><FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp; spt <FONT color=blue>=</FONT> pt<FONT color=red>(</FONT>0<FONT color=red>)</FONT> &amp; <FONT color=#880000>","</FONT> &amp; pt<FONT color=red>(</FONT>1<FONT color=red>)</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand <FONT color=#880000>"-boundary"</FONT> &amp; vbCr &amp; <FONT color=#880000>"a"</FONT> &amp; vbCr &amp; <FONT color=#880000>"o"</FONT> &amp; vbCr &amp; <FONT color=#880000>"r"</FONT> &amp; vbCr &amp; vbCr &amp; spt &amp; vbCr &amp; vbCr<BR>&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=blue><FONT color=blue>If</FONT></FONT> <FONT color=red>(</FONT>ThisDrawing.GetVariable<FONT color=red>(</FONT><FONT color=#880000>"LASTPROMPT"</FONT><FONT color=red>)</FONT> <FONT color=blue>&lt;</FONT>&gt; <FONT color=#880000>"已创建 0 个面域。"</FONT><FONT color=red>)</FONT> <FONT color=blue><FONT color=blue>Then</FONT></FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=blue>MsgBox</FONT> ThisDrawing.ModelSpace<FONT color=red>(</FONT>ThisDrawing.ModelSpace.<FONT color=blue>Count</FONT> <FONT color=blue>-</FONT> 1<FONT color=red>)</FONT>.Perimeter<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.ModelSpace<FONT color=red>(</FONT>ThisDrawing.ModelSpace.<FONT color=blue>Count</FONT> <FONT color=blue>-</FONT> 1<FONT color=red>)</FONT>.Delete<BR>&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=blue><FONT color=blue>End</FONT> If</FONT><BR><FONT color=blue>End</FONT> <FONT color=blue><FONT color=blue>Sub</FONT></FONT></P>

mccad 发表于 2006-3-28 17:56:00

<P>边界生成时,按照你的程序,如果点的一个点中可生成多个边界,而程序只读取最后生成的那个边界。所有总会有问题。</P>
<P>你需要在生成边界前保存当前空间的图元数量,然后通过边界命令后检查新生成了多少个图元,分别读取这些图元的属性就OK。</P>
页: [1]
查看完整版本: (求助斑竹)真的好困惑,为什么求外轮廓的周长就不行呢