Tharwat 发表于 2022-7-5 16:35:06

 
不客气。

Roy_043 发表于 2022-7-5 16:37:17

@塔尔瓦特:
在具有多个PS布局的图形中,代码将多次更改每个视口。

Tharwat 发表于 2022-7-5 16:40:48

 
因为什么?

CAD 发表于 2022-7-5 16:43:00

 
当我合并时,你的代码不工作?
 
 
 
(Defun c:vplk ()
(setq d (ssget "_x" '((0 . "VIEWPORT"))))
        (vplock d T)(princ))

(Defun c:vpun ()
(setq d (ssget "_x" '((0 . "VIEWPORT"))))
        (vplock d nil)
        (princ)
)

(Defun vplock (sel flg)
        (setq mode (if flg:vlax-true :vlax-false))
(repeat (setq i (sslength sel))
          (vlax-put-property (vlax-ename->vla-object (ssname sel (Setq i (1- i))))
          'DisplayLocked mode)
)
        (princ (strcat "\nViewports " (if flg "" "Un" )"locked"))(princ)
)                                  
(vl-load-com)

(defun c:vplk ( / d)
(if (setq d (ssget "_X" '((0 . "VIEWPORT"))))
   (vplock d T)
)
(princ)
)

Roy_043 发表于 2022-7-5 16:48:09

糟糕,我没有正确检查你的代码。您的代码不会多次修改实体。我的道歉Tharwat

Tharwat 发表于 2022-7-5 16:51:54

 
别担心,罗伊,没事的。

Roy_043 发表于 2022-7-5 16:53:12

@CAD:
代码运行良好。
 
我怀疑您没有意识到,当布局从未被激活时,它不包含任何视口。首次激活布局时看到的视口是新创建的(这就是为什么它可以完全适合模型空间中当前可见的图元)。
因此,例如,如果您从头开始绘制,并且仍在“模型”选项卡上,则图形中将没有可供代码更改的视口。
 
请在所有布局都已激活的图形中重新测试代码。
 
注1:
在组合代码时,应该删除函数的旧版本,而不仅仅是附加新代码。
 
注2:
首次激活布局时,将自动生成两个视口,而不是一个视口。第一个是主图纸空间视口。

Roy_043 发表于 2022-7-5 16:59:03

相关主题:
https://www.cadsite.be/smf/index.php?topic=1204.msg33950#msg33950

CAD 发表于 2022-7-5 17:00:05

 
您好Roy_043; u right!!!我想我犯了一个错误,Lisp程序也能用!!太棒了认为我的acad中有一些旧代码。
 
你们都很好!!!!Thanksss Bedankt!!!
页: 1 [2]
查看完整版本: Lisp不适用于仅模型la