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

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

寸法値を文字列に自動変換するマクロ
はじめまして。
いつも便利に使わせていただいてます。
現在AutoCAD LT 2018使用中です。

寸法値はそのままストレッチするとその分だけ数字が動いてしまうと思いますがそれを防ぐために現在手打ちで打ち直してます。
寸法値を自動の<>から現在の文字列に変換できるマクロは作成可能でしょうか?選択した寸法線の寸法値が全て一気に変換出来るようになると大変助かります。

よろしくお願い致します。
  • MD-KSK
  • 2018/07/06 (Fri) 15:47:41
Re: 寸法値を文字列に自動変換するマクロ
複数一度にはできないですが

選択と同時に文字列にはできます

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),copy;寸法選択:^X\non;@;;non;@;non;@;erase;p;;setenv;to;1,,)$(nth,$(getenv,to),,undo;be;dimoverride;dimsah;1;dimblk1;_none;dimblk2;_none;dimsoxd;1;dimtmove;2;;l;;explode;l;erase;l;;lengthen;dy;;;l;;;undo;e;u;setenv;to;2,)$(nth,$(getenv,to),,,_cmddia;0;dim1;new;$(rtos,$(getvar,perimeter),2);l;;cmddia;1;setenv;to;0)^M

lt2017で動作確認です

注、長さ寸法のみです。
  • chibi-tom
  • 2018/07/06 (Fri) 16:53:56
Re: 寸法値を文字列に自動変換するマクロ
SFCに変換すると寸法値は文字列になるので、

DWG→SFC→DWGとすれば良いのでは?
  • Den
  • 2018/07/06 (Fri) 17:30:29
Re: 寸法値を文字列に自動変換するマクロ
chibi-tomさん
ありがとうございます!
業務が数倍捗ります!
  • MD-KSK
  • 2018/07/10 (Tue) 08:25:27
Re: 寸法値を文字列に自動変換するマクロ
参考としての一括方式

*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),undo;be;select;\copybase;non;0<0;p;;erase;p;;-layout;d;tmplo;;n;tmplo;;s;tmplo;point;0<0;erase;all;;pasteclip;non;0<0;zoom;e;cmddia;0;setenv;cd;$(getvar,cmddia);;to;1)$(if,$(=,$(getenv,to),1),;to;4;select;l;;undo;m;dimoverride;dimtad;2;dimash;0;dimblk;_none;;l;;setenv;to;2)$(if,$(=,$(getenv,to),2),explode;l;erase;l;;lengthen;dy;;;l;;;$M=undo;b;dim1;new;"""$(rtos,$(getvar,perimeter),2)"""^SX<>;l;;setenv;to;3)$(if,$(=,$(getenv,to),3),copybase;non;0<0;l;;erase;p;;-layout;s;model;pasteclip;non;0<0;-layout;s;tmplo;setenv;to;1)$(if,$(=,$(getenv,to),4),-layout;s;model;;d;tmplo;cmddia;$(getenv,cd);^Cundo;e)^M
  • zukki-
  • 2018/07/10 (Tue) 15:55:32
Re: 寸法値を文字列に自動変換するマクロ
zukki-さん
ありがとうございます。
使用してみましたがしばらく固まった後、画像のような状態になります。
当方AUTOCAD LT2018ですがバージョンの問題でしょうか?
  • MD-KSK
  • 2018/07/10 (Tue) 17:52:32
Re: 寸法値を文字列に自動変換するマクロ
すみません、画像が添付出来てなかったみたいです。
  • MD-KSK
  • 2018/07/11 (Wed) 13:21:06
Re: 寸法値を文字列に自動変換するマクロ
>使用してみましたがしばらく固まった後
レイアウトを利用しての処理中だと思われます。
^SX<>部分で寸法値を合わせて表示させているので
画像のようになるのは正しい動作だと思います。

下段の寸法値が必要なければ
^SX<>の部分を削除すれば出なくなります。
  • chibi-tom
  • 2018/07/11 (Wed) 14:51:49
Re: 寸法値を文字列に自動変換するマクロ
上が動かない寸法、下が動く寸法<>です。比較のため趣味でつくりました。
  • zukki-
  • 2018/07/11 (Wed) 14:52:58
