MJLM,
一段代码来告诉你我的意思。
请注意,排序不是必需的,但可能很有用。
- (defun c:test ()
- (prompt "\nSelect Network : ")
- (setq s (ssget '((0 . "LINE"))))
-
- (setq pl nil)
- (repeat (setq i (sslength s))
- (setq ent (entget (ssname s (setq i (1- i))))
- p (cdr (assoc 10 ent))
- pl (if (not (member p pl)) (cons p pl) pl)
- p (cdr (assoc 11 ent))
- pl (if (not (member p pl)) (cons p pl) pl)
- )
- )
- (setq pl (vl-sort pl (function (lambda (a b) (< (caddr a) (caddr b))))) ;; Sort on Z Coordinate
- pl (vl-sort pl (function (lambda (a b) (< (cadr a) (cadr b))))) ;; Sort on Y Coordinate
- pl (vl-sort pl (function (lambda (a b) (< (car a) (car b))))) ;; Sort on X Coordinate
- )
- (foreach p pl
- (mk_mtext p (itoa (vl-position p pl)) 5 2 0)
- )
- (princ)
- )
- ;;****************************************************************************;
- ;; mk_mtext ;
- ;; Arguments: p, Insertion Point. ;
- ;; s, Text. ;
- ;; j, Justification: ;
- ;; 1 = Top left; 2 = Top center; 3 = Top right; ;
- ;; 4 = Middle left; 5 = Middle center; 6 = Middle right; ;
- ;; 7 = Bottom left; 8 = Bottom center; 9 = Bottom right ;
- ;; h, Text Height. ;
- ;; r, Rotation. ;
- ;;****************************************************************************;
- (defun mk_mtext (p s j h r)
- (entmakex
- (list (cons 0 "MTEXT")
- (cons 100 "AcDbEntity")
- (cons 100 "AcDbMText")
- (cons 10 p)
- (cons 71 j)
- (cons 40 h)
- (cons 50 r)
- (cons 1 s)
- )
- )
- )
|