在papersap中缩放视口
我想选择一个视口,将其放大/缩小,然后根据细节放大或缩小。例如,如果我有一个1:10的比例,我想把它放大到1:5,视口大小将缩放2,视口比例将从1:10缩放到1:5。
单独执行此操作相当简单(编程),但是我只想选择视口以放大细节,而不是选择视口,然后进入活动窗口并放大比例。
有没有一种方法可以在只选择视口窗口(在图纸空间中)而不必进入活动窗口进行缩放的情况下缩放视口?
谢谢 你绝对可以做到。选择视口解锁,屏幕右下角有一个比例列表。
选择希望其处于的比例,然后重新锁定视口并拉伸视口以包含细节。这就是全部。 您可以从工具栏或底部状态栏中选择。。。
或者您可以键入:
Command: z
ZOOM
Specify corner of window, enter a scale factor (nX or nXP), or
<real time>: 1/20xp
我仍然不确定在paperspace中如何更改视口比例。当您在活动视口中时,上面的内容可以正常工作。
我想在图纸空间中更改视口比例。。。。除非我错过了什么。 选择视口并使用我发布的前两种方法之一(图片中的方法)。 只需选择视口(高亮显示),不要在其内部双击到图纸空间。然而,视口需要解锁。 如果你很想用代码来做这件事,只需用(vla put customscale)编辑比例。 好的-谢谢
...所以它可以通过编程来实现。。。。
这是我的尝试,症结是视口比例,我哪里出错了?
谢谢
(defun c:Sc(/ ss EntVpt VpScaleRatio scalevp NewVpScaleRatio ScaleRatio)
(vl-load-com)
(setq scalevp (getreal "\nChoose a scale : "))
(princ "\nSelect paperspace Viewport: ")
(setq ss (ssget ":s" '((0 . "viewport"))))
(if ss
(progn
(setq
EntVpt (ssname ss 0)
VptObj (vlax-ename->vla-object EntVpt )
VpScaleRatio(vla-get-customscale VptObj)
);setq
(setq
NewVpScaleRatio (/ 1.0 scalevp);Edit:this line is now correct
CenPtVport (vlax-get VptObj 'Center)
ScaleRatio (/ NewVpScaleRatio VpScaleRatio )
);setq
(command "scale" ss "" CenPtVport ScaleRatio)
(vla-put-customscale VptObj (/ 1.0 scalevp) ));Edit:this line is now correct
);progn
);if
);defun
我假设“粘着点”,你的意思是尺度不是你想要的。
用值除以1(例如,(/1.scalevp))设置customscale值。
我没有添加对象缩放,但下面是一个示例:
(defun c:Test (/ e s)
(if (setq e (car (entsel "\nSelect viewport to change/view scale: ")))
(if (eq "AcDbViewport" (vla-get-objectname (setq e (vlax-ename->vla-object e))))
(if (setq s (getreal (strcat "\nSpecify new scale (Current: 1\" = "
(rtos (/ 1. (vla-get-customscale e)) 2)
"'): "
)
)
)
(vl-catch-all-apply (function vla-put-customscale) (list e (/ 1. s)))
)
(princ "\nInvalid object!")
)
)
(princ)
)
页:
[1]
2