标签: pythreejs

使用 jupyter-cadquery (threejs) 嵌入小部件:加载时位置错误

我正在使用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)

输出

注意立方体的视图是如何在交互时突然“跳跃”的。

这可能是一个问题 …

python three.js jupyter-notebook ipywidgets pythreejs

8
推荐指数
1
解决办法
452
查看次数

使用 pythreejs 嵌入小部件:错误的视角和相机观察

我正在使用pythreejs可视化一些 3D 模型。

在 Jupyter 笔记本上可视化模型时,一切都按预期进行。

但是当尝试将小部件嵌入 HTML 文档时,我面临两个问题:

  • 似乎相机在加载时正在查看 (0, 0, 0),而不是按预期,一旦您与小部件交互,相机将“跳跃”并开始查看预期坐标
  • 的投影(ortographic摄像机模式)丢失太

这是重现错误的代码和上述问题的动画:

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)

python three.js jupyter-notebook ipywidgets pythreejs

6
推荐指数
1
解决办法
455
查看次数