明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2435|回复: 8

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

[复制链接]
发表于 2007-5-12 09:07:00 | 显示全部楼层 |阅读模式
怎么通过一点获得一个封闭区域?就像cad里的填充那样!例如,几根直线首尾相接,我想直接点击几根直线组成的封闭区域中的一点,就返回一个封闭的区域,从而获取封闭区域的面积,如何实现?谢谢!
发表于 2007-5-12 12:55:00 | 显示全部楼层

用boundary

 楼主| 发表于 2007-5-12 15:29:00 | 显示全部楼层

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

 楼主| 发表于 2007-5-12 15:41:00 | 显示全部楼层

搜了半天,原来

    Dim pnt
    Dim picked As Boolean
    pnt = ThisDrawing.Utility.GetPoint(, "点")
    ThisDrawing.SendCommand "-boundary" & vbCr & "a" & vbCr & "b" & vbCr & "e" & vbCr & vbCr & pnt(0) & "," & pnt(1) & vbCr & vbCr
    

这样就不弹出对话框了,但怎么返回获得的边界的,再搜一下!

 楼主| 发表于 2007-5-12 15:56:00 | 显示全部楼层
怎么返回边界,如果边界不封闭就自动退出程序!这怎么解决呢?
发表于 2007-5-12 15:57:00 | 显示全部楼层

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

 楼主| 发表于 2007-5-12 16:11:00 | 显示全部楼层
如果边界不封闭就自动退出程序!这怎么解决呢?就是怎么判断边界到底封不封闭!例如如果不封闭就msgbox "不封闭",以前好像有人问过,但不了了之!
发表于 2007-5-12 16:47:00 | 显示全部楼层
如果求不出边界,图形就不封闭
 楼主| 发表于 2007-5-12 18:33:00 | 显示全部楼层

 谢谢了!结论是通过下面的代码创建封闭区域

    Dim pnt
    Dim picked As Boolean
    pnt = ThisDrawing.Utility.GetPoint(, "点")
    ThisDrawing.SendCommand "-boundary" & vbCr & "a" & vbCr & "b" & vbCr & "e" & vbCr & vbCr & pnt(0) & "," & pnt(1) & vbCr & vbCr

然后判断图元的个数有没有变化,可惜如果不封闭的话,先在命令行里显示cad的提示,就是不想让别人看到cad的提示痕迹!看来vba很难实现了!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 15:42 , Processed in 0.180546 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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