・ 文字スタイルを作る

(command "STYLE") を使う

文字スタイル管理のコマンドライン版を使う場合、フォントの指定にちょっとコツがあります
ビッグフォントを使う場合は、半角フォント名と全角フォント名をカンマで区切って指定します
ビックフォントを使わない場合は、半角フォント、もしくは True Type Font のみ指定です
sty_name    :文字スタイル名
narow_shx   :半各フォント名
wide_shx     :全角フォント名
txt_hight     :文字高さ(文字記入時に高さを指定する場合は 0)
txt_width    :文字幅の係数
txt_ang       :文字の傾斜角度

(command "STYLE" sty_name narow_shx,wide_shx  txt_hight txt_width  txt_ang  "YorN" "YorN" "YorN" )

最後の3つの "YonN" はそれぞれ、左右を反転 上下を反転 縦書き の指定です
文字スタイル名を既存のものにすると、上書きされますのでご注意を

 

(entmake) を使う

既存の文字スタイルとちょっとだけ違うスタイルを作りたい場合などは、(entmake) を使うと便利です
(tblobjname) で既存の文字スタイルのオブジェクト名を取得して (entget) すると、文字スタイルのエンティティーデータが取り出せます
あとは、文字スタイル名と変更したいところだけ (subst) で置換え、(entmake) で出来上がりです
一部TTフォント(MS明朝 MSゴシック 等)では、ACAD の xdata を付加しないと文字スタイルが作れない場合があります

;************************************************************************************;
;サブルーチン:傾斜角度のみ 0 に変更した文字スタイルを作る ;
(defun Jof_make_new_sty2 ( txt_sty new_sty / sty_ed ) ;txt_sty:元の文字スタイル名 new_sty:新しい文字スタイル名
  (setq sty_ed (entget (tblobjname "STYLE" txt_sty) '("ACAD"))) ;元の文字スタイルのエンティティーデータ取り出し
  (setq sty_ed (subst (cons 50 0)(assoc 50 sty_ed) sty_ed)) ;ここでは傾斜角度のみ置換え
  (setq sty_ed (subst (cons 2 new_sty)(assoc 50 sty_ed) sty_ed)) ;文字スタイル名の置換え
  (if (entmake sty_ed)
    (princ "\n文字スタイルの作成成功")
    (princ "\n文字スタイルの作成失敗")
    )
  )