明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 816|回复: 0

[源码] 对选中的直线批量修改图层

[复制链接]
发表于 2018-4-17 23:24:34 | 显示全部楼层 |阅读模式
可以添加对文字和标注尺寸批量修改

纳闷的是continuous和Continuous居然返回结果不一样!!! 还有line和LINE也是不一样的,用“=”比较的话返回nil,咋解决?用strcase吗?
(defun c:chg ()
(prompt "\n<<框选欲更新的直线>>")
(setq ss (ssget))
(setq k 0)
(repeat (sslength ss)
        (setq ename (ssname ss k));ss编号从0开始
        (setq elist (entget ename))
        (setq etype (sub_groupcodevalue_get 0 elist))
        (setq elinetype (sub_groupcodevalue_get 6 elist))
        (cond ((= etype (strcase "line"))
                 (if (or (= elinetype "Continuous") (= (sub_layerlinetype_get elist) "Continuous"))
               (progn (setq elist (sub_eline_modify elist)) (entmod elist) (princ "\n直线修改完毕"))))                       
        )
(setq k (1+ k)))
)

(defun sub_layerlinetype_get(elist);;;获取选择对象所在图层设定的线型
(cdr (assoc 6 (setq elist (entget (tblobjname "layer" (cdr (assoc 8 elist)))))))
)

(defun sub_eline_modify(elist)
(sub_groupcodevalue_subst 8 "0" elist)
)

(defun sub_groupcodevalue_get(gcode elist)
(cdr (assoc gcode elist))
)

(defun sub_groupcodevalue_subst(gcode gcodevalue elist);;;获得groupcode的值
(cdr (assoc gcode elist))
)

(defun sub_groupcodevalue_subst(gcode gcodevalue elist);;;替换groupcode的值
(subst (cons gcode gcodevalue) (assoc gcode elist) elist)
)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-19 19:48 , Processed in 0.165624 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表