CadQueryでjupyter-cadquery
作成されたいくつかの3Dモデルを視覚化するために使用しています。
Jupyterノートブックでモデルを視覚化すると、すべてが期待どおりに機能します。
しかし、ウィジェットをHTMLドキュメントに埋め込もうとすると、ロード時にカメラがを指しているよう(0, 0, 0)
に見え、期待どおりではないようです。ウィジェットを操作すると、カメラは予想される座標を指します。
エラーと上記の問題のアニメーションを再現するコードは次のとおりです(Binderを使用してエラーを再現する方法については、以下の手順を参照してください)。
from cadquery import Workplane
from ipywidgets import embed
from jupyter_cadquery.cad_view import CadqueryView
from jupyter_cadquery.cadquery import Assembly
from jupyter_cadquery.cadquery import Part
# Create a simple assembly
box1 = Workplane('XY').box(10, 10, 10).translate((0, 0, 5))
a1 = Assembly([Part(box1)], "example 1")
# Generate HTML
a1.collect_shapes()
view = CadqueryView()
for shape in a1.collect_shapes():
view.add_shape(shape["name"], shape["shape"], shape["color"])
renderer = view.render()
embed.embed_minimal_html('export.html', views=renderer, title='Renderer')
renderer
キューブのビューが相互作用によって突然「ジャンプ」することに注意してください。
の問題ipywidgets
でしょうか?ノートブックに表示すると見栄えが良いので。
どうすれば修正できますか?
再現する方法
ローカル環境を作成する必要なく、バインダーでそれを再現できます(確かに、CadQuery / jupyter-cadqueryのインストールは、最も簡単/最速の方法ではありません)。
上記のコードを新しい空のノートブックで実行するだけです。renderer
がノートブックで問題なく3Dモデルを表示する方法を参照してください。
実行後、export.html
ドキュメントは左側のファイルリストにも表示されます。それを開き、ビューアの上部にある[Trust HTML]ボタンをクリックして、更新をクリックしてください。ビューを操作すると、問題を再現できます。
また、遠近法が失われることに注意してください(つまり、正射投影ビューではありません)。それを修正することはプラスです!^^