明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2074|回复: 3

有关图形最外围边界生成问题

[复制链接]
发表于 2007-1-26 11:58:00 | 显示全部楼层 |阅读模式

请教VBA有没有什么方法可以生成图形最处围的边界,因图形内部有多个封闭区域,无法使用CAD的边界命令

发表于 2007-1-26 13:47:00 | 显示全部楼层
取得所有实体的GetBoundingBox,比较得到最大,最小坐标
 楼主| 发表于 2007-1-29 13:42:00 | 显示全部楼层

能给一段代码参考一下吗?

能给一段代码参考一下吗?谢谢

发表于 2007-1-29 14:21:00 | 显示全部楼层
本帖最后由 作者 于 2007-1-29 14:25:17 编辑

  1. Sub test()
  2. On Error Resume Next
  3. Dim Sset As AcadSelectionSet
  4. Dim i, keyword, KeyStr, MySTr
  5. Dim Pmax, Pmin, IniVar As Variant
  6. Dim x0, y0, x1, y1, dd, ff, la, lb
  7. Dim pt(7) As Double
  8. Dim Pline As AcadLWPolyline
  9. ThisDrawing.SelectionSets("Sset").Delete
  10. Set Sset = ThisDrawing.SelectionSets.Add("Sset")
  11. Sset.SelectOnScreen
  12. Sset(0).GetBoundingBox Pmin, Pmax
  13. x0 = Pmin(0): y0 = Pmin(1)
  14. x1 = Pmax(0): y1 = Pmax(1)
  15. For i = 1 To Sset.Count - 1
  16. Sset(i).GetBoundingBox Pmin, Pmax
  17. If x0 > Pmin(0) Then x0 = Pmin(0)
  18. If y0 > Pmin(1) Then y0 = Pmin(1)
  19. If x1 < Pmax(0) Then x1 = Pmax(0)
  20. If y1 < Pmax(1) Then y1 = Pmax(1)
  21. Next
  22. pt(0) = x0
  23. pt(1) = y0
  24. pt(2) = x1
  25. pt(3) = y0
  26. pt(4) = x1
  27. pt(5) = y1
  28. pt(6) = x0
  29. pt(7) = y1
  30. Set Pline = ThisDrawing.ModelSpace.AddLightWeightPolyline(pt)
  31. Pline.Closed = True
  32. End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 18:38 , Processed in 0.169366 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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