Nico 发表于 2023-5-25 16:34:41

批量块内对象图层修改,请高手编一个小程序

本帖最后由 Nico 于 2023-5-25 16:38 编辑

生成的图形,打印出来 不清楚,请高手做个批量程序更一下块内对象的图层


功能:
1、框选对象,过滤只留块
2、对多全块内的对象进行修改(具体要求见备注或.dwg文件)。
3、完成

请看附件.dwg文件
原图形 的虚线(颜色:172.172.172   线型:线宽   )改为默认   (颜色: ByLayer ,线型: ByLayer , 线宽ByLayer ) 并放置在A2图层上面。

原图形 的实线(颜色:白线型:线宽:0.09   )改为默认   (颜色: ByLayer ,线型: ByLayer , 线宽ByLayer ) 并放置在0图层上面。









vitalgg 发表于 2023-5-25 20:02:17

本帖最后由 vitalgg 于 2023-5-25 20:08 编辑

(defun c:hc ()
;; 选择需要改色的块
(setq blks (pickset:to-list (ssget '((0 . "insert")))))
;; 取得无重复的块名列表
(setq blk-names (list:remove-duplicates
                  (mapcar '(lambda (x) (entity:getdxf x 2)) blks)
                  ))
(foreach blkname blk-names
    (foreach ent (block:ent-list blkname)
      (cond
      ((or
         (= (entity:getdxf ent 62) 253)
         (= (entity:getdxf ent 420) 11316396))
         ;;对ent 颜色为 172.172.172的进行处理
         ;; 删除真彩色,色号
         (entity:deldxf ent 420)
         (entity:putdxf ent 62 256)
         ;; 删除线型线宽
         (vla-put-Linetype (e2o ent) "bylayer")
         (vla-put-Lineweight (e2o ent) acLnWtByLayer)
         ;; 设图层为 A2
         (entity:putdxf ent 8 "A2")
      )
      ((or
         (= (entity:getdxf ent 62) 7))
         ;;对ent 颜色为 7 的进行处理
         ;; 删除真彩色,色号
         (entity:deldxf ent 420)
         (entity:putdxf ent 62 256)
         ;; 删除线型线宽
         (vla-put-Linetype (e2o ent) "bylayer")
         (vla-put-Lineweight (e2o ent) acLnWtByLayer)
         ;; 设图层为 0
         (entity:putdxf ent 8 "0")
      )
      )
    )
)
(@:cmd "regen")
)

上面的代码需要在有 @lisp 环境下运行。
在 CAD 中 安装 @lisp ,请至 http://atlisp.cn

00放飞梦想00 发表于 2023-5-28 05:22:21

vitalgg 发表于 2023-5-25 20:02
上面的代码需要在有 @lisp 环境下运行。
在 CAD 中 安装 @lisp ,请至 http://atlisp.cn

不开文件可以改吗?

Nico 发表于 2023-6-2 20:09:31

vitalgg 发表于 2023-5-25 20:02
上面的代码需要在有 @lisp 环境下运行。
在 CAD 中 安装 @lisp ,请至 http://atlisp.cn

网站上没看懂要下载哪一个安装包

vitalgg 发表于 2023-6-2 22:15:57

Nico 发表于 2023-6-2 20:09
网站上没看懂要下载哪一个安装包

只安装核心程序就可以执行上面的代码了。

Nico 发表于 2023-6-3 09:37:25

vitalgg 发表于 2023-6-2 22:15
只安装核心程序就可以执行上面的代码了。

感谢会用了,建议网站做一页安装说明放显眼的位置。

tensir 发表于 2024-7-2 13:12:56

感谢作者的分享!
页: [1]
查看完整版本: 批量块内对象图层修改,请高手编一个小程序