是否可以在P5.js中的模型之间创建机械关系?

问题描述 投票:0回答:1

我想使用P5.js将3D模型渲染到我的网站中,并且希望有可以调整的运动部件。我从互联网上抓取了以下图片作为示例enter image description here

看一下这个工具,有5个核心部分组成了整个组件。在SolidWorks中,我可以将单个零件导出为.obj文件,也可以将整个装配体导出为一个.obj文件。关于能够扩展和收缩该模型的问题,我无法在P5.js中找到任何能突出显示此类功能的要点,或者是否有办法提供某种类型的约束,以便能够合理地进行逻辑处理。如何移动而不必对一堆东西进行纳米动画,以使其按照您自然希望的方式移动。我不知道我是否能够从装配模型中执行类似的操作,或者是否需要将每个零件导入P5中然后进行迭代和装配,我真的不知道从哪里开始。是否有人有处理涉及的内容的经验?

angular processing p5.js .obj solidworks
1个回答
0
投票

您需要将问题分解为更小的简单块。例如:

  1. 加载零件网格
  2. 组装零件
  3. 模拟零件

对于part1,使用p5,您应该可以使用loadModel()加载每个.obj文件

就组装零件而言,您应该能够使用loadModel() / push()来隔离坐标空间和组合零件。

更棘手的部分将是模拟,在这里您可以简单,受限或复杂。

[我能想到的最简单的是一组关键帧:push()之间的零件的关键角度。

更复杂的选择可能是使用带有刚性弹簧(受约束的静止长度)的弹簧系统来模拟系统。激光切割件看起来像是挤压的2D形状,就移动零件而言,它们锁定在2D平面上。

如果要进行完整的3D刚体仿真,则可能要尝试使用像pop()这样的物理引擎>

这部分听起来令人困惑:

我希望有可以调节的运动部件。

如果零件可以调整,那么除非您有每个可调版本的模型(这是要加载的文件的[[lot

),否则加载.obj文件可能不是前进的方向。您可能需要研究使这些形状参数化:
    定义变化的参数(例如,半径,截面的长度和厚度,截面的数量等)
  • 基于参数计算3D形状顶点(对于上面的示例,可以是带有z偏移量的2D形状作为拉伸)
  • 使用pop() / interpolate将顶点组合成网格
© www.soinside.com 2019 - 2024. All rights reserved.