明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4047|回复: 21

[基础] 求助一个可以修改块内图层为Bylayer的插件程序

  [复制链接]
发表于 2018-6-13 11:31 | 显示全部楼层 |阅读模式
求助一个可以修改块内图层为Bylayer的插件程序(比如我有一个图层,图层内的颜色是红色,但是块内还是黄色,怎么样才可以不进块批量修改成与图层一致的颜色),先谢过大神
发表于 2018-6-15 16:09 | 显示全部楼层
本帖最后由 yshf 于 2018-6-15 16:14 编辑
  1. (defun c:cc()
  2.     (setq AcadDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  3.     (setq Blocks (vla-get-blocks AcadDoc))
  4.     (if (setq ssa (ssget '((0 . "INSERT"))))
  5.         (vlax-for Ent (vla-get-ActiveSelectionSet AcadDoc)
  6.             (vlax-for Obj (vla-item Blocks (vla-get-name Ent))
  7.                 (vla-put-color Obj 256) ;对象颜色随层
  8.             )
  9.         )
  10.     )
  11.     (vlax-release-object Blocks)
  12.     (vlax-release-object AcadDoc)
  13.     (princ)
  14. )

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 很给力!

查看全部评分

回复 支持 1 反对 1

使用道具 举报

发表于 2018-6-14 10:01 | 显示全部楼层
SETBYLAYER
回复 支持 1 反对 0

使用道具 举报

发表于 2018-6-14 10:35 | 显示全部楼层
  1. (defun c:tt ()
  2.   (if (and
  3.         (setq e (car (entsel "\n选择块:")))
  4.         (= "INSERT" (cdr (assoc 0 (setq el (entget e)))))
  5.       )
  6.     (vlax-for o        (setq blkdef (vla-item (vla-get-blocks
  7.                                          (vla-get-ActiveDocument
  8.                                            (vlax-get-acad-object)
  9.                                          )
  10.                                        )
  11.                                        (cdr (assoc 2 el))
  12.                              )
  13.                 )
  14.       (vla-put-layer o "0") ;_ 对象修改到"0"层
  15.       (vla-put-color o 256) ;_ 对象颜色随层
  16.     )
  17.   )
  18.   (princ)
  19. )

评分

参与人数 2明经币 +2 收起 理由
tigcat + 1 感谢G版,帮了大忙
669423907 + 1 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2018-6-13 12:30 | 显示全部楼层
您试过在 '0' 层造图块吗?
 楼主| 发表于 2018-6-13 15:03 | 显示全部楼层
Andyhon 发表于 2018-6-13 12:30
您试过在 '0' 层造图块吗?

没懂你的意思呢,我的情况是别人做好了块,我想通过程序直接修改,而不进块
发表于 2018-6-13 15:38 | 显示全部楼层
我们在学用AutoCAD之初即被带上 得在 '0' 层造图块的规范
是以我们的程序链就缺了您所说的这一环
发表于 2018-6-15 09:24 | 显示全部楼层

G版:
我觉得楼主想要的是块内对象为Bylayer,
所以可以去掉 ;(vla-put-layer o "0") ;_ 对象修改到"0"层,
最后添加 (command "_move" e "" 0 0) ;刷新
能否改为多选呢?
 楼主| 发表于 2018-6-25 12:14 | 显示全部楼层

我想请教下,我导入到cad,提示说未知命令,您能再帮忙看看是什么问题吗
 楼主| 发表于 2018-6-25 13:06 | 显示全部楼层

我要的就是这个命令,谢谢,但是怎么用lisp程序,把图纸内所有的块一次按这个命令修改到位呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 20:52 , Processed in 0.327037 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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