品茗新秀 发表于 2014-3-23 18:54 
图层生成是这个样子,如果能排序就好了,如图圈圈的应在最后
 - (defun c:lsa ( / layerdata layerlst layername pt textsize)
- (defun maketext (locationpoint textheight text rowtype)
- (entmake (list '(0 . "TEXT")
- '(100 . "AcDbText")
- (cons 40 textheight)
- '(41 . 0.8)
- (cons 1 text)
- (cons 72 rowtype)
- '(10 0.0 0.0 0.0)
- (cons 11 (trans locationpoint 1 0))
- '(73 . 2)
- )
- )
- )
- (setq textsize (* (getvar "dimscale") (getvar "textsize")))
- (while (setq layerdata (tblnext "layer" (null layerdata)))
- (setq layername (cdr (assoc 2 layerdata)))
- (setq layerlst (cons layername layerlst))
- )
- (if (setq pt (getpoint "\n 指定插入点:"))
- (foreach layername (acad_strlsort layerlst)
- (setvar "clayer" layername)
- (maketext pt textsize layername 0)
- (setq pt (list (car pt) (- (cadr pt) (* 2 textsize))))
- )
- )
- (princ)
- )
这下应该可以了. |