salman 发表于 2022-7-6 14:37:46

选择图层

在auotlips程序中,我希望获得层的名称,而不是通过硬编码或在命令提示符下键入它们作为用户输入,而是希望用户从层控制面板中选择层。
 
谢谢

rkmcswain 发表于 2022-7-6 15:28:44

创建DCL对话框,并用现有图层名称填充它。
 

 
此处示例代码:http://www.jefferypsanders.com/autolisp_DCL_Part7.html

Lee Mac 发表于 2022-7-6 15:40:16

我同意RKMcSwain的观点,
 
要填充DCL,您需要检索层列表-这可以通过多种方式完成,这里有两个选项供您尝试:
 

(defun laylst(/ tdef lst)
(reverse
   (while (setq tdef (tblnext "LAYER" (not tdef)))
   (setq lst (cons (cdr (assoc 2 tdef)) lst)))))

(defun laylst2(/ lst)
(vl-load-com)
(reverse
   (vlax-for lay
                  (vla-get-Layers
                  (vla-get-ActiveDocument
                      (vlax-get-acad-object)))
   (setq lst (cons (vla-get-Name lay) lst)))))
页: [1]
查看完整版本: 选择图层