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

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

寸法値上書き
『2014 LT』
<計測値>を<寸法値の優先>にするマクロは出来るのでしょうか?
計測した値が1000の場合,1000をそのまま<寸法値の優先>の値にしたいのです,その際,\Lをつけてアンダーラインも付けたいのですが,よろしくお願いします
  • FUKUDA
  • 2015/07/20 (Mon) 08:39:19
Re: 寸法値上書き
♪_付加寸法値変更
*^C^Cselect;$M=$(if,$(getvar,cmdactive),\,)dim1;override;dimpost;_<>;;p;^M


こちらも参照してみて下さい。
http://ameblo.jp/totthi-macro/entry-10938918648.html
※元の寸法値に戻すマクロもあります。
  • とってぃ
  • 2015/07/20 (Mon) 11:18:49
Re: 寸法値上書き
ありがとうございます.
ちょっと言葉足らずでした
<計測値>が1000(実寸)だった場合

<寸法値の優先>{\L1000}と書き込みたいのです.
実寸で作図していますが,図枠との関係で
ストレッチで縮めて作図する場合があるためです
(\Lと先頭に入力すると,数字全体にアンダーラインが引かれると思いますが)

  • FUKUDA
  • 2015/07/20 (Mon) 15:34:55
Re: 寸法値上書き
アンダーバー「_」じゃなく、寸法値全体への下線だったのですね(^^;

マクロで「\」は、ユーザー入力状態を示します。

※マクロ講座参照
http://ameblo.jp/totthi-macro/entry-10923959090.html

その為、スクリプト等を使用しなければならないのですが・・


また

><計測値>が1000(実寸)だった場合
とありますが、その計測値は寸法値ではないのですか?
  • とってぃ
  • 2015/07/20 (Mon) 16:34:29
Re: 寸法値上書き
またまた言葉足らずでした,
寸法値です.(オブジェクトプロパティーでの名称)

そうなんですか,わかりました,スクリプトの動作等の知識は僕には無いので理解しました,休日なのに対応してくれて,ありがとうございます.
  • FUKUDA
  • 2015/07/20 (Mon) 16:55:05
Re: 寸法値上書き
おはようございます

かなり強引にやれば可能かと
%%u<>%%uでアンダーバーが引かれます

*^C^C$M=setenv;tt;0;$(nth,$(getenv,tt),offset;;変更する寸法線を選択:^X\$M="""$(if,$(getvar,cmdactive),;setenv;tt;1,setenv;tt;0)""",,)$(nth,$(getenv,tt),,select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;setenv;tt;2,)$(nth,$(getenv,tt),,,_select;l;;_cmddia;0;dim1;new;%%u<>%%u;l;;cmddia;1;setenv;tt;0)^M

2011LTでは動きます
2014LTに%%uが可能なのかわかりませんが
  • chibi-tom
  • 2015/07/21 (Tue) 09:19:06
Re: 寸法値上書き
chibi-tomさん ありがとう御座います
アンダーラインは引かれましたが,僕の意図と多少ちがいます,説明不足で,すいません
動作させると
<寸法値の優先>に%%u<>%%uが記入されますが<計測値>の値が入ってきません



長さ寸法の<計測値>が50の場合に
<寸法値の優先>に50と記入したいのです,
そうすると,長さ寸法をストレッチをしても値が50のままにしたいのです,<寸法値>と<寸法値の優先>の値をマクロを使って同じにしたいのです,そしてアンダーバーを引いて寸法値の上書きをしていることの目印にしたいのです.

%%u<>%%uが
%%u50%%u
とならないでしょうか

言葉足らずで申し訳ないです

  • FUKUDA
  • 2015/07/21 (Tue) 10:20:37
Re: 寸法値上書き
やはり使えなくなっているのですね
2011LTではご要望通りになるのですが
確認できず、すいませんでした

オブジェクトプロパティの寸法値の優先に直接
%%u<>%%uと記載してもアンダーバーは引かれませんか?

引かれない場合は2011LTより後はだめかもしれないですね
  • chibi-tom
  • 2015/07/21 (Tue) 13:06:15
Re: 寸法値上書き
勘違いしていたのでとりあえず

*^C^C$M=setenv;tt;0;$(nth,$(getenv,tt),offset;;変更する寸法線を選択:^X\$M="""$(if,$(getvar,cmdactive),;setenv;tt;1,setenv;tt;1)""",,,)$(nth,$(getenv,tt),,select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;dimoverride;dimblk;_none;dimsoxd;1;;l;;explode;l;len;nea;@;;undo;e;u;setenv;tt;2,,)$(nth,$(getenv,tt),,,setenv;RL1;$(rtos,$(getvar,perimeter));setenv;tt;3,)$(nth,$(getenv,tt),,,,_select;l;;_cmddia;0;dim1;new;%%u$(getenv,RL1)%%u;l;;cmddia;1;setenv;tt;0)^M

寸法値ではなく寸法線を選択してください
また、変更がわかればよいのであれば文字の色を変えるとか

*^C^C$M=setenv;tt;0;$(nth,$(getenv,tt),offset;;変更する寸法線を選択:^X\$M="""$(if,$(getvar,cmdactive),;setenv;tt;1,setenv;tt;1)""",,,)$(nth,$(getenv,tt),,select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;dimoverride;dimblk;_none;dimsoxd;1;;l;;explode;l;len;nea;@;;undo;e;u;setenv;tt;2,,)$(nth,$(getenv,tt),,,setenv;RL1;$(rtos,$(getvar,perimeter));setenv;tt;3,)$(nth,$(getenv,tt),,,,_select;l;;_cmddia;0;dim1;new;$(getenv,RL1);l;;dimoverride;dimclrt;red;;l;;cmddia;1;setenv;tt;0)^M
  • chibi-tom
  • 2015/07/21 (Tue) 13:27:58
Re: 寸法値上書き
chibi-tomさん
アンダーバーは引かれます.
数字が入ってこないのです.<寸法値の優先>の下にアンダーバーは引かれています.
2008LTでもアンダーバーは引かれていますが数字が<計測値>のままなので,ストレッチをすると,<計測値>が変わってしまいます,もしかすると,僕の説明が不明瞭なのかもしれません
寸法値を上書きをするために,<寸法値の優先>の項目に上書きする数字を入力していますが,その上書きする数字を,<計測値>を自動で書き込むことができないか,ということなのです.
<計測値>   50
<寸法値の優先>50
ということなのです,
そして<寸法値の優先>50にアンダーバーを引きたいのです.
何度も答えてくれて,ありがとう御座います
  • FUKUDA
  • 2015/07/21 (Tue) 13:43:24
Re: 寸法値上書き
chibi-tomさんのおかげで、忘れていたものを思い出しましたw

自分も作ってみたのでお試しください。

♪寸法値優先下線付
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;k1;計測値記入^X\;to;1,;to;0;offset;;^x^x寸法選択【計測値変更(Rc)】^x\$M="""$(if,$(getvar,cmdactive),;setenv;to;1;select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;setenv;to;2,id;)""",,)$(nth,$(getenv,to),,,explode;l;erase;l;;;l;;;l;;lengthen;l;;undo;e;u;setenv;dim0;$M="""$(+,$(*,$(getvar,dimasz),2),$(getvar,perimeter))""";;to;3,;to;$(if,$(=,$(getenv,k1),$(getenv,dim0)),1;cmddia;0;dim1;new;%%U$(getenv,k1);l;;cmddia;1,1))^M

