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

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

公差寸法の記入簡易化
お久しぶりです。

お知恵を貸していただきたく思います。

寸法公差を自動記入するマクロを作成するに当たり、

^C^C_setenv;上限公差;\_setenv;下限公差;\_dim;override;dimtol;1;dimtp;$M=$(getenv,上限公差);dimtm;$M=$(getenv,下限公差);dimtfac;0.8;;\;,;\;^C^C

のようなマクロをいろんなものを参考に作って見たのですが、下限公差記入字に-がつかなかったため、

MEASUREMENTを1から0にして、元に戻す機能をつけたいです。

これをつけようとすると、うまくいかず、ループも発生したりとわけがわからなくなってしまいました。

解決するため、お知恵を貸していただきたく思います。

よろしくお願い致します。
  • 玉木
  • 2018/11/09 (Fri) 14:43:51
Re: 公差寸法の記入簡易化
症状でないですね
マクロを実行すると結果はどうなるのでしょうか?
実行後の流れや画像があるとわかりやすいのですが

ヘルプに
DIMTM の場合は、入力した値の正負を反転させた値が使用されます(つまり、入力した値が正の数値であればマイナス記号、負の数値であればプラス記号が付けられます)。
と書いてあります。
入力の数値に-を書き込んでるってことはないでしょうか?

ちなみに最後の部分が少しおかしい気が
こうではないですか?
^C^C_setenv;上限公差;\_setenv;下限公差;\_dim;override;dimtol;1;dimtp;$M=$(getenv,上限公差);dimtm;$M=$(getenv,下限公差);dimtfac;0.8;;\;^C^C
  • chibi-tom
  • 2018/11/09 (Fri) 18:38:24
Re: 公差寸法の記入簡易化
chibi-tom様

返信ありがとうございます。

言葉が足らず申し訳ありません。

0を入力した際、両方から+と-の符号が消えてしまうのです。
  • 玉木
  • 2018/11/12 (Mon) 16:08:54
Re: 公差寸法の記入簡易化
やはり症状でないです
>0を入力した際、両方から+と-の符号が消えてしまうのです。
→仮に、上限公差に『1』下限公差に『0』を入力した時は+1、0になり
上限公差『0』下限公差に『1』に入力した時は0、-1になりましたが
やろうとしていること間違ってないですよね?

ちなみにMEASUREMENTが何なのかは知らないのですが
自分も値は1なので別の原因だと思いますよ

答えになっていなくて申し訳ないですがわからないです。
  • chibi-tom
  • 2018/11/12 (Mon) 18:23:46
Re: 公差寸法の記入簡易化
直接寸法のプロパティを変更し入力する時は、0を入れるとマイナスがつくため、マクロでもそうしたいと思いました。

MEASUREMENTは、ミリ→インチに変えるコマンドで、インチに変えることで0を入力した場合もマイナスがつきます。

なので、インチで図面をかきたいわけではないので、一時的にインチに切り替え、寸法公差を入力した後、ミリに戻る。という流れを作れないかと考えました。
  • 玉木
  • 2018/11/13 (Tue) 10:23:54
Re: 公差寸法の記入簡易化
まだ知らないことがたくさんです。

こんな感じでどうでしょうか?
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;MEA;$(getvar,MEASUREMENT);;上限公差;\;下限公差;\;to;1,,)$(nth,$(getenv,to),,MEASUREMENT;0;dimoverride;dimtol;1;dimtp;$M=$(getenv,上限公差);dimtm;$M=$(getenv,下限公差);dimtfac;0.8;;\;setenv;to;2,)$(nth,$(getenv,to),,,MEASUREMENT;$M="""$(getenv,MEA)""";setenv;to;0;^Cid;)^M
  • chibi-tom
  • 2018/11/13 (Tue) 15:28:15
Re: 公差寸法の記入簡易化
複数回アイコンをクリックすることで使用出来るようですが、途中で止まってしまいます。

1回目
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド:
SETENV
変数名を入力: MEA
値 <1>: 1


コマンド:
SETENV
変数名を入力: 上限公差
値 <2>: 2


コマンド:
SETENV
変数名を入力: 下限公差
値 <0>: 0


コマンド:
SETENV
変数名を入力: to
値 <0>: 1

2回目
コマンド: MEASUREMENT

MEASUREMENT の新しい値を入力 <1>: 0

コマンド: dimoverride

優先する寸法記入変数名を入力 または [優先設定をクリア(C)]: dimtol
寸法記入変数の新しい値を入力 <オフ>: 1

優先する寸法記入変数名を入力: dimtp
寸法記入変数の新しい値を入力 <0.0000>: 2

優先する寸法記入変数名を入力: dimtm
寸法記入変数の新しい値を入力 <0.0000>: 0

