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

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

ボルト穴記入、ブロック内の円も対応
いつもこちらのサイトではお世話になっております。
以下のマクロを弊社用に変更して使わせていただいております。
ブロック内の円にも対応したマクロに変更お願いいたします。

CADのバージョン:AutoCad 2025

*^C^Csetenv;m1;1;;m2;1;;m3;0;;m1;セット数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\select;si;\area;o;@;mleader;@;\;$M=$(if,$(=,$(getenv,m1),1),$(if,$(=,$(getenv,m2),1),φ,$(getenv,m2)-φ),$(if,$(=,$(getenv,m2),1),$(getenv,m1)-φ,$(getenv,m1)×$(getenv,m2)-φ))$(rtos,$(/,$(getvar,perimeter),3.1416),2,3);chprop;@;;la;moji;^M
  • mappy
  • 2024/04/24 (Wed) 14:10:47
Re: ボルト穴記入、ブロック内の円も対応
参考まで
とりあえず分解→計測→戻すを足してみました

*^C^Csetenv;m1;1;;m2;1;;m3;0;;m1;セット数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\undo;be;select;si;\xplode;non;@;;$M=$(if,$(getvar,CMDACTIVE),e;)area;o;@;undo;e;u;mleader;@;\$M=$(if,$(=,$(getenv,m1),1),$(if,$(=,$(getenv,m2),1),φ,$(getenv,m2)-φ),$(if,$(=,$(getenv,m2),1),$(getenv,m1)-φ,$(getenv,m1)×$(getenv,m2)-φ))$(rtos,$(/,$(getvar,perimeter),3.1416),2,3);chprop;@;;la;moji;^M
  • chibi-tom
  • 2024/04/24 (Wed) 17:31:01
Re: ボルト穴記入、ブロック内の円も対応
chibi-tom様

ありがとうございます。

早速試してみましたがループしてしまってなにもできませんでした。
拙い知識で先頭の*を削除して再度トライしてみましたが同じ現象でした。
どこをどう直せばいいのかわからず、ご教授ください。
  • mappy
  • 2024/04/25 (Thu) 08:26:21
Re: ボルト穴記入、ブロック内の円も対応
select;si;\area;o;@;

undo;be;select;si;\xplode;non;@;;$M=$(if,$(getvar,CMDACTIVE),e;)area;o;@;undo;e;u;
にして分解→計測→戻すをしているだけですのでループの原因は分かりませんね

https://ameblo.jp/totthi-macro/entry-10894483533.html
を参照に今一度マクロの確認をしてみてください

できるならキーボードF2を押し、表示されたテキストウィンドウ内のマクロ開始~終了までのマクロの流れをコピーし
『ループしてしまってなにもできません』の状況がわかるようにしていただけますか

また、ついでなので最初の設定部分で『m3;0』を設定していますがどこにも呼び出しをしていませんね
  • chibi-tom
  • 2024/04/25 (Thu) 10:11:15
Re: ボルト穴記入、ブロック内の円も対応
chibi-tom様

大変失礼いたしました。
再度確認してみたところ、マクロが長くて貼り付けられておりませんでしたのでCUIから貼り付けてやってみました。
以下がマクロの流れです。

結果は引出線に文字がLaと出てしまいました。
また、分解されたブロックは分解されたままになってしまいました。

『m3;0』は利用させていただいた元のマクロから変更する時にこれを削除するとうまく動かなかかったため残した ということです。



