[求助]获取文件所有图层名,并把图层名写在对应的层上
<p>获取文件所有图层名,并把图层名写在对应的层上</p><p>CAD的扩展工具中合并图层,挺好用的,我合并图层时,都是在不要的层上新建一个图元,再使用合并图层命令,挺麻烦的,所以建议,把获取文件所有图层名,并把图层名写在对应的层上,一看层名,就知道这个图层需要不需要,应该合并不合并了,一目了然,请高手帮帮忙。</p> ;;;排序和CAD显示的顺序一样!(defun TABLE (S / D R)
(while (setq D (tblnext S (null D)))
(setq R (cons (cdr (assoc 2 D)) R))
)
)
(defun C:TT (/ LST N PT)
(setq LST (acad_strlsort (TABLE "LAYER"))) ;;;CAD显示的顺序
(setq PT (getpoint "文字插入点: ")
N 0
)
(foreach NAME LST
(entmake (list '(0 . "TEXT") (cons 8 NAME) '(100 . "AcDbText") (cons 10
(list
(car PT)
(-
(cadr PT) N
)
)
) '
(40 . 6) (cons 1 NAME)
)
)
(setq N (+ N 10.0))
)
(princ)
) flowerson 发表于 2008-6-7 16:53
程序很好。倒叙一下和显示的顺序一样!(defun TABLE (S / D R) (while (setq D (tblnext S (null D)) ...
可否修改一下,这些文字都自动跟随自己所在的图层? 不错的,学习一下 (defun TABLE (S / D R)<br/> (while (setq D (tblnext S (null D)))<br/> (setq R (cons (cdr (assoc 2 D)) R))<br/> )<br/>)<br/>(defun C:TT (/ LST N PT)<br/> (setq LST (TABLE "LAYER"))<br/> (setq PT (getpoint "文字插入點: ")<br/> N 0<br/> )<br/> (foreach NAME LST<br/> (entmake (list<br/> '(0 . "TEXT")<br/> (cons 8 NAME)<br/> '(100 . "AcDbText")<br/> (cons 10 (list (car PT) (- (cadr PT) N)))<br/> '(40 . 6)<br/> (cons 1 NAME)<br/> )<br/> )<br/> (setq N (+ N 10.0))<br/> )<br/> (princ)<br/>) <p>恩,程序相当好,现在配合CAD的扩展工具中的合并图层来,是相当顺手。</p><p>但生成的文字在世界坐标系中与用户坐标系中显示不同,但条件仍然满足。非常感谢</p> <p>程序很好。倒叙一下和显示的顺序一样!</p><p>(defun TABLE (S / D R)<br/> (while (setq D (tblnext S (null D)))<br/> (setq R (cons (cdr (assoc 2 D)) R))<br/> )<br/>)<br/>(defun C:TT (/ LST N PT)<br/> (setq LST (reverse (TABLE "LAYER")))<br/> (setq PT (getpoint "文字插入點: ")<br/> N 0<br/> )<br/> (foreach NAME LST<br/> (entmake (list '(0 . "TEXT") (cons 8 NAME) '(100 . "AcDbText") (cons 10<br/> (list<br/> (car PT)<br/> (-<br/> (cadr PT) N<br/> )<br/> )<br/> ) '<br/> (40 . 6) (cons 1 NAME)<br/> )<br/> )<br/> (setq N (+ N 10.0))<br/> )<br/> (princ)<br/>)<br/></p> 好用的很,下来研究研究,谢谢 没什么意义。不明白 龙龙仔 发表于 2007-9-29 16:48 static/image/common/back.gif
(defun TABLE (S / D R) (while (setq D (tblnext S (null D))) (setq R (cons (c ...
请问Z版,方便改成用鼠标点取两点来确定字高吗?
有时候那字体都小得看不见了。非常感谢! 用最笨的办法了.....
;列出所有图层名(龙龙仔 2007-9-29 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=63268)
(defun c:tcmm(/ LST N PT)
(command "undo" "be")
(defun TABLE (S / D R)
(while (setq D (tblnext S (null D)))
(setq R (cons (cdr (assoc 2 D)) R))))
(setq LST (reverse (TABLE "LAYER")))
(setq PT (getpoint "请指定文字插入點:") N 0)
(foreach NAME LST (entmake (list '(0 . "TEXT") (cons 8 NAME) '(100 . "AcDbText")
(cons 10 (list (car PT) (- (cadr PT) N))) ' (40 . 6) (cons 1 NAME)))
(setq N (+ N 10.0)))
(command "zoom" "O" (entlast) "")
(command "undo" "e")
(princ))
大师们方便给个更好的办法吗? 669423907 发表于 2013-5-19 20:39 static/image/common/back.gif
用最笨的办法了.....
;列出所有图层名(龙龙仔 2007-9-29 http://bbs.mjtd.com/forum.php?mod=viewthread& ...
谢谢楼主代码,解决大问题了
嘿嘿~
不过为什么写出来的顺序跟现在的图层顺序不一致呢?
这点楼主有没有什么办法解决一下 不错,留个脚印!!
页:
[1]
2