“你只需要一个文本ssget和一个重复,”添加了pline选项。
- ;--------------------------------------------------------
- ;lisp program...............................aligntxt.lsp
- ;
- ; aligns text to a line
- ;
- ;---------------------------------------------------------
- ; modified by Alan H to allow plines
- (defun c:at (/ ent pt1 pt2 ang ss tobj
- (setq ent (entsel "Select line or pline section"))
- (setq objname (cdr (assoc 0 (entget (car ent)))))
- (if (= objname "LWPOLYLINE")
- (progn
- (setq pr (vlax-curve-getparamatpoint (car ent) (setq p (vlax-curve-getclosestpointto (car ent) (cadr ent)))))
- (setq pt1 (vlax-curve-getpointatparam (car ent) (fix pr)))
- (setq pt2 (vlax-curve-getpointatparam (car ent) (1+ (fix pr))))
- )
- )
- (if (= objname "LINE")
- (progn
- (setq pt1 (cdr (assoc 10 (entget (car ent)))))
- (setq pt2 (cdr (assoc 11 (entget (car ent)))))
- )
- )
- (setq ang (angle pt1 pt2))
- (setq ss (ssget (list (cons 0 "*text"))))
- (repeat (setq x (sslength ss))
- (setq tobj (vlax-ename->vla-object (ssname ss (setq x (- x 1)))))
- (vla-put-rotation tobj ang)
- )
- (prompt "\n \n")
- (princ)
- )
|