A72418785 发表于 2008-10-25 16:19:00

一个怎么编号的问题

本帖最后由 作者 于 2008-10-25 16:20:16 编辑

请问怎样才能给一个闭合的多线段在图上自动编上序号,可以加前缀的。

xgr 发表于 2008-10-25 19:58:00

;;;下面程序用于在多段线的结点上标注数字或字符和圆圈,供你参考。<br/>(defun c:ddxjdbz (/ p r n e qz xw)<br/>&nbsp; (setq e (entget (car (entsel "\n请选择需要标注的多段线:"))))<br/>&nbsp; (setq r 1)<br/>&nbsp; (setq n (getint "\n输入起始数:"))<br/>&nbsp; (setq h (getreal "\n输入标注字体高度:"))<br/>&nbsp; (if (= n nil)<br/>&nbsp;&nbsp;&nbsp; (setq n 1)<br/>&nbsp; )<br/>&nbsp; (setq qz (getstring "\n请输入前缀字符(如无前缀字符则直接回车):"))<br/>&nbsp; (if<br/>&nbsp;&nbsp;&nbsp; (= (tblobjname "layer" "dmh")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nil<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "layer" "n" "dmh" "C" "50" "dmh" "")<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (setvar "clayer" "dmh")<br/>&nbsp; (setq xw (getint "\n是否需在结点添加圆圈&lt;1&gt;是;&lt;2&gt;否:"))<br/>&nbsp; (srblc)<br/>&nbsp; (setq l (getvar "ltscale"))<br/>&nbsp; (while r<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p (cdr (assoc 10 e)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq e (cdr (member (assoc 10 e) e)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (/= qz nil)<br/>&nbsp;(progn<br/>&nbsp;&nbsp; (setq n1 (strcat qz (itoa n)))<br/>&nbsp;&nbsp; (command "TEXT" "S" "STANDARD" "J" "BL" p h 0 n1 )<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= qz nil)<br/>&nbsp;(command "TEXT" "S" "STANDARD" "J" "BL" p h 0 n )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= xw 1)<br/>&nbsp;(progn<br/>&nbsp;&nbsp; (entmake (list (cons 0 "INSERT")<br/>&nbsp;&nbsp;&nbsp; (cons 100 "AcDbEntity")<br/>&nbsp;&nbsp;&nbsp; (cons 8 "GCD")<br/>&nbsp;&nbsp;&nbsp; (cons 100 "AcDbBlockReference")<br/>&nbsp;&nbsp;&nbsp; (cons 10 p)<br/>&nbsp;&nbsp;&nbsp; (cons 41 1)<br/>&nbsp;&nbsp;&nbsp; (cons 42 1)<br/>&nbsp;&nbsp;&nbsp; (cons 43 1)<br/>&nbsp;&nbsp;&nbsp; (cons 410 "model")<br/>&nbsp;&nbsp;&nbsp; (cons 2 "gc200")<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq n (+ n 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= (cdr (assoc 10 e)) nil)<br/>&nbsp;(setq r nil)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (setvar "clayer" "dmh")<br/>&nbsp; (princ)<br/>)

liminnet 发表于 2008-10-25 23:38:00

A72418785 发表于 2008-10-26 09:44:00

<p>不能用,呵呵,不过这里的气氛还真不错!</p>

ljttjl 发表于 2008-10-27 18:39:00

<p>编号顺序有什么要求没?可以用程序过滤组码,得闭合多段线的选择集,然后逐一得到每个闭合对象的中心点,写入编号数字.也可按点击顺序编号</p>
页: [1]
查看完整版本: 一个怎么编号的问题