この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

SETENVで設定した数値が上書きされない
文字入力のマクロです。
①文字の高さ 既定値は3.5
 文字の高さを6で記入
 システム変数TEXTSIZEを既定値の3.5に戻す

②文字の高さ 既定値を3に変更
 文字の高さを5で記入
 システム変数TEXTSIZEを既定値の3に戻す

マクロはこれです。
^C^C_setenv;Textheight;$M=$(getvar,TEXTSIZE);_text;j;bc;\\;\textsize;$M=$(getenv,Textheight)^M


流れたコマンド内容です。
コマンド: _setenv
変数名を入力: Textheight
値 <3.5>: 3.5
コマンド:
コマンド: _text
現在の文字スタイル: "Standard" 文字の高さ: 52.5000 異尺度対応: はい 位置合わせ: 左寄せ
文字列の始点を指定 または [位置合わせオプション(J)/文字スタイル変更(S)]: j
オプションを入力 [左寄せ(L)/中心(C)/右寄せ(R)/両端揃え(A)/中央(M)/フィット(F)/左上(TL)/上中心(TC)/右上(TR)/左中央(ML)/中央(MC)/右中央(MR)/左下(BL)/下中心(BC)/右下(BR)]: bc
文字列の下中心点を指定:
用紙上の文字の高さを指定 <3.5000>: 6
文字列の角度を指定 <0.00000000>:
文字列を入力: 898
コマンド: textsize
TEXTSIZE の新しい値を入力 <6.0000>: 3.5
コマンド:
コマンド:
コマンド: _setenv
変数名を入力: Textheight
値 <3.5>: 3
コマンド:
コマンド: _text
現在の文字スタイル: "Standard" 文字の高さ: 45.0000 異尺度対応: はい 位置合わせ: 左寄せ
文字列の始点を指定 または [位置合わせオプション(J)/文字スタイル変更(S)]: j
オプションを入力 [左寄せ(L)/中心(C)/右寄せ(R)/両端揃え(A)/中央(M)/フィット(F)/左上(TL)/上中心(TC)/右上(TR)/左中央(ML)/中央(MC)/右中央(MR)/左下(BL)/下中心(BC)/右下(BR)]: bc
文字列の下中心点を指定:
用紙上の文字の高さを指定 <3.0000>: 5
文字列の角度を指定 <0.00000000>:
文字列を入力: 888
コマンド: textsize
TEXTSIZE の新しい値を入力 <5.0000>: 3.5


変数の値が一つ前のものになってしまいます。
マクロ初心者なのでどうしてかわかりません。
ご教授いただけると幸いです。


AutoCAD2021
Windows10
です。

宜しくお願い致します。


  • 富塚清美
  • MAIL
  • 2021/03/06 (Sat) 12:23:14
Re: SETENVで設定した数値が上書きされない
よくわかりませんがこれで
^C^C$M=_text;j;bc;\\;\textsize;$(getvar,textsize)^M
  • nasu
  • 2021/03/06 (Sat) 13:30:46
Re: SETENVで設定した数値が上書きされない
早々の返信ありがとうございます。

いただいたマクロでやってみました。

コマンド内容です。
コマンド: _text
現在の文字スタイル: "Standard" 文字の高さ: 3.0000 異尺度対応: はい 位置合わせ: 左寄せ
文字列の始点を指定 または [位置合わせオプション(J)/文字スタイル変更(S)]: j
オプションを入力 [左寄せ(L)/中心(C)/右寄せ(R)/両端揃え(A)/中央(M)/フィット(F)/左上(TL)/上中心(TC)/右上(TR)/左中央(ML)/中央(MC)/右中央(MR)/左下(BL)/下中心(BC)/右下(BR)]: bc
文字列の下中心点を指定:
用紙上の文字の高さを指定 <3.0000>: 5
文字列の角度を指定 <0.00000000>:
文字列を入力: 8955
コマンド: textsize
TEXTSIZE の新しい値を入力 <5.0000>:


既定の文字高さは3なので
5で書いても元の3に設定を戻したいんです。
システム変数TEXTSIZEを最後に最初に設定値3に戻すにはどうしたらいいのでしょうか?
宜しくお願い致します。
  • 富塚清美
  • MAIL
  • 2021/03/06 (Sat) 14:05:55
