明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1775|回复: 5

[求助]关于视口的问题

[复制链接]
发表于 2004-6-18 20:40:00 | 显示全部楼层 |阅读模式
请问怎么获得图纸空间某个视口中显示的图线在模型空间的具体范围?
 楼主| 发表于 2004-6-19 21:50:00 | 显示全部楼层
我试了一下,PViewport的center属性是它在图纸空间的坐标,而不是在模型空间的坐标。它的width和height属性也是乘以一个比例因子以后的值。


请问如何得到当前活动的视口所显示的图线在模型空间对应的范围?


希望高手指教,谢谢
 楼主| 发表于 2004-6-21 08:37:00 | 显示全部楼层
PViewport被激活到MSpace以后,视图的中心点在AutoCAD中是可以读取的,在VBA中应该怎么做。


有没有哪位大侠写过类似的程序啊?
 楼主| 发表于 2004-6-21 11:43:00 | 显示全部楼层
我知道怎么做了
发表于 2005-6-2 10:49:00 | 显示全部楼层
楼上的知道怎么做了,能不能说一下,偶也正碰到这个问题,谢谢了
 楼主| 发表于 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 这个方法是我自己摸索出来的,希望对你有所帮助,但我不确定是否有更好的办法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 14:42 , Processed in 0.175512 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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