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

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

円形状配列複写
円形状配列複写を使用して任意の角度を等分すると
のがあるのですが、この操作をマクロで簡単に
出来るものでしょうか? 使用cadは2018です。
  • よし
  • 2018/09/16 (Sun) 10:20:22
Re: 円形状配列複写
昔作ってた物を修正してみました。
お試しください。

♪角度分割 構築線 Ver.2015以降
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;^Xオブジェクト選択^X\;select;nea;@;nea;@;;setenv;p1;$M="""$(getvar,lastpoint)^H^H""";;to;1,offset;;^X2つ目のオブジェクト選択^X\;setenv;to;1;select;nea;@;nea;@;;setenv;p2;$M="""$(getvar,lastpoint)^H^H""";;to;2,,,,,,)$(nth,$(getenv,to),,,;bk;分割数^X\zoom;non;@;non;$(getenv,p1);id;int;$(getenv,p1);$(getenv,p2);setenv;p0;$M="""$(getvar,lastpoint)^H^H""";;to;3,,,,,)$(nth,$(getenv,to),,,,dist;non;$(getenv,p1);non;$(getenv,p0);arc;nea;$(getenv,p1);c;$(getenv,p0);nea;$(getenv,p2);setenv;to;4,,,,)$(nth,$(getenv,to),,,,,lengthen;dy;;;l;;erase;L;;setenv;ro;$M="""$(/,$(*,$(getvar,perimeter),180),$(*,$(getvar,distance),3.14159265))""";;to;5,;ro;$(if,$(<,180,$(getenv,ro)),$(-,$(getenv,ro),360),);;to;6,,)$(nth,$(getenv,to),,,,,,,xline;non;$(getenv,p0);non;$(getenv,p1);;-array;p;;P;non;$(getenv,p0);$(+,$(getenv,bk),1);$(getenv,ro);y;erase;p;L;;zoom;p)^M


●使い方
1.1つ目のオブジェクトを選択
2.角度の付いた2つ目のオブジェクトを選択
  ※繰り返し1へ

▲注意
1.角度の付いた2つのオブジェクトを選択して下さい。
  平行なオブジェクトでは正常に動作しません。
  • とってぃ
  • 2018/09/17 (Mon) 08:59:02
Re: 円形状配列複写
とってい様 返信が遅くなり申し訳ありません。 知人から、この文章だと伝えたいことが
わからないと思うと言われたので、再度画像を添付致しますので、宜しくお願い致します。
  • よし
  • 2018/09/18 (Tue) 13:16:14
Re: 円形状配列複写
マクロは試して頂きましたか?

添付画像の様に
2本の角度ある線分内を
構築線で等分割します。
  • とってぃ
  • 2018/09/18 (Tue) 14:17:59
Re: 円形状配列複写
お世話になります。とってぃ様 
マクロを試して見たのですが、画像のように、2線間の間に円弧が出来ます。
 

 以上 よろしくお願いいたします。
  • 吉田町
  • 2018/09/18 (Tue) 15:58:53
Re: Re: 円形状配列複写
すみません H.N を間違えて打ってしまいました。
  • よし
  • 2018/09/19 (Wed) 06:20:55
Re: 円形状配列複写
マクロ実行後
円弧が出て止まった後

キーボードF2を押し、表示されたテキストウィンドウ内の
マクロ開始~終了までのマクロの流れをコピーし、貼り付けて下さい。


【 新規投稿時のお願い 】※参照
http://totthi.bbs.fc2.com/#formarea
  • とってぃ
  • 2018/09/19 (Wed) 08:18:32
Re: 円形状配列複写
-array;p;;が
-array;l;;ではないでしょうか?

ちなみに、lt2017では
lengthen;dy;;;l;;が
lengthen;dy;;;l;;;です。
  • chibi-tom
  • 2018/09/19 (Wed) 09:05:53
Re: 円形状配列複写
とってぃ様 chibi-tom様 ありがとうございます。chibi-tom様のマクロに変更しても、同じ様に変わりませんでした。 テキストを貼り付けますので、よろしくお願いいたします。

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

