试试这个。。。
您真的还在使用Autocad 2002吗?如您的配置文件所示?
- (defun c:Test (/ a b c d num pt ds lg p1 p2 ang p3 ht cd p4 pt5)
- ;; Tharwat 26. Jan. 2014 ;;
- (if (= (setq ds (getvar "dimscale")) 0.0)
- (setq ds 1.)
- )
- (setq lg (* ds (getvar "dimasz")))
- (if (setq num (getint "\n Starting Item #: "))
- (while (and (setq p1 (getpoint "\n Leader Start Point: "))
- (setq p2 (getpoint p1 "\n Leader Ending Point: "))
- )
- (setq ang (angle p1 (list (car p2) (cadr p1)))
- p3 (polar p2 ang lg)
- ht (* ds (getvar "dimtxt"))
- cd (/ (* (getvar "dimtxt") ds) 0.4)
- p4 (polar p3 ang (/ cd 2.))
- )
- (command "_.leader" "_none" p1 "_none" p2 "_none" p3 "" "" "n")
- (setq a (polar p4 (+ ang (* pi 0.5)) (/ cd 2.))
- b (polar a ang (distance p2 p3))
- c (polar b (+ ang (* pi 1.5)) cd)
- d (polar c (+ pi ang) (distance p2 p3))
- )
- (entmakex (list '(0 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbPolyline")
- '(90 . 4)
- '(70 . 1)
- (cons 10 a)
- (cons 10 b)
- '(42 . -1)
- (cons 10 c)
- (cons 10 d)
- '(42 . -1)
- )
- )
- (entmakex (list '(0 . "TEXT")
- (cons 10
- (setq pt (mapcar '(lambda (p q) (/ (+ p q) 2.))
- (mapcar '(lambda (p q) (/ (+ p q) 2.)) a b)
- (mapcar '(lambda (p q) (/ (+ p q) 2.)) d c)
- )
- )
- )
- (cons 11 pt)
- (cons 40 ht)
- (cons 1 (itoa num))
- (cons 50 0.)
- '(41 . 1.0)
- (cons 7 (getvar 'textstyle))
- '(71 . 0)
- '(72 . 4)
- '(73 . 0)
- )
- )
- (setq num (+ num 1))
- )
- )
- (princ)
- )
|