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

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

マクロ修正のお願い
いつもお世話になっております。
以前、”基準点から距離指定する度円作図マクロ”を作成して頂いたハセと申します。
ずっとこのマクロに助けて頂いたのですが、
先日、wlindows10にautocad2014を入れて作業しなくてはならなくなり、マクロを登録してみたところ、
正常に動かなくなってしまいました。
元々サポートされていないversionなので、動作しなくても仕方の無い事なのですが、
最低限のマクロを使用出来ないだろうかと思い、こちらの掲示板にまたお邪魔させて頂きました。

試してみたところ、簡単なマクロは動作が可能なようなので、
基準点から距離指定する数値だけのマクロを作成する事は可能でしょうか?
(添付データの、〇は無しの数値だけ作成されるようなマクロ)
方向指示も無しで、右側に作成する用、左側に作成する用(プラス数値入力でマイナスが付かないように出来ますか?)、上側に作成する用、下用に作成する用(+数値入力でマイナスが付かないように出来ますか?)、と
方向別のマクロだと助かります。
せっかく作って頂いたマクロに、このようなお願いをしてしまい申し訳ありません。
お返事を頂けると助かります。
宜しくお願い致します。


以前作成したマクロ
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),xline;$(if,$(=,$(getenv,sw),0),v,h);^x^x基準点と方向を指定--方向切換(Rc)--^x\$M="""$(if,$(getvar,cmdactive),;erase;l;;setenv;c1;円の半径記入^x\;to;2,setenv;to;1)""",,,,)$(nth,$(getenv,to),,;sw;$(if,$(getenv,sw),0,1),;p0;$(getvar,lastpoint);;to;3,,)$(nth,$(getenv,to),,,,;to;0;;m1;基準位置からの距離指定^x\ucs;o;non;$(getenv,p0);circle;non;$M="""$(getenv,m1)"""<$(if,$(getenv,sw),E,N);$(getenv,c1);setenv;to;4,;to;3;-text;non;@$(getenv,c1)","$(getenv,c1);;0;$(getenv,m1);ucs;p)^M
  • ハセ
  • 2020/04/16 (Thu) 16:14:39
Re: マクロ修正のお願い
>正常に動かなくなってしまいました
どのように動かないのでしょう?

>簡単なマクロは動作が可能
とのことなのでR版の対応を処理していない等は無いでしょうか?
  • chibi-tom
  • 2020/04/16 (Thu) 17:28:18
Re: マクロ修正のお願い
chibi-tomさん、お返事ありがとうございます。


>正常に動かなくなってしまいました
最初にXLINE(基準点と方向を指定のコマンド)で、通常ですと横線か縦線が表示されて右クリックで
切り替え出来るのですが、線が表示されず次に進めない状態になっております。

>とのことなのでR版の対応を処理していない等は無いでしょうか?
説明不足で申し訳ありません。autocad2014LTを使用しておりますので、R版の対応は必要ない?でしょうか?
良くわかってなくて申し訳ないです。
Windows7で使用してた時は正常に動作していたのですが、、
  • ハセ
  • 2020/04/17 (Fri) 09:08:41
Re: マクロ修正のお願い
>線が表示されず次に進めない状態
どういう状態なのかがわからないですね
駄目になったところまでの流れを
コピペしていただければ何かわかるかもしれないです

>先日、wlindows10にautocad2014を入れて作業
説明不足ではないですR版を使用したことでマクロが使用できなくなったのかなと思っただけです

また、希望は元のマクロを正常にしたいのでしょうか?
それとも4つに分けたものが良いのでしょうか?

分けるとこんな感じになるでしょう
円はなしとのことで文字の位置は
基準位置からの距離の位置に記入するようになっています
ずらしたいのであれば変更は可能だと思います

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),id;基準点を指定^X\setenv;to;1,;p0;$(getvar,lastpoint);;to;2,,)$(nth,$(getenv,to),,,;to;0;;m1;基準位置からの距離指定^X\id;$(getenv,p0);setenv;to;3,)$(nth,$(getenv,to),,,,-text;non;@$(getenv,m1)<E;;0;$(getenv,m1);setenv;to;2)^M

