特定の切断ヘッドを備えたルーターを使用して、木製パネルの一連の連続切断を視覚化できる簡単なプログラムをまとめようとしています。他の 3D ソリッドをスイープすることで、3D シェイプまたはソリッドを減算的に変更できるジオメトリ ライブラリを見つけようとしています。
具体的には、直方体 (木製パネル) を定義してから、ビット プロファイルの形状を定義し、直方体を (直線上、円弧上で) 切断できるようにしたいと考えています。これを行うものを知っている人はいますか?
pythonOCCも興味深いオプションです。
FreeCADの Python レベルは、あなたが要求しているものを提供できるかもしれません。
正確にはライブラリではありませんが、これを行う1つの方法は、これらのライブラリのほとんどがサポートしている2Dから3Dへの押し出し機能に基づいて構築することです。これを行うための暫定的なアルゴリズムは次のとおりです。
そのアルゴリズムはエッジケースに満ちているように見えますが、私はこれまで何も考えられませんでした。なぜこんなに単純なのか、それを実行しているパッケージがこれ以上ないのだろうか。
CGALは、 3D Minkowski Sumsを使用して、3D スイープを実行できるように見えます。(ページのさらに下にある「グライド」セクションを参照してください。)
ミンコフスキーの合計を使用することでこれまでに確認できる唯一の制限は、3D パスを介してオブジェクトをスイープする場合、オブジェクトを同時に回転させることができないように見えることです。(これについては私が間違っている可能性があります。) スイープしながら回転させると便利です。たとえば、4 番目または 5 番目のように、回転する円柱の外面でルーターまたはミリング ビットを使用してパスを切断することをシミュレートしようとしている場合に役立ちます。フライス盤の軸回転テーブル。しかし、元の質問は、2D パスに沿って 3D オブジェクトをスイープし、木のブロックなどの平面でのカットをシミュレートすることに関するものだったので、この制限は私にとって重要かもしれませんが、OP にとっては重要ではありません。
CGAL はOpenSCADで使用されます。OpenSCAD には、CGAL 3D ミンコフスキー機能を使用しているように見える minkowski() プリミティブがあります。OpenSCADは、簡単な実現可能性テストと、おそらく長期的なツールパスの視覚化ソリューションを提供できる可能性があります。(最後にこれを見たときはそうは思いませんでしたが、古いバージョンの OpenSCAD だったのかもしれません。)
CGAL は C++、オープン ソース、デュアル ライセンスです。これまでのところ、2 つの Python バインディングを見つけました。
sgCoreを使用しています
非常に強力でシンプルなライブラリ。
HeeksCAD がその仕事をしてくれるかもしれません。http://code.google.com/p/heekscad/