Small Fish 发表于 2022-7-6 07:26:07

在papersap中缩放视口

我想选择一个视口,将其放大/缩小,然后根据细节放大或缩小。
例如,如果我有一个1:10的比例,我想把它放大到1:5,视口大小将缩放2,视口比例将从1:10缩放到1:5。
单独执行此操作相当简单(编程),但是我只想选择视口以放大细节,而不是选择视口,然后进入活动窗口并放大比例。
 
有没有一种方法可以在只选择视口窗口(在图纸空间中)而不必进入活动窗口进行缩放的情况下缩放视口?
谢谢

eyde 发表于 2022-7-6 07:32:35

你绝对可以做到。选择视口解锁,屏幕右下角有一个比例列表。
选择希望其处于的比例,然后重新锁定视口并拉伸视口以包含细节。这就是全部。

alanjt 发表于 2022-7-6 07:33:46

您可以从工具栏或底部状态栏中选择。。。
 

alanjt 发表于 2022-7-6 07:36:23

或者您可以键入:
Command: z
ZOOM
Specify corner of window, enter a scale factor (nX or nXP), or
<real time>: 1/20xp

Small Fish 发表于 2022-7-6 07:41:11

 
我仍然不确定在paperspace中如何更改视口比例。当您在活动视口中时,上面的内容可以正常工作。
我想在图纸空间中更改视口比例。。。。除非我错过了什么。

alanjt 发表于 2022-7-6 07:44:27

选择视口并使用我发布的前两种方法之一(图片中的方法)。

eyde 发表于 2022-7-6 07:45:30

只需选择视口(高亮显示),不要在其内部双击到图纸空间。然而,视口需要解锁。

alanjt 发表于 2022-7-6 07:48:24

如果你很想用代码来做这件事,只需用(vla put customscale)编辑比例。

Small Fish 发表于 2022-7-6 07:53:07

好的-谢谢
...所以它可以通过编程来实现。。。。
这是我的尝试,症结是视口比例,我哪里出错了?
谢谢
 

(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

alanjt 发表于 2022-7-6 07:57:43

我假设“粘着点”,你的意思是尺度不是你想要的。
 
用值除以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
查看完整版本: 在papersap中缩放视口