laoliu09 发表于 2007-5-12 09:07:00

怎么通过一点获得一个封闭区域

怎么通过一点获得一个封闭区域?就像cad里的填充那样!例如,几根直线首尾相接,我想直接点击几根直线组成的封闭区域中的一点,就返回一个封闭的区域,从而获取封闭区域的面积,如何实现?谢谢!

cnks 发表于 2007-5-12 12:55:00

<p>用boundary</p>

laoliu09 发表于 2007-5-12 15:29:00

<p>问题是我不想弹出cad的对话框,直接用VBA调用boundary,但不弹出对话框!这样就好了!</p>

laoliu09 发表于 2007-5-12 15:41:00

<p>搜了半天,原来</p><p>&nbsp;&nbsp;&nbsp; Dim pnt<br/>&nbsp;&nbsp;&nbsp; Dim picked As Boolean<br/>&nbsp;&nbsp;&nbsp; pnt = ThisDrawing.Utility.GetPoint(,&nbsp;"点")<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "-boundary" &amp; vbCr &amp; "a" &amp; vbCr &amp; "b" &amp; vbCr &amp; "e" &amp; vbCr &amp; vbCr &amp; pnt(0) &amp; "," &amp; pnt(1) &amp; vbCr &amp; vbCr<br/>&nbsp;&nbsp;&nbsp;&nbsp; </p><p>这样就不弹出对话框了,但怎么返回获得的边界的,再搜一下!</p>

laoliu09 发表于 2007-5-12 15:56:00

怎么返回边界,如果边界不封闭就自动退出程序!这怎么解决呢?

cnks 发表于 2007-5-12 15:57:00

<p>先记住现有图形数量,求边界后多出的就是了</p>

laoliu09 发表于 2007-5-12 16:11:00

如果边界不封闭就自动退出程序!这怎么解决呢?就是怎么判断边界到底封不封闭!例如如果不封闭就msgbox "不封闭",以前好像有人问过,但不了了之!

cnks 发表于 2007-5-12 16:47:00

如果求不出边界,图形就不封闭

laoliu09 发表于 2007-5-12 18:33:00

<p>&nbsp;谢谢了!结论是通过下面的代码创建封闭区域</p><p>&nbsp;&nbsp; &nbsp;Dim pnt<br/>&nbsp;&nbsp;&nbsp; Dim picked As Boolean<br/>&nbsp;&nbsp;&nbsp; pnt = ThisDrawing.Utility.GetPoint(,&nbsp;"点")<br/>&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "-boundary" &amp; vbCr &amp; "a" &amp; vbCr &amp; "b" &amp; vbCr &amp; "e" &amp; vbCr &amp; vbCr &amp; pnt(0) &amp; "," &amp; pnt(1) &amp; vbCr &amp; vbCr</p><p>然后判断图元的个数有没有变化,可惜如果不封闭的话,先在命令行里显示cad的提示,就是不想让别人看到cad的提示痕迹!看来vba很难实现了!</p>
页: [1]
查看完整版本: 怎么通过一点获得一个封闭区域