コマンド: setenv
変数名を入力: m1
値 <1>: 1
コマンド:
コマンド:
SETENV
変数名を入力: m2
値 <1>: 1
コマンド:
コマンド:
SETENV
変数名を入力: m3
値 <0>: 0
コマンド:
コマンド:
SETENV
変数名を入力: m1
値 <1>: セット数(右クリックまたはエンターで省略)*削除*
セット数(右クリックまたはエンターで省略)
コマンド:
コマンド:
SETENV
変数名を入力: m2
値 <1>: 穴数(右クリックまたはエンターで省略)*削除*
穴数(右クリックまたはエンターで省略)
コマンド:
コマンド: undo
現在の設定: 自動 = オン, コントロール = すべて, 合成 = はい, 画層 = はい
取り消す操作の数を入力 または [自動(A)/コントロール(C)/開始(BE)/終了(E)/マーク(M)/後退(B)] <1>: be
コマンド: select
オブジェクトを選択: si
オブジェクトを選択: 認識された数: 1
コマンド: xplode
拡張分解するオブジェクトを選択:
オブジェクトを選択: non
@
認識された数: 1
オブジェクトを選択:
1 個のオブジェクトが見つかりました。
オプションを入力
[すべて(A)/色(C)/画層(LA)/線種(LT)/線の太さ(LW)/親ブロックから継承(I)/分解(E)] <分解>: e
オブジェクト 分解されました。
コマンド:
コマンド: area
コーナーの 1 点目を指定 または [オブジェクト(O)/面積を加算(A)/面積を減算(S)] <オブジェクト(O)>: o
オブジェクトを選択: @
面積 = 132.7323, 円周 = 40.8407
コマンド: undo
現在の設定: 自動 = オン, コントロール = すべて, 合成 = はい, 画層 = はい
取り消す操作の数を入力 または [自動(A)/コントロール(C)/開始(BE)/終了(E)/マーク(M)/後退(B)] <1>: e
コマンド: u
グループ AREA XPLODE SELECT
コマンド: mleader
引出線の矢印の位置を指定 または [文字を入力(T)/引出参照線を指定(L)/内容を指定(C)/オプション(O)] <オプション>: @
次の点を指定 または [終了(E)] <終了>:
次の点を指定 または [終了(E)] <終了>: φ13
入力が無効です。
次の点を指定 または [終了(E)] <終了>: chprop
入力が無効です。
次の点を指定 または [終了(E)] <終了>: @
次の点を指定 または [終了(E)] <終了>:
文字列を入力: la
コマンド: moji
そのようなコマンド "MOJI" はありません。ヘルプを表示するには F1 キーを押してください。
コマンド:
  • mappy
  • 2024/04/25 (Thu) 10:19:39
Re: ボルト穴記入、ブロック内の円も対応
失礼しました
自分がマルチ引き出し線(マルチテキスト)をあまり使用しないので忘れてました

mleader;@;\;

自分が確認するときに

mleader;@;\としていましたm(__)m

*^C^Csetenv;m1;1;;m2;1;;m3;0;;m1;セット数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\undo;be;select;si;\xplode;non;@;;$M=$(if,$(getvar,CMDACTIVE),e;)area;o;@;undo;e;u;mleader;@;\;$M=$(if,$(=,$(getenv,m1),1),$(if,$(=,$(getenv,m2),1),φ,$(getenv,m2)-φ),$(if,$(=,$(getenv,m2),1),$(getenv,m1)-φ,$(getenv,m1)×$(getenv,m2)-φ))$(rtos,$(/,$(getvar,perimeter),3.1416),2,3);chprop;@;;la;moji;^M

分解については今回提示していただいた流れを見る限りは戻っているように見えますがいかがでしょうか?

ちなみに『;m3;0;』は削除してもこのマクロに関しては影響ないはずですよ(別のマクロに関係している可能性はありますけど)

  • chibi-tom
  • 2024/04/25 (Thu) 10:49:01
Re: ボルト穴記入、ブロック内の円も対応
再度確認して修正してみました
確認してみてください

*^C^Csetenv;m1;1;;m2;1;;m1;セット数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\undo;be;select;si;\xplode;non;@;;$M=$(if,$(getvar,CMDACTIVE),e;)area;o;@;setenv;d1;$M="$(rtos,$(/,$(getvar,perimeter),3.1416),2,3)";undo;e;u;mleader;@;\;$M=$(if,$(=,$(getenv,m1),1),$(if,$(=,$(getenv,m2),1),φ,$(getenv,m2)-φ),$(if,$(=,$(getenv,m2),1),$(getenv,m1)-φ,$(getenv,m1)×$(getenv,m2)-φ))$M="""$(getenv,d1)""";chprop;@;;la;moji;^M
  • chibi-tom
  • 2024/04/25 (Thu) 11:10:10
