Может это поможет???
;Текст любой ориентации в рамке с заданным отступом
(DEFUN C:TBOX ( / cltype ccolor clayer ent type step ofset width a b
ltxt ang sinrot cosrot box t1 t2 p0 p1 p2 p3 p4)
(_MODES '("CMDECHO" "OSMODE" "ORTHOMODE" "PLINEWID"))
(SETQ olderr *ERROR*) ; Сохранение обработки ошибок программы
(SETQ *ERROR* PGT_ERR) ; Заменить на наш обработчик ошибок
(SETVAR "CMDECHO" 0)
(SETVAR "OSMODE" 0)
(SETVAR "ORTHOMODE" 0)
(SETQ cltype (GETVAR "CELTYPE")) ; Текущий тип линии
(SETQ ccolor (GETVAR "CECOLOR")) ; Текущий цвет
(SETQ clayer (GETVAR "CLAYER")) ; Текущий слой
(COMMAND "_COLOR" "_BYLAYER")
(COMMAND "_-LINETYPE" "_S" "CONTINUOUS" "")
(WHILE (OR (= ent NIL) (/= type "TEXT"))
(SETQ ent (CAR (ENTSEL "\nВыбери текст:")))
(IF (= ent NIL)
(PRINC "\ ЭТО НЕ ТЕКСТ")
(IF (/= "TEXT" (CDR (ASSOC 0 (ENTGET ent))))
(PRINC "\ ЭТО НЕ ТЕКСТ")
(SETQ type "TEXT" entdat (ENTGET ent))
)
)
)
(SETQ step (ATOF (GETSTRING "\nОтступ рамки от текста: ")))
(SETQ step (* (GETVAR "DIMSCALE") step))
(SETQ width (ATOF (GETSTRING "\nТолщина линии рамки: ")))
(SETQ width (* (GETVAR "DIMSCALE") width))
(SETQ p0 (CDR (ASSOC 10 entdat)) ;Начало текста
ang (CDR (ASSOC 50 entdat)) ;Угол поворота
ltxt (CDR (ASSOC 8 entdat)) ;Слой
sinrot (SIN ang)
cosrot (COS ang)
t1 (CAR (TEXTBOX entdat))
t2 (CADR (TEXTBOX entdat))
ofset (LIST step step 0.0)
t1 (MAPCAR '(LAMBDA (a b) (- a b)) t1 ofset)
t2 (MAPCAR '(LAMBDA (a b) (+ a b)) t2 ofset)
p1 (LIST (+ (CAR p0) (- (* (CAR t1) cosrot) (* (CADR t1) sinrot)))
(+ (CADR p0) (+ (* (CAR t1) sinrot) (* (CADR t1) cosrot))))
p2 (LIST (+ (CAR p0) (- (* (CAR t2) cosrot) (* (CADR t1) sinrot)))
(+ (CADR p0) (+ (* (CAR t2) sinrot) (* (CADR t1) cosrot))))
p3 (LIST (+ (CAR p0) (- (* (CAR t2) cosrot) (* (CADR t2) sinrot)))
(+ (CADR p0) (+ (* (CAR t2) sinrot) (* (CADR t2) cosrot))))
p4 (LIST (+ (CAR p0) (- (* (CAR t1) cosrot) (* (CADR t2) sinrot)))
(+ (CADR p0) (+ (* (CAR t1) sinrot) (* (CADR t2) cosrot))))
)
(COMMAND "_-LAYER" "_S" ltxt "")
(COMMAND "_PLINE" p1 "_W" width "" p2 p3 p4 "_C")
(COMMAND "_COLOR" ccolor)
(COMMAND "_-LINETYPE" "_S" cltype "")
(COMMAND "_-LAYER" "_S" clayer "")
(SETQ *ERROR* olderr) ;Восстановить старый обработчик *ERROR*
(_MODER)
(SETVAR "CMDECHO" 1)
(PRIN1)
)