chpmould 发表于 2009-4-29 02:10:00

给圆增加标识字符

如图片给选到的圆,增加标识字符, 如有同心圆只标一个字符,求高手帮助!

chpmould 发表于 2009-4-29 02:11:00

chpmould 发表于 2009-4-29 12:39:00

不要让它沉下去,我自己再顶

chpmould 发表于 2009-5-2 10:43:00

顶顶顶顶顶顶顶顶顶

sailorcwx 发表于 2009-5-2 14:37:00

本帖最后由 作者 于 2009-5-3 2:05:08 编辑 <br /><br /> <p>(defun c:test()</p><p>&nbsp; ;加载vlisp函数<br/>&nbsp; (vl-load-com)</p><p>&nbsp; ;获取圆选集<br/>&nbsp; (if (setq Ss (ssget '((0 . "Circle"))))</p><p>&nbsp;&nbsp;&nbsp; (progn</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;初始化标志变量<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq Flags nil</p><p>&nbsp;&nbsp;&nbsp;&nbsp; ;索引<br/>&nbsp;&nbsp;&nbsp;&nbsp; i 0<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;遍历选集<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat (sslength Ss)</p><p>&nbsp;;获取圆<br/>&nbsp;(setq ET (ssname Ss i)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;获取圆数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ER (entget ET)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;圆心坐标<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPt (cdr (assoc 10 ER))</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;圆半径<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CR (cdr (assoc 40 ER))</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</p><p>&nbsp;;检索该位置是否已经有标志<br/>&nbsp;(if (setq Flag (assoc CPt Flags))</p><p>&nbsp;&nbsp; ;标志存在就比较标志的位置<br/>&nbsp;&nbsp; ;比较半径取最大的<br/>&nbsp;&nbsp; (if (&gt; CR (cadr Flag))(setq Flags (subst (list CPt CR) Flag Flags)))<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; ;标志不存在,添加标志位置<br/>&nbsp;&nbsp; (setq Flags (append Flags (list (list CPt CR))))</p><p>&nbsp;&nbsp; )</p><p>&nbsp;;索引递增<br/>&nbsp;(setq i (1+ i))</p><p>&nbsp;)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;添加标记<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if Flags</p><p>&nbsp;(progn</p><p>&nbsp;&nbsp; ;CAD<br/>&nbsp;&nbsp; (setq Cad (vlax-get-acad-object)</p><p>&nbsp;&nbsp;;当前图档<br/>&nbsp;&nbsp;Doc (vla-get-activedocument Cad)<br/>&nbsp;&nbsp;)</p><p>&nbsp;&nbsp; ;当前空间<br/>&nbsp;&nbsp; (if (= (getvar "TILEMODE") 1)</p><p>&nbsp;&nbsp;&nbsp;&nbsp; ;模型空间"TILEMODE"变量为1<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq Spc (vla-get-modelspace Doc))</p><p>&nbsp;&nbsp;&nbsp;&nbsp; ;图纸空间"TILEMODE"变量为0<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq Spc (vla-get-paperspace Doc))</p><p>&nbsp;&nbsp;&nbsp;&nbsp; )</p><p>&nbsp;&nbsp; ;索引<br/>&nbsp;&nbsp; (setq i 0)</p><p>&nbsp;&nbsp; ;保存捕捉设置<br/>&nbsp;&nbsp; (setq OsMode (getvar "OSMODE")</p><p>&nbsp;&nbsp;;当前字高<br/>&nbsp;&nbsp;TxtH (getvar "TEXTSIZE")</p><p>&nbsp;&nbsp;;初始标记<br/>&nbsp;&nbsp;ASC 65</p><p>&nbsp;&nbsp;;半径标记关系<br/>&nbsp;&nbsp;RF nil</p><p>&nbsp;&nbsp;)</p><p>&nbsp;&nbsp; ;关闭捕捉<br/>&nbsp;&nbsp; (setvar "OSMODE" 0)</p><p>&nbsp;&nbsp; ;遍历表生成标记<br/>&nbsp;&nbsp; (repeat (length Flags)</p><p>&nbsp;&nbsp;&nbsp;&nbsp; ;读取标志信息<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq Flag (nth i Flags)</p><p>&nbsp;&nbsp;&nbsp; ;标志位置<br/>&nbsp;&nbsp;&nbsp; BPt (polar (car Flag) (* pi 1.25) (+ (cadr Flag) (* (sqrt 2) txtH)))</p><p>&nbsp;&nbsp;&nbsp; )</p><p>&nbsp;&nbsp;&nbsp;&nbsp; ;读取标记编号<br/>&nbsp;&nbsp;&nbsp;&nbsp; (if (setq strRF (assoc (cadr FLag) RF))</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;生成标记<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vla-addtext Spc (cdr strRF) (vlax-3d-point BPt) TxtH)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn</p><p>&nbsp;&nbsp;(vla-addtext Spc (chr ASC) (vlax-3d-point BPt) TxtH)</p><p>&nbsp;&nbsp;(setq RF (append RF (list (cons (cadr FLag) (chr ASC))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ASC (1+ ASC)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp; ;索引递增<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq i (1+ i))<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; )</p><p>;恢复捕捉设置<br/>&nbsp;&nbsp; (setvar "OSMODE" OsMode)</p><p>&nbsp;&nbsp; )</p><p>&nbsp;)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</p><p>&nbsp;&nbsp;&nbsp; )</p><p>&nbsp; (princ)</p><p>&nbsp; )</p>

liminnet 发表于 2009-5-2 21:51:00

chpmould 发表于 2009-5-3 09:46:00

谢谢楼上Sailorcwx的帮助

chpmould 发表于 2009-5-3 09:57:00

如果是块能否实现同名块增加标示符?
页: [1]
查看完整版本: 给圆增加标识字符