一个怎么编号的问题
本帖最后由 作者 于 2008-10-25 16:20:16 编辑请问怎样才能给一个闭合的多线段在图上自动编上序号,可以加前缀的。 ;;;下面程序用于在多段线的结点上标注数字或字符和圆圈,供你参考。<br/>(defun c:ddxjdbz (/ p r n e qz xw)<br/> (setq e (entget (car (entsel "\n请选择需要标注的多段线:"))))<br/> (setq r 1)<br/> (setq n (getint "\n输入起始数:"))<br/> (setq h (getreal "\n输入标注字体高度:"))<br/> (if (= n nil)<br/> (setq n 1)<br/> )<br/> (setq qz (getstring "\n请输入前缀字符(如无前缀字符则直接回车):"))<br/> (if<br/> (= (tblobjname "layer" "dmh")<br/> nil<br/> )<br/> (progn<br/> (command "layer" "n" "dmh" "C" "50" "dmh" "")<br/> )<br/> )<br/> (setvar "clayer" "dmh")<br/> (setq xw (getint "\n是否需在结点添加圆圈<1>是;<2>否:"))<br/> (srblc)<br/> (setq l (getvar "ltscale"))<br/> (while r<br/> (progn<br/> (setq p (cdr (assoc 10 e)))<br/> (setq e (cdr (member (assoc 10 e) e)))<br/> (if (/= qz nil)<br/> (progn<br/> (setq n1 (strcat qz (itoa n)))<br/> (command "TEXT" "S" "STANDARD" "J" "BL" p h 0 n1 )<br/> )<br/> )<br/> (if (= qz nil)<br/> (command "TEXT" "S" "STANDARD" "J" "BL" p h 0 n )<br/> )<br/> (if (= xw 1)<br/> (progn<br/> (entmake (list (cons 0 "INSERT")<br/> (cons 100 "AcDbEntity")<br/> (cons 8 "GCD")<br/> (cons 100 "AcDbBlockReference")<br/> (cons 10 p)<br/> (cons 41 1)<br/> (cons 42 1)<br/> (cons 43 1)<br/> (cons 410 "model")<br/> (cons 2 "gc200")<br/> )<br/> )<br/> )<br/> )<br/> (setq n (+ n 1))<br/> (if (= (cdr (assoc 10 e)) nil)<br/> (setq r nil)<br/> )<br/> )<br/> )<br/> (setvar "clayer" "dmh")<br/> (princ)<br/>) <p>不能用,呵呵,不过这里的气氛还真不错!</p> <p>编号顺序有什么要求没?可以用程序过滤组码,得闭合多段线的选择集,然后逐一得到每个闭合对象的中心点,写入编号数字.也可按点击顺序编号</p>
页:
[1]