乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 28|回复: 0

[编程交流] VBA中的列表视图坐标

[复制链接]

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 14:56:10 | 显示全部楼层 |阅读模式
你好
我需要一个当前项目从VBA(从独立应用程序通过ActiveX automation访问AutoCAD)列出图形“扩展”区域(即它在模型空间中的整个绘图区域)的坐标。由于图形负载非常大,因此解析实体以收集坐标并对其进行排序并不是一个解决方案,因为它持续时间太长。
因此,我的解决方案是进行缩放/扩展,根据其中心坐标和大小创建视图和列表;由此可以计算视图左下角和右上角的坐标,从而得出绘制区域(当然,在一个方向上不一定精确)。不幸的是,作为视图功能列出的值似乎与屏幕上手动列出的值不匹配。
 
  1. Dim theAcadApp, CrDrawing As Object
  2. Set theAcadApp = CreateObject("AutoCAD.Application")
  3. Set CrDrawing = theAcadApp.Documents.Open("...ARandomFile...")
  4. theAcadApp.ZoomExtents
  5. Dim theExtendView As Object
  6. Dim theCenter As Variant
  7. Dim theCornerBL(1) As Double
  8. Dim ViewWidth, ViewHeight As Double
  9. Set theExtendView = CrDrawing.Views.Add("NewView01")
  10. theCenter = theExtendView.Center
  11. ViewWidth = theExtendView.Width
  12. ViewHeight = theExtendView.Height
  13. theCornerBL(0) = theCenter(0) - 0.5 * ViewWidth
  14. theCornerBL(1) = theCenter(1) - 0.5 * ViewHeight

 
有人知道我做错了什么吗?或者有另一个更好的解决方案来解决我的问题?
非常感谢。
 
当做
米尔恰
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 21:21 , Processed in 0.463512 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表