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

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

ポリライン 頂点の削除
いつもお世話になっております。

ポリラインの 頂点のみ を削除する方法はありますでしょうか?
可能でしたらマクロをご教示頂きたく思います。
曲線上にある大量の頂点を間引きたいと考えています。

使用CADは『AutoCAD LT 2017』と『IJCAD 2020 PRO』です。

調べた限りですと、既存のコマンドは PEDIT を用いた直線化しかありませんでした。

何卒宜しくお願い致します。
  • syamoji
  • 2021/09/28 (Tue) 11:43:37
Re: ポリライン 頂点の削除
ポリラインをハイライトして、頂点にカーソルを置くと
「頂点を削除」って出てきませんか?
  • Den
  • 2021/09/28 (Tue) 14:42:44
Re: ポリライン 頂点の削除
こんな感じでどうでしょう?
たぶんIJCADでは使えません

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;直線化したい部分を選択(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,)$(nth,$(getenv,to),,;p1;$(getvar,LASTPOINT);line;\'setenv;p2;$M="""$(getvar,LASTPOINT)""";\;erase;l;;setenv;to;2,,,)$(nth,$(getenv,to),,,;p3;$(getvar,LASTPOINT);break;$(getenv,p1);f;$(getenv,p2);non;@;setenv;to;3,,)$(nth,$(getenv,to),,,,break;$(getenv,p1);f;$(getenv,p3);non;@;erase;$(getenv,p1);;draworder;$(getenv,p3);$(getenv,p2);;b;setenv;to;4,)$(nth,$(getenv,to),,,,,line;non;$(getenv,p2);non;$(getenv,p3);;draworder;l;;b;pedit;m;$(getenv,p2);$(getenv,p3);l;;j;;;setenv;to;0)^M

1.マクロ起動
2.直線にしたい部分を選択
3.直線にしたい頂点から頂点に線分を描く

繰り返し
  • chibi-tom
  • 2021/09/28 (Tue) 14:54:57
Re: ポリライン 頂点の削除
短めのヴァージョン
※注)AutoCADのみです。IJCADでは使えません。

*^C^Cline;end;^X^X【一つ目の頂点を選択】^X\$M=end;^X^X【他方の頂点を選択】^X\$M=;trim;l;;^X【削除する方の線分をクリック】^X\;copy;p;;non;@;non;@;erase;p;;pedit;l;;j;c;$(getvar,lastpoint);"$(getvar,lastpoint)";;;

A-B-C-D-E-Fのポリラインから2点を間引いてをA-B-E-Fにする場合
1)マクロ起動
2)点Bを指示、点Eを指示
3)B-C-D-Eを指示
  • Den
  • 2021/09/28 (Tue) 15:14:14
Re: ポリライン 頂点の削除
すみません、紛らわしい書き方をしてしまいました。

ポリラインの曲線上にある頂点だけを消したいのですが、直線にはしたくないのです。
「頂点を削除」では直線になってしまいました。
形を変えずに頂点のみを消す(間引く)方法はあるのでしょうか?

可能でしたらご教示ください。
  • syamoji
  • 2021/09/28 (Tue) 15:55:39
Re: ポリライン 頂点の削除
OVERKILL ではダメですか?
  • みどり
  • 2021/09/28 (Tue) 16:08:51
Re: ポリライン 頂点の削除
>形を変えずに頂点のみを消す

分解してみるとわかると思いますが
頂点があるということは円弧サイズの違う円弧が繋がっていることになると思います
なので、形を変えずに円弧サイズの違う円弧を一つの円弧にすることは不可能な気がしますが

独り言と思ってスルーしてください(笑)
  • chibi-tom
  • 2021/09/28 (Tue) 16:13:04