●使い方
1.計測数値を記入(例:1000)
2.寸法を選択
  ※右クリックで1へ
3.計測値と同じ値の寸法の寸法値には下線
  ※そうでない寸法は何もしない
  繰返し2へ

▲注意
2014ではlengthenコマンドの仕様変更が有った為
上記マクロで動かない場合は、マクロ中の
「lengthen;l;;undo;e;u;」
この部分を
lengthen;l;;;undo;e;u;

lengthen;l;;;;undo;e;u;
にしてみて下さい。


chibi-tomさん
dim1;new;
↑この存在をすっかり忘れてました(^^;
やっぱ扱わないと忘れちゃいますね・・・
フォロー、感謝です。
  • とってぃ
  • 2015/07/21 (Tue) 13:53:55
Re: 寸法値上書き
とってぃ様
お世話になっています

こちらで勉強させていただいているおかげです

自分が使っているマクロに近いと反応してしまいますね
人のマクロ考えると自分の勉強にもなります
  • chibi-tom
  • 2015/07/21 (Tue) 14:19:58
Re: 寸法値上書き
chibi-tomさん
ありがとうございます,動作と結果は完璧なのですが,
%%u数字%%u
上記の数字の部分が任意の数字が入ってきてしまいます
規則性はあるようなのですが,多分,寸法補助線の長さだと思います

クリックする場所によって変わるんですね,寸法線をクリックすると完璧になりました.
色の変わるマクロも完璧に動作しています
ありがとう御座います

とってぃさん
うまく動作しません,寸法線が分解されてしまいます
『;』の個数の違いですよね?
本当にありがとうございます
  • FUKUDA
  • 2015/07/21 (Tue) 15:16:10
Re: 寸法値上書き
>うまく動作しません,寸法線が分解されてしまいます

マクロ実行後、
キーボードF2を押して
テキストウインドウの、マクロが止まったところまでを
コピーして、こちらに貼り付けて下さい。
  • とってぃ
  • 2015/07/21 (Tue) 15:29:56
Re: 寸法値上書き
寸法補助線ではなく寸法線を選択してみてください。
選択した線の長さを測っていますので寸法線以外を選択すると思い通りの数字にならないと思います。
2014LTが無く試せませんのでとってぃ様がおっしゃるように、「len;nea;@;;undo;e;u;」の部分も変更など試してみてください。
  • chibi-tom
  • 2015/07/21 (Tue) 15:37:03
Re: 寸法値上書き
chibi-tomさん
とってぃさん

わかりました,やってみます.
ちょっと時間がないので,明日以降になってしまいます
その時は,よろしくおねがいします
  • FUKUDA
  • 2015/07/21 (Tue) 15:49:50
Re: 寸法値上書き
<;;;><;;;;>の場合は


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


コマンド:
SETENV
変数名を入力: k1
値 <1000>: 計測値記入*削除*
計測値記入


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


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


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


コマンド: offset

現在の設定: 元のオブジェクトを消去=いいえ 画層=元のオブジェクト OFFSETGAPTYPE=0
オフセット距離を指定 または [通過点(T)/消去(E)/画層(L)] <通過点>:

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: *削除*
*削除*
寸法選択【計測値変更(Rc)】*削除*
寸法選択【計測値変更(Rc)】
このオブジェクトはオフセットできません。
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>:

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


コマンド: select

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

オブジェクトを選択: non
@
認識された数: 1 (重複している数: 1), 総数 1

オブジェクトを選択:

コマンド: copy

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

オブジェクトを選択:

基点を指定 または [移動距離(D)/複数(M)] <移動距離>: non
@

2 点目を指定 または [配列(A)] <1 点目を基点に使用>: non
@

コマンド: erase

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

オブジェクトを選択:

コマンド: undo
現在の設定: 自動 = オン, コントロール = すべて, 合成 = いいえ, 画層 = はい
取り消す操作の数を入力 または [自動(A)/コントロール(C)/開始(BE)/終了(E)/マーク(M)/後退(B)] <1>: be

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


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


コマンド: explode

オブジェクトを選択: l

コマンド: erase

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

オブジェクトを選択:

コマンド:
ERASE

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

オブジェクトを選択:

コマンド:
ERASE

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

オブジェクトを選択:

コマンド: lengthen

オブジェクトを選択 または [増減(DE)/比率(P)/全体(T)/ダイナミック(DY)]: l


現在の長さ: 96.0000
オブジェクトを選択 または [増減(DE)/比率(P)/全体(T)/ダイナミック(DY)]:

コマンド:
LENGTHEN

オブジェクトを選択 または [増減(DE)/比率(P)/全体(T)/ダイナミック(DY)]:

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


コマンド:
SETENV
変数名を入力: k1
値 <1000>: 計測値記入*削除*

最後まで動いてると思います
文字と矢印1・2が消えてなくなります



<;;>の場合は何も変化がないです
上記でよろしいでしょうか?

よろしくお願いします





  • FUKUDA
  • 2015/07/22 (Wed) 21:11:20
Re: 寸法値上書き
><;;>の場合は何も変化がないです

変化が無いのは、計測値1000に対して
選択した寸法値が1000で無い為です。

使い方に記載しましたが

●使い方
1.計測数値を記入(例:1000)
2.寸法を選択
  ※右クリックで1へ
3.計測値と同じ値の寸法の寸法値には下線
  ※そうでない寸法は何もしない
  繰返し2へ

計測値と同じ値の寸法の寸法値には下線を引くようにしていますが
選択した寸法は、全て計測値にし下線を引くのでしょうか?

  • とってぃ
  • 2015/07/23 (Thu) 08:24:52
Re: 寸法値上書き
>クリックする場所によって変わるんですね,寸法線をクリックすると完璧になりました.

ということなので、とってぃ様のマクロを勝手に参考にして改良してみました。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;寸法選択:^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;1,setenv;to;0)""",,,)$(nth,$(getenv,to),,select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;explode;l;erase;l;;;l;;;l;;lengthen;l;;undo;e;u;setenv;to;2,,)$(nth,$(getenv,to),,,setenv;RL1;$M=$(+,$(*,$(getvar,dimasz),2),$(getvar,perimeter));setenv;to;3,)$(nth,$(getenv,to),,,,_cmddia;0;dim1;new;%%u$(getenv,RL1);l;;cmddia;1;setenv;to;0)^M

どうですかね、これでどこを選択しても大丈夫かと思うのですが
  • chibi-tom
  • 2015/07/23 (Thu) 08:31:57
Re: 寸法値上書き
chibi-tomさん
試しましたが,寸法の矢印の大きさによって<寸法値の優先>の値が変化してしまいます.数値以外は問題なく作動します.
とってぃさん
計測値と同じ値の寸法の寸法値で入力しています<;;;><;;;;>とも寸法線が壊れます.
寸法線が壊れても(※右クリックで1へ)をすると同じように繰り返しができるので途中で止まってしまうことはないと思います
  • FUKUDA
  • 2015/07/23 (Thu) 09:51:36
Re: 寸法値上書き
残念、寸法スタイルの矢印サイズで計算しているので選択した寸法と現在の寸法スタイルが揃っていないと計算が合いません
改良前と改良後を組み合わせれば何とかなるのか?
  • chibi-tom
  • 2015/07/23 (Thu) 10:33:21
Re: 寸法値上書き
改良2
改良前と改良後を組み合わせてみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;寸法選択:^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;1,setenv;to;0)""",,,)$(nth,$(getenv,to),,select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;dimoverride;dimblk;_none;dimsoxd;1;;l;;explode;l;erase;l;;lengthen;l;;undo;e;u;setenv;to;2,,)$(nth,$(getenv,to),,,setenv;RL1;$M=$(rtos,$(getvar,perimeter));setenv;to;3,)$(nth,$(getenv,to),,,,_cmddia;0;dim1;new;%%u$(getenv,RL1);l;;cmddia;1;setenv;to;0)^M
  • chibi-tom
  • 2015/07/23 (Thu) 10:42:34