コマンド:
コマンド: offset

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

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: *削除*
オブジェクト選択*削除*
オブジェクト選択
通過点を指定 または [終了(E)/一括(M)/元に戻す(U)] <終了>:

コマンド: select

オブジェクトを選択: nea
どこに @
認識された数: 1

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

オブジェクトを選択:

コマンド: setenv
変数名を入力: p1
値 <16933.99526572,39139.24203257>: 16999.7790633,39422.45119967

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

コマンド:
コマンド:
SETENV
変数名を入力: *キャンセル*

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

コマンド:
コマンド: offset

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

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: *削除*
2つ目のオブジェクト選択*削除*
2つ目のオブジェクト選択
通過点を指定 または [終了(E)/一括(M)/元に戻す(U)] <終了>:

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

コマンド:
コマンド: select

オブジェクトを選択: nea
どこに @
認識された数: 1

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

オブジェクトを選択:

コマンド: setenv
変数名を入力: p2
値 <33688.58193611,39935.72870926>: 33690.82763388,39929.10597001

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

コマンド:
コマンド:
SETENV
変数名を入力: *キャンセル*

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

コマンド:
コマンド:
SETENV
変数名を入力: bk
値 <5>: 分割数*削除*
分割数5

コマンド:
コマンド: zoom

窓のコーナーを指定、表示倍率を入力(nX または nXP) または
[図面全体(A)/中心点(C)/ダイナミック(D)/オブジェクト範囲(E)/前画面(P)/倍率(S)/窓(W)/選択オブジェクト(O)] <リアル タイム>: non
@

もう一方のコーナーを指定: non
16999.7790633,39422.45119967

コマンド: id
点を指定: int
どこの 16999.7790633,39422.45119967
と 33690.82763388,39929.10597001
X = 23855.1 Y = 68935.5 Z = 0.0

コマンド: setenv
変数名を入力: p0
値 <23855.07222834,68935.52188012>: 23855.07222834,68935.52188012

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

コマンド:
コマンド:
SETENV
変数名を入力: *キャンセル*

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

コマンド:
コマンド: dist

1 点目を指定: non
16999.7790633,39422.45119967

2 点目を指定 または [複数点(M)]: non
23855.07222834,68935.52188012

長さ = 30298.8、 XY平面の角度 = 76.9、 XY平面からの角度 = 0.0
デルタ X = 6855.3、 デルタ Y = 29513.1、 デルタ Z = 0.0

コマンド: arc

円弧の始点を指定 または [中心(C)]: nea
どこに 16999.7790633,39422.45119967

円弧の 2 点目を指定 または [中心(C)/終点(E)]: c

円弧の中心点を指定: 23855.07222834,68935.52188012

円弧の終点を指定(方向を切り替えるには[Ctrl]を押す) または [角度(A)/弦の長さ(L)]: nea
どこに 33690.82763388,39929.10597001

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

コマンド:
コマンド:
SETENV
変数名を入力: *キャンセル*

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

コマンド:
コマンド: lengthen

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

変更するオブジェクトを選択 または [元に戻す(U)]:

コマンド:
LENGTHEN

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


現在の長さ: 16820.5、角度: 31.8
計測するオブジェクトを選択 または [増減(DE)/比率(P)/全体(T)/ダイナミック(DY)] <ダイナミック(DY)>:

変更するオブジェクトを選択 または [元に戻す(U)]: erase


*選択無効*
点を指定 または フェンス(F)/元に戻す(U)]:


  • よし
  • 2018/09/19 (Wed) 10:32:13
Re: 円形状配列複写
lt2017と同じように
lengthen;dy;;;l;;が
lengthen;dy;;;l;;;にすればできそうですね
  • chibi-tom
  • 2018/09/19 (Wed) 11:28:17
Re: 円形状配列複写
chibi-tomさんの「lengthen;dy;;;l;;;」で出来そうですね。
お試しください。


