jsxygshh 发表于 2014-2-10 23:10:33

如何画出闭合的多线后就显示闭合部分的面积

如题,请大家给予指点,深表感谢
Sub GetArea()
    Dim sjx As AcadSelectionSet, obj As AcadEntity
    On Error Resume Next
      ThisDrawing.SendCommand "_pline" & vbCr
      Set sjx = ThisDrawing.SelectionSets.Add("ff1")
      sjx.Select acSelectionSetLast
      Set obj = sjx.Item(0)
      MsgBox obj.Area / 1000000
    sjx.Delete
End Sub

vbcad 发表于 2014-2-11 12:22:48

多段线有面积特性,直接可以得到的。
将On Error Resume Next删除,看看问题出在哪儿。
建议在调试程序时暂时不用On Error Resume Next

jsxygshh 发表于 2014-2-11 17:47:54

vbcad 发表于 2014-2-11 12:22 static/image/common/back.gif
多段线有面积特性,直接可以得到的。
将On Error Resume Next删除,看看问题出在哪儿。
建议在调试程序时 ...

这段代码可以得到闭合多线所围成的面积,但不能同步执行,只能在执行第二次时显示前一次所画的封闭面积;不知如何调整代码,每次画完多线后就得出面积

vbcad 发表于 2014-2-11 18:20:50

将ThisDrawing.SendCommand "_pline" & vbCr删除。
在图纸中画多短线,然后执行这个代码,试试看。

vbcad 发表于 2014-2-12 11:06:42

今天测试了一下你的代码,完全正常。
画完后即可显示面积,不是你说的下一次才显示上一次的面积

jsxygshh 发表于 2014-2-14 06:26:03

vbcad 发表于 2014-2-12 11:06 static/image/common/back.gif
今天测试了一下你的代码,完全正常。
画完后即可显示面积,不是你说的下一次才显示上一次的面积

我的测试结果是只能显示前一次所画的面积,不能显示刚刚完成图形的面积。

jsxygshh 发表于 2014-2-28 10:02:51

请大家给予帮助

vbcad 发表于 2014-3-4 12:43:22

你的代码是正常的,附件中的EXE是用你的子程序编译成的,源代码也在,请自己试试看。

蟋蟀的帅 发表于 2014-4-15 10:14:55

这个我也测试了一下,楼上的是VB编译的代码确实正常,楼主所说的是在CAD立面的VBA代码,确实也不正常。

jsxygshh 发表于 2014-4-19 07:45:33

另外测试了,如果超过8个边就会出现错误
页: [1] 2
查看完整版本: 如何画出闭合的多线后就显示闭合部分的面积