找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2261|回复: 9

[已解决] 求快速建立图层

[复制链接]

已领礼包: 76个

财富等级: 招财进宝

发表于 2013-10-25 09:29:12 | 显示全部楼层 |阅读模式
悬赏20D豆已解决
求快速建立图层,要求是根据CAD图中出现的单行或多行文字来建层,层名为相应的单行或多行文字,且每个图层的颜色尽量要不一样,如图中出现了文字1,2,3,4,2,1;那建立出来的层就又4层,名即为1,2,3,4;谢谢!

最佳答案

查看完整内容

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

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-25 09:29:13 | 显示全部楼层
参照这个用 Lisp 去做吧
  1. (defun c:tt (/ ss strl i)
  2.   (if (setq ss (ssget '((0 . "text"))))
  3.     (progn
  4.       (setq strl (mapcar '(lambda (x)
  5.        (strcase (xdrx_getpropertyvalue x "TextString"))
  6.      )
  7.     (xdrx_pickset->ents ss)
  8.    )
  9.      strl (XD::List:RemoveDup strl)
  10.      i  0
  11.       )
  12.       (if (< (length strl) 255)
  13. (mapcar '(lambda (x) (xdrx_layer_make x (setq i (1+ i))))
  14.   strl
  15. )
  16.       )
  17.     )
  18.   )
  19.   (princ)
  20. )

点评

颜色都是空白呢?最好图层颜色也能随机一下  详情 回复 发表于 2013-10-28 09:45
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-25 11:31:05 | 显示全部楼层
上图吧,仔细说,你图中所有的文字都建层? 没例外? 专门为建层写的文字?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 76个

财富等级: 招财进宝

 楼主| 发表于 2013-10-28 09:45:35 | 显示全部楼层
st788796 发表于 2013-10-25 11:27
参照这个用 Lisp 去做吧

颜色都是空白呢?最好图层颜色也能随机一下

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-28 18:00:52 来自手机 | 显示全部楼层
chenbing111 发表于 2013-10-28 09:45
颜色都是空白呢?最好图层颜色也能随机一下


图层创建了没有修改实体
你只说了建图层,没说改实体

点评

[attachimg]6174[/attachimg]如图,建立的图层,颜色尽量不一样,并没说要去修改图中的实体哈 ,只是说图层而已  详情 回复 发表于 2013-10-29 15:13
恩 是的 没说修改实体 但是要求新建立的图层的颜色要求尽量不一样的嘛  详情 回复 发表于 2013-10-29 15:11
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3394个

财富等级: 富可敌国

发表于 2013-10-28 19:37:10 | 显示全部楼层
;;; 功能:按文本内容生产图层名,文本自身图层也修改
(defun text_layer ( / ci i j m n pcc s ss ssi text1)
  (prompt "请选择要生成图层的文本:")
  (setq s (ssget))
  (setq ss (ssget "p" '((0 . "text"))))
  (setq n (sslength ss) )
  (setq pcc (list 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221 231 241))
  (setq i 0 ci (length pcc) k 0)
  (repeat n
    (setq ssi (ssname ss i)
          i (1+ i)
    )
    (setq m (entget ssi))
    (setq text1 (cdr (assoc 1 m)))
    (setq text1 (vl-string-translate "/*()~" "XXXXX" text1))
    (setq text1 (vl-string-subst "X" "XX" text1))   
    ;(setq text1 (strcat "B" text1))
    (if (null (tblobjname "layer" text1))
  (progn
    (setq k (1+ k))
    (setq j (cond
              ((<= k ci)
                (nth (1- k) pcc)
              )
              ((> k ci)
                (nth (rem k ci) pcc)
              )
            )
    )                                       ; (princ (strcat "\nj= " (itoa j)))
                                       ; (command "_layer" "m" text1 "c" j "" "")
    (mklayer text1 j)
  )
)

    (setq m (subst
              (cons 8 text1)
              (assoc 8 m)
              m
            )
    )
   
   ;
    (entmod m)
  )
  (princ)
)
;entmake建立图层
(defun mklayer (na cc / el xt)
  (setq cc (rem cc 256))
  (setq el '((0 . "LAYER") (100 . "AcDbSymbolTableRecord")
         (100 . "AcDbLayerTableRecord")
        )       
  )
  (setq xt "Continuous")
    (entmake (append
             el
             (list (cons 2 na) (cons 62 cc) (cons 6 xt) (cons 70 0))
           ))
)

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-10-28 21:49:11 | 显示全部楼层
liuyun242 发表于 2013-10-28 19:37
;;; 功能:按文本内容生产图层名,文本自身图层也修改
(defun text_layer ( / ci i j m n pcc s ss ssi tex ...

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

使用道具 举报

已领礼包: 76个

财富等级: 招财进宝

 楼主| 发表于 2013-10-29 15:11:09 | 显示全部楼层
st788796 发表于 2013-10-28 18:00
图层创建了没有修改实体
你只说了建图层,没说改实体

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

使用道具 举报

已领礼包: 76个

财富等级: 招财进宝

 楼主| 发表于 2013-10-29 15:13:42 | 显示全部楼层
st788796 发表于 2013-10-28 18:00
图层创建了没有修改实体
你只说了建图层,没说改实体

QQ截图20131029151300.png 如图,建立的图层,颜色尽量不一样,并没说要去修改图中的实体哈 ,只是说图层而已
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 19:34 , Processed in 0.344565 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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