使用颜色和
先生,我必须通过选择对象来创建层。我附上了2张样品图供观察。我可以在going layer命令中完成这项工作,用不同的名称和颜色创建不同的层,然后通过属性将它们包含在其中,但这需要时间。。。。lisp能很容易做到吗???????49000帮助。图纸
50000帮助。图纸
为什么不使用宏录制器一次性将它们全部录制下来?然后你可以随时播放宏。不需要lisp。 怎么做那个????????请告诉我。。如果可能的话,请提供给我。 你也可以做一个简单的脚本,只需在记事本中保存/制作一个新的脚本,扩展名为文件。SCR和要加载的脚本
-layer n lay1 C lay1 1 LT lay1 dashed
n lay2 c lay2 4 LT center
n lay3 c 5 lay3 LT dashed2
作为起点
(defun c:demo (/ col ent flag flag1 i lay ss)
(setq flag1 T)
(while (and flag1
(setq ss (ssget ":L"))
)
(setq flag T)
(while flag
(setq lay (getstring t "\nEnter New Layer Name <exit>: "))
(cond ((tblsearch "layer" lay)
(prompt "\nLayer Already Exists!!!")
)
((= lay "")
(setq flag nil)
(setq flag1 nil)
)
((not (snvalid lay))
(prompt "\nInvalid Layer Name!!!")
)
((and (not (tblsearch "layer" lay))
(snvalid lay)
(setq col (acad_colordlg 7))
)
(entmake (list (cons 0 "LAYER")
(cons 100 "AcDbSymbolTableRecord")
(cons 100 "AcDbLayerTableRecord")
(cons 2 lay)
'(70 . 0)
(cons 62 col)
'(6 . "Continuous")
)
)
(repeat (setq i (sslength ss))
(setq ent (entget (ssname ss (setq i (1- i)))))
(entmod (subst (cons 8 lay) (assoc 8 ent) ent))
)
(setq flag nil)
)
(T
(setq flag nil)
(setq flag1 nil)
)
);; cond
);; while
);; while
(princ)
)
希望有帮助
亨里克 解决此问题的正确方法是创建一个包含已包含层的主模板文件。因此,无论何时使用模板创建新图形,图层都可以立即使用。更聪明地工作。。。不难。Lisp程序不见得是每个问题的答案。 嗯,席尔瓦先生,太棒了。毫无疑问,你很棒。它工作得很好。。。。。谢谢。 不客气,安妮娅
很高兴我能帮忙
亨里克
页:
[1]