コマンドの内容
概要
フィルターを入れた選択セットでテキスト/マルチテキストのみを選び、文字スタイルと画層を変更します。
図形選択
グループ選択で複数の文字を変更することができます。
フィルターがかかっているので、テキスト/マルチテキストのみが選択されます。
文字スタイル
文字スタイルは ”Jaga-Style-L” に設定してあります。
文字スタイルが図面に無ければ作成します。
画層
文字用の画層は “Jaga-Text” に設定してあります。
画層が無ければ作成します。
AutoLISP
コマンド名は Stl-JagaL です。
;//////////////////////////////////////////////////////////////////////////////////
;/////////////////////////////////////////
;JagaimoLisp コマンド関数
;文字スタイル変更 var.20200706
;---------------------------------------
(defun c:Stl-JagaL ( / Objs ObjNum Cnt TxH Ent)
(setq Objs (Jaga00TxSs))
(setq ObjNum (sslength OBJs) Cnt 0)
(Jaga00StlJagaL)
(setq TxH (assoc 40 (tblsearch "style" "Jaga-Style-L")))
(Jaga01LyCk "Jaga-Text" "CONTINUOUS" 2 "P")
(while (< Cnt ObjNum)
(setq Ent (entget (ssname OBJs Cnt)))
(setq Ent (subst (cons '7 "Jaga-Style-L")(assoc 7 Ent) Ent))
(if (/= 0 (cdr TxH)) (setq Ent (subst TxH (assoc '40 Ent) Ent)))
(setq Ent (subst (cons '8 "Jaga-Text")(assoc 8 Ent) Ent))
(entmod Ent)
(setq Cnt (+ Cnt 1))
);while
(princ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun Jaga00StlJagaL ()
(if (null (tblsearch "style" "Jaga-Style-L"))
(command-s "._STYLE"
"Jaga-Style-L" ;文字スタイル名
"romans" ;フォント名
"0" ;文字高さもしくは異尺度
"1" ;幅係数
"0" ;傾斜角度
"N" ;左右反転
"N" ;上下反転
"N" ;縦書き
) ;command-s
);if
(princ));defun
;------------------------------------------------
(defun Jaga00TxSs ( / OBJs ObjNum Lst)
(setq OBJs (ssget "_I" '((0 . "TEXT,MTEXT"))))
(if (null OBJs)
(setq OBJs (ssget '((0 . "TEXT,MTEXT"))))
);if
Objs
);defun
;=========================================================
(defun Jaga01LyCk (LyNm Lt Col Pl / LyInfo Ly62 Ly70)
(if (null (tblsearch "layer" LyNm ))
(progn
(command-s ".-layer"
"_N" LyNm
"_L" Lt LyNm
"_C" Col LyNm
"_P" Pl LyNm
"") ;
(alert (strcat " \n 画層 < " LyNm " > 作成しました\n"))
)) ;if progn
;----------------------------------------------------
;----------------------------------------------------
(setq LyInfo (tblsearch "layer" LyNm)) ;
(if LyInfo
(progn
(setq
Ly62 (cdr(assoc 62 LyInfo))
Ly70 (cdr(assoc 70 LyInfo))
) ;setq
;----------------------------------------------------
(if (> 0 Ly62)
(progn
(command-s "._LAYER" "ON" LyNm "")
(alert (strcat " \n 画層 < " LyNm " > 非表示だったので表示にしました\n"))
));if progn
;----------------------------------------------------
(if (= 1 (logand 1 Ly70))
(progn
(command-s "._LAYER" "T" LyNm "")
(alert (strcat " \n 画層 < " LyNm " > フリーズ解除しました"))
));if progn
));if progn
;----------------------------------------------------
);defun
参考記事
テキストだけを選択する方法
文字だけ選択、テキストスタイル作成、画層の準備など自作関数にしてコマンドとは別に定義しています。
文字スタイルを作る
文字スタイルを変更
画層が無かったりフリーズ/非表示していた時の対策
図形の画層変更
Comments