Re: ポリライン 頂点の削除
考えにくいですが同一円弧が分割されている場合
もしかしたらこれでできるかもしれません

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;間引く部分を選択(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;1,^Csetenv;to;0)""",,,,,)$(nth,$(getenv,to),,;p1;$(getvar,LASTPOINT);line;\'setenv;p2;$M="""$(getvar,LASTPOINT)""";\;erase;l;;setenv;to;2,,,,)$(nth,$(getenv,to),,,;p3;$(getvar,LASTPOINT);break;$(getenv,p1);f;$(getenv,p2);non;@;setenv;to;3,,,)$(nth,$(getenv,to),,,,break;$(getenv,p1);f;$(getenv,p3);non;@;draworder;$(getenv,p3);$(getenv,p2);;b;setenv;to;4,,)$(nth,$(getenv,to),,,,,arc;c;cen;$(index,0,$(getenv,p1))","$(index,1,$(getenv,p1));non;$(index,0,$(getenv,p2))","$(index,1,$(getenv,p2));non;$(index,0,$(getenv,p3))","$(index,1,$(getenv,p3));setenv;to;5,)$(nth,$(getenv,to),,,,,,draworder;l;;b;erase;$(getenv,p1);;pedit;m;$(getenv,p2);$(getenv,p3);l;;j;;;setenv;to;0)^M

1.マクロ起動
2.間引きたい部分を選択
3.円弧にしたい頂点から頂点を選択

※円弧の頂点選択は反時計回りに選択してください
※中間のみ対応です(端点から選択するとたぶん途中で止まります)
※楕円形状の場合もできません

出来たらラッキー程度の参考で試してください
  • chibi-tom
  • 2021/09/28 (Tue) 17:21:53
Re: ポリライン 頂点の削除
確認が遅くなり申し訳御座いません。
皆様ご回答頂きありがとうございます。

みどり様
>OVERKILL ではダメですか?
こちらは重複している点や線を消すコマンドでしょうか。
頂点が重なっている訳ではない為、頂点削除は出来ませんでした。
私の使い方が間違っている可能性もあります(汗)

chibi-tom様
頂いたマクロは残念ながら利用できませんでした。
同一円弧が分割されているものではなく、自由に引かれた曲線が対象となります。
ご指摘頂いた様に、形を変えずにというのは無理なのかもと思いました..
  • syamoji
  • 2021/09/30 (Thu) 10:49:34
Re: ポリライン 頂点の削除
その頂点が、形状を形成するのに必要な点であるなら、
どんな方法を使っても、削除できないでしょう。
削除すれば、形が変わるのが必然です。

>同一円弧が分割されているものではなく、
であるなら、それらの点は無くてはならない点です。
  • Lon
  • 2021/09/30 (Thu) 12:06:25
Re: ポリライン 頂点の削除
Lon様

そうですね。。
点のみを削除するのは無理なのだと思いました。

少し調べてみたのですが、
『AutoCAD Map 3D』や『Civil 3D』といったソフトを用いれば、
頂点のみを間引く事が出来る? との事でした。

何か他に良い方法が無いか、自分でもう少し調べてみようと思います。

皆様ありがとうございました。
  • syamoji
  • 2021/09/30 (Thu) 16:26:05
Re: ポリライン 頂点の削除
>『AutoCAD Map 3D』や『Civil 3D』といったソフトを用いれば、

https://knowledge.autodesk.com/ja/support/autocad-map-3d/learn-explore/caas/CloudHelp/cloudhelp/2019/JPN/MAP3D-Use/files/GUID-E04B543E-29E7-4545-A4FA-DDDF861E4960-htm.html

多分、この事だと思いますが、
説明を読めばわかる通り、間引く事で形状が変化します。
ふくらみ(円弧)の場合、近似円弧へ変換されますから。

従って、「形を変えずに」を厳密に守るなら、NGです。

その辺が緩くても良いなら、何かしらの方法は有るでしょう。

  • Lon
  • 2021/09/30 (Thu) 16:46:13
Re: ポリライン 頂点の削除
Lon様

説明を読んできました。
調べて頂きありがとうございます。

なるほど、若干変化してしまうのですね。
どの程度変化するのかは分かりませんが、
数mm程度であれば微調整できるので問題ないかもしれません。

もう少し方法を検討してみようと思います。
  • syamoji
  • 2021/10/01 (Fri) 09:23:30

返信フォーム






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