我正在使用 jupyter-cadquery
可视化用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
请注意,多维数据集的 View 在交互时是如何“跳跃”的。
ipywidgets
可能有问题吗?由于在笔记本中显示时该 View 还可以。如何解决?
如何繁殖
您可以使用Binder复制它,而无需创建本地环境(诚然,安装CadQuery/jupyter-cadquery不是最容易/最快的操作):
https://mybinder.org/v2/gh/bernhard-42/jupyter-cadquery/master?urlpath=lab&filepath=examples%2Fcadquery.ipynb
只需在一个新的空白笔记本中执行以上代码即可。查看
renderer
如何显示3D模型而笔记本上没有任何问题:执行后,一个
export.html
文档也将出现在左侧的文件列表中。打开它,并确保单击查看器顶部的“Trust HTML”按钮,然后单击“刷新”。如果您与 View 进行交互,则可以重现该问题。还要注意,透视图也丢失了(不是正交 View )。修复那将是一个加号! ^^
最佳答案
无需jupyter-cadquery
即可复制它,因此打开了一个新问题:
Embed widgets with pythreejs: wrong perspective and camera look-at
关于python - 使用jupyter-cadquery(threejs): wrong position on load嵌入小部件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59462182/