找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1095|回复: 5

[编程申请]:图块内所有对象更改为指定的图层

[复制链接]

已领礼包: 30个

财富等级: 恭喜发财

发表于 2007-8-10 20:23:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
图块内所有对象更改为指定的图层

我的日常工作要处理大量的图纸,这些图纸都有一个特点,都是以图块为基本元素来做图,一张中下难度的图纸就有八百
多个图块。
有以下特点:
1、有大量的图块,一般装配图有几百个定义的图块,大一点的复杂的装配图有数千个定义的图块。
2、图块的镶套很复杂,基本上都是按设备及生产线从零件到部装,到总装这样的。
3、这样的图纸有一些是用三维软件生成的,但更多的却还是用二维软件画的,并不是AUTOCAD,很有可能是用一
个叫PGP的软件画的,然后再转化为DWG格式,来给我们处理。
4、一个图块不会使用两次,所有的图块的定义点都是原点"0,0"。也就是说同一个螺钉安装在不同的位置都是
不同的图块,
5、这样的图纸自然很难看,你可以使用块的REFEDIT,在位编辑来看图纸,再结合零件图,部装图等来,一点点的消化
图纸,但面对总装图中成千成万纠缠在一起的线条还是觉得心烦意乱。


我现在根据这些图纸的特点,利用部装块的名字来建立新图层,然后将块内所有对象的图层更改到该图层上去,这样,便能通过图层的开关命令将图面上大大简化,处理相关的对象,便打开相关的图层配置,无关的部装便隐藏起来。

但这样做工作量很大,如果是几十个不镶套的图块那还好办一点,但现在是几百个,近千个小块镶套在二三百个图块中,仅仅是想一想便失去继续往下做的勇气。

炸开是不可能的,这样的图纸如果炸开,以后基本上就不可能再做第二次修改了,你根本不可能再分清那一根线是那一个零件的,更别说修改了。


在这种情况下我非常需要一个命令,可以将块内的所有对象一个操作便更改到指定的层上去,不管它里面镶了多少层,而且还不影响它原来的位置和结构。这样,操作便大大简化,毕竟只是一个动作,我便可以
很方便的将图面上的所有对象在一个很短的时间内分配到不同的层上去,结合AUTOCAD的图层状态管理器,便可以很方便的在各种不同的零件显示状态下工作。
工作会方便轻松很多。

我迫切需要这样一段程序,我不懂LISP,不知道这样的一段程序有多复麻烦,有没有现成的,类似的,如果没有,我很愿意花钱请各位大侠帮我写一份,只要钱在我能承受的范围内。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-8-11 14:18:19 | 显示全部楼层
  1. [FONT=courier new];;; 图块内所有对象更改为指定的图层
  2. (defun c:test ()
  3.   (CMDLA0)
  4.   (if (null STR)
  5.     (setq STR "TEST")
  6.   )
  7.   (if (null ukw)
  8.     (setq ukw "1")
  9.   )
  10.   (SETQ        STR (USTR 1 "层名" STR NIL)
  11.         ukw (UKWORD 7 "1 2" "实体颜色: 1-随层/2-不变" ukw)
  12.         ss  (ssget '((0 . "INSERT")))
  13.         i   -1
  14.   )
  15.   (xyp-MkLa STR)
  16.   (while (setq s1 (ssname ss (setq i (1+ i))))
  17.     (xyp-block-Change "layer" (xyp-e2o s1) STR)
  18.     (if        (= ukw "1")
  19.       (xyp-block-Change "color" (xyp-e2o s1) acbylayer)
  20.     )
  21.   )
  22.   (CMDLA1)
  23. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 30个

财富等级: 恭喜发财

 楼主| 发表于 2007-8-11 19:02:28 | 显示全部楼层
谢谢 xyp1964  斑主,昨天来网吧上网发的贴子,想不到斑主大人今天在百忙之中就给我答复了,还没有来得及试。想来一定能成。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 30个

财富等级: 恭喜发财

 楼主| 发表于 2007-8-13 19:10:22 | 显示全部楼层
斑主你好,昨天将你给的这段代码存为LISP文件,并将晓东网站内找到的你开发的通用函数文件也加载,运行后,选择块,CAD命令行让输入层的名字,输入名字后,要求输入1或者2这两个数字,确认对象颜色随块还是随层,完整运行后,发现层管理器内新建了一个图层,但块本身和块里对象并没有换到相应的层中去。

是什么问题呢?是不是你的通用函数文件我没有加载正确呢?还是其它什么原因。

斑主能继续教教我怎么弄吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-8-15 21:50:41 | 显示全部楼层
到网络U盘下载通用函数xyplib.vlx
http://xyp1964.ys168.com/
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-9-5 22:29:27 | 显示全部楼层
这个程序非常有用,最近我正在收集图块操作方面的程序。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-20 17:54 , Processed in 0.183471 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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