WebPlamoのデータ変換が、6年越しにできたメモ
Hondaが公開してる、3Dデータ、WebPlamo。3DDXFという、マニアックなデータ形式。普段使っているCADでは、うまく読み込めなかったので、FreeCAD のスクリプト機能でテスト。DXFの中身は、レイヤーなどの定義と、3DFACEの集まりのみ。3DFACEは、4点のXYZ座標があるが、4点目は、3点目と同じ座標3点のみ拾って、メッシュをFreeCADに描かせると、形状再現できた。本当は、レイヤーを拾って、分けたいが、テストなので無視。LibreOfficeのCalcにDXFを貼り付けて、座標を拾って、ゴニョゴニョして配列を作る。3DFACEのある行の適当な列に="["&TEXT(VALUE(C58),"0.000000")&","&TEXT(VALUE(C60),"0.000000")&","&TEXT(VALUE(C62),"0.000000")&"],["&TEXT(VALUE(C70),"0.000000")&","&TEXT(VALUE(C72),"0.000000")&","&TEXT(VALUE(C74),"0.000000")&"],という式を貼り付ける。DXFをC列に貼り付けました。例では、54行目に3DFACEが出てきたので、上記のようになっています。セル番号は適当に変換してください。DXFの3DFACEのあとに出てくる、"10"の次の行が1点目のX座標、"20"の次の行が1点目のY座標、"30"の次の行が、Z座標。"11"の次の行が、2点目のX座標、以下略。"13","23","33",の4点目は、なぜか3点目と同じ座標なので、ここでは不要。1点目、2点目、3点目と三角を結ぶと、サーフェスが裏返るので、1点目、3点目、2点目と座標を取りました。Pythonのスクリプトで実行させるが、Pythonの仕様?で、"0"だけだと整数になって、エラーになるっぽい。TEXT関数を使って、0.000000に変換しているので式が長くなった。小数点以下、6桁に整形する必要あり。LibreOfficeでは、=TEXT(VALUE(セル番号),"0.000000") で変換できる。Libreのフィルタ機能で、3DFACEのある行のみ抽出して、上記の式を貼り付けると、配列ができるので、下記のスクリプトの配列の位置にコピペして、それを更に、FreeCADのPythonコンソールに貼り付けると、スクリプトが実行できます。FreeCADで、下記のスクリプトにて、メッシュの作成ができる。Pythonのコンソールは、表示→パネル→Pythonコンソール で表示できます。--------------------------------------------------------------------------------import Mesh, BuildRegularGeomsplanarMesh = [[-0.002585,-0.042271,0.023975],[-0.002901,-0.042332,0.023713],[-0.002808,-0.042295,0.023873],]planarMeshObject = Mesh.Mesh(planarMesh)d = FreeCAD.newDocument()d.addObject("Mesh::Feature","Diff_Sphere_Cylinder").Mesh=planarMeshObjectd.recompute()Gui.SendMsgToActiveView("ViewFit")--------------------------------------------------------------------------------d = FreeCAD.newDocument()は、1回だけでいいと思います。新規でドキュメントが開いてしまいますので、重ね書きしたいときは削除してください。T360のバックミラーは、一発で変換できましたが、ボディーは、固まりました。分割して変換が必要なようです。(この文書書いている間に、なんと読み込み成功していました。)FreeCADから、STLをエクスポートして、光造形プリンタで使用する、スライサソフトのChituBoxのv1.8に読み込ませたら、読み込みOKでした。(造形はまだ試してません)感謝 フリーソフトのみで、変換できたので満足です。作者、関係者の方々に感謝します。6年前にもトライして断念してたみたいです。スッキリしました。使用ソフトLibreOffice v7 のCalcサクラエディタ v2.4解凍ソフト ExpLZH v8.28FreeCAD 0.18パソコンHP Z200 Core i5@3.2GHz メモリ12GBWindows10 Pro 64bit参考サイトHonda WebPlamohttps://www.honda.co.jp/hondafan/plamo/AutoDeskのDXF解説ページhttp://docs.autodesk.com/ACD/2011/JPN/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a3b.htmFreeCAD メッシュのスクリプトの説明ページhttps://wiki.freecadweb.org/Mesh_Scripting/jpFreeCADで読み込んだ状態。色はCAD上で変更しています。ChituBoxに読み込んだ状態。造形は、まだ試してません。