ブログにお越し頂き、ありがとうございます。
SolidPythonでOpenSCADを使ったアニメーション、
前回、WckeeをSCADで、制作して、SolidPythonで、動画を作成をしました、
そのときは、カメラアングルが、コマ毎に、ずれてしまい、動画素材としては、不十分でした、
で、問題の、
OpenSCADのカメラアングルの設定が、出来ました、
ターミナルから
$ openscad --help
で表示される以上の情報が、オリジナルのサイト以外に、ない感じ、
OpenSCADのコマンドライン、
バージョンによって、記述が違うので、注意、デス、
SolidPythonで、
PNGファイルの、書き出し、
import subprocess
from solid import *
from solid.utils import *
scadfile = import_scad("#wckee_10_lr.scad")
def rotate_wckee(dt):
w = scadfile.wckee_l ()
w_r = rotate([0,0,dt])(w)
return w_r
scad_render_to_file(rotate_wckee(45), "output.scad", include_orig_code=False)
subprocess.run (["openscad -o test.png --camera=100,100,100,0,0,0 --imgsize=640,400 output.scad"], shell = True)
from solid import *
from solid.utils import *
scadfile = import_scad("#wckee_10_lr.scad")
def rotate_wckee(dt):
w = scadfile.wckee_l ()
w_r = rotate([0,0,dt])(w)
return w_r
scad_render_to_file(rotate_wckee(45), "output.scad", include_orig_code=False)
subprocess.run (["openscad -o test.png --camera=100,100,100,0,0,0 --imgsize=640,400 output.scad"], shell = True)
マニュアルには、こう書いてあります。
引数のargが6個か7個かで、translateかeyeかを判別しているようです、
OpenSCADのGUIウィンドウの左下に、Viewportの座標が書いてあります、
これをコードに書き取り、変数に書き入れると、OpenSCADのウィンドウでのプレビューは再現できました、$tはアニメーションのとき、便利です、この場合、z回転、
コマンドラインで実行の場合、
7変数、書き入れると
openscad -o test.png --camera=2.12,-14.17,64.74,56,0,0.6 --imgsize=640,400 output.scad
となります、
ここが、分かりやすく、
イメージサイズも、決められます、
カメラ視点(eye)と、フォーカス?の場所(center)で、カメラアングルを変えながら、次、
参考に、
カメラに限っては、ココ、
追記(カメラの位置は固定できましたが、位置を変えることができません)
以外の特殊変数で対処、
$vpt=[100,-50,100]; ビューポートの変換
$vpr=[60,0,0]; ビューポートの回転角度
$vpd=100; ビューポートカメラの距離
http://openscad.org/cheatsheet/
いくぶん、簡素になった、
回転するwckeeを同じカメラアングルで、1.png~10.pngまで、書き出し、
1コマ15°で、10コマ、150°まで、一回転してないので、回ってる感は、目の錯覚、
注意、シェルコマンドの、カメラ設定が、間違っています、
--camera=100,100,100,0,0,0
だと、反映されると思います、
Gimpで、GIF画像にしました、
拡大すると(偶然ですが)、ギザギザが、木目調に、写って、います、
本日の素材ループ、修正、次回、以降、