♪角度分割 構築線 Ver.2015以降 改
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;^Xオブジェクト選択^X\;select;nea;@;nea;@;;setenv;p1;$M="""$(getvar,lastpoint)^H^H""";;to;1,offset;;^X2つ目のオブジェクト選択^X\;setenv;to;1;select;nea;@;nea;@;;setenv;p2;$M="""$(getvar,lastpoint)^H^H""";;to;2,,,,,,)$(nth,$(getenv,to),,,;bk;分割数^X\zoom;non;@;non;$(getenv,p1);id;int;$(getenv,p1);$(getenv,p2);setenv;p0;$M="""$(getvar,lastpoint)^H^H""";;to;3,,,,,)$(nth,$(getenv,to),,,,dist;non;$(getenv,p1);non;$(getenv,p0);arc;nea;$(getenv,p1);c;$(getenv,p0);nea;$(getenv,p2);setenv;to;4,,,,)$(nth,$(getenv,to),,,,,lengthen;dy;;;l;;;erase;L;;setenv;ro;$M="""$(/,$(*,$(getvar,perimeter),180),$(*,$(getvar,distance),3.14159265))""";;to;5,;ro;$(if,$(<,180,$(getenv,ro)),$(-,$(getenv,ro),360),);;to;6,,)$(nth,$(getenv,to),,,,,,,xline;non;$(getenv,p0);non;$(getenv,p1);;-array;l;;P;non;$(getenv,p0);$(+,$(getenv,bk),1);$(getenv,ro);y;erase;p;L;;zoom;p)^M
  • とってぃ
  • 2018/09/19 (Wed) 13:22:28
Re: 円形状配列複写
とってぃ様

たぶんですが
-array;p;;が
-array;l;;ではないでしょうか?
lt2017では、Xlineが選択できませんでした。
  • chibi-tom
  • 2018/09/19 (Wed) 15:04:56
Re: 円形状配列複写
chibi-tomさん
修正しておきました。
ありがとうございます。
  • とってぃ
  • 2018/09/19 (Wed) 16:32:35
Re: 円形状配列複写
とってぃ様、chibi-tom様
完璧に動きました。
大変お世話になりました。 

皆様の益々のご活躍を願っています、ありがとうございました
  • よし
  • 2018/09/19 (Wed) 17:25:09
Re: 円形状配列複写
もう解決してしまいましたが参考として、-arrayを使わないで点の比で考えました。
2011で作っているのでlengthenの仕様が違います。

*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),;divn;分割数<$(getenv,divn)>:^X\;i;1;line;\\;lengthen;l;;ucs;ob;l;setenv;to;1)$(if,$(=,$(getenv,to),1),id;non;$(*,$(/,$(getvar,perimeter),$(getenv,divn)),$(getenv,i))<0;ucs;w;setenv;to;2)$(if,$(=,$(getenv,to),2),;p$(getenv,i);$(getvar,lastpoint);;i;$(+,$(getenv,i),1);;to;$(if,$(<,$(getenv,i),$(-,$(getenv,divn),1)),1,3);ucs;p)$(if,$(=,$(getenv,to),3),ucs;w;erase;l;;line;\\;lengthen;l;;ucs;ob;l;setenv;i;1;;to;4)$(if,$(=,$(getenv,to),4),id;non;$(*,$(/,$(getvar,perimeter),$(getenv,divn)),$(getenv,i))<0;ucs;w;setenv;to;5)$(if,$(=,$(getenv,to),5),;q$(getenv,i);$(getvar,lastpoint);;i;$(+,$(getenv,i),1);;to;$(if,$(<,$(getenv,i),$(-,$(getenv,divn),1)),4,6);ucs;p)$(if,$(=,$(getenv,to),6),erase;l;;ucs;w;setenv;i;1;;to;7)$(if,$(=,$(getenv,to),7),line;non;$(getenv,p$(getenv,i));non;$(getenv,q$(getenv,i));;setenv;to;8)$(if,$(=,$(getenv,to),8),;i;$(+,$(getenv,i),1);;to;$(if,$(<,$(getenv,i),$(-,$(getenv,divn),1)),7,0;^Cid;))^M

使い方
1.コマンド発行
2.分割数入力
3.点1をクリック
4.点2をクリック
5.点3をクッリク
6.点4をクリック
  • zukki-
  • 2018/09/25 (Tue) 17:41:19
Re: 円形状配列複写
図がのっからなかった。
  • zukki-
  • 2018/09/25 (Tue) 17:42:40

返信フォーム






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