cj52000 发表于 2009-6-26 21:54:00

[求助]求自动区分圆的大小并标识的LISP程序!

各位好,大家有没有这样一个LISP程序,就是模板上有很多孔,然后框选模板,模板上一样的孔就会自己标出字母来区分不同的孔,如直径5的用A表示,直径8的用B来表示等,谢谢!

zhd81617 发表于 2009-7-17 15:45:00

<p>转发:::</p><p>;;钻孔圆分类标注.<br/>(defun c:ttt(/ ALIST CENPT ENTDATA1 ENTNAME1 FUZ I J N R SS1)<br/>&nbsp;(setq aList '((5.0 "A") (8.0 "B") (12.0 "C")));用户自己根据需要定义半径.<br/>&nbsp;(setq fuz 0.00001)</p><p>&nbsp;(prompt "\n【提示】选择圆对象....")<br/>&nbsp;(while (not (setq SS1 (ssget '((0 . "CIRCLE"))))))<br/>&nbsp;(ayOSMode nil);关闭捕捉.<br/>&nbsp;<br/>&nbsp;(setq i 0)<br/>&nbsp;(while (&lt; i (sslength SS1))<br/>&nbsp; (setq entName1 (ssname SS1 i))<br/>&nbsp; (setq entData1 (entget entName1))<br/>&nbsp; (setq cenPt (cdr (assoc 10 entData1)))<br/>&nbsp; (setq R (cdr (assoc 40 entData1)))<br/>&nbsp; (setq j 0)<br/>&nbsp; (while (&lt; j (length aList))<br/>&nbsp;&nbsp; (setq n (nth j aList))<br/>&nbsp;&nbsp; (if (equal R (car n) fuz)<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp; (vl-cmdf "-Text" "J" "MC" cenPt "" 0.0 (cadr n))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (setq j (length aList))<br/>&nbsp;&nbsp;&nbsp; );end_progn<br/>&nbsp;&nbsp; );end_if<br/>&nbsp;&nbsp; (setq j (+ j 1))<br/>&nbsp; );end_while j<br/>&nbsp; (setq i (+ i 1))<br/>&nbsp;);end_while i<br/>&nbsp;(ayOSMode T);打开捕捉.<br/>&nbsp;(princ)<br/>);end_defun</p><p>;;;**************************<br/>;;; No.0 对象捕捉开关 函数&nbsp;&nbsp; <br/>;;;**************************<br/>(defun ayOSMode (isOpenSnap)<br/>&nbsp;(if isOpenSnap<br/>&nbsp; (setvar "osmode" (rem (getvar "osmode") 16384));打开捕捉.<br/>&nbsp; (setvar "osmode" (+ (rem (getvar "osmode") 16384) 16384));关闭捕捉.<br/>&nbsp;);end_if<br/>);end_defun</p>
页: [1]
查看完整版本: [求助]求自动区分圆的大小并标识的LISP程序!