このマクロは、左側に作成する用になります

その他3方向は、@$(getenv,m1)<Eの最後の『E』を右用は『W』に上用は『N』に下用は『S』にそれぞれ変更してください
  • chibi-tom
  • 2020/04/17 (Fri) 09:36:05
Re: マクロ修正のお願い
chibi-tomさん、お返事ありがとうございます。

希望は、可能であれば元のマクロを正常にしたいです。

元のマクロを使用すると、まず写真1のようになり、いつもだと右クリックで縦か横の線が表示されて切り替えが出来るはずなのですが何も表示されず、右クリックをしてみると写真2になります。写真1の状態で1を左クリックすると写真3になるので、試しに10を入力すると写真4になります。そして100を入力すると写真5になってしまいます。
以前だと100を入力すると、サイズ10の〇と100の数値が作成されています。

説明が下手で申し訳ないのですが、もし正常に戻せる方法があったら宜しくお願い致します。
  • ハセ
  • 2020/04/17 (Fri) 13:29:47
Re: マクロ修正のお願い
写真2
  • ハセ
  • 2020/04/17 (Fri) 13:31:16
Re: マクロ修正のお願い
写真3
  • ハセ
  • 2020/04/17 (Fri) 13:31:47
Re: マクロ修正のお願い
写真3(再送)
  • ハセ
  • 2020/04/17 (Fri) 13:33:46
Re: マクロ修正のお願い
写真4
  • ハセ
  • 2020/04/17 (Fri) 13:34:47
Re: マクロ修正のお願い
説明が悪かったですね
コマンドラインの流れが見たかったです

【 新規投稿時のお願い 】の3番に書いてあるので説明を省きました


F2キーを押して
コマンドラインを表示してマクロ起動からエラーが出るまでをコピーして
張り付けてください

それを見るとどういう動きをして何が原因なのかわかるかもしれないという意味でした
  • chibi-tom
  • 2020/04/17 (Fri) 13:40:30
Re: マクロ修正のお願い
無駄なメッセージを沢山作ってしまって、すいません。。
コマンドラインです。宜しくお願い致します。
この前のコメントと同じ動作及び入力をしてみました。



モデルを再作図中。

コマンド:

コマンド: もう一方のコーナーを指定 または [フェンス(F)/ポリゴン窓(WP)/ポリゴン交差(CP)]:
コマンド: *キャンセル*

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


コマンド: xline

点を指定 または [水平(H)/垂直(V)/角度(A)/2 等分(B)/オフセット(O)]:
コマンド:
XLINE

点を指定 または [水平(H)/垂直(V)/角度(A)/2 等分(B)/オフセット(O)]: *削除*
*削除*
基準点と方向を指定--方向切換(Rc)--*削除*
基準点と方向を指定--方向切換(Rc)--

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


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


コマンド:
SETENV
変数名を入力: sw
値:

コマンド:
SETENV
変数名を入力:


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


コマンド: xline

点を指定 または [水平(H)/垂直(V)/角度(A)/2 等分(B)/オフセット(O)]:
コマンド:
XLINE

点を指定 または [水平(H)/垂直(V)/角度(A)/2 等分(B)/オフセット(O)]: *削除*
*削除*
基準点と方向を指定--方向切換(Rc)--*削除*
基準点と方向を指定--方向切換(Rc)--
通過点を指定:

コマンド: erase

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

オブジェクトを選択:

コマンド: setenv
変数名を入力: c1
値 <10>: 円の半径記入*削除*
円の半径記入10


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


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


コマンド:
SETENV
変数名を入力: p0
値 <1473.13897245,1044.91693826,0>: 1473.13897312,1044.91694022,0


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


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


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


コマンド:
SETENV
変数名を入力: m1
値 <100>: 基準位置からの距離指定*削除*
基準位置からの距離指定100


コマンド: ucs

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

