fc2ブログ

CODE11:選択した文字列の角度を指定した2点の角度に合わせる

2023年05月14日
■AutoLISP サンプルコード公開Gallery

;選択した文字列の角度を指定した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)
)


 AutoLispサンプルコードプログラム 一覧(インデックス)

 AutoLispサンプルコードプログラム 【概説】

AutoLispサンプルコードプログラム
関連記事
スポンサーサイト



Gallery担当:山野 ロザリア平久郎
Posted by Gallery担当:山野 ロザリア平久郎