PlotlyでSTLファイルを3D表示する

3Dプリンタでも利用されるSTLファイルです。

その3Dプリンタの普及もあってか、フリーの3Dモデルファイルを提供するサイトも増えているようです。

画像をクリックするとインタラクティブに操作できるページに移動します。
import numpy as np
from stl import mesh
import plotly.figure_factory as ff

def stl2create_trisurf(stl_mesh):
    p, q, r = stl_mesh.vectors.shape
    vertices, ixr = np.unique(stl_mesh.vectors.reshape(p*q, r), return_inverse=True, axis=0)
    simplices = ixr.reshape([-1, 3])
    return vertices, simplices

my_mesh = mesh.Mesh.from_file('DOLPHIN.stl')

vertices, simplices = stl2create_trisurf(my_mesh)
x, y, z = vertices.T
title = "DOLPHIN"
fig = ff.create_trisurf(x=x, y=y, z=z,
                         simplices=simplices,
                         width=500,
                         height=500,
                         title="DOLPHIN",
                         aspectratio=dict(x=1, y=1, z=1)
                         )
#fig.show()
fig.write_html("DOLPHIN.html")

STLファイルからcreate_trisurfの為のデータを取得する部分は、こちらのサイトの関数を少し変更しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA