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

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

図面内の異尺度(詳細図)にボルト穴記入
お世話になっております。

またまたご教授いただきたくスレをたてました。

図面内の詳細図に対しボルトの穴を記入するマクロを改造しているのですがどうしてもうまくいきません。

使用CAD:AutoCAD2025

以下マクロです。



*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;m1;1;;m2;1;;is1;詳細図の尺度^X\;m1;セット数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\setenv;to;1,,,,,)$(nth,$(getenv,to),,offset;;キリ穴を選択(右クリックまたはエンターで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;1;select;non;@;non;@;;setenv;to;2,^Csetenv;to;0)""",,,,)$(nth,$(getenv,to),,,;p1;$(getvar,LASTPOINT);dist;nea;@;cen;@;setenv;to;3,,,)$(nth,$(getenv,to),,,,;d1;$(rtos,$(*,$(getvar,DISTANCE),2),2,3);;to;4,,)$(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),2);setenv;to;5,)$(nth,$(getenv,to),,,,,,chprop;@;;la;moji;;setenv;to;0)^M


最後のマクロ
$(/,$(getenv,d1),2);setenv;to;5,)
ここには仮として”2”をいれてあります。
ここに以下のマクロが入るとおもっているのですがうまくいきません。
$(*,$(getenv,d1),$(/,$(getenv,is1),$(getvar,CANNOSCALE)));setenv;to;5,)


上記の場合のコマンドの流れです。

コマンド: $M=setenv
そのようなコマンド "$M=SETENV" はありません。ヘルプを表示するには F1 キーを押してください。
コマンド: to
TOOLBAR ツールバー名を入力 または [すべて(ALL)]: 0
ツールバーが見つかりません。
ツールバー名を入力 または [すべて(ALL)] <0>: m1
ツールバーが見つかりません。
ツールバー名を入力 または [すべて(ALL)] <m1>: 1
ツールバーが見つかりません。
ツールバー名を入力 または [すべて(ALL)] <1>:
コマンド: m2
そのようなコマンド "M2" はありません。ヘルプを表示するには F1 キーを押してください。
コマンド: 1
そのようなコマンド "1" はありません。ヘルプを表示するには F1 キーを押してください。
コマンド:
TOOLBAR
ツールバー名を入力 または [すべて(ALL)]: is1
ツールバーが見つかりません。
ツールバー名を入力 または [すべて(ALL)] <is1>: 詳細図の尺度*削除*
詳細図の尺度*キャンセル*


よろしくお願いします。
  • mappy
  • 2024/06/07 (Fri) 11:09:03
Re: 図面内の異尺度(詳細図)にボルト穴記入
AutoCAD2025をご使用とのことですが、下記にあるTdMacros.lspを登録して、"SETENV/GETENV"を使用できる環境にされていますか?
https://ameblo.jp/totthi-macro/entry-10895232361.html
  • LUNE
  • 2024/06/07 (Fri) 11:34:33
Re: 図面内の異尺度(詳細図)にボルト穴記入
CANNOSCALEって数値じゃないから割り算で使えない。って事では?
  • 通りすがりの人
  • 2024/06/07 (Fri) 12:01:16
Re: 図面内の異尺度(詳細図)にボルト穴記入
$(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),$(/,$(getenv,is1),$(getvar,CANNOSCALE)));setenv;to;5,)
が長いのですかね

また通りすがりの人さんがおっしゃるようにCANNOSCALEは数値じゃないので計算には使えませんね

ふまえて
こちらではどうでしょうか?

CANNOSCALEの代わりにCANNOSCALEVALUEにして別途変数設定してみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;m1;1;;m2;1;;is1;詳細図の尺度^X\;m1;セット数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\setenv;to;1,,,,,,)$(nth,$(getenv,to),,offset;;キリ穴を選択(右クリックまたはエンターで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;1;select;non;@;non;@;;setenv;to;2,^Csetenv;to;0)""",,,,,)$(nth,$(getenv,to),,,;p1;$(getvar,LASTPOINT);dist;nea;@;cen;@;setenv;to;3,,,,)$(nth,$(getenv,to),,,,;d1;$(rtos,$(*,$(getvar,DISTANCE),2),2,3);;to;4,,,)$(nth,$(getenv,to),,,,,;mt1;$(*,$(getenv,d1),$(/,$(getenv,is1),$(getvar,CANNOSCALEVALUE)));;to;5,,)$(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,mt1);setenv;to;6,)$(nth,$(getenv,to),,,,,,,chprop;@;;la;moji;;setenv;to;0)^M
  • chibi-tom
  • 2024/06/07 (Fri) 12:49:41
Re: 図面内の異尺度(詳細図)にボルト穴記入
LUNE様

いつもありがとうございます。


TdMacros.lspは登録済です。
  • mappy
  • 2024/06/07 (Fri) 13:48:23
Re: 図面内の異尺度(詳細図)にボルト穴記入
通りすがりの人様

こちらのマクロだと使えるんです。


*^C^Csetenv;m1;1;;m2;1;;m3;0;;is1;詳細図の尺度^X\;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),$(/,$(getenv,is1),$(getvar,CANNOSCALE))),2,3);chprop;@;;la;moji;^M
  • mappy
  • 2024/06/07 (Fri) 13:49:43
Re: 図面内の異尺度(詳細図)にボルト穴記入
chibi-tom様

一応マクロは動いたのですがφ10のボルト穴がφ1600になってしまいました。

因みに1/40の図面に詳細図は1/20で書いてます。


マクロです。
コマンド: setenv
変数名を入力: to
値 <0>: 0
コマンド:
コマンド:
SETENV
変数名を入力: m1
値 <1>: 1
コマンド:
コマンド:
SETENV
変数名を入力: m2
値 <1>: 1
コマンド:
コマンド:
SETENV
変数名を入力: is1
値 <20>: 詳細図の尺度*削除*
詳細図の尺度
コマンド:
コマンド:
SETENV
変数名を入力: m1
値 <1>: セット数(右クリックまたはエンターで省略)*削除*
セット数(右クリックまたはエンターで省略)
コマンド:
コマンド:
SETENV
変数名を入力: m2
値 <1>: 穴数(右クリックまたはエンターで省略)*削除*
穴数(右クリックまたはエンターで省略)50
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 1
コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0
コマンド:
コマンド: offset
現在の設定: 元のオブジェクトを消去=いいえ 画層=元のオブジェクト OFFSETGAPTYPE=0
オフセット距離を指定 または [通過点(T)/消去(E)/画層(L)] <3.0000>:
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: キリ穴を選択(右クリックまたはエンターで終了)*削除*
キリ穴を選択(右クリックまたはエンターで終了)
このオブジェクトはオフセットできません。
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>:
コマンド: setenv
変数名を入力: to
値 <0>: 1
コマンド:
コマンド: select
オブジェクトを選択: non
@
認識された数: 1
オブジェクトを選択: non
@
認識された数: 1 (重複している数: 1), 総数 1
オブジェクトを選択:
コマンド: setenv
変数名を入力: to
値 <1>: 2
コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0
コマンド:
コマンド:
SETENV
変数名を入力: p1
値 <29651.77215962,10559.10004161,0>: 29647.33184137,10358.21185068,0
コマンド:
コマンド: dist
1 点目を指定: nea
どこに @
2 点目を指定 または [複数点(M)]: cen
どこの @
長さ = 10.0000、 XY平面の角度 = 38、 XY平面からの角度 = 0
デルタ X = 7.8385、 デルタ Y = 6.2095、 デルタ Z = 0.0000
コマンド: setenv
変数名を入力: to
値 <0>: 3
コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <3>: 0
コマンド:
コマンド:
SETENV
変数名を入力: d1
値 <20>: 20
コマンド:
コマンド:
SETENV
変数名を入力: to
値 <0>: 4
コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <4>: 0
コマンド:
コマンド:
SETENV
変数名を入力: mt1
値 <16000>: 16000
コマンド:
コマンド:
SETENV
変数名を入力: to
値 <0>: 5
コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <5>: 0
コマンド:
コマンド: mleader
引出線の矢印の位置を指定 または [文字を入力(T)/引出参照線を指定(L)/内容を指定(C)/オプション(O)] <オプション>: @
次の点を指定 または [終了(E)] <終了>:
>>ORTHOMODE の新しい値を入力 <1>:
MLEADER コマンド再開。
次の点を指定 または [終了(E)] <終了>:
文字列を入力: 50-φ16000
コマンド: setenv
変数名を入力: to
値 <0>: 6
コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <6>: 0
コマンド:
コマンド: chprop
オブジェクトを選択: @
認識された数: 1
オブジェクトを選択:
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: la
新しい画層名を入力 <MOJI>: moji
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:
コマンド: setenv
変数名を入力: to
値 <0>: 0
コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0
コマンド:
コマンド:
SETENV
変数名を入力: m1
値 <1>: 1
コマンド:
コマンド:
SETENV
変数名を入力: m2
値 <50>: 1
コマンド:
コマンド:
SETENV
変数名を入力: is1
値 <20>: 詳細図の尺度*削除*
詳細図の尺度*キャンセル*
._UNDO 現在の設定: 自動 = オン, コントロール = すべて, 合成 = はい, 画層 = はい
取り消す操作の数を入力 または [自動(A)/コントロール(C)/開始(BE)/終了(E)/マーク(M)/後退(B)] <1>: _E ._UNDO 現在の設定: 自動 = オン, コントロール = すべて, 合成 = はい, 画層 = はい
取り消す操作の数を入力 または [自動(A)/コントロール(C)/開始(BE)/終了(E)/マーク(M)/後退(B)] <1>: 1 グループ
*** The user cancelled by pressing Escape *** ユーザーによるキャンセル
コマンド:
コマンド:
  • mappy
  • 2024/06/07 (Fri) 14:00:58
