【问题标题】:Manipulating 3D models using Matlab to create specified Voids使用 Matlab 操作 3D 模型以创建指定的空隙
【发布时间】:2020-10-04 04:41:31
【问题描述】:

我正在努力在静止的水立方中创建一个基本的气泡模型,以测试在理想的平行板系统之间产生的电场。我目前正在使用 matlab 附带的 PDEToolbox,因此正在使用 DiscreteGeometries。我也一直在修补从 CAD 软件导入立方体和气泡作为 .stl 文件并将它们配对。我希望控制块的位置/大小,例如example 中使用的块。我希望创建“气泡”,因此只需更改所用球体的形状/大小/位置就可以了! 这完全可以使用matlab吗?除非有更适用的方法可以更简单地做到这一点,否则上述任何一种方法都是最好的。

【问题讨论】:

  • 您想如何“标记”空腔\气泡?作为网格中缺少的索引?作为零?

标签: matlab pde 3d-modelling 3d-model


【解决方案1】:

我使用您提供的示例来展示如何通过消除立方体网格中的网格点来创建气泡:

% create the "cube"
[xg, yg, zg] = meshgrid(-2:0.25:2);
Pcube = [xg(:) yg(:), zg(:)];

创建一个“辅助”函数以仅考虑球体的 x,y,z 索引 仅在某个半径 r 上方的网格点

bubble = @(x,y,z,r) vecnorm(bsxfun(@minus,Pcube',[x y z]')) > r;

现在我们可以根据上面的“气泡”功能,通过消除立方体中的网格点来创建“气泡”

Pcavitycube = Pcube( bubble(0.5, 0.8, 1.1, 0.25) & ...
                     bubble( 1 ,-0.2, 0.1, 0.4 ) & ...
                     bubble( -1,-0.8,  -1, 0.7 ) ...
                     ,:);

plot(alphaShape(Pcavitycube),'FaceAlpha',0.1)

【讨论】:

  • 我喜欢这个回复,这正是我的目标,有没有办法让提议的模型更加球形,我知道这是挑剔的,因为制作的模型已经非常好,然而,当从这个网格生成一个 PDE 模型时,所做的形状有点不一致。
  • 抱歉,我只是增加了模型的分辨率,我认为这可能是由于“气泡”的四面体模型已经解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 2014-03-04
  • 1970-01-01
相关资源
最近更新 更多