Re: 寸法値上書き
chibi-tom
ありがとう御座います
完璧になっています.
  • FUKUDA
  • 2015/07/23 (Thu) 11:03:55
Re: 寸法値上書き
chibi-tomさん

寸法値の矢印の片側のみを無にすると計算ができないのか,直前に修正した寸法値が入ってきてしまいます
  • FUKUDA
  • 2015/07/23 (Thu) 11:20:35
Re: 寸法値上書き
>計測値と同じ値の寸法の寸法値で入力しています<;;;><;;;;>とも寸法線が壊れます.

上記マクロの流れを見ると
♪寸法値優先下線付
で、動きそうですが??

計測値に1000を入れて
選択した寸法の値が1000で無ければ、何もしませんよ。

上記の流れでは
>現在の長さ: 96.0000
となっていますので、何もしないです。

選択した寸法の長さが1000であれば、下線を引きます。


このように理解していたのですが
違いましたでしょうか???


  • とってぃ
  • 2015/07/23 (Thu) 12:00:17
Re: 寸法値上書き
改良3

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;寸法選択:^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;1,setenv;to;0)""",,,)$(nth,$(getenv,to),,select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;dimoverride;dimblk1;_none;dimblk2;_none;dimsoxd;1;;l;;explode;l;erase;l;;lengthen;l;;undo;e;u;setenv;to;2,,)$(nth,$(getenv,to),,,setenv;RL1;$M=$(rtos,$(getvar,perimeter));setenv;to;3,)$(nth,$(getenv,to),,,,_cmddia;0;dim1;new;%%u$(getenv,RL1);l;;cmddia;1;setenv;to;0)^M
  • chibi-tom
  • 2015/07/23 (Thu) 13:08:16
Re: 寸法値上書き
試した寸法線は100としています

<;;;><;;;;>の場合
計測値と同じ値の寸法の寸法値100を入力すると寸法線が壊れて,文字と矢印1・2がなくなります,そして残ったのが寸法線の補助線と補助線間の線だけです,その残った補助線間の線を計測すると96になります
寸法線矢印の大きさを2だと96になり,3だと94になります
上記は結果の報告となります

<;;>で再度,試したところ,正常に動きました,僕の理解不足でした,何度も返答をしていただいたのに本当にごめんなさい,申し訳御座いません


<;;>で再再度,試したところ,矢印が両方に付いているか両方付いていない場合は完璧に<寸法値の優先>に同じ値が入ってくるのですが,片方だけの場合は作動しません(なにも起こりません)
  • FUKUDA
  • 2015/07/23 (Thu) 13:46:27
Re: 寸法値上書き
不具合を見つけたので
改良4です
これで大丈夫、たぶん・・・

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;寸法選択:^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;1,setenv;to;0)""",,,)$(nth,$(getenv,to),,select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;undo;be;dimoverride;dimsah;1;dimblk1;_none;dimblk2;_none;dimsoxd;1;dimtmove;2;;l;;explode;l;erase;l;;lengthen;l;;undo;e;u;setenv;to;2,,)$(nth,$(getenv,to),,,setenv;RL1;$M=$(rtos,$(getvar,perimeter));setenv;to;3,)$(nth,$(getenv,to),,,,_cmddia;0;dim1;new;%%u$(getenv,RL1);l;;cmddia;1;setenv;to;0)^M
  • chibi-tom
  • 2015/07/23 (Thu) 13:52:11
