動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04.4 LTS desktop amd64
TensorFlow v1.7.0
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1
PyMieScatt v1.7.0
関連
可視化(3D) > GitHub > STL > Cubeの表示 > STL Writer使用 > 方向によっては面が表示されない > 描画されない条件: 頂点が時計回り
STL Writerの使用
GitHubではSTLファイルをレンダリングする機能がある。
STLファイルを生成するツールとしてSTL Writerがある。そのコードは下記にある。
http://code.activestate.com/recipes/578246/
コードのexampleではGitHub上で正常にレンダリングされない。
その理由については上記のリンクで記載している。
正常にレンダリングされるコードをここに整理しておく。
手順
- STL Writerのコードを取得
- http://code.activestate.com/recipes/578246/
- recipe-578246-1.py
- STL Writerのコードをシンボリックリンク
ln -fs recipe-578246-1.py STLWriter.py
- 理由: importする時にファイル名にマイナスがあるとできない
- 下記のコードを実行してSTLファイルを作成
- STLファイルをGitHubリポジトリにpushする
test_make_cube_180520.py
import STLWriter as STLWR
# STLWriter
# code from
# http://code.activestate.com/recipes/578246/
# by Manfred Moitzi
def make_cubeGroup():
def get_cube():
# cube corner points
s = 3.
p1 = (0, 0, 0)
p2 = (0, 0, s)
p3 = (0, s, 0)
p4 = (0, s, s)
p5 = (s, 0, 0)
p6 = (s, 0, s)
p7 = (s, s, 0)
p8 = (s, s, s)
# define the 6 cube faces
# faces just lists of 3 or 4 vertices
#
# [NOTE]
# vertices must be defined [anticlockwise] to be seen on GitHub
# otherwise, the face is not drawn
#
return [
[p1, p3, p7, p5], # bottom
[p1, p5, p6, p2],
[p5, p7, p8, p6],
[p7, p3, p4, p8], # rear
[p1, p2, p4, p3], # left
[p2, p6, p8, p4],
]
OUT_FILE = 'cube_180520_t0950.stl'
with open(OUT_FILE, 'wb') as fp:
writer = STLWR.Binary_STL_Writer(fp)
writer.add_faces(get_cube())
writer.close()
print('OUT:', OUT_FILE)
if __name__ == '__main__':
make_cubeGroup()