【发布时间】:2022-02-27 04:09:37
【问题描述】:
我有 2 组模型数据(eash 集是一个 stl 网格、草图点、igs 表面),它们已在 Fusion 中加载。 我可以在 MeshLab 中加载 2 个 stl 文件并对齐它们。 如何在对齐期间找到有关移动的数据,以便我可以将相同的移动应用到 Fusion 中的其他部分?
【问题讨论】:
标签: meshlab
我有 2 组模型数据(eash 集是一个 stl 网格、草图点、igs 表面),它们已在 Fusion 中加载。 我可以在 MeshLab 中加载 2 个 stl 文件并对齐它们。 如何在对齐期间找到有关移动的数据,以便我可以将相同的移动应用到 Fusion 中的其他部分?
【问题讨论】:
标签: meshlab
您想查看每个网格的当前变换矩阵的值。
首先,避免在对齐网格时使用过滤器或标记名为“冻结当前矩阵”的标志,因为这会将变换应用于顶点坐标并将矩阵重置为单位,所以你松开它。
查看矩阵的最简单方法是使用“文件 -> 保存项目”菜单选项。这将创建一个扩展名为“.mlp”的 XML 格式的文件。这意味着您可以使用任何文本编辑器打开它(有时您希望将扩展名更改为 .txt)并查看这些值。文件中的每个网格都将具有输入网格的文件名和如下矩阵:
<!DOCTYPE MeshLabDocument>
<MeshLabProject>
<MeshGroup>
<MLMesh filename="MeshedReconstruction1.ply" label="MeshedReconstruction1.ply">
<MLMatrix44>
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
</MLMatrix44>
</MLMesh>
</MeshGroup>
<RasterGroup>
<MLRaster label="examplePic1.png">
<VCGCamera RotationMatrix="0.999683 0.0245459 0.00566618 0 -0.0245495 0.999699 0.000560548 0 -0.00565071 -0.000699472 0.999984 0 0 0 0 1 " CenterPx="960 540" ViewportPx="1920 1080" TranslationVector="-0.0273756 0.00583069 -0.398988 1" FocalMm="46.0408" LensDistortion="0 0" PixelSizeMm="0.0317889 0.0317889" CameraType="0"/>
<Plane semantic="1" fileName="examplePic1.png"/>
</MLRaster>
</RasterGroup>
</MeshLabProject>
您想要 MLMatrix44 标签之间的矩阵。它包含有关应用于每个网格的平移、旋转和缩放的所有信息。
【讨论】:
<MLMatrix44>0.963472 -0.00908632 -0.267656 -17.00820.00905033 0.999958 -0.0013682 -5.295570.267657 -0.00110416 0.963514 1.297870 0 0 1</MLMatrix44>你知道该数据的布局,以及如何使用它数据移动其他部分以与第一个模型对齐?
matrix:set/copy transformation 获取/设置矩阵,或使用 matrix: Set from translation, rotation, scale 构建新矩阵。不知道在 Fusion 中如何做。