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

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

弧長寸法を直列寸法記入のように連続で作成したい
AutoCAD LT2020を使用しています。

例えば1つの円弧に対して、弧長寸法を非等分に3分割や4分割であげたい時、直列寸法記入のように連続で弧長寸法を作成できるマクロを作成して頂けないでしょうか。

(現在の流れ)
弧長寸法→対象円弧を選択する→部分→任意の始点終点を選ぶ→引き出す→一旦終了
再度弧長寸法→先程と同じ対象円弧を選択→部分→以下同

(希望する流れ)
弧長寸法→対象円弧を選択する→部分→任意の始点終点を選ぶ→引き出す→次の任意の始点終点を選ぶ→引き出す→さらに次の任意の始点終点を選ぶ→引き出す...

このような作業をしたいです。
よろしくお願いします。
  • キシナ
  • 2021/07/28 (Wed) 22:02:00
Re: 弧長寸法を直列寸法記入のように連続で作成したい
*^C^Cid;nea;\$M=dimarc;@;p;\\\;$(getvar,lastpoint);p;\\\;$(getvar,lastpoint);p;\\\;$(getvar,lastpoint);p;\\\;$(getvar,lastpoint);p;\\\
マクロ実行
円弧選択
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧選択
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧選択
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
円弧上の2点クリック⇒寸法値位置決定
永遠に繰り返し(終了はEsc)

5回書く毎に円弧を選択し直しです。
5回が少ないなら、「;$(getvar,lastpoint);p;\\\」をいくつも追加すれば10回毎とかでもできるかもしれません。
追加しすぎると文字数オーバーでマクロが動かなくなります。

円弧を選択した場所に、他のオブジェクト(新たに書く弧長寸法も含む)が有ると、マクロがエラーを起こします。
  • Lon
  • 2021/07/29 (Thu) 09:33:25
Re: 弧長寸法を直列寸法記入のように連続で作成したい
>直列寸法記入のように
>さらに次の任意の始点終点を選ぶ ←ちょっとおかしい気がします
つぎの寸法の始点は前の寸法の終点として
回数無制限に挑戦してみました(3分割や4分割と言っているので必要ないかな)

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,,)$(nth,$(getenv,to),,;p1;$(getvar,lastpoint);;to;2,,,,)$(nth,$(getenv,to),,,line;弧長寸法の1点目を指定:^X\'setenv;p2;$M="""$(getvar,lastpoint)""";弧長寸法の2点目を指定(R-Clickで再選択):^X\$M="""""""$(if,$(getvar,CMDACTIVE),;erase;l;;setenv;to;3,setenv;to;0)""""""",,,)$(nth,$(getenv,to),,,,;p3;$(getvar,lastpoint);;to;4,,)$(nth,$(getenv,to),,,,,dimarc;nea;$(getenv,p1);p;non;$(getenv,p2);non;$(getenv,p3);\setenv;to;5,)$(nth,$(getenv,to),,,,,,line;non;$(getenv,p3);'setenv;p2;$M="""$(getvar,lastpoint)""";弧長寸法の2点目を指定(R-Clickで終了):^X\$M="""""""$(if,$(getvar,CMDACTIVE),;erase;l;;setenv;to;3,^Csetenv;to;0)""""""")^M

1.マクロ起動
2.円弧またはポリライン円弧のセグメントを選択(R-Clickで終了)
3.弧長寸法の1点目を指定
4.弧長寸法の2点目を指定(R-Clickで再選択)
5.弧長寸法の位置を指定
6.弧長寸法の2点目を指定(R-Clickで終了)

以降、5と6を繰り返し
寸法位置をそろえることは残念ながらできませんでした
  • chibi-tom
  • 2021/07/29 (Thu) 10:22:37
Re: 弧長寸法を直列寸法記入のように連続で作成したい
>chibi-tomさま

無制限も魅力的だったので、こちらも使おうと思ったのですが、始点終点を選ぶ際に無効と出ます。
2回くらいは寸法引いてくれるのですが、引いてくれなかったり、一発目から無効と言われたり・・・

以下が流れたコマンドです

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


コマンド: offset

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

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: 円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):*削除*
円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):
通過点を指定 または [終了(E)/一括(M)/元に戻す(U)] <終了>:

コマンド: select

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

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

オブジェクトを選択:

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


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


コマンド:
SETENV
変数名を入力: p1
値 <-34033.15320472,-133424.28348444,0>: -34093.8667916,-133440.4099443,0


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


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


コマンド: line