Re: 寸法値を文字列に自動変換するマクロ
chibi-tomさんの投稿とかぶりましたね。
解説のとおりです。寸法値を打ち変える理由が分からなかったもので余計なものをつけましま。適当に削除して下さい。
  • zukki-
  • 2018/07/11 (Wed) 15:01:06
Re: 寸法値を文字列に自動変換するマクロ
chibi-tomさん、zukki-さん
出来ました!とても助かります。

中間を省略した詳細図を書く時にワイドが4000mmの製品を1:1でA2の図枠に書いたりするんですが中間が複雑な構造になっているとビューポートで切り貼りするのが時間の手間になってしまうので絵をストレッチして寸法を打ち直したりする事があるんです。余談で失礼しました。
ありがとうございました。
  • MD-KSK
  • 2018/07/11 (Wed) 18:21:30
Re: 寸法値を文字列に自動変換するマクロ
実寸と違う場合の判断方法として
文字色の変更やアンダーバー表示することがあるんで
個人的に気になっただけなので関係なければスルーしてください。

文字色変更(赤色)Ver
*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),undo;be;select;\copybase;non;0<0;p;;erase;p;;-layout;d;tmplo;;n;tmplo;;s;tmplo;point;0<0;erase;all;;pasteclip;non;0<0;zoom;e;cmddia;0;setenv;cd;$(getvar,cmddia);;to;1)$(if,$(=,$(getenv,to),1),;to;4;select;l;;undo;m;dimoverride;dimtad;2;dimash;0;dimblk;_none;;l;;setenv;to;2)$(if,$(=,$(getenv,to),2),explode;l;erase;l;;lengthen;dy;;;l;;;$M=undo;b;dim1;new;"""$(rtos,$(getvar,perimeter),2)""";l;;dimoverride;dimclrt;1;;l;;setenv;to;3)$(if,$(=,$(getenv,to),3),copybase;non;0<0;l;;erase;p;;-layout;s;model;pasteclip;non;0<0;-layout;s;tmplo;setenv;to;1)$(if,$(=,$(getenv,to),4),-layout;s;model;;d;tmplo;cmddia;$(getenv,cd);^Cundo;e)^M

アンダーバー表示Ver
*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),undo;be;select;\copybase;non;0<0;p;;erase;p;;-layout;d;tmplo;;n;tmplo;;s;tmplo;point;0<0;erase;all;;pasteclip;non;0<0;zoom;e;cmddia;0;setenv;cd;$(getvar,cmddia);;to;1)$(if,$(=,$(getenv,to),1),;to;4;select;l;;undo;m;dimoverride;dimtad;2;dimash;0;dimblk;_none;;l;;setenv;to;2)$(if,$(=,$(getenv,to),2),explode;l;erase;l;;lengthen;dy;;;l;;;$M=undo;b;dim1;new;%%u"""$(rtos,$(getvar,perimeter),2)""";l;;setenv;to;3)$(if,$(=,$(getenv,to),3),copybase;non;0<0;l;;erase;p;;-layout;s;model;pasteclip;non;0<0;-layout;s;tmplo;setenv;to;1)$(if,$(=,$(getenv,to),4),-layout;s;model;;d;tmplo;cmddia;$(getenv,cd);^Cundo;e)^M

zukki-様のマクロ勝手にいじってしまいました。
  • chibi-tom
  • 2018/07/11 (Wed) 18:35:46
Re: 寸法値を文字列に自動変換するマクロ
まったくをもってオーケーです。
chibi-tomさんのも参考にしています。
  • zukki-
  • 2018/07/11 (Wed) 18:58:00
Re: 寸法値を文字列に自動変換するマクロ
chibi-tomさん、zukki-さん
実際使用してみて寸法値の色が変わったほうが分かりやすいなと感じました。
何から何までお気遣いありがとうございます。
  • MD-KSK
  • 2018/07/12 (Thu) 16:02:50
Re: 寸法値を文字列に自動変換するマクロ
投稿主様
横入りすみません。

弊社も同じように手打ちでアンダーバーを使うことがあるのですが、
アンダーバーマクロに
手打ち寸法も記入できるようにしていただくことは
可能でしょうか?
マクロを使用させていただいたところ、
予め手打ちの寸法値にアンダーバーが引かれるようなので。。。
  • tee
  • 2018/07/12 (Thu) 17:16:07
