;選択した文字列の角度を指定した2点の角度に合わせる
;+++++++++++++
(defun C:CODE11 ( / Flg Obj Ent0 TextObj LineObj  θ)
;+++++++++++++
    (setq Flg 1);文字列（Text/Mtext）を選択してDXF図形情報をTextObjに登録
    (while Flg 
        (setq Obj (car (entsel "\n回転させる文字列（TEXT/MTEXT）を選択：")))
        (setq Ent0 (cdr(assoc 0 (entget Obj))))
        (if (or (= Ent0 "TEXT") (= Ent0 "MTEXT"));大文字必須
            (progn
                (setq Flg nil)
                (setq TextObj (entget Obj))
                (princ "\n") 	
            )
            (princ "\n選択された図形は文字列（TEXT/MTEXT）ではありません\n") 
        );if
    );while

    ;角度を指定してDXF図形情報をLineObjに登録 
    (setq Pt1 (getpoint "\n1点目を指定："))
    (setq Pt2 (getpoint "\n2点目を指定："))
    (setq Pt1 (trans Pt1  1 0));UCS座標からWCS座標に変換
    (setq Pt2 (trans Pt2  1 0));UCS座標からWCS座標に変換
    (setq θ (angle Pt1 Pt2));rad

    (if (and (> θ (/ PI 2))(<= θ PI));90°<θ<=180°
        (setq θ (+ θ PI)))
    (if (and (> θ PI)(< θ (* PI 1.5)));180°<θ<270°
        (setq θ (- θ PI)))

    ;TextObj 50 の情報（角度）を書き換え
    (setq TextObj (subst (cons 50 θ) (assoc 50 TextObj) TextObj))
    (entmod TextObj);TextObjのDXF図形情報書き換えて図形を修正

    (princ)
)