Re: 図面内の異尺度(詳細図)にボルト穴記入
chibi-tom様

chibi-tom様にご教授いただいたマクロおよびシステム変数(CANNOSCALEVALUE こんなシステム変数があるとは知らなかったです。)を元に手直ししてみました。
うまくできているようです。


*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;m1;1;;m2;1;;is1;詳細図の尺度^X\;m1;セット数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\setenv;to;1,,,,,,)$(nth,$(getenv,to),,offset;;キリ穴を選択(右クリックまたはエンターで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;1;select;non;@;non;@;;setenv;to;2,^Csetenv;to;0)""",,,,,)$(nth,$(getenv,to),,,;p1;$(getvar,LASTPOINT);dist;nea;@;cen;@;setenv;to;3,,,,)$(nth,$(getenv,to),,,,;d1;$(rtos,$(*,$(getvar,DISTANCE),2),2,3);;to;4,,,)$(nth,$(getenv,to),,,,,;mt1;$(/,$(getenv,d1),$(/,$(/,1,$(getenv,is1)),$(getvar,CANNOSCALEVALUE)));;to;5,,)$(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,mt1);setenv;to;6,)$(nth,$(getenv,to),,,,,,,chprop;@;;la;moji;;setenv;to;0)^M


とりあえずこれでうまくいっていますが、また何かありましたらその時はよろしくお願いします。
いつもありがとうございます。
  • mappy
  • 2024/06/07 (Fri) 14:40:18
Re: 図面内の異尺度(詳細図)にボルト穴記入
度々すみません。
四捨五入するの忘れてました。


*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;m1;1;;m2;1;;is1;詳細図の尺度^X\;m1;セット数(右クリックまたはエンターで省略)^X\;m2;穴数(右クリックまたはエンターで省略)^X\setenv;to;1,,,,,,)$(nth,$(getenv,to),,offset;;キリ穴を選択(右クリックまたはエンターで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;1;select;non;@;non;@;;setenv;to;2,^Csetenv;to;0)""",,,,,)$(nth,$(getenv,to),,,;p1;$(getvar,LASTPOINT);dist;nea;@;cen;@;setenv;to;3,,,,)$(nth,$(getenv,to),,,,;d1;$(rtos,$(*,$(getvar,DISTANCE),2),2,3);;to;4,,,)$(nth,$(getenv,to),,,,,;mt1;$(rtos,$(/,$(getenv,d1),$(/,$(/,1,$(getenv,is1)),$(getvar,CANNOSCALEVALUE))),2,3);;to;5,,)$(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,mt1);setenv;to;6,)$(nth,$(getenv,to),,,,,,,chprop;@;;la;moji;;setenv;to;0)^M
  • mappy
  • 2024/06/07 (Fri) 15:01:40

返信フォーム






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