Re: ボルト穴記入、ブロック内の円も対応
chibi-tom
ありがとうございます。
できました。

因みにBlockの中の矩形配列にも対応できないでしょうか?
矩形配列単体で使用した場合、矩形配列が分解されてしまいますね。^^;


大変恐縮なのですが
chibi-tom様が2021/07/16 (Fri) 10:23:43に公開しされていた「28.引出線(Mタップ表記)改造」を弊社仕様に改造して使わせていただいたところ、Blockも矩形配列もできました。
こちらを◯x◯-φ◯ に改造お願いできないでしょうか?
お手間を取らせてしまい申し訳ありませんがよろしくお願いします。



*^C^C$M=setenv;to;0;$(nth,$(getenv,to),setenv;m1;1;;m1;セット数x穴数(右クリックまたはエンターで省略)^X\offset;;キリ穴を選択(右クリックまたはエンターで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,,,)$(nth,$(getenv,to),,;p1;$(getvar,LASTPOINT);dist;nea;@;cen;@;setenv;to;2,,,,,)$(nth,$(getenv,to),,,;d1;$(*,$(getvar,DISTANCE),2);;d2;"M3,M4,M5,M8,M10";;h1;"5.1,6.1,7.1,9.1,11.1,13.1";;to;3,,,,)$(nth,$(getenv,to),,,,$(if,$(=,5.1,$(getenv,d1)),;sw;0;;to;5,$(if,$(=,6.1,$(getenv,d1)),;sw;1;;to;5,$(if,$(=,7.1,$(getenv,d1)),;sw;2;;to;5,;to;4))),,,)$(nth,$(getenv,to),,,,,$(if,$(=,9.1,$(getenv,d1)),;sw;3;;to;5,$(if,$(=,11.1,$(getenv,d1)),;sw;4;;to;5,$(if,$(=,13.1,$(getenv,d1)),;sw;5;;to;5,^Csetenv;^Z対象サイズではありません^X))),,)$(nth,$(getenv,to),,,,,,;d2;$(index,$(getenv,sw),$(getenv,d2));;h1;$(index,$(getenv,sw),$(getenv,h1));;to;6,)$(nth,$(getenv,to),,,,,,,Mleader;$(getenv,p1);\;$(if,$(=,$(getenv,m1),1),,$(getenv,m1)-)%%C$(getenv,d1)^SP$(getenv,d2) クリンプナット;setenv;to;0;;m1;1)
  • mappy
  • 2024/04/25 (Thu) 13:18:14
Re: ボルト穴記入、ブロック内の円も対応
どうでしょうか?

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;m1;1;;m2;1;;m1;セット数x穴数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\setenv;to;1,,,)$(nth,$(getenv,to),,offset;;キリ穴を選択(右クリックまたはエンターで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;1;select;non;@;non;@;;dist;nea;@;cen;@;setenv;to;2,^Csetenv;to;0)""",,)$(nth,$(getenv,to),,,;d1;$(rtos,$(*,$(getvar,DISTANCE),2),2,3);;to;3,)$(nth,$(getenv,to),,,,mleader;@;\;$M=$(if,$(=,$(getenv,m1),1),$(if,$(=,$(getenv,m2),1),φ,$(getenv,m2)-φ),$(if,$(=,$(getenv,m2),1),$(getenv,m1)-φ,$(getenv,m1)×$(getenv,m2)-φ))$(getenv,d1);chprop;@;;la;moji;;setenv;to;0)^M

さっき突っ込んでおいて自分でも要らない設定してたので削除しました<m(__)m>
さらに無駄を省きました
  • chibi-tom
  • 2024/04/25 (Thu) 13:44:49
Re: ボルト穴記入、ブロック内の円も対応
ありがとうございます。

思い通りの動きでできました。
  • mappy
  • 2024/04/25 (Thu) 13:48:37

返信フォーム






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