SuperCAD 发表于 2022-7-6 08:41:04

AutoLISP锁定视口,ch

首先,我要说的是,我根本没有AutoLISP编程知识。
 
我在让我所有的人用他们的视口做一些特定的事情上有点困难。我已经多次要求他们做以下事情:
 
 
[列表=1]
[*]锁定所有视口
[*]将所有视口视觉样式更改为二维线框
[*]将所有视口放在“视口”层上
[/列表]
 
可能是我要求太多了,但我的几个人仍然有未锁定的视口,由于视觉样式的原因无法正确打印。它们已经变得更好了,但也有一些会时不时地出现,所以我正在寻找一种代码来完成上面列出的任务。我已经尝试过搜索代码,但它看起来不存在。
 
你们中的一位Lisp程序的大师会很乐意帮助一个CAD猴子同伴吗?

alanjt 发表于 2022-7-6 08:45:14

对于层问题,我编写了一个reactor,它将在定义的层上放置视口/图像/外部参照。对此感兴趣?编写您想要的代码不会太难。

Lee Mac 发表于 2022-7-6 08:49:48

艾伦,很快就画好了,你能检查一下我标记的那条线吗?
 
vla put VisualStyle似乎也没有文档记录。

Lee Mac 发表于 2022-7-6 08:51:39

当视觉风格的问题可能被解决,也许作为一个节省反应堆?
 

(defun c:VPortFix ( / doc ss vl )
(vl-load-com)

(setq vl "VIEWPORTS") ;; VP Layer

(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))

(or (tblsearch "LAYER" vl)
   (vla-Add (vla-get-layers doc) vl)
)

(cond
   ( (ssget "_X" '((0 . "VIEWPORT")))

   (vlax-for vport (setq ss (vla-get-ActiveSelectionSet doc))
       (vla-put-VisualStyle vport 1)
       (vla-put-layer vport vl)
       (vla-put-DisplayLocked vport :vlax-true)
   )

   (vla-delete ss)
   )
)

(princ)
)

(defun c:VPortReactor nil
(vl-load-com)

((lambda ( data foo / react )
      (if (setq react
            (vl-some
            (function
                (lambda ( reactor )
                  (if (eq data (vlr-data reactor)) reactor)
                )
            )
            (cdar (vlr-reactors :vlr-editor-reactor))
            )
          )
      (if (vlr-added-p react)
          (vlr-remove react)
          (vlr-add react)
      )
      (setq react
          (vlr-editor-reactor data
            (list
            (cons :vlr-beginsave foo)
            )
          )
      )
      )
      (princ
      (if (vlr-added-p react)
          "\n** Reactor Activated **"
          "\n** Reactor Deactivated **"
      )
      )
      react
    )
   "VPort-Reactor"
   'VPort-CallBack
)

(princ)
)

(defun VPort-CallBack ( reactor arguments ) (c:VPortFix))

(c:VPortReactor)
反应器在加载时启动,可以通过键入“VPortReactor”来关闭

alanjt 发表于 2022-7-6 08:56:21

在我这边有效。1是2D线框,2是3D隐藏。设置属性,激活视口并键入VSCurrent。

Lee Mac 发表于 2022-7-6 08:57:14

 
哦,对了-不确定我当时在做什么
 
感谢您的测试。

alanjt 发表于 2022-7-6 09:02:10

当然可以

alanjt 发表于 2022-7-6 09:05:14

我只是出于测试目的才这么说的。
 
顺便说一句,对于布局中现有的视口,您将如何处理?

alanjt 发表于 2022-7-6 09:06:53

我将进行此更改以考虑剪裁的视口。。。
 
2

BlackBox 发表于 2022-7-6 09:10:43

 
 
 
犯错误
 
(无意义的文本,以便我可以发布回复)
页: [1] 2
查看完整版本: AutoLISP锁定视口,ch