将层移动到冻结层
你好!!我有一个任务,将几个对象移动到几个图形中的冻结层,我只是在想是否有一种方法可以在批处理模式下做到这一点。如果有解决方案的话,我在这个论坛上查看了一下,没有任何运气。
我想lisp必须创建一个冻结层,然后将对象移动到该冻结层。这可能吗?
谢谢你的帮助!
同时,我使用设计中心插入隐藏层,并将对象移动到该层。。。这是我永远。。。lol.{( 是的,您可以使用VL在所有打开的图形中迭代,并根据需要移动对象,需要移动哪些对象以及移动到哪个层? 谢谢李的快速回复!
对不起,我的无知,但是什么是“LV”?
有两个物体:
一个是仅具有属性的块。系统层。
第二个是每张图中大约4条线和2个圆的平均值。N-LNWK-MEDM层 首先,VL是Visual LISP。
对象是否要在其自己的层上移动?如何从图纸中的所有其他内容中确定它们? 这就是问题所在,我必须选择我想移动到冻结层的对象,因为还有其他对象我不想在冻结层上。
这太难了!哈 如果没有什么可以用来确定这些对象,那么自动化恐怕是不可能的。。。
一个LISP可以很容易地加快手动选择过程,但。。。 是 啊我想是的!但最好有一个lisp,可以创建一个隐藏层,并选择我需要移动到该层的对象。
谢谢你的帮助!!
也许这样就足够了:
(defun c:mfrz (/ lay doc ss1 sel1 ss2 sel2)
(vl-load-com)
(setq lay
(vla-get-layers
(setq doc
(vla-get-ActiveDocument
(vlax-get-acad-object)))))
(mapcar
(function
(lambda (Name)
(if (not (tblsearch "LAYER" Name))
(vla-put-freeze
(vla-add lay Name) :vlax-true))))
'("SYSM LAYER" "N-LNWK-MEDM LAYER"))
(prompt "\nSelect Blocks for Layer: 'SYSM LAYER' ...")
(if (setq ss1 (ssget '((0 . "INSERT") (66 . 1))))
(progn
(vlax-for Obj (setq sel1 (vla-get-ActiveSelectionSet doc))
(vla-put-layer Obj "SYSM LAYER"))
(vla-delete sel1)))
(prompt "\nSelect Objects for Layer: 'N-LNWK-MEDM LAYER' ...")
(if (setq ss2 (ssget '((0 . "LINE,CIRCLE"))))
(progn
(vlax-for Obj (setq sel2 (vla-get-ActiveSelectionSet doc))
(vla-put-layer Obj "N-LNWK-MEDM LAYER"))
(vla-delete sel2)))
(princ)) 非常感谢!!它工作得很好!
可以修改以选择圆弧和多段线吗。
谢谢,这将帮助我加快工作速度。 这还包括样条曲线:
(defun c:mfrz (/ lay doc ss1 sel1 ss2 sel2)
(vl-load-com)
(setq lay
(vla-get-layers
(setq doc
(vla-get-ActiveDocument
(vlax-get-acad-object)))))
(mapcar
(function
(lambda (Name)
(if (not (tblsearch "LAYER" Name))
(vla-put-freeze
(vla-add lay Name) :vlax-true))))
'("SYSM LAYER" "N-LNWK-MEDM LAYER"))
(prompt "\nSelect Blocks for Layer: 'SYSM LAYER' ...")
(if (setq ss1 (ssget '((0 . "INSERT") (66 . 1))))
(progn
(vlax-for Obj (setq sel1 (vla-get-ActiveSelectionSet doc))
(vla-put-layer Obj "SYSM LAYER"))
(vla-delete sel1)))
(prompt "\nSelect Objects for Layer: 'N-LNWK-MEDM LAYER' ...")
(if (setq ss2 (ssget '((0 . "ARC,*LINE,CIRCLE"))))
(progn
(vlax-for Obj (setq sel2 (vla-get-ActiveSelectionSet doc))
(vla-put-layer Obj "N-LNWK-MEDM LAYER"))
(vla-delete sel2)))
(princ))
页:
[1]
2