将所有内容移动到自定义La
你好有谁知道lisp例程可以将模型空间中的所有内容更改为自定义层名称(G541-M_General lighting),并将颜色设置为白色(7)。
同时,让它删除所有其他未使用的层也会很好。
谢谢
上下快速移动 将为该新图层指定什么线型? 连续线型和默认线宽。 类似手动版本的键盘操作
使用颜色和类型制作G541-M_通用照明层
CHPROP“select all required”la G541-M_General lighting lt bylayer C bylayer
未测试
(defun sslighting ( / ss)
(setq ss (ssget "X" (list (cons 410 "Model"))))
(command "-layer" "M" "G541-M_General lighting" "c" 7 "G541-M_General lighting" "lT" "Continuous"
"G541-M_General lighting" "S" "G541-M_General lighting" "")
(command "chprop" ss "" "La" "G541-M_General lighting")
)
(sslighting)
谢谢你的代码,不管怎样,代码是否可以创建新层并使其成为当前层,而无需手动创建? lisp例程可能会执行以下操作吗?
1.创建一个新层,名为:G541-M_General lighting(层默认值很好)。
2、将其设置为当前。
3.将图纸中的所有项目(包括块内的层)移动到新层上。
4、自动运行“按层设置”命令,将所有内容恢复为默认值。
删除所有其他层,包括任何关闭或冻结的层。
6、删除图纸中的所有擦除。
7、清除图纸。
也许我需要花钱请人来写。
谢谢
上下快速移动 修复了1和2我的错误-层代码更新。
第3步“搜索块到当前层”
4.
5搜索删除层需要一个版本来检查和冻结
; 作者:马克·托马斯
; 该文件包含2个函数:
; del layer将删除选定图层上的所有对象并将其清除
6.
(setq ss (ssget "X" (list (cons 0 "WIPEOUT"))))
(command "erase" ss "")
7-清除!! 谢谢BIGAL,代码正在变得更好。
第三步-我会在网上搜索。
步骤4-该命令已存在于AutoCAD SETBYLAYER中,是否可以将其合并到代码中?
http://help.autodesk.com/view/ACDLT/2016/ENU/?guid=GUID-A9D9FF14-4EF6-4A25-B0F4-506C6B792E9E
第五步-我会在网上搜索。
第6步-我尝试将该代码添加到我的代码中,但它不起作用,也许我把它放错了位置。
第7步-同上。 这就是我目前所拥有的。
(定义c:cadqa(/ss)
(setq ss(ssget“X”(列表(cons 410“模型”)))
(命令“-layer”“M”“G541-M_General lighting”“c”7“G541-M_General lighting”“lT”“Continuous”
“G541-M_General lighting”“S”“G541-M_General lighting”“”)
(命令“chprop”ss““La”G541-M_General lighting”)
)
(cadqa) 也许这个添加层
(setqdoc (vla-get-activedocument (vlax-get-acad-object))) ; open database
(vlax-for block (vla-get-blocks doc)
(if (not (wcmatch (strcase (vla-get-name block) t) "*_space*"))
(vlax-for ent block
(vla-put-layer ent (getvar "clayer")) ; current layer
(vla-put-color ent 0)
(vla-put-linetype ent "Bylayer")
(vla-put-lineweight ent aclnwtbyblock)
) ;_ end of vlax-for
) ;_ end of if
) ;_ end of vlax-for
(vla-regen doc acactiveviewport)
页:
[1]
2