我正在使用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
Run Code Online (Sandbox Code Playgroud)

注意立方体的视图是如何在交互时突然“跳跃”的。
这可能是一个问题 …
我正在使用pythreejs可视化一些 3D 模型。
在 Jupyter 笔记本上可视化模型时,一切都按预期进行。
但是当尝试将小部件嵌入 HTML 文档时,我面临两个问题:
这是重现错误的代码和上述问题的动画:
from ipywidgets import embed
from pythreejs import *
from IPython.display import display
base = Mesh(
BoxBufferGeometry(20, 0.1, 20),
MeshLambertMaterial(color='green', opacity=0.5, transparent=True),
position=(0, 0, 0),
)
cube = Mesh(
BoxBufferGeometry(10, 10, 10),
MeshLambertMaterial(color='green', opacity=0.5, transparent=False),
position=(0, 5, 0),
)
target = (0, 5, 0)
view_width = 600
view_height = 400
camera = CombinedCamera(position=[60, 60, 60], width=view_width, height=view_height)
camera.mode = 'orthographic'
lights = …Run Code Online (Sandbox Code Playgroud)