1 点目を指定: 弧長寸法の1点目を指定:*削除*
弧長寸法の1点目を指定:
次の点を指定 または [元に戻す(U)]: 'setenv
>>変数名を入力: p2
>>値 <-33812.59602435,-133394.78563949,0>: -34195.04277068,-133475.18116694,0


LINE コマンド再開。

次の点を指定 または [元に戻す(U)]: 弧長寸法の2点目を指定(R-Clickで再選択):*削除*
弧長寸法の2点目を指定(R-Clickで再選択):
次の点を指定 または [元に戻す(U)]:

コマンド: erase

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

オブジェクトを選択:

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


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


コマンド:
SETENV
変数名を入力: p3
値 <-33594.16878196,-133420.93110217,0>: -34008.41786086,-133414.99051033,0


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


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


コマンド: dimarc

円弧またはポリライン円弧のセグメントを選択: nea
どこに -34093.8667916,-133440.4099443,0

指定された 点が見つかりません。

*選択無効*
単一のオブジェクトを指定。


以上。


もしお時間ありましたら、改善して貰えるとありがたいです。
出来れば無制限で使いたいなぁと思っています。
  • キシナ
  • 2021/07/29 (Thu) 12:57:28
Re: 弧長寸法を直列寸法記入のように連続で作成したい
あっそれ自分も検討中に出たのですが
最初OSNAPをnonとしていてそれが原因かと思ってneaに変えたらうまくいったので
大丈夫だと思ったのですが駄目でしたか

う~ん、なぜだろう?

ちょっと探っては見ますがわかるかどうかわかりません

>指定された 点が見つかりません。
これが良くわからない
最初に認識できたものが後で認識できないはずないんですけどねぇ
イメージとしてはnonでも問題ないはずなのですが
  • chibi-tom
  • 2021/07/29 (Thu) 13:05:44
Re: 弧長寸法を直列寸法記入のように連続で作成したい
>Lonさま

ありがとうございます!ほぼ理想的な動きをしてくれます。
さっそく使わせていただきます。

欲を言うようで申し訳ないですが、選択した円弧上に弧長寸法を作成するようには出来ませんでしょうか?
「選択した円弧に他のオブジェクトがあるとエラーになる」の通り、円弧上に弧長寸法があると二回目以降は寸法を作成してくれないのですが、円弧上にも弧長寸法を作成する事があるので、そういう動きをしてくれるとさらに有難いのですが。

画像でいうと、
マゼンタの円弧上に赤い弧長寸法を連続で作成したいです。

お時間ありましたら、宜しくお願い致します。
  • キシナ
  • 2021/07/29 (Thu) 13:13:04
Re: 弧長寸法を直列寸法記入のように連続で作成したい
根本的な解決(原因解明)ではありませんが

冒頭の『offset;;円弧または』を『offset;;nea;円弧または』に変更したら
どうなりますでしょうか?
  • chibi-tom
  • 2021/07/29 (Thu) 14:04:40
Re: 弧長寸法を直列寸法記入のように連続で作成したい
>chibi-tomさま

やはり先ほどと変わらず、「指定された 点が見つかりません。」と言われ寸法を作成してくれません。
一回は寸法あげるけど、二回目は無効、はたまた一回目から無効・・・

と、なんとも気まぐれな動きです。
  • キシナ
  • 2021/07/29 (Thu) 14:23:12
Re: 弧長寸法を直列寸法記入のように連続で作成したい
もしかしたら円弧に近いまたは円弧上に寸法を描いていますか?
下記マクロで動作するようならそれが原因かもしれません、絶対とは言い切れませんが、
寸法を最背面に移動していますが
問題はありませんか?
問題があるようならこの考えでは難しいかもしれません

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;nea;円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,,)$(nth,$(getenv,to),,;p1;$(getvar,lastpoint);;to;2,,,,)$(nth,$(getenv,to),,,line;弧長寸法の1点目を指定:^X\'setenv;p2;$M="""$(getvar,lastpoint)""";弧長寸法の2点目を指定(R-Clickで再選択):^X\$M="""""""$(if,$(getvar,CMDACTIVE),;erase;l;;setenv;to;3,setenv;to;0)""""""",,,)$(nth,$(getenv,to),,,,;p3;$(getvar,lastpoint);;to;4,,)$(nth,$(getenv,to),,,,,dimarc;nea;$(getenv,p1);p;non;$(getenv,p2);non;$(getenv,p3);\draworder;l;;b;setenv;to;5,)$(nth,$(getenv,to),,,,,,line;non;$(getenv,p3);'setenv;p2;$M="""$(getvar,lastpoint)""";弧長寸法の2点目を指定(R-Clickで終了):^X\$M="""""""$(if,$(getvar,CMDACTIVE),;erase;l;;setenv;to;3,^Csetenv;to;0)""""""")^M

