CODE11:選択した文字列の角度を指定した2点の角度に合わせる
2023年05月14日
;選択した文字列の角度を指定した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))