明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2461|回复: 10

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

[复制链接]
发表于 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
发表于 2014-2-11 12:22:48 | 显示全部楼层
多段线有面积特性,直接可以得到的。
将On Error Resume Next删除,看看问题出在哪儿。
建议在调试程序时暂时不用On Error Resume Next

 楼主| 发表于 2014-2-11 17:47:54 | 显示全部楼层
vbcad 发表于 2014-2-11 12:22
多段线有面积特性,直接可以得到的。
将On Error Resume Next删除,看看问题出在哪儿。
建议在调试程序时 ...

这段代码可以得到闭合多线所围成的面积,但不能同步执行,只能在执行第二次时显示前一次所画的封闭面积;不知如何调整代码,每次画完多线后就得出面积
发表于 2014-2-11 18:20:50 | 显示全部楼层
将ThisDrawing.SendCommand "_pline" & vbCr删除。
在图纸中画多短线,然后执行这个代码,试试看。
发表于 2014-2-12 11:06:42 | 显示全部楼层
今天测试了一下你的代码,完全正常。
画完后即可显示面积,不是你说的下一次才显示上一次的面积
 楼主| 发表于 2014-2-14 06:26:03 | 显示全部楼层
vbcad 发表于 2014-2-12 11:06
今天测试了一下你的代码,完全正常。
画完后即可显示面积,不是你说的下一次才显示上一次的面积

我的测试结果是只能显示前一次所画的面积,不能显示刚刚完成图形的面积。
 楼主| 发表于 2014-2-28 10:02:51 | 显示全部楼层
请大家给予帮助
发表于 2014-3-4 12:43:22 | 显示全部楼层
你的代码是正常的,附件中的EXE是用你的子程序编译成的,源代码也在,请自己试试看。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-4-15 10:14:55 | 显示全部楼层
这个我也测试了一下,楼上的是VB编译的代码确实正常,楼主所说的是在CAD立面的VBA代码,确实也不正常。
 楼主| 发表于 2014-4-19 07:45:33 | 显示全部楼层
另外测试了,如果超过8个边就会出现错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:41 , Processed in 0.201629 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表