34
174
60
后起之秀
(defun c:dj () (setq height 2.5) (if (setq judge (getreal "Input text height(Default 2.5)")) (setq height judge) ) (setq messege (entsel)) (setq ent (entget (car messege))) (setq select_point (cadr messege)) (if (equal (cdr (assoc 0 ent)) "LINE" ) (setq daojiao (chfd )) (progn (setq daojiao (reduce ent select_point)) ) ) ;(princ daojiao) (setq point_x (car (caddr daojiao)) point_y (cadr (caddr daojiao)) x1 (car point_x) y1 (cadr point_x) x2 (car point_y) y2 (cadr point_y)) (setq le_point (list (* 0.5 (+ x1 x2)) (* 0.5 (+ y1 y2)) )) (setq c1 (car daojiao) c2 (cadr daojiao)) (if (= (rtos c1 2 1) (rtos c2 2 1)) (setq c (strcat "C" (rtos c1 2 1))) (setq c (strcat (rtos c1 2 1) "*" (rtos c2 2 1) )) ) (princ c) (princ le_point) (princ height) (bz c le_point height) ;(command "leader" le_point pause pause "" "" "n") ;(setq ent (entget (entlast))) ;(le ent c height))(defun bz (txt1 p height / *error* name1 name2 name3) (defun *error* (msg) ; (entdel name1) (entdel name2) (if name3 (entdel name3)) (princ "err: ")(princ msg) ) ; (setq ty (getvar "TEXTSTYLE") kd3 0) (setq kd1 (caadr (textbox (list '(0 . "text")(cons 1 txt1)(cons 40 height)(cons 41 0.7)(cons 7 ty))))) (setq kd2 (caadr (textbox (list '(0 . "text")(cons 1 "lyt love lhl")(cons 40 height)(cons 41 0.7)(cons 7 ty))))) (setq kd (max kd1 kd2) kd (+ kd 50)) ;(setq p (getpoint "\nSpecify the basis points:")) (setq pd t) (while pd (setq gr (grread t 4 1) mode (car gr) pt (cadr gr)) (if (= kd3 0) (setq kd kd1)) (if (and (listp pt) (>= (car pt) (car p))) (progn (setq p0 (polar pt 0 kd)) (setq p1 (polar pt 0 (/ (- kd kd1) 2)) p1 (polar p1 (angtof "90") (* 0.2 height))) (setq p2 (polar pt 0 (/ (- kd kd2) 2)) p2 (polar p2 (angtof "270") 350)))) (if (and (listp pt) (< (car pt) (car p))) (progn (setq p0 (polar pt pi kd)) (setq p1 (polar p0 0 (/ (- kd kd1) 2)) p1 (polar p1 (angtof "90") (* 0.2 height))) (setq p2 (polar p0 0 (/ (- kd kd2) 2)) p2 (polar p2 (angtof "270") 350)))) (if (= mode 5) (progn (if name1 (entdel name1)) (entmake (list '(0 . "LWPOLYLINE")'(100 . "AcDbEntity")'(100 . "AcDbPolyline")'(90 . 3) (cons 10 p)(cons 10 pt)(cons 10 p0))) (setq name1 (entlast)) (if name2 (entdel name2)) (entmake (list '(0 . "text")(cons 1 txt1)(cons 40 height)(cons 41 0.7)(cons 10 p1)(cons 7 ty))) (setq name2 (entlast)) (if name3 (entdel name3)) (if (= kd3 1) (entmake (list '(0 . "text")(cons 1 txt2)(cons 40 height)(cons 41 0.7)(cons 10 p2)(cons 7 ty)))) (if (= kd3 1) (setq name3 (entlast))))) (if (= mode 3) (setq pd nil)) (if (or (= mode 2) (= mode 25)) (progn (setq pd nil) (entdel name1) (entdel name2) (if name3 (entdel name3)))) ) )(defun le (ent choice height) (setq points '()) (mapcar '(lambda (x) (cond ((= 10 (car x)) (setq points (cons (cdr x) points))) ) ) ent ) (setq point_end (car points)) (setq point_start (cadr points)) (if (> (- (car point_end) (car point_start)) 0) (progn (setq point (list (+ (car point_end) (* 0.7 height)) (- (cadr point_end) (* 0.5 height)))) (command "text" point height 0 choice ) ) (progn (setq point (list (- (car point_end) (* 0.7 height) ) (- (cadr point_end) (* 0.5 height)))) (command "text" point height 0 choice ) (setq entname (entlast)) (setq ent (entget entname)) (entmod (mapcar '(lambda ( x) (cond ((= (car x) 72) (cons (car x) 2)) ((= (car x) 11) (cons (car x) point)) (t x)