Bill_Myron 发表于 2022-7-6 08:37:14

创建具有所有层的节点

我想做以下事情:
 
-为每个打开的层创建一个简单节点。(@0,0很好)
 
-创建一个包含所有已创建节点的块。
 
 
这将阻止人们清除所有层。这有可能吗?
 
谢谢

Lee Mac 发表于 2022-7-6 08:59:00


(defun c:nodeblock ( / def name )
   
   (setq name "nodeblock");; Name of 'Node Block'
   
   (if (null (tblsearch "BLOCK" name))
       (progn
         (entmake
               (list
                  '(0 . "BLOCK")
                  '(8 . "0")
                  '(10 0.0 0.0 0.0)
                   (cons 2 name)
                  '(70 . 0)
               )
         )
         (while (setq def (tblnext "LAYER" (null def)))
               (if (not (minusp (cdr (assoc 62 def))))
                   (entmake
                     (list
                        '(0 . "POINT")
                        '(10 0.0 0.0 0.0)
                           (cons 8 (cdr (assoc 2 def)))
                     )
                   )
               )
         )
         (entmake '((0 . "ENDBLK") (8 . "0")))

         ;; Comment this line to not insert block
         (entmake (list '(0 . "INSERT") '(8 . "0") '(10 0.0 0.0 0.0) (cons 2 name)))
       )
       (princ (strcat "\n" name " already exists."))
   )
   (princ)
)

BIGAL 发表于 2022-7-6 09:15:33

不确定这是否有帮助,但我们走了另一条路,只清除了某些层。作为一个中间步骤,我们的dwt有所有测量库层和大约500个层的块。一旦引入现场测量,我们就进行部分清除
 
-吹扫la fe*N
-清除la dr*N等
 
这样我们就可以保持所有设计层的完整性。我们这样做是因为脚本很容易更改。
 
李像往常一样做得很好,但你也会保留所有的垃圾。

Bill_Myron 发表于 2022-7-6 09:34:41

谢谢李!
 
工作得很好!非常感谢。

Lee Mac 发表于 2022-7-6 09:51:33

不客气,比尔
页: [1]
查看完整版本: 创建具有所有层的节点