问题标签 [pyvista]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
141 浏览

python - PyVista 中的 3D 表面未正确生成。我试图避免关闭中心开口,但不知道该怎么做

不应填充 PyVista 填充开口的问题

我正在尝试使用 pyvista(也尝试过 Mayavi)创建 3D 表面,每当我执行 delaunay_2D 网格来创建表面时,它都会关闭该表面的“嘴”开口,该开口仍应打开。我附上了一张图片,显示了需要修复的部分,以及我的代码副本,该副本生成数据并重现当前问题。我非常感谢任何人对此问题的帮助。

0 投票
0 回答
99 浏览

python - Python:从凸包获取曲面

我是 3D 计算的新手,我搜索了一段时间,但找不到任何解决方案(可能我使用了错误的搜索词)。

所以我有不同的 3D 点云——例如一个有 5 个点的“金字塔”:

在此处输入图像描述

数组如下所示:

现在我想提取所有“表面”——我的计划是计算凸包,但我找不到任何属性来获得表面——我用 scipy.spatial 进行了测试

例如我想要以下输出:

在此处输入图像描述

我如何计算这些“表面”?

谢谢Dev先生

编辑:好的,我认为我的问题很具体-但这是我的下一次尝试(我找到了库“pyvista”)

我有以下代码:

这段代码为我生成了一个 *.obj 文件

并向我展示了一个情节:

在此处输入图像描述

我希望在这个目标文件中找到 5 个“面”——但有 6 个——因为“地面”被分成两个三角形——条目:

所以我的问题是:是否有可能(可能使用 pyvista)生成一个输出文件(不管它是 .obj 文件还是其他文件),我可以在其中找到金字塔的 5 个“面孔”?

谢谢

0 投票
2 回答
60 浏览

python - 将位移数据添加到网格点

假设我有一个带有 Tet4 元素的网格。网格共有 1695 个节点和 7726 个单元。现在我可以使用 pyvista 创建未变形的网格,如下所示:

我的问题是如何将位移数据添加到这个网格中?所以在 paraview 中,它看起来像这样:

最终数据

我当前的数据如下所示:

当前数据

或者有没有其他方法可以解决这个问题?

0 投票
1 回答
41 浏览

python - 如何使用 mgrid 在矩形和圆形之间进行插值

我正在尝试创建一个 3D 表面,其外部为 1/4 矩形,内部为 1/4 圆形。之前我得到了帮助,以椭圆作为外部创建 3D 表面,但由于某种原因,我无法为矩形执行此操作。我已经手工完成了有意义的数学计算,但我的代码没有。我将不胜感激任何帮助。

电流输出

0 投票
1 回答
60 浏览

python - PyVista 和 Blender 中的顶点法线看起来不同

我正在处理洞穴的网格,并使用 Blender 手动将所有面法线设置为“正确”(所有面朝外)(编辑模式-> 选择面-> 翻转法线)。我还在 Blender 中可视化了顶点法线,它们都指向整个表面:

洞穴扫描的搅拌机法线

然后将网格导出为 STL 文件。

然而,现在,当我使用以下代码在 Pyvista 中可视化相同的东西时:

法线指向非常不同(如下),有时甚至是相反的方向。任何帮助理解这种差异将不胜感激!

pyvista 的屏幕截图显示法线矢量图,其中一堆指向内

OC_wellsliced.stlSTL 文件在这里

0 投票
0 回答
36 浏览

python - 在 PYQT5 中使用 Pyvista 3D 和 2D 绘图

我正在尝试使用 Pyvista 绘制 3D 和 2D 绘图,我已经能够使 3D 绘图工作没有问题。添加二维图后,出现以下错误:

  • 当我更改原始大小并且小部件使其大小增加时,我必须向 gridLayout_8 添加一个交互器小部件。我不确定如何避免这种情况。
  • 当我关闭应用程序时,也会出现以下错误:

抱歉,这些脚本的行数太多,不适合放在此处。

主代码 https://pastebin.com/nMPWWeU5

pyvistaGUI https://pastebin.com/h5wiLYCY

它应该是什么样子 它应该是什么样子

现在的样子 现在的样子

我将非常感谢任何人对此的帮助!

0 投票
0 回答
24 浏览

python-3.x - PyVista 相交函数不适用于三角曲面

我正在尝试使用 PyVista python 包找到多点渐变曲线和三角曲面之间的交点。我已经尝试过常规折线并将折线制作成管以进行交叉计算。出于某种原因,PV 返回网格之间没有交集。我已经在视觉上确认了网格之间存在交集。我试图将折线生成为三角网格,然后检查这两个网格之间的交点。这行得通,但不幸的是,三角测量将我的折线扭曲到无法使用的程度。有人可以看看并告诉我我做错了什么吗?这是我创建折线点管的代码:

如果我可以提供任何进一步的细节,请告诉我。

0 投票
0 回答
36 浏览

python - PyVista 中的多体曲面到体积网格

我有一个项目涉及将曲面网格导入 PyVista 并使用 tetgen 将它们转换为体积网格。其中一些表面网格包含多个实体,基本上沿一个表面分割。这些不能被四面体化,因为它们是非流形的,但我想找到一种方法来修复它们,同时保留两个部分。下面是一个示例,显示了我正在处理的网格类型,以及使用 meshfix.repair 时如何丢失一个部分。(为大数据集道歉,这个问题似乎不会发生在更简单的网格中)

给定这样的输入网格,我怎样才能得到两个部分的四面体?

编辑:还有一些想法。

  • 网格有两个不同的防水部分。所以也许有一种算法可以将表面网格分成单独的防水部分。尝试过 DatasetFilters.Connectivity 但这要求这些部分不要接触。
  • 墙元素在各个部分之间共享,因此唯一的非流形边缘位于表面的外侧。这使得很难选择分隔墙。
  • 也许我们可以做一些迭代测试,检查一个点是否在水密部分内,然后删除那些墙......