Re: 寸法値上書き
chibi-tomさん
完璧に作動します,
何度も作成していただいて,ありがとうございます
再度すいません
矢印の有無で数字がうまく入りません
1.矢印が両方:寸法線1000はアンダーライン付1000に
2.矢印が片方:寸法線2000はアンダーライン付2000に
3.矢印が両無:寸法線3000はアンダーライン付3000に
完璧に作動しますが

2.3.の処理をした後に1.の処理をすると2.3.の値がそのまま入ってきます.
ファイルを新しくして処理の1.をするとアンダーライン付0になってしまいます.
何度もすいません
  • FUKUDA
  • 2015/07/23 (Thu) 14:00:31
Re: 寸法値上書き
こちらのでも動いたみたいで良かったです。

改良版を作ろうかと思いましたが
chibi-tomさんのマクロで完璧みたいですので
控えておきます。
  • とってぃ
  • 2015/07/23 (Thu) 14:15:41
Re: 寸法値上書き
>2.3.の処理をした後に1.の処理をすると2.3.の値がそのまま入ってきます.
ファイルを新しくして処理の1.をするとアンダーライン付0になってしまいます.

lenのコマンドで長さが計測できていないのだと思うのですが、こちらで症状が出ないのでなぜだかわからないです

バージョン違いが影響しているのか?
改良したいがする場所が見つからないです。
ごめんなさい



  • chibi-tom
  • 2015/07/23 (Thu) 15:11:41
Re: 寸法値上書き
chibi-tomさん
何度も修正していただいてありがとう御座います
2008LTで試してみました,1.2.3.とランダムに試してみましたがきれいに数字が入ってきました.2014LTの影響なんですね.
本当に,ありがとう御座います
  • FUKUDA
  • 2015/07/23 (Thu) 15:46:27
Re: 寸法値上書き
こんにちは。

当方、LT2014です。
chibi-tom さんのマクロをお借りしてちょっと変更しました。
これで、サクサク動いております。
図面の設定次第では動かない事もあるのかもしれませんが。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),pickadd;1;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;l;;undo;e;u;setenv;to;2,,)$(nth,$(getenv,to),,,setenv;RL1;$M=$(rtos,$(getvar,perimeter));setenv;to;3,)$(nth,$(getenv,to),,,,_cmddia;0;dim1;new;%%u$(getenv,RL1);l;;cmddia;1)^M
  • そそろ
  • 2015/07/23 (Thu) 16:58:22
Re: 寸法値上書き
そそろさん
綺麗に作動しています
ありがとう御座います
  • FUKUDA
  • 2015/07/23 (Thu) 18:26:23

返信フォーム






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