找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 412|回复: 4

[每日一码] 移动所有的XREFS到指定的层前缀的层

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-4-27 23:28:16 | 显示全部楼层 |阅读模式

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

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

×

移动所有的XREFS到指定的层前缀的层,比如:"0-XREF_" ,并提示用户是否锁定该层。


x2lb.PNG

x2la.PNG

x2lc.PNG



  1. (defun c:x2l(/ *AcadDoc* s x old new lst nom)
  2.   (vl-load-com)
  3.   (setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object))
  4.     s ""
  5.   )
  6.   (vla-startundomark *AcadDoc*)
  7.   (vlax-for x (vla-get-blocks *AcadDoc*)
  8.     (and (eq (vla-get-isxref x) :vlax-true)
  9.       (setq s (strcat s (vla-get-name x) ","))
  10.     )
  11.   )
  12.   (or    (= s "")
  13.     (not (ssget "x" (list (cons 0 "insert") (cons 2 s))))
  14.     (initget 0 "Yes No")
  15.     (eq (getkword "\nXRefs To Layers\nLock XRef layers? [Yes/No] <Yes>: ") "No")
  16.     (progn
  17.       (vlax-for x (setq ss (vla-get-activeselectionset *AcadDoc*))
  18.     (vla-put-lock (vla-item (vla-get-layers *AcadDoc*) (setq nom (vla-get-layer x))) :vlax-true)
  19.     (if (setq old (assoc nom lst))
  20.       (setq new (cons (car old) (1+ (cdr old)))
  21.         lst (subst new old lst)
  22.       )
  23.       (setq lst (cons (cons nom 1) lst))
  24.     )
  25.       )
  26.       (vla-delete ss)
  27.       (alert (apply 'strcat
  28.             (mapcar '(lambda (x) (strcat "\n"
  29.                          (itoa (cdr x))
  30.                          " XRef(s) on layer: \""
  31.                          (car x)
  32.                          "\""
  33.                      )
  34.                 )
  35.                 (vl-sort lst '(lambda(a b)(< (car a) (car b))))
  36.             )
  37.          )
  38.       )
  39.     )
  40.   )
  41.   (vla-endundomark *AcadDoc*)
  42.   (princ)
  43. )

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

已领礼包: 6468个

财富等级: 富甲天下

发表于 2017-4-28 00:12:16 | 显示全部楼层
支持楼主源码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8727个

财富等级: 富甲天下

发表于 2017-4-28 07:29:05 | 显示全部楼层
感谢 Lisphk 分享源码程序!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4751个

财富等级: 富可敌国

发表于 2017-4-28 07:42:18 | 显示全部楼层
源码当然是取直接的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1304个

财富等级: 财源广进

发表于 2017-4-28 08:48:58 | 显示全部楼层
感谢 Lisphk 分享源码程序!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 12:28 , Processed in 0.369964 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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