
- ;; 批量标注线长和编号
- (defun c:test910 ()
- (CMDLAsc0)
- (setq ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))
- i -1
- lst '()
- )
- (while (setq s1 (ssname ss (setq i (1+ i))))
- (setq lst (cons (list (xyp-get-CurveLength s1) s1) lst))
- )
- (setq lst (vl-sort lst '(lambda (e1 e2) (< (car e1) (car e2))))
- i 0
- lst2 '()
- )
- (foreach a lst
- (setq leng (car a)
- s1 (cadr a)
- )
- (if (not (member leng lst2))
- (setq lst2 (cons leng lst2)
- i (1+ i)
- )
- )
- (setq pt (xyp-get-CurveMidPoint s1)
- rad (XYP-RAD2REAL (XYP-GET-ANGLEATPOINT s1 pt) 1)
- p1 (polar pt rad 5)
- p2 (polar pt rad -5)
- pt (xyp-get-RightPoint p1 p2 (* xyp-sc 200))
- )
- (xyp-Text 5 pt (strcat "L" (itoa i) "=" (rtos leng 2)))
- (xyp-SubUpd (entlast) 50 rad)
- )
- (CMDLA1)
- )
|