Re: SETENVで設定した数値が上書きされない
文字を記入して文字の高さを変更すれば『TEXTSIZE』を変更する必要はないのでは?

こんな感じで希望の動作しませんか?

^C^C_text;j;bc;\;;\change;l;;;;;\;;^Z

1.マクロ起動
2.文字列の下中心点を指定
3.文字列を入力(この文字高さは既定値です)
4.新しい高さを指定(例の6や5を記入)

以上で『TEXTSIZE』を変更せずに
文字高さを新しい高さの文字列に変更できると思います


  • chibi-tom
  • 2021/03/06 (Sat) 15:41:28
Re: SETENVで設定した数値が上書きされない
出来ると思ったのですが、ダメでしたか。
すみませんでした。
  • nasu
  • 2021/03/06 (Sat) 15:48:46
Re: SETENVで設定した数値が上書きされない
chibi-tom様

ありがとうございます。

こういう発想が無かったです。

変数に現在の既定値を入れて最後に戻す
という考えしか思い浮かばなかったです。
こういう発想もあるんだと勉強になりました。
ありがとうございました。
  • 富塚清美
  • MAIL
  • 2021/03/06 (Sat) 17:29:06
Re: SETENVで設定した数値が上書きされない
nasu様

いえいえとんでもないです。

ありがとうございました。
  • 富塚清美
  • MAIL
  • 2021/03/06 (Sat) 17:30:09
Re: SETENVで設定した数値が上書きされない
ちなみにnasuさんのマクロでも

こうすれば可能になると思いますよ
^C^C$M=_text;j;bc;\\;\textsize;$M=$(getvar,textsize)^M

※、nasuさんのマクロは修正しなくても問題ないみたいです
ごめんなさい、余計なこと言いました

②文字の高さ 既定値を3に変更
についてもこれらで対応可能だと思います
^C^Ctextsize;\$M=_text;j;bc;\\;\textsize;$M=$(getvar,textsize)^M
または
^C^Ctextsize;\_text;j;bc;\;;\change;l;;;;;\;;^Z

おまけ
富塚清美さんが検討のマクロも

これで対応可能だと思います

^C^C_setenv;Textheight;$M=$(getvar,TEXTSIZE);_text;j;bc;\\;\textsize;$M="$(getenv,Textheight)"^M

^C^Ctextsize;\_setenv;Textheight;$M=$(getvar,TEXTSIZE);_text;j;bc;\\;\textsize;$M="$(getenv,Textheight)"^M

  • chibi-tom
  • 2021/03/08 (Mon) 08:20:15
Re: SETENVで設定した数値が上書きされない
chibi-tom様

返信遅くなってすみません。

色々ありがとうございます。

結果です。

先日は
^C^C_text;j;bc;\;;\change;l;;;;;\;;^Z
↑これで出来たと言いましたが今日もう一度やってみたら出来なかったです。
(テキストを異尺度対応にしているため)

^C^C$M=_text;j;bc;\\;\textsize;$M=$(getvar,textsize)^M
↑これは希望通りに出来ました。



②文字の高さ 既定値を3に変更
^C^Ctextsize;\$M=_text;j;bc;\\;\textsize;$M=$(getvar,textsize)^M
↑これは出来なかったです。


^C^Ctextsize;\_text;j;bc;\;;\change;l;;;;;\;;^Z
↑これも出来なかったです。
changeを使うと異尺度対応の高さで指定出来なくなるようです。


おまけの私検討のマクロ
①^C^C_setenv;Textheight;$M=$(getvar,TEXTSIZE);_text;j;bc;\\;\textsize;$M="$(getenv,Textheight)"^M
↑これも希望通りに出来ました。



②^C^Ctextsize;\_setenv;Textheight;$M=$(getvar,TEXTSIZE);_text;j;bc;\\;\textsize;$M="$(getenv,Textheight)"^M
↑これは出来なかったです。


こんなにやり方があるのですね。

一番スッキリしている↓こちらのマクロを使わせていただきます。
^C^C$M=_text;j;bc;\\;\textsize;$M=$(getvar,textsize)^M


ありがとうございました。
  • 富塚清美
  • MAIL
  • 2021/03/08 (Mon) 14:51:55

返信フォーム






プレビュー (投稿前に内容を確認)