找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 566|回复: 6

[编程申请]:请问如何得到几个相连的实体的外边界?

[复制链接]
发表于 2004-11-11 20:25:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
有几个在一起的实体,怎样才能得到它们的外边界
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-11-11 21:29:04 | 显示全部楼层
通过什么操作得到相交的实体的?选择集?


  1. Sub test)
  2. 'On Error Resume Next

  3. Dim ss As AcadSelectionSet, p1, p2
  4. Set ss = CreateSel()
  5. ss.SelectOnScreen
  6. MsgBox ss.Count
  7. GetSelBox ss, p1, p2
  8. OutputPoint (p1)
  9. OutputPoint (p2)

  10. End Sub



  11. Function CreateSel(Optional Name As String = "TlsSel") As AcadSelectionSet
  12. On Error Resume Next
  13.     ThisDrawing.SelectionSets(Name).Delete
  14.     Set CreateSel = ThisDrawing.SelectionSets.Add(Name)
  15. End Function

  16. Sub GetSelBox(ByVal TlsSel As AcadSelectionSet, ByRef MinPoint As Variant, ByRef MaxPoint As Variant)
  17.     Dim i
  18.     Dim minpnt, maxpnt
  19.     Dim p1, p2
  20.    
  21.     TlsSel(0).GetBoundingBox minpnt, maxpnt
  22.    
  23.     For i = 1 To TlsSel.Count - 1
  24.         TlsSel(i).GetBoundingBox p1, p2
  25.         If p1(0) < minpnt(0) Then minpnt(0) = p1(0)
  26.         If p1(1) < minpnt(1) Then minpnt(1) = p1(1)
  27.         If p2(0) > maxpnt(0) Then maxpnt(0) = p2(0)
  28.         If p2(1) > maxpnt(1) Then maxpnt(1) = p2(1)
  29.     Next i
  30.    
  31.     MinPoint = minpnt
  32.     MaxPoint = maxpnt
  33. End Sub

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-11 22:23:19 | 显示全部楼层
我可能没表达清楚,我的意思不是得到它们的BoundingBox,我传了个图上来,最后的结果应该得到那条红线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-12 09:22:11 | 显示全部楼层
做成面域求并集
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-17 13:26:09 | 显示全部楼层
求并集会出现下面的情况,把不相连的实体也连在了一起,而且不知道怎么样才能得到边界的折点坐标
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-12 16:22:14 | 显示全部楼层
给你一个大概的思路,我在2005上试过
1.得到包含所有实体ss的外围矩形框,可用二楼的办法,取端点pt1
2.对框向外作适当的放大,得到外边界线实体b,取相应的端点pt2,求pt1 pt2 的中点pt
3.调用-boundary命令,以ss和b为选择集,pt为指定点
4.生成两个以上的闭合线,有一个是外边界,其余是你想要的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-27 17:19:52 | 显示全部楼层
我按照上面的方法已经得到了边界,但不知道该边界该如何存到变量里,能再指点下吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-29 05:28 , Processed in 0.385615 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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