Re: 寸法値を文字列に自動変換するマクロ
やりたいことがいまひとつはっきりしないでみかんさんのように図示してくれるとレスがつきやすいです。

図示の例
http://bbs2.fc2.com//bbs/img/_816400/816339/full/816339_1531213195.png
  • zukki-
  • 2018/07/12 (Thu) 18:34:33
Re: 寸法値を文字列に自動変換するマクロ
こんな感じでしょうか?

*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),ray;手打ち寸法記入(左)/実測値記入(右):^X\$M="""$(if,$(getvar,cmdactive),;setenv;UPN1;手打ち寸法:^X\;sw;1,setenv;sw;0)""";;to;1)$(if,$(=,$(getenv,to),1),undo;be;select;\copybase;non;0<0;p;;erase;p;;-layout;d;tmplo;;n;tmplo;;s;tmplo;point;0<0;erase;all;;pasteclip;non;0<0;zoom;e;cmddia;0;setenv;cd;$(getvar,cmddia);;to;2)$(if,$(=,$(getenv,to),2),;to;5;select;l;;undo;m;dimoverride;dimtad;2;dimash;0;dimblk;_none;;l;;setenv;to;3)$(if,$(=,$(getenv,to),3),explode;l;erase;l;;lengthen;dy;;;l;;;$M=undo;b;dim1;new;$(if,$(getenv,sw),%%u$(getenv,UPN1),%%u$(rtos,$(getvar,perimeter),2));l;;setenv;to;4)$(if,$(=,$(getenv,to),4),copybase;non;0<0;l;;erase;p;;-layout;s;model;pasteclip;non;0<0;-layout;s;tmplo;setenv;to;2)$(if,$(=,$(getenv,to),5),-layout;s;model;;d;tmplo;cmddia;$(getenv,cd);^Cundo;e)^M

1.マクロ起動
2.手打ち寸法記入の場合は左クリック:3へ/実測値を記入する場合は右クリック:4へ
3.手打ち寸法記入
4.寸法選択

以上です

  • chibi-tom
  • 2018/07/12 (Thu) 18:55:13
Re: 寸法値を文字列に自動変換するマクロ
提案しておいてなんですが、手打ちの寸法にアンダーバーを引くだけなら選択してU_ボタンを
ポチッとするだけなので、このマクロでもあまり手間が変わらない気がします。

同じ文字がいくつも有って一度にアンダーバーが引きたいなら有効かもしれませんが
手打ちするってことは同じ文字がいくつもというのは考えにくいですけど

もし間違っていたらスルーでお願いします。
  • chibi-tom
  • 2018/07/13 (Fri) 19:04:32
Re: 寸法値を文字列に自動変換するマクロ
zukki-様
すみません。
以後気を付けます。
ご指摘ありがとうございます。

chibi-tom様
ありがとうございます!
まさにこれを求めていました!
仕事内容によるのですが、
複数の場合や単体とさまざまなので
とっても助かります!
  • tee
  • 2018/07/17 (Tue) 11:18:27
Re: 寸法値を文字列に自動変換するマクロ
chibi-tom 様
zukki 様

素晴らしいマクロありがとうございます。
autocad2016LTでは赤色とアンダーバーのマクロは正常に動きました。
ただ仕事の精度上0.00までの表示でCADをしているのですが
このマクロを使用すると0.0000まで表示されてしまうのが…
0.00までの表示は出来ないものなのでしょうか?
  • tr
  • 2018/09/17 (Mon) 16:56:01
Re: 寸法値を文字列に自動変換するマクロ
UNITS:単位管理の設定が0.0000になっているのではないでしょうか?

単位管理の設定で表示する設定になっています。

もし単位管理を変えたくなければ
$(rtos,$(getvar,perimeter),2)を
$(rtos,$(getvar,perimeter),2,2)に変えればよいと思います。
  • chibi-tom
  • 2018/09/18 (Tue) 08:27:50
Re: 寸法値を文字列に自動変換するマクロ
chibi-tom 様

早急なお返事ありがとうございます。
ありがとうございました!!!!!!
  • tr
  • 2018/09/18 (Tue) 20:23:25

返信フォーム






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