乐筑天下

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

[求助]关于视口的问题

[复制链接]

24

主题

83

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
179
发表于 2004-6-18 20:40:00 | 显示全部楼层 |阅读模式
请问怎么获得图纸空间某个视口中显示的图线在模型空间的具体范围?
回复

使用道具 举报

24

主题

83

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
179
发表于 2004-6-19 21:50:00 | 显示全部楼层
我试了一下,PViewport的center属性是它在图纸空间的坐标,而不是在模型空间的坐标。它的width和height属性也是乘以一个比例因子以后的值。
请问如何得到当前活动的视口所显示的图线在模型空间对应的范围?
希望高手指教,谢谢
回复

使用道具 举报

24

主题

83

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
179
发表于 2004-6-21 08:37:00 | 显示全部楼层
PViewport被激活到MSpace以后,视图的中心点在AutoCAD中是可以读取的,在VBA中应该怎么做。
有没有哪位大侠写过类似的程序啊?
回复

使用道具 举报

24

主题

83

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
179
发表于 2004-6-21 11:43:00 | 显示全部楼层
我知道怎么做了
回复

使用道具 举报

1

主题

8

帖子

4

银币

初来乍到

Rank: 1

铜币
12
发表于 2005-6-2 10:49:00 | 显示全部楼层
楼上的知道怎么做了,能不能说一下,偶也正碰到这个问题,谢谢了
回复

使用道具 举报

24

主题

83

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
179
发表于 2005-6-2 11:36:00 | 显示全部楼层
下面的代码你可以参考一下:
                                                                                 Dim DOC1 As AcadDocument 'the source dwg file
                                                                                         Dim xdataOut As Variant 'extends data of a pviewport
                                                                                         Dim xtypeOut As Variant 'extends data type
                                                                                         DOC1.MSpace = True
                                                                                         DOC1.ActivePViewport.GetXData "", xtypeOut, xdataOut 'get extends data
                                                                                                                                                                                                                                                                                                                 
                                                                                         h = xdataOut(7)'高度,至于范围的宽度你可以根据视口宽度和缩放比例计算出来
                                                                                               
                                                                                         If IsV04 Then'pntc就是范围的中心点坐标,isv04是我自定义的布尔类型的变量
根据我的测试,中心点在04版本和04以前的版本中,它在扩展数据中的保存位置不一样                       
                                                                                                         pntc(0) = xdataOut(8): pntc(1) = xdataOut(9): pntc(2) = 0 'used in 2004 version
                                                                                         Else
                                                                                                                         pntc(0) = xdataOut(4)(0): pntc(1) = xdataOut(4)(1): pntc(2) = 0 'used in the early version
                                                                                         End If
这个方法是我自己摸索出来的,希望对你有所帮助,但我不确定是否有更好的办法。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 08:47 , Processed in 1.013113 second(s), 64 queries .

© 2020-2025 乐筑天下

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