这是我的旧的,希望这是
也为你工作
- (defun C:INN (/ gap hg inum ip p1 p2 tb wd)
- (setq inum (getint "\n\tEnter a number to start with: "))
- (while (setq ip (getpoint "\n\tSpecify text insertion point (Enter to stop): "))
- ; entmake text
- (entmake
- (list
- '(0 . "TEXT")
- '(100 . "AcDbEntity")
- '(100 . "AcDbText")
- (cons 1 (itoa inum));string
- (cons 7 "Standard");style
- (cons 8 "0");layer
- (cons 62 256);color
- (cons 10 ip);insertion point
- (cons 11 ip);alignment point
- (cons 40 (getvar "dimtxt"));text height - change by suit
- (cons 41 1.0);text width
- (cons 50 0.0);1.5708 - vertical, 0.0 - horizontal
- (cons 51 0.0);oblique angle
- '(71 . 0);alignment
- '(72 . 1);alignment
- '(73 . 2);alignment
- )
- )
- (setq tb (textbox (entget (entlast))))
- (setq gap (/ (getvar "dimtxt") 4)
- p1 (car tb)
- p2 (cadr tb)
- hg (abs (- (cadr p1)(cadr p2)))
- wd (abs (- (car p1)(car p2)))
- p1 (list (- (car ip) (/ wd 2) gap)(- (cadr ip) (/ hg 2) gap))
- p2 (list (+ (car ip) (/ wd 2) gap)(+ (cadr ip) (/ hg 2) gap))
- )
- ; entmake frame
- (entmake
- (list '(0 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbPolyline")
- '(90 . 4);number of vertices
- '(70 . 1);closed flag
- (cons 8 "0");layer
- (cons 62 2);color (256 - ByLayer)
- (cons 10 p1)
- (list 10 (car p2) (cadr p1))
- (cons 10 p2)
- (list 10 (car p1) (cadr p2))
- (cons 43 0.0);polyline width
- )
- )
- (setq inum (1+ inum))
- )
- (prin1)
- )
- (prompt "\nType INN to execute ...")
- (princ)
~'J'~ |