Estou usando jupyter-cadquery
para visualizar alguns modelos 3D feitos com o CadQuery .
Ao visualizar os modelos em um notebook Jupyter, tudo funciona como esperado.
Mas, ao tentar incorporar o widget em um documento HTML, parece que a câmera, quando carregada, está apontando (0, 0, 0)
, não como o esperado. Depois de interagir com o widget, a câmera apontará para a coordenada esperada.
Aqui está o código para reproduzir o erro e uma animação do problema mencionado (consulte as instruções abaixo sobre como reproduzi-lo com o 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
Observe como a visualização do cubo "salta" repentinamente na interação.
Poderia ser um problema ipywidgets
? Como a visualização é boa quando exibida no notebook.
Como poderia ser consertado?
Como reproduzir
Você pode reproduzi-lo com o Binder, sem precisar criar um ambiente local (é certo que instalar o CadQuery / jupyter-cadquery não é a coisa mais fácil / rápida a fazer):
Basta executar o código acima em um novo caderno vazio. Veja como renderer
mostra o modelo 3D sem problemas no notebook:
Após a execução, um export.html
documento também aparecerá na lista de arquivos à esquerda. Abra-o e clique no botão "Confiar em HTML" na parte superior do visualizador e clique em Atualizar. Se você interagir com a exibição, poderá reproduzir o problema.
Observe que, também, a perspectiva é perdida (que não é uma visão ortogonal). Consertar isso seria uma vantagem! ^^