You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Meshlab中Compute Planar Section生成多段线的边连接数据

Pymeshlab获取切面多段线边连接关系实现方案

你调用compute_planar_section生成的切面多段线的边连接关系,可直接通过Pymeshlab的Mesh类内置方法获取,无需额外导出DXF解析。

核心实现逻辑

compute_planar_section生成的结果是线框网格,所有边的连接关系存储在Mesh对象的边矩阵中,调用edge_matrix()方法即可直接读取,返回值为Numpy数组,每一行对应一条边的两个顶点ID(已和顶点矩阵的索引一一对应)。

完整代码示例

import pymeshlab
import numpy as np

ms = pymeshlab.MeshSet()
ms.load_new_mesh("你的模型文件路径.obj") # 替换为你的实际模型路径

for z_value in np.arange(0, 5, 1):
    ms.set_current_mesh(0)
    planeoffset = float(z_value)
    ms.compute_planar_section(planeaxis = 'Z Axis', planeoffset = planeoffset)
    m = ms.current_mesh()
    m.compact()
    print(m.vertex_number(), "vertices in Planar Section Z =", planeoffset)
    
    # 获取边连接关系:每行是[起点顶点ID, 终点顶点ID]
    edge_list = m.edge_matrix()
    print(f"当前切面共{len(edge_list)}条边:")
    for edge in edge_list:
        v1_id, v2_id = edge
        # 可选:获取对应顶点坐标
        v1_coord = m.vertex_matrix()[v1_id]
        v2_coord = m.vertex_matrix()[v2_id]
        print(f"边:顶点{v1_id}{v1_coord} -> 顶点{v2_id}{v2_coord}")
    
    # 处理完当前切面后可删除临时生成的切面网格,避免影响后续循环
    ms.delete_current_mesh()

补充说明

  • 调用m.compact()后顶点ID是连续无重复的,和vertex_matrix()的索引完全对应,无需额外处理索引映射
  • 如果需要导出边列表保存,直接把edge_list写入本地文件即可,格式可自行调整为CSV、TXT等

内容的提问来源于stack exchange,提问作者niallmitchell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:15:04