2

特定の切断ヘッドを備えたルーターを使用して、木製パネルの一連の連続切断を視覚化できる簡単なプログラムをまとめようとしています。他の 3D ソリッドをスイープすることで、3D シェイプまたはソリッドを減算的に変更できるジオメトリ ライブラリを見つけようとしています。

具体的には、直方体 (木製パネル) を定義してから、ビット プロファイルの形状を定義し、直方体を (直線上、円弧上で) 切断できるようにしたいと考えています。これを行うものを知っている人はいますか?

4

8 に答える 8

2

pythonOCCも興味深いオプションです。

于 2010-04-10T06:45:49.203 に答える
1

カスケードを開く

于 2010-07-22T06:19:06.220 に答える
1

FreeCADの Python レベルは、あなたが要求しているものを提供できるかもしれません。

于 2010-04-10T02:07:43.610 に答える
0

正確にはライブラリではありませんが、これを行う1つの方法は、これらのライブラリのほとんどがサポートしている2Dから3Dへの押し出し機能に基づいて構築することです。これを行うための暫定的なアルゴリズムは次のとおりです。

  1. ビットプロファイルを2D形状として取得します(これはすでにある可能性があります)。
  2. ツールパスである線または円弧に沿ってそのプロファイルを押し出し、カットの形状である3Dソリッドを作成します。
  3. 各頂点(たとえば、直線のパスが曲線のパスに結合する場合)で、ビットプロファイルの「回転押し出し」または「回転押し出し」を実行して、コーナー半径を生成します。ほとんどのライブラリは、この操作もサポートする必要があります。
  4. すべてのツールパスが完了するまで、2から繰り返します。
  5. (workpiece --set_of_toolpaths)のCSGブール減算を実行します。

そのアルゴリズムはエッジケースに満ちているように見えますが、私はこれまで何も考えられませんでした。なぜこんなに単純なのか、それを実行しているパッケージがこれ以上ないのだろうか。

于 2012-04-05T18:21:21.040 に答える
0

CGALは、 3D Minkowski Sumsを使用して、3D スイープを実行できるように見えます。(ページのさらに下にある「グライド」セクションを参照してください。)

ミンコフスキーの合計を使用することでこれまでに確認できる唯一の制限は、3D パスを介してオブジェクトをスイープする場合、オブジェクトを同時に回転させることができないように見えることです。(これについては私が間違っている可能性があります。) スイープしながら回転させると便利です。たとえば、4 番目または 5 番目のように、回転する円柱の外面でルーターまたはミリング ビットを使用してパスを切断することをシミュレートしようとしている場合に役立ちます。フライス盤の軸回転テーブル。しかし、元の質問は、2D パスに沿って 3D オブジェクトをスイープし、木のブロックなどの平面でのカットをシミュレートすることに関するものだったので、この制限は私にとって重要かもしれませんが、OP にとっては重要ではありません。

CGAL はOpenSCADで使用されます。OpenSCAD には、CGAL 3D ミンコフスキー機能を使用しているように見える minkowski() プリミティブがあります。OpenSCADは、簡単な実現可能性テストと、おそらく長期的なツールパスの視覚化ソリューションを提供できる可能性があります。(最後にこれを見たときはそうは思いませんでしたが、古いバージョンの OpenSCAD だったのかもしれません。)

CGAL は C++、オープン ソース、デュアル ライセンスです。これまでのところ、2 つの Python バインディングを見つけました。

于 2012-04-05T16:35:37.953 に答える
0

sgCoreを使用しています

非常に強力でシンプルなライブラリ。

于 2011-12-28T07:06:48.057 に答える
0

HeeksCAD がその仕事をしてくれるかもしれません。http://code.google.com/p/heekscad/

于 2010-05-18T13:58:05.603 に答える
0

Direct3D/OpenGL の経験があれば、C++ の方法で、TetGenGTSをいじって何かをまとめることができます。

警告:非常に長い学習曲線です。

更新:最近Carve CSGを試しており、これまでの結果に満足しています。ウッドパネルからカットを簡単に差し引いて、必要な結果を得ることができます.

于 2010-05-18T12:48:29.280 に答える