優先する寸法記入変数名を入力: dimtfac
寸法記入変数の新しい値を入力 <1.0000>: 0.8

優先する寸法記入変数名を入力:

オブジェクトを選択: 認識された数: 1

オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 2

3回目
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0


コマンド: MEASUREMENT

MEASUREMENT の新しい値を入力 <0>: 1

コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド:
コマンド: id
点を指定:

4回目以降は、1回目~3回目を繰り返す感じです。
  • 玉木
  • 2018/11/13 (Tue) 16:33:12
Re: 公差寸法の記入簡易化
^Mの後にスペースやエンター等は無いでしょうか?
確認してみてください

少し文字数減らしてみました。
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;MEA;$(getvar,MEASUREMENT);;上限公差;\;下限公差;\;to;1,)$(nth,$(getenv,to),,;to;0;MEASUREMENT;0;dimoverride;dimtol;1;dimtp;$M=$(getenv,上限公差);dimtm;$M=$(getenv,下限公差);dimtfac;0.8;;\;MEASUREMENT;$M="""$(getenv,MEA)""";^Cid;)^M
  • chibi-tom
  • 2018/11/13 (Tue) 16:38:46
Re: 公差寸法の記入簡易化
やはり同じところで止まってしまいます。

^Mの後にスペースやエンター等は無いでしょうか?→ありませんでした。

AUTOCADがわるいのですかね・・・
  • 玉木
  • 2018/11/13 (Tue) 19:39:11
Re: 公差寸法の記入簡易化
自分の環境(LT2017)では
^Mの後にエンターがあると同じような症状になります。

もう一度、ネットから直接コピペではなく
一旦メモ帳等にコピペしてエンター(改行)やスペースが無いことを確認してみてもらえますか?
又は先頭の*が消えていないかも合わせて確認してみてください。


念のためもう一度
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;MEA;$(getvar,MEASUREMENT);;上限公差;\;下限公差;\;to;1,)$(nth,$(getenv,to),,;to;0;MEASUREMENT;0;dimoverride;dimtol;1;dimtp;$M=$(getenv,上限公差);dimtm;$M=$(getenv,下限公差);dimtfac;0.8;;\;MEASUREMENT;$M="""$(getenv,MEA)""";^Cid;)^M


  • chibi-tom
  • 2018/11/13 (Tue) 20:28:31
Re: 公差寸法の記入簡易化
先頭の*が消えておりました・・・

お騒がせしてすいません・・・

無事動きました。

ありがとうございます!
  • 玉木
  • 2018/11/14 (Wed) 09:45:16
Re: 公差寸法の記入簡易化
もっと単純に考えて良かったみたいです。
前のでも問題は無いですが簡略化しました。

^C^C$M=setenv;MEA;$(getvar,MEASUREMENT);;上限公差;\;下限公差;\MEASUREMENT;0;dimoverride;dimtol;1;dimtp;$M="$(getenv,上限公差)";dimtm;$M="$(getenv,下限公差)";dimtfac;0.8;;\;MEASUREMENT;$M="$(getenv,MEA)";^Z
  • chibi-tom
  • 2018/11/14 (Wed) 10:50:29
Re: 公差寸法の記入簡易化
自分がまだまだなのを実感しました・・・

初めて2年もたってないですが、

もっと勉強したいと思います。

簡略化したものも無事動きました。

ありがとうございました。
  • 玉木
  • 2018/11/14 (Wed) 13:46:30
Re: 公差寸法の記入簡易化
これで良いと思いますよ。 CADで試してませんが。
^C^C_setenv;上限公差;\_setenv;下限公差;\$M=MEASUREMENT;0;_dim;override;dimtol;1;dimtp;$(getenv,上限公差);dimtm;$(getenv,下限公差);dimtfac;0.8;;\;MEASUREMENT;$(getvar,MEASUREMENT)^M
  • Lon@スマホ
  • 2018/11/14 (Wed) 15:38:40
Re: 公差寸法の記入簡易化
自分は、まだまだだなぁと痛感しますね

ただ、実は最初の玉木様のマクロ_dim;overrideになっているんですよね(最初は自分も気づかなかった)
なので
^C^C_setenv;上限公差;\_setenv;下限公差;\$M=MEASUREMENT;0;_dimoverride;dimtol;1;dimtp;$(getenv,上限公差);dimtm;$(getenv,下限公差);dimtfac;0.8;;\;MEASUREMENT;$(getvar,MEASUREMENT)^M
こうなると思います。
  • chibi-tom
  • 2018/11/14 (Wed) 15:56:36
Re: 公差寸法の記入簡易化
お二人のマクロは綺麗で、整理されていてとても無駄がないように感じます。

感動しました。もっと勉強して少しでも近づけるように頑張ります。
  • 玉木
  • 2018/11/14 (Wed) 17:55:04

返信フォーム






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