乐筑天下

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

获取模型空间比例因子

[复制链接]

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2010-2-15 03:41:28 | 显示全部楼层 |阅读模式
嗨,
我有一个在模型空间中有两个视口的绘图。
在其中一个视口中,用户使用任何普通缩放功能缩放到对象上。
在VBA中,我如何获得用户放大的最终比例因子,然后将其应用于第二个视口,以便两个视口具有相同的缩放因子。
第二部分似乎可以用:
ZoomScaled Zoomfactor,acZoomScaledRelative来解决,
但我似乎无法获得比例因子。
有人有什么想法吗?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2010-2-15 10:12:27 | 显示全部楼层
必须获取当前VP的视口比例因子。让我看看我是否有代码。
回复

使用道具 举报

LE3

10

主题

149

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2010-2-17 11:05:54 | 显示全部楼层
我找不到任何能保持视口比例的属性。
我已经尝试使用height属性,但也不起作用。
回复

使用道具 举报

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2010-2-17 12:53:14 | 显示全部楼层
我不使用这种语言,但必须是一种找到公开的属性或方法的方法,甚至不是帮助文件?。
Viewport类-有一个CustomScale属性-读/写
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2010-2-19 04:01:15 | 显示全部楼层
好的,伙计们,我们有一个部分解决方案。它将一个视口中的视图复制到另一个视口,具有相同的视图比例。
它仍然有一个怪癖,即两个视口中的视图向左跳转四分之一的屏幕宽度。
  1. Sub CopyViewPort()
  2.    
  3.     Dim objViewPort As AcadViewport
  4.     Dim objCurrentViewport As AcadViewport
  5.     Dim vpCentre(0 To 1) As Double
  6.     Dim dblViewSize As Double
  7.     Dim dblCVPHeight As Double
  8.     Dim dblCVPWidth As Double
  9.     Dim dblCVPScale As Double
  10.    
  11.     Set objCurrentViewport = ThisDrawing.ActiveViewport
  12.    
  13.     Set objViewPort = ThisDrawing.ActiveViewport
  14.    
  15.     ' get centre of current viewport
  16.     vpCentre(0) = ThisDrawing.GetVariable("ViewCtr")(0)
  17.     vpCentre(1) = ThisDrawing.GetVariable("ViewCtr")(1)
  18.    
  19.     'get current vp scale
  20.     dblCVPHeight = objCurrentViewport.Height
  21.     dblCVPWidth = objCurrentViewport.Width
  22.     dblCVPScale = dblCVPWidth / dblCVPHeight
  23.    
  24.     ' get sysvar ViewSize
  25.     dblViewSize = ThisDrawing.GetVariable("ViewSize")
  26.    
  27.     For Each objViewPort In ThisDrawing.Viewports
  28.         ThisDrawing.ActiveViewport = objViewPort
  29.         objViewPort.Center = vpCentre
  30.         objViewPort.Height = dblViewSize
  31.         objViewPort.Width = dblViewSize * dblCVPScale
  32.     Next
  33.    
  34.     ThisDrawing.ActiveViewport = objCurrentViewport
  35.    
  36.     ' regen in all viewports
  37.     ThisDrawing.Regen acAllViewports
  38.    
  39. End Sub

感谢您的所有帮助,我希望有人能利用它。
回复

使用道具 举报

29

主题

519

帖子

477

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2010-2-19 10:57:55 | 显示全部楼层
尝试在混乱后设置中心,使用ht和宽度
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2010-2-22 02:12:37 | 显示全部楼层
@Bryco
做到了。太好了,现在它超级管用。
感谢Bryco的帮助和所有其他人。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-1 19:18 , Processed in 0.251513 second(s), 66 queries .

© 2020-2025 乐筑天下

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