新しい原点を指定 <0,0,0>: non
1473.13897312,1044.91694022,0

コマンド: circle

円の中心点を指定 または [3 点(3P)/2 点(2P)/接、接、半(T)]: non
100<
点を指定 または オプションのキーワードを入力してください。
  • ハセ
  • 2020/04/17 (Fri) 14:08:10
Re: マクロ修正のお願い
setenvのswが設定できていない可能性がありそうです

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;sw;0;;to;1,xline;$(if,$(=,$(getenv,sw),0),v,h);^x^x基準点と方向を指定--方向切換(Rc)--^x\$M="""$(if,$(getvar,cmdactive),;erase;l;;setenv;c1;円の半径記入^x\;to;3,setenv;to;2)""",,,,)$(nth,$(getenv,to),,,;sw;$(if,$(getenv,sw),0,1);;to;1,;p0;$(getvar,lastpoint);;to;4,,)$(nth,$(getenv,to),,,,,;to;0;;m1;基準位置からの距離指定^x\ucs;m;non;$(getenv,p0);circle;non;$M="""$(getenv,m1)"""<$(if,$(getenv,sw),E,N);$(getenv,c1);setenv;to;5,)$(nth,$(getenv,to),,,,,,;to;4;-text;non;@$(getenv,c1)","$(getenv,c1);;0;$(if,$(<,0,$(getenv,m1)),$(getenv,m1),$(*,-1,$(getenv,m1)));ucs;p)^M

これでどうでしょうか?
lt2021で確認してエクセルを利用しても正常に動作しました

元のマクロ同様マイナス方向はマイナス数値入力してください
マイナス数値入力しても記入数値はプラス数値になります

15;20に修正しました
ucsのオプションに以前不具合があったの思い出しました
oからmに変更してます
  • chibi-tom
  • 2020/04/17 (Fri) 14:47:00
Re: マクロ修正のお願い
chibi-tomさん、早速のお返事ありがとうございます。

正常に動作しました(´;ω;`)ウゥゥ
wlindows10に無理やりインストールしてしまった為のバグかと思って諦めておりました。
本当にありがとうございます。

そして自分自身の勉強不足と知識不足が本当に情けないです。。
ありがとうございました。
  • ハセ
  • 2020/04/17 (Fri) 15:36:17
Re: マクロ修正のお願い
おまけ

自己満足で切替Ver考えてみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),id;基準点を指定^X\setenv;sw;0;;m1;10;;c1;円の半径記入^X\;to;1,;p0;$(getvar,lastpoint);;to;2,,,,)$(nth,$(getenv,to),,,undo;be;-text;non;@$(getenv,m1)<$(nth,$(getenv,sw),E,N,W,S);;0;XXX;setenv;to;3,,,)$(nth,$(getenv,to),,,,ray;【OK(L-Click)/NO(R-Click)】^X\$M="""$(if,$(getvar,cmdactive),;undo;e;u;setenv;to;4,undo;e;u;id;non;$(getenv,p0);setenv;sw;$(nth,$(getenv,sw),1,2,3,0);;to;2)""",,)$(nth,$(getenv,to),,,,,;to;0;;m1;基準位置からの距離指定^X\id;non;$(getenv,p0);setenv;to;5,)$(nth,$(getenv,to),,,,,,-text;non;@$(getenv,m1)<$(nth,$(getenv,sw),E,N,W,S);;0;$(getenv,m1);select;l;;circle;non;@;$(getenv,c1);move;p;;non;@;non;@$(getenv,c1)","$(getenv,c1);setenv;to;4)^M

1.マクロ起動
2.基準点指定
3.円の半径記入(仮に基準点から10mmの位置に『XXX』と表示されます)
4.R-Clickごとに反時計回りで90度づつ移動、L-Clickで決定します
5.基準位置からの距離指定(マイナス数値入力の必要はありません)

lt2021で確認してエクセルを利用しても正常に動作しました
  • chibi-tom
  • 2020/05/11 (Mon) 11:06:17

返信フォーム






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