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

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

窓枠内のトリムについて

いつも大変お世話になります。

マクロ作成をお願い出来ないでしょうか。
画像のように白色線の間にある赤色線のみをトリムする作業が大量にあります。(色は一定ではありません)
現状1つずつトリムしており、かなりの時間を費やしております。
この作業をマクロで簡素化する事は可能でしょうか。
白色線の外形線を窓で囲うとトリムされるようなコマンドが出来ればベストですが、
やはり色の識別が難しいでしょうか。。。
トリム不要な水色線もまとめてトリムして”最後に手作業で結合する”でも構いません。

使用CADは2016レギュラー版になります。
setenv,getenvは使用出来る環境にあります。

お手数お掛け致しますが、ご検討宜しくお願い致します。
  • SD
  • 2019/03/08 (Fri) 09:50:38
Re: 窓枠内のトリムについて
お望みの作業の細かい流れが、いまいち分かりづらいのですが。

色が一定ではないということですが、その場合、コマンドの流れとしては、作業をする際に「今回はこの色をトリム」と設定する、ということでしょうか。

ただ、マクロでは色の判別は難しいと思われます。

異なる色のオブジェクトは、画層単位で表示・非表示できないケースでしょうか。
オブジェクトの表示・非表示を使って、特定の色のオブジェクトをクイック選択で選び、非表示にすることはできませんか。

また、示された図を見ると、白の矩形が2つありますが、その2つの一番外側の線の間をトリム、ということでしょうか。
  • LUNE
  • 2019/03/08 (Fri) 11:23:54
Re: 窓枠内のトリムについて

LUNEさま

ご連絡ありがとうございます。
色については、作業前にトリムの色を設定はなしで大丈夫です。(説明が下手で申し訳ありません)
異なる色のオブジェクトは同じ画層内に作図されている為、表示・非表示が出来ません。
白の2つの矩形の一番外側の線の間をトリムしたいです。

やはりマクロでは難しいでしょうか。

ご確認宜しくお願い致します。
  • SD
  • 2019/03/08 (Fri) 11:54:25
Re: 窓枠内のトリムについて
LUNEさま

今簡単に(知識が無い為、コマンドを繋ぎ合わせただけですが)作ってみた物です。
^C^Crectang;\\^C^Ctrim;l;;\\^C^Cerase;p;

レクタングで外側同士の対角を選び、その中を赤色のみカットしています。
この動作をトリムしたいオジェクトを選択し、エンターでトリム完了+レクタング削除に出来ないでしょうか。
  • SD
  • 2019/03/08 (Fri) 13:28:00
Re: 窓枠内のトリムについて
それならば
こちらのマクロ集のループマクロ参考にすればできそうですね

https://ameblo.jp/totthi-macro/entry-10950262965.html

setenv
cmdloop-
"\$m=$(if,$(getvar,cmdactive),$(getenv,cmdloop-),)"

設定後に
下記マクロでどうでしょう

^C^Crectang;\\zoom;o;l;;trim;l;;$M=$(getenv,cmdloop-)zoom;p;erase;p;;^Z
  • chibi-tom
  • 2019/03/08 (Fri) 14:14:28
Re: 窓枠内のトリムについて
chibi-tomさんのマクロで、うまくいくのではないでしょうか。

白矩形はトリムしたいオブジェクトと同画層でしょうか?

別画層なら、白矩形の画層をロック→線分のうち、トリムしたくないものをクイック選択で色をキーにして選択し、「選択表示」コマンドで「オブジェクトを非表示」として非表示に→chibi-tomさんのマクロ使用→選択表示を解除

こうすれば、かなり手早くできそうですね。
  • LUNE
  • 2019/03/08 (Fri) 15:19:02
Re: 窓枠内のトリムについて
少し改良しました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),rectang;\\zoom;o;l;;trim;l;;$M="""$(getenv,cmdloop-)"""zoom;p;erase;p;;setenv;to;1,)$(nth,$(getenv,to),,join;結合するオブジェクト選択(R-Clickで終了)^X\$M="""$(if,$(getvar,cmdactive),;join;non;@;結合するオブジェクト選択^X\;setenv;to;1,^Csetenv;to;0)""")^M

トリム不要な水色線もまとめてトリムして”最後に手作業で結合する”
を付け足しました。
  • chibi-tom
  • 2019/03/08 (Fri) 15:57:05
Re: 窓枠内のトリムについて
トリムを使わずにbreakでやってみました。
1ヶ所あたり、4クリックです。
画像のように、水平垂直じゃない場合も大丈夫。
*^C^Cid;\$M=;\$M=break;\f;non;$(getvar,lastpoint);non;"$(getvar,lastpoint)";;\f;non;$(getvar,lastpoint);non;"$(getvar,lastpoint)"^M

使い方

マクロ実行後
①片方のエッジ上の任意の点を1クリック(画像の様に線上ならどこでも良い)
②他方のエッジ上の任意の点を1クリック(〃)
③切断したい線上の任意の点を1クリック(〃)
④もう一本の切断したい線上の任意の点を1クリック(〃)
①へ戻り繰り返し、終了はESCキー

動作条件は、二つの矩形と切断する線は垂直に交わり、切断する線分の数は2本です。
(配管図のフランジを想定しました)
  • Lon
  • 2019/03/08 (Fri) 18:57:45
Re: 窓枠内のトリムについて
LUNEさま
chibi-tomさま
Lonさま

皆様お忙しい中ありがとうございます。
どれも使い勝手が良く状況に合わせて使い分けさせて頂きます。

Lonさま
雑談となってしまいますが、Lonさまの予想通り配管図を描いており、フランジの中を切る作業に手間がとられてしまいます。
Lonさまもそのような図面を描かれているのでしょうか。もしそうであればフランジの中を切る作業はどのようにされていますか。
違っていたら申し訳ありません。
  • SD
  • 2019/03/08 (Fri) 19:43:21
Re: 窓枠内のトリムについて
水平垂直限定なら3クリックでできました。今度はトリムで。
*^C^Ccopybase;non;0<0;\'id;nea;@;$M=\'id;nea;@;$M=\;erase;p;;rectang;non;$(getvar,lastpoint);non;"$(getvar,lastpoint)";trim;l;;f;non;$(getvar,lastpoint);non;"$(getvar,lastpoint)";;;erase;p;;pasteclip;non;0<0^M

使い方

マクロ実行後
①片方のエッジ上の赤線よりも外側の点をクリック
②対角側のエッジ上の点をクリック
③中心線をクリック
①へ戻り繰り返し、終了はESCキー
  • Lon
  • 2019/03/08 (Fri) 19:46:18
Re: 窓枠内のトリムについて
>もしそうであればフランジの中を切る作業はどのようにされていますか。

私の場合、切らない。そのまま。(笑

どうしても切らなければならない場合は、普通にBREAKコマンドかTRIMコマンド。

私の様に、高速操作ができる人間では、この程度の処理はマクロを使っても標準コマンドでやっても大差ない。
(自慢)
  • Lon
  • 2019/03/08 (Fri) 19:54:31
Re: 窓枠内のトリムについて
Lonさま

切らない。確かにそれが1番ですね。1/100スケールの図面で切ったところで見えないですもんね。
何事にも妥協点が必要ですね。
高速操作出来るよう頑張ります。

この度は色々とありがとうございました。
  • SD
  • 2019/03/08 (Fri) 20:42:16

返信フォーム






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