ちょこっと話題になっていたので・・・
寸法値の行間隔って変更したいですよね~!
オブジェクトプロパティ管理の中にに入ってて良いと思うんですけど、ないんですよね凸(–メ)
かなり前に作ったlispをアップ♪
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;; マルチテキスト行間隔の尺度指定コマンド ;;;;;;;;;;
;;;;;; vol.1 2007.11.06 ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;注記
;;;マルチテキストのみ対応
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:my_dimHPS(/ ss1 n i G1 T1 T2)
;;エラー処理
(defun *error* ($)
(setvar "CMDECHO" 1) ; CMDECHO は通常1にするべきなのでわざわざ保存しない
(and $ (princ $)) ; エラー時は$にエラー内容が入っている
(princ)
)
;;変数変更
(setvar "cmdecho" 0) ;cmdechoを0(非表示)にする
;;行間隔を指定
(setq G1 (getreal "\n行間隔を入力:")) ;行間隔をG1に代入
;;くり返し図形を選択し行間隔変更;
(while ;whileの始まり
(not (setq ss1 (ssget '((0 . "MTEXT,DIMENSION"))))) ;繰り返し条件設定(オブジェクトを選択)(notでTじゃない場合がくり返しにする)
(princ "\nマルチテキストが選択されていません.") ;コマンドバーに表示
) ;end:while
(setq n (sslength ss1)) ;選択されたオブジェクトの数をnに代入
(setq i 0) ;iに0を代入
(while ;whileの始まり
(< i n) ;繰り返し条件設定(0個よりオブジェクトの数がある場合)
(setq T1 (ssname ss1 i)) ;図形名をT1に代入(条件と=な場合)
(setq T2 (entget T1)) ;図形情報リストをT2に代入
(if (/= "MTEXT" (cdr (assoc 0 T2))) ;選んだオブジェクトがマルチテキストかどうか?の判定式
(progn ;/=MTEXTの場合(=DIMENSIONの場合)
(setq T2 (subst (cons 41 G1) (assoc 41 T2) T2)) ;T2の行間隔をG1に変更しT2に代入
(entmod T2) ;T2のリストの更新
) ;end:/=MTEXTの場合
(progn ;=MTEXTの場合
(setq T2 (subst (cons 44 G1) (assoc 44 T2) T2)) ;T2の行間隔をG1に変更しT2に代入
(entmod T2) ;T2のリストの更新
) ;end:=MTEXTの場合
) ;end:if
(setq i (1+ i)) ;iに1を足してiに代入
) ;end:while
;;変数を変更前に戻す
(setvar "cmdecho" 1) ;cmdecho(コマンドバーの文字表示・非表示)を元にもどす
;;エラー処理
(*error* nil)
;;終わり
(princ) ;静かに終わる
) ;end
はみでた・・・(T^T)
最近のコメント