1、此程序(而不是此软件),对数据量大小没有限制。
2、忽略ASSIST图层。
3、4正在解决。
就这样吧,剩下的自己改改:
 - [FONT=courier new](defun c:test ()
- (CMDLA0)
- (setq ss (ssget "X" '((0 . "INSERT") (2 . "GC200")))
- i -1
- )
- (while (setq s1 (ssname ss (setq i (1+ i))))
- (setq pt1 (xyp-get-Dxf 10 s1)
- pt2 (list (- (car pt1) 3) (- (cadr pt1) 3))
- pt3 (list (+ (car pt1) 3) (+ (cadr pt1) 3))
- pt4 (xyp-get-MinMaxPoint s1 0)
- pt5 (xyp-get-MinMaxPoint s1 1)
- pt0 (xyp-get-Midpoint pt4 pt5)
- leng (/(distance pt4 pt5)2.0)
- pt4 (polar pt0 (* pi 0.25) leng)
- pt5 (polar pt0 (* pi 1.25) leng)
- )
- (setq ss1 (ssget "c" pt4 pt5)
- ss1a (ssget "c" pt2 pt3)
- ss1a (ssget "P" '((0 . "CIRCLE")))
- ss2 (ssget "c" pt2 pt3)
- ss3 (ssget "P" '((0 . "TEXT")))
- )
- (if ss1a (setq ss1 (SSUNION SS1 SS1a)))
- (command "select" ss1 "r" s1 "")
- (if (setq ss1 (ssget "P"))
- (progn
- (setq la "ASSIST"
- j -1
- )
- (while (or (= la "ASSIST") (= la "0"))
- (setq s2 (ssname ss1 (setq j (1+ j)))
- la (strcase (xyp-get-Dxf 8 s2))
- )
- )
- (if (and s1 ss3)
- (command "chprop" s1 ss3 "" "LA" la "")
- (command "chprop" s1 "" "LA" la "")
- )
-
- )
- )
- )
- (CMDLA1)
- )[/FONT]
|