找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1345|回复: 8

[求助]:选择图层加前缀!!!

[复制链接]

已领礼包: 8个

财富等级: 恭喜发财

发表于 2008-1-3 08:28:50 | 显示全部楼层 |阅读模式

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

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

×
要在选中物体的图层说直接加上前缀,不要有新的图层产生,直接把物体的图层改成需要的,希望可以支持一次选者多个不同图层的物体,在命令行提示输入要前缀的字母时,能有个默认的如E-,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 10509个

财富等级: 富甲天下

发表于 2008-1-3 11:00:49 | 显示全部楼层
[php]
;选择图层加前缀 晓东 zxq0220 2008.1.3
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (princ "\n选择物体 :")
          (setq ss (ssget))
                  (setq ap (getstring "\n前缀 <E->:") ap (if ap ap "E-"))) (progn
  (setq i -1)
  (repeat (sslength ss)
   (setq ln (cdr (assoc 8 (entgt(ssname ss (setq i (1+ i)))))))
   (command "rename" "LA" ln (strcat ap ln))
  )
))
(setvar "CMDECHO" 1)
(princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 10509个

财富等级: 富甲天下

发表于 2008-1-3 12:34:07 | 显示全部楼层
[php]
;选择图层加前缀 晓东 zxq0220 2008.1.3
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (princ "\n选择物体 :")
          (setq ss (ssget))
                  (setq ap (getstring "\n前缀 <E->:") ap (if ap ap "E-"))) (progn
  (setq i -1 lnl (list))
  (repeat (sslength ss)
   (setq ln (cdr (assoc 8 (entget(ssname ss (setq i (1+ i)))))))
   (if (not (member ln lnl)) (setq lnl (append lnl (list ln))))
  )
  (setq i -1)
  (repeat (length lnl)
   (command "rename" "LA" (setq ln (nth (setq i (1+ i)) lnl)) (strcat ap ln))
  )
))
(setvar "CMDECHO" 1)
(princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

 楼主| 发表于 2008-1-3 14:31:52 | 显示全部楼层
可以用了,谢谢!!!
就是默认的E-还是要输入,如果不输入程序就不运行?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-1-3 14:38:58 | 显示全部楼层

  1.   [FONT=courier new]
  2. (defun c:test (/ actdoc activesset ap layers laylst layname ss)
  3.   (if (and
  4.         (princ "\n选择要改层名的物体 :")
  5.         (setq ss (ssget))
  6.         (setq ap (getstring "\n前缀 <E->:")
  7.               ap (if (= ap "")
  8.                    "E-"
  9.                    ap
  10.                  )
  11.         )
  12.       )
  13.     (progn
  14.       (setq actdoc (vla-get-activedocument (vlax-get-acad-object)))
  15.       (setq activesset (vla-get-ActiveSelectionSet actdoc))
  16.       (setq layers (vla-get-layers actdoc))
  17.       (vlax-for each ActiveSset (setq layname (vla-get-layer each))
  18.                 (if (not (member layname laylst))
  19.                   (setq laylst (cons layname laylst))
  20.                 )
  21.       )
  22.       (foreach each laylst
  23.         (vla-put-name (vla-item layers each) (strcat ap each))
  24.       )
  25.     )
  26.   )
  27.   (princ)
  28. )

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

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 10509个

财富等级: 富甲天下

发表于 2008-1-3 15:17:49 | 显示全部楼层
[php]
;选择图层加前缀 晓东 zxq0220 2008.1.3
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (princ "\n选择物体 :")
          (setq ss (ssget))
          (setq ap (getstring "\n前缀 <E->:") ap (if (= ap "") "E-" ap))) (progn
  (setq i -1 lnl (list))
  (repeat (sslength ss)
   (setq ln (cdr (assoc 8 (entget(ssname ss (setq i (1+ i)))))))
   (if (not (member ln lnl)) (setq lnl (append lnl (list ln))))
  )
  (setq i -1)
  (repeat (length lnl)
   (command "rename" "LA" (setq ln (nth (setq i (1+ i)) lnl)) (strcat ap ln))
  )
))
(setvar "CMDECHO" 1)
(princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-1-4 13:46:51 | 显示全部楼层

  1.   [FONT=courier new]
  2. (defun c:test (/ ap laylst layname ss sslst)
  3.   (if (null (setq ap (vlax-ldata-get "mydict" "ap")))
  4.     (setq ap "E-"
  5.           ap (ustr 1  "\n\t前缀" ap nil)
  6.     )
  7.     (setq ap (ustr 1  "\n\t前缀" ap nil))
  8.   )
  9.   (vlax-ldata-put "mydict" "ap" ap)
  10.   (if (and
  11.         (princ "\n选择物体 :")
  12.         (setq ss (ssget))
  13.         ap
  14.       )
  15.     (progn
  16.       (setq sslst (vl-remove-if 'listp (mapcar
  17.                                          'cadr
  18.                                          (ssnamex ss)
  19.                                        )
  20.                   )
  21.       )
  22.       (foreach each sslst
  23.         (if (not (member (setq layname (cdr (assoc 8 (entget each))))
  24.                          laylst
  25.                  )
  26.             )
  27.           (setq laylst (cons layname laylst))
  28.         )
  29.       )
  30.       (foreach each laylst
  31.         (if (/= each "0")(command "_.rename" "la" each (strcat ap each)))
  32.       )
  33.     )
  34.   )
  35.   (princ)
  36. )
  37. (defun ustr (bit msg def spflag / inp nval)
  38.   (if (and
  39.         def
  40.         (/= def "")
  41.       )
  42.     (setq msg (strcat "\n" msg "<" def ">:")
  43.           inp (getstring msg spflag)
  44.           inp (if (= inp "")
  45.                 def
  46.                 inp
  47.               )
  48.     )
  49.     (progn
  50.       (setq msg (strcat "\n" msg ": "))
  51.       (if (= bit 1)
  52.         (while (= "" (setq inp (getstring msg spflag))))
  53.         (setq inp (getstring msg spflag))
  54.       )
  55.     )
  56.   )
  57.   (if inp
  58.     inp
  59.     def
  60.   )
  61. )

  62.   [/FONT]



  1.   [FONT=courier new]
  2. (defun c:tst (/ ap laylst layname ss sslst)
  3.   (if (null (setq ap (vlax-ldata-get "mydict" "ap")))
  4.     (setq ap "E-"
  5.           ap (ustr 1 "\n\t前缀" ap nil)
  6.     )
  7.     (setq ap (ustr 1 "\n\t前缀" ap nil))
  8.   )
  9.   (vlax-ldata-put "mydict" "ap" ap)
  10.   (if (and
  11.         (princ "\n选择物体 :")
  12.         (setq ss (ssget))
  13.         ap
  14.       )
  15.     (progn
  16.       (setq sslst (th-ss2lst ss))
  17.       (foreach each sslst
  18.         (if (not (member (setq layname (cdr (assoc 8 (entget each))))
  19.                          laylst
  20.                  )
  21.             )
  22.           (setq laylst (cons layname laylst))
  23.         )
  24.       )
  25.       (foreach each laylst
  26.         (if (/= each "0")
  27.           (txt-sub-upd (tblobjname "LAYER" each) 2 (strcat ap each))
  28.         )
  29.       )
  30.     )
  31.   )
  32.   (princ)
  33. )
  34. (defun txt-sub-upd (ename code newvalue)
  35.   (entmod (subst
  36.             (cons code newvalue)
  37.             (assoc code (entget ename))
  38.             (entget ename)
  39.           )
  40.   )
  41.   (entupd ename)
  42. )  [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 06:57 , Processed in 0.476383 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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