操作方法は変わっていません

あるいはズームの状態が関係しているかもしれません
  • chibi-tom
  • 2021/07/29 (Thu) 14:31:43
Re: 弧長寸法を直列寸法記入のように連続で作成したい
何度もすいません

>指定された 点が見つかりません。
提示されているマクロの流れでは1つ目の寸法も描けていない状態だと思いますが
最初に選択したオブジェクトが円弧ではない可能性はありませんか?

neaの指定された点が見つからないオブジェクト(文字オブジェクト等はneaで指定できない)が
近くにあり円弧が選択できていない可能性はありませんか?
  • chibi-tom
  • 2021/07/29 (Thu) 15:18:33
Re: 弧長寸法を直列寸法記入のように連続で作成したい
考え方を全く別にしてみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),arc;c;cen;\\\setenv;to;1,,)$(nth,$(getenv,to),,;p1;$(getvar,lastpoint);id;mid;@;dimarc;mid;@;non;@;copybase;non;0<0;l;;erase;l;;;l;;pasteclip;non;0<0;draworder;l;;b;setenv;to;2,)$(nth,$(getenv,to),,,arc;c;cen;$(getenv,p1);non;$(index,0,$(getenv,p1))","$(index,1,$(getenv,p1));\setenv;to;1)^M

1.マクロ起動
2.円弧指定(OSNAPで中心点CENを設定しています)
3.始点を指定
4.終点を指定
5.次の点を指定を繰り返し

寸法位置を指定したい場合はこちらで
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),arc;c;cen;\\\setenv;to;1,,)$(nth,$(getenv,to),,;p1;$(getvar,lastpoint);id;mid;@;dimarc;mid;@;\copybase;non;0<0;l;;erase;l;;;l;;pasteclip;non;0<0;draworder;l;;b;setenv;to;2,)$(nth,$(getenv,to),,,arc;c;cen;$(getenv,p1);non;$(index,0,$(getenv,p1))","$(index,1,$(getenv,p1));\setenv;to;1)^M

1.マクロ起動
2.円弧指定(OSNAPで中心点CENを設定しています)
3.始点を指定
4.終点を指定
5.寸法位置を指定
6.次の点を指定

以降5.6を繰り返し

どちらもEscキーで終了です

※反時計回り(設定によりますが)に指定しないとダメかもしれません

その後試した結果ちょっと不安定ですね
やはりOSNAPはマクロでは思いの場所を選択してくれません
  • chibi-tom
  • 2021/07/29 (Thu) 15:45:53
Re: 弧長寸法を直列寸法記入のように連続で作成したい
原因が分かったかもしれません

dimarcコマンドの指定には2D(X,Y)指定しないと誤動作するようです

なので
以下でどうでしょうか?

その1
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;nea;円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,,)$(nth,$(getenv,to),,;p1;$(getvar,lastpoint);;to;2,,,,)$(nth,$(getenv,to),,,line;弧長寸法の1点目を指定:^X\'setenv;p2;$M="""$(getvar,lastpoint)""";弧長寸法の2点目を指定(R-Clickで再選択):^X\$M="""""""$(if,$(getvar,CMDACTIVE),;erase;l;;setenv;to;3,setenv;to;0)""""""",,,)$(nth,$(getenv,to),,,,;p3;$(getvar,lastpoint);;to;4,,)$(nth,$(getenv,to),,,,,dimarc;nea;$(index,0,$(getenv,p1))","$(index,1,$(getenv,p1));p;non;$(index,0,$(getenv,p2))","$(index,1,$(getenv,p2));non;$(index,0,$(getenv,p3))","$(index,1,$(getenv,p3));\draworder;l;;b;setenv;to;5,)$(nth,$(getenv,to),,,,,,line;non;$(getenv,p3);'setenv;p2;$M="""$(getvar,lastpoint)""";弧長寸法の2点目を指定(R-Clickで終了):^X\$M="""""""$(if,$(getvar,CMDACTIVE),;erase;l;;setenv;to;3,^Csetenv;to;0)""""""")^M

その2の寸法位置を指定Ver
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),arc;c;cen;\\\setenv;to;1,,)$(nth,$(getenv,to),,;p1;$(getvar,lastpoint);id;mid;@;dimarc;mid;@;\copybase;non;0<0;l;;erase;l;;;l;;pasteclip;non;0<0;draworder;l;;b;setenv;to;2,)$(nth,$(getenv,to),,,arc;c;cen;$(index,0,$(getenv,p1))","$(index,1,$(getenv,p1));non;$(index,0,$(getenv,p1))","$(index,1,$(getenv,p1));\setenv;to;1)^M

操作方法はそれぞれ変わっていません
  • chibi-tom
  • 2021/07/29 (Thu) 16:36:11
Re: 弧長寸法を直列寸法記入のように連続で作成したい
すいません<m(__)m>

>原因が分かったかもしれません
違ったみたいです
何が原因だろうか

その2の寸法位置を指定Ver
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),arc;\c;cen;@;\setenv;to;1,,)$(nth,$(getenv,to),,;p1;$(getvar,lastpoint);id;mid;@;dimarc;mid;@;\copybase;non;0<0;l;;erase;l;;;l;;pasteclip;non;0<0;draworder;l;;b;setenv;to;2,)$(nth,$(getenv,to),,,arc;c;cen;$(index,0,$(getenv,p1))","$(index,1,$(getenv,p1));non;$(index,0,$(getenv,p1))","$(index,1,$(getenv,p1));\setenv;to;1)^M

とりあえずですが
最初の円弧選択が分かり難かったのでちょっと修正しました

1.マクロ起動
2.始点を指定
3.終点を指定
4.寸法位置を指定
5.次の点を指定

以降4.5を繰り返し

Escキーで終了です

※反時計回り(設定によりますが)に指定しないとダメみたいです
  • chibi-tom
  • 2021/07/30 (Fri) 09:14:10
Re: 弧長寸法を直列寸法記入のように連続で作成したい
その1とその2を混ぜ合わせてみました
新規図面と既存図面で数種類の円弧(線分と交差等有り)を試しましたが
自分の環境では不安定さは解消されていました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,)$(nth,$(getenv,to),,copy;p;;non;@;non;@;erase;p;;ucs;ob;l;id;non;0<0;ucs;p;id;non;@;setenv;to;2,,,)$(nth,$(getenv,to),,,;p1;$(getvar,lastpoint);arc;c;non;@;\\setenv;to;3,,)$(nth,$(getenv,to),,,,;p2;$(getvar,lastpoint);id;mid;@;dimarc;mid;@;\copybase;non;0<0;l;;erase;l;;;l;;pasteclip;non;0<0;draworder;l;;b;setenv;to;4,)$(nth,$(getenv,to),,,,,arc;c;non;$(getenv,p1);non;$(index,0,$(getenv,p2))","$(index,1,$(getenv,p2));\setenv;to;3)^M

1.マクロ起動
2.円弧選択
3.始点を指定
4.終点を指定
5.寸法位置を指定
6.次の点を指定

以降5.6を繰り返し

Escキーで終了です

※反時計回り(設定によりますが)に指定しないとダメみたいです
  • chibi-tom
  • 2021/07/30 (Fri) 09:37:17
Re: 弧長寸法を直列寸法記入のように連続で作成したい
色々試してくださりありがとうございます。
一番新しいマクロを試してみました。
図のような感じになりました。

①円弧を指定したのち、選択円弧上にさらに追加で円弧が書かれてしまいます。(これは後で消せば良いし、そこまで重要でない)
②弧長寸法がグルっと大きく反転?してしまいます。半時計回りにしてみても変わりませんでした。
③一つ目のグルっと弧長寸法を作成されたのち、ラインコマンドが起動し、連続で弧長寸法を書いていく事ができませんでした。



以下流れたコマンドです


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


コマンド: offset

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

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: 円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):*削除*
円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):
通過点を指定 または [終了(E)/一括(M)/元に戻す(U)] <終了>:

コマンド: select

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

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

オブジェクトを選択:

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


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


コマンド: copy

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

オブジェクトを選択:

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

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

コマンド: erase

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

オブジェクトを選択:

コマンド: ucs

現在の UCS 名: *ワールド*
UCS 原点を指定 または [面(F)/名前の付いた UCS(NA)/オブジェクト(OB)/直前(P)/ビュー(V)/ワールド(W)/X/Y/Z/Z 軸(ZA)] <ワールド>: ob

UCS を位置合わせするオブジェクトを選択: l

コマンド: id
点を指定: non
0<0
X = 0.0000 Y = 0.0000 Z = 0.0000

コマンド: ucs

現在の UCS 名: *名前なし*
UCS 原点を指定 または [面(F)/名前の付いた UCS(NA)/オブジェクト(OB)/直前(P)/ビュー(V)/ワールド(W)/X/Y/Z/Z 軸(ZA)] <ワールド>: p

コマンド: id
点を指定: non
@
X = 3700.7996 Y = -1696.0765 Z = 0.0000

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


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


コマンド:
SETENV
変数名を入力: p1
値 <3700.79963958,-1696.07653667,0>: 3700.79963958,-1696.07653667,0


コマンド: arc

円弧の始点を指定 または [中心(C)]: c

円弧の中心点を指定: non
@

円弧の始点を指定:
円弧の終点を指定(方向を切り替えるには[Ctrl]を押す) または [角度(A)/弦の長さ(L)]:
コマンド: setenv
変数名を入力: to
値 <0>: 3


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


コマンド:
SETENV
変数名を入力: p2
値 <2812.9512578,1786.64270059,0>: 1839.04277828,1378.24768566,0


コマンド: id
点を指定: mid
どこの @
X = 1784.6407 Y = 1522.4517 Z = 0.0000

コマンド: dimarc

円弧またはポリライン円弧のセグメントを選択: mid
どこの @

選択されたオブジェクトは円弧またはポリライン円弧のセグメントではありません。

円弧またはポリライン円弧のセグメントを選択:
弧長寸法の位置を指定 または [マルチ テキスト(M)/寸法値(T)/寸法値角度(A)/部分(P)]: copybase

無効な点が入力されました。
弧長寸法の位置を指定 または [マルチ テキスト(M)/寸法値(T)/寸法値角度(A)/部分(P)]: non
0<0

寸法値: 21522.54
コマンド: l
LINE
1 点目を指定:
線分の長さ: erase

距離を数値で入力してください または 2 点目を指定。
線分の長さ:
次の点を指定 または [元に戻す(U)]:
次の点を指定 または [閉じる(C)/元に戻す(U)]: *キャンセル*

以上。


現時点では、昨日15:45投稿して頂いた「まったく違う考え方をしてみました」verが比較的安定して弧長寸法を作成してくれます。ただ、選択円弧の端点を始点終点に指定するとダメみたいです。
でも円弧の途中はこのマクロで連続で書いていける気がします。まだ4回くらいしか連続していませんけど。
  • キシナ
  • 2021/07/30 (Fri) 10:16:17
Re: 弧長寸法を直列寸法記入のように連続で作成したい
①円弧を指定したのち、選択円弧上にさらに追加で円弧が書かれてしまいます。
仮に円弧を描いていますエラーが無く終了できればマクロ内で削除しています
エラーにより残ってしまっていると思います

②弧長寸法がグルっと大きく反転?してしまいます。半時計回りにしてみても変わりませんでした。
画像のようになるのは計測範囲外にマウスがある場合かと思いますがどうでしょうか?
寸法位置指定時に、参考画像の寸法が入っていない部分(計測範囲内)にマウスを移動してみてください

③一つ目のグルっと弧長寸法を作成されたのち、ラインコマンドが起動し、連続で弧長寸法を書いていく事ができませんでした。
円弧またはポリライン円弧のセグメントを選択: mid
どこの @
選択されたオブジェクトは円弧またはポリライン円弧のセグメントではありません。

この部分でエラーとなっていて
その後のマクロの流れに影響しています

仮に描いた円弧の中心部分を指定するようにしていますが違うオブジェクトの中心を指定しているようです
基本的には最後に描いたオブジェクトが優先されると思っているのですが
マクロ内では違う場合が有る様に感じています(それぞれの設定によるのかもしれませんが)

コマンド: id
点を指定: mid
どこの @
X = 1784.6407 Y = 1522.4517 Z = 0.0000

コマンド: dimarc

となっているので、IDコマンドでのエラーは出ていないようなので
何かしらのオブジェクトの中心は指定できていると思います

>X = 1784.6407 Y = 1522.4517 Z = 0.0000
この座標位置にあるオブジェクトは円弧の中心でしょうか?
それとも終点で指定した交点に交差している線分の中心でしょうか?
あるいはまったく別のオブジェクトの中心でしょうか?

とりあえず
①に関しては③のエラーが解消されれば問題ないと思います
②に関しては選択位置に注意していただくしかないかなと思います(通常の弧長寸法を記入する場合も同じだと思います)
③に関しては解消方法がいまいちわからないんですよねぇ

どうしよ
  • chibi-tom
  • 2021/07/30 (Fri) 11:03:48
Re: 弧長寸法を直列寸法記入のように連続で作成したい
>画像のようになるのは計測範囲外にマウスがある場合かと思いますがどうでしょうか?
>寸法位置指定時に、参考画像の寸法が入っていない部分(計測範囲内)にマウスを移動してみてください

マウスの位置に関係なく、仮に描かれる円弧を選択した瞬間有無を言わさず、反転した大きな弧長寸法になってしまいます。


コマンド: dimarc

円弧またはポリライン円弧のセグメントを選択: mid
どこの @

選択されたオブジェクトは円弧またはポリライン円弧のセグメントではありません。

円弧またはポリライン円弧のセグメントを選択:
弧長寸法の位置を指定 または [マルチ テキスト(M)/寸法値(T)/寸法値角度(A)/部分(P)]: copybase


この「寸法の位置を指定」の前にすでに寸法位置は固定されてグルっと書かれる感じです。




>X = 1784.6407 Y = 1522.4517 Z = 0.0000
>この座標位置にあるオブジェクトは円弧の中心でしょうか?
それとも終点で指定した交点に交差している線分の中心でしょうか?
あるいはまったく別のオブジェクトの中心でしょうか?

終点で指定した交差している線分の中心の位置の座標値でした。

  • キシナ
  • 2021/07/30 (Fri) 12:41:17
Re: 弧長寸法を直列寸法記入のように連続で作成したい
試しに円弧に対して線分を交差させずに、点または円を配置して動作確認してみました。

どちらも機嫌よく弧長寸法を連続であげてくれました。

ただ選択円弧の中心付近にくると、総延長の弧長寸法が上がりました。(緑色)
  • キシナ
  • 2021/07/30 (Fri) 12:45:12
Re: 弧長寸法を直列寸法記入のように連続で作成したい
やはり指定できていないですね

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,)$(nth,$(getenv,to),,copy;p;;non;@;non;@;erase;p;;ucs;ob;l;id;non;0<0;ucs;p;id;non;@;setenv;to;2,,,)$(nth,$(getenv,to),,,;p1;$(getvar,lastpoint);arc;c;non;@;\\draworder;l;;f;setenv;to;3,,)$(nth,$(getenv,to),,,,;p2;$(getvar,lastpoint);sortents;127;id;mid;@;dimarc;mid;@;\copybase;non;0<0;l;;erase;l;;;l;;pasteclip;non;0<0;draworder;l;;b;sortents;$(getvar,SORTENTS);setenv;to;4,)$(nth,$(getenv,to),,,,,arc;c;non;$(getenv,p1);non;$(index,0,$(getenv,p2))","$(index,1,$(getenv,p2));\draworder;l;;f;setenv;to;3)^M

仮で描いた円弧を最前面に移動してみました
試してください
  • chibi-tom
  • 2021/07/30 (Fri) 13:06:07
Re: 弧長寸法を直列寸法記入のように連続で作成したい
単純なことかもしれなかった

より近い中心を指定しているだけみたいです
中心を指定しなくても仮で描いた円弧を最前面に移動すれば行けるかもしれません
何度もすいませんがお試しください

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;円弧またはポリライン円弧のセグメントを選択(R-Clickで終了):^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,)$(nth,$(getenv,to),,copy;p;;non;@;non;@;erase;p;;ucs;ob;l;id;non;0<0;ucs;p;id;non;@;setenv;to;2,,,)$(nth,$(getenv,to),,,;p1;$(getvar,lastpoint);arc;c;non;@;\\draworder;l;;f;setenv;to;3,,)$(nth,$(getenv,to),,,,;p2;$(getvar,lastpoint);sortents;127;dimarc;@;\copybase;non;0<0;l;;erase;l;;;l;;pasteclip;non;0<0;draworder;l;;b;sortents;$(getvar,SORTENTS);setenv;to;4,)$(nth,$(getenv,to),,,,,arc;c;non;$(getenv,p1);non;$(index,0,$(getenv,p2))","$(index,1,$(getenv,p2));\draworder;l;;f;setenv;to;3)^M
  • chibi-tom
  • 2021/07/30 (Fri) 13:21:30
Re: 弧長寸法を直列寸法記入のように連続で作成したい
新規図面・既存図面双方で動作確認しました。
理想的な動きをしてくれます!素敵です、ありがとうございます!!
さっそく利用させていただきます!
  • きしな
  • 2021/07/30 (Fri) 13:52:13

返信フォーム






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