Measurements & AnalysisChinese & English

Compute Overall Measurements (Mesh)

Compute Overall Measurements (Mesh) is a Dragonfly Prototype Apps plugin that reports a full set of whole-mesh (global) scalar measurements for any surface mesh already present in your scene. Simply pick a mesh from the

Updated 2026-07-24User manual

整体测量(网格) 插件用户手册

Compute Overall Measurements (Mesh) - User Manual

Dragonfly Prototype Apps · Compute Overall Measurements (Mesh)...

版本 Version 1.0 · 2026-07-04


第一部分 中文手册

目录

1. 简介

2. 适用场景

3. 安装与启用

4. 运行环境与首次配置

5. 界面说明

6. 使用步骤

7. 参数说明

8. 输出结果

9. 常见问题与故障排除

10. 注意事项与已知限制

11. 参考资料

1. 简介

整体测量(网格) 是 Dragonfly 的一个 Prototype Apps 插件,用于对场景中已经存在的任意表面网格(Mesh)计算一整套整体(全局)标量测量值。你只需从下拉列表中选择一个网格,点击 Compute(计算),面板就会以分组表格的形式直接显示计算结果:拓扑与完整性检查、尺寸测量、形状描述符、凸性指标以及主惯性矩。

该插件是只读的:它读取网格的顶点与三角面,计算标量,再把结果表显示在面板中,不会向网格写回任何数据、也不会修改场景中的对象。表格右侧的 Copy results(复制结果) 按钮可将整张表以制表符分隔的文本导出,方便粘贴到报告或电子表格。

底层引擎与算法: 真正的几何计算在一个隔离的 Windows 虚拟环境(venv)子进程中运行,使用的是纯 Python 的开源科学计算库。依赖及其版本约束为:trimesh>=4.0,<5.0(面积、体积、惯性、凸包、水密性/欧拉数、包围盒)、scipy>=1.10(通过 qhull 计算凸包与定向包围盒)、numpy>=1.24,<2.0。所有依赖均提供预编译 wheel,无需本地编译。

许可证要点: 所使用的三个依赖 trimesh、scipy、numpy 均为宽松许可(MIT / BSD),不包含 libigl、CGAL 或任何 GPL 组件。这使得该插件适合在商业与内部工程流程中使用。

本插件计算的是整体(whole-mesh)标量。若需要写回到网格的逐顶点标量场(曲率、厚度、测地距离、粗糙度等,并带颜色映射),请使用配套插件 整体测量的姊妹插件 Compute Vertex Measurements (Mesh)。

2. 适用场景

本插件适合对分割后重建为网格的对象进行定量表征。典型应用包括:

  • 材料科学中的颗粒 / 晶粒形状分析 —— 通过球形度、实心度(solidity)、致密度(compactness)等指标定量描述颗粒或晶粒的形状。
  • 铸件与增材制造(AM)零件的工业 CT 检测 —— 核查孔隙与缺陷的封闭体积,判断缺陷大小。
  • 生命科学成像中的形态测量 —— 测量细胞、骨骼或器官的表面积、体积、包围盒与惯性等形态参数。
  • 3D 打印 / 仿真前的网格质量检查 —— 快速判断一个网格是否水密(watertight)、拓扑是否完好(连通分量数、亏格),避免把有开放边界的网格送入下游流程。

凡是可以在 Dragonfly 中表示为表面网格的对象,都可以作为本插件的输入进行整体测量。

3. 安装与启用

本插件随 Prototype Labs & Apps 完整安装包(Full Package) 分发。安装步骤如下:

1. 将安装包解压到任意较短的路径(例如 C:\PL\;不要放在很深的下载目录或 OneDrive 重定向的桌面下,以免触发路径过长错误)。

2. 双击运行 `Install_FullPackage.bat`。

3. 在弹出的对话框中选择核心安装模式(Fresh 全新 / Compatible 兼容),并在下方的 Prototype Apps 列表中勾选 Compute Overall Measurements (Mesh)。

4. 点击 Install,等待控制台完成。

5. 完全退出并重启 Dragonfly,菜单才会被重新扫描到。

本插件默认未勾选。 安装包默认只开启轻量的菜单项,所有插件(含本插件)默认关闭,需要你在安装时手动勾选,或安装后在 Menu Item Manager 中启用。

重启后,菜单出现在:Prototype Apps ▸ Compute Overall Measurements (Mesh)...(位于 Measurements & Analysis 分组中)。点击即可打开一个可停靠的浮动面板。

以后修改勾选: 最方便的方式是在 Dragonfly 内操作 —— 打开 Developer ▸ Prototype Labs... ▸ Menu Item Manager,在底部 “Prototype Apps (Full Package)” 列表里找到本插件,勾选=部署菜单项,取消勾选=移除菜单项,重启 Dragonfly 生效。停用从不删除插件已搭好的计算环境,重新启用后立即可用。

卸载: 双击 `Uninstall_FullPackage.bat` 可移除所有 Full Package 菜单项与插件。卸载会保留各插件已搭建的环境(venv),结束时会列出这些路径,便于你在需要腾出磁盘空间时手动删除。

4. 运行环境与首次配置

本插件的几何计算不在 Dragonfly 自带的 Python 环境(Python_env)中直接运行,而是在一个隔离的虚拟环境(venv)中以子进程方式运行,以避免污染 Dragonfly 的运行环境。这个 venv 需要在首次使用时手动搭建一次。

Setup environment(搭建环境)按钮的具体作用:

1. 自动选择一个带可用 pip 的基础 Python —— 优先使用当前 Dragonfly 自带的 python.exe(Dragonfly 2025.1 / 2027.1 均内置完整的 CPython 3.10,其 venv 与 pip 可正常工作),因此你无需另行安装 Python;若在 Dragonfly 之外运行,则回退到系统 Python。

2. 在插件代码目录下创建一个 venv,并使用 pip 安装 numpy、scipy、trimesh 三个依赖。

3. 把搭建好的 venv 中 python 的完整路径记录到 venv_python.txt,以便后续直接复用。

是否联网 / GPU / WSL / 外部软件: 首次搭建环境需要联网一次(下载约 100–200 MB 的软件包)。不需要 GPU,不需要 WSL,也不需要任何外部软件。环境搭建完成后,后续计算完全在本地离线进行。

环境安装到哪里: venv 及运行时文件都在已安装的插件代码目录内(位于 %LOCALAPPDATA%\comet\<Dragonfly 版本>\pythonUserExtensions\GenericMenuItems\OverallMeasurements\runner\ 下):

路径

用途

runner\venv

首次点击 Setup environment 时创建的隔离虚拟环境

runner\venv_python.txt

记录 venv 中 python 的路径,供插件复用

runner\jobs

每次计算的临时作业目录(存放输入/结果/状态文件)

失败时的替代方案: 面板会自动尝试多个基础 Python 候选(Dragonfly 自带 python、py 启动器、PATH 中的 python、常见安装位置的 Python、以及 Miniconda / Miniforge)。若使用 Dragonfly 自带解释器搭建失败,它会自动改用系统中带 pip 的 Python 重试。若全部失败,请检查网络连接,确认能访问 PyPI,然后再次点击 Setup environment。搭建过程与错误信息都会输出到面板底部的日志框中。

5. 界面说明

面板是一个可停靠的浮动窗口,自上而下由以下部分组成(与代码完全一致):

控件

类型

说明

Mesh(网格)

下拉列表

列出场景中所有可表示的网格对象,按标题显示。打开面板时自动填充。

Refresh(刷新)

按钮

重新扫描场景中的网格并刷新下拉列表(在 Dragonfly 中新建或删除网格后使用)。

结果表

表格

三列:Measurement(测量项)、Value(数值)、Unit(单位)。计算后按分组显示所有结果;分组标题行加粗跨列显示。

警告栏

文本条

仅在存在警告(如网格非水密)时显示,以橙色文字逐条列出说明。

Environment(环境状态)

文本标签

显示环境状态:checking...(检查中)/ ready(就绪)/ not set up(未搭建)/ setup failed(搭建失败)。

Setup environment(搭建环境)

按钮

首次使用时点击一次,构建隔离 venv 并安装依赖(见第 4 章)。

Compute(计算)

按钮

对当前选中的网格计算整体测量值。为默认按钮。

Copy results(复制结果)

按钮

把当前结果表以制表符分隔的文本复制到剪贴板。计算出结果前不可用。

进度条

进度条

计算或搭建环境期间显示忙碌状态。

日志框

只读文本框

显示运行日志:检测到的网格数、读到的顶点/面数、进度百分比、错误堆栈等。

所有的网格读取与场景访问都在 Dragonfly 的 UI 线程上进行,重的几何计算在后台线程/子进程中运行,因此计算期间界面不会卡死。

6. 使用步骤

输入要求: 场景中需要至少有一个可表示的表面网格对象(Mesh)。若没有,请先在 Dragonfly 中导入或从分割结果重建网格。

端到端操作步骤:

1. 打开 Prototype Apps ▸ Compute Overall Measurements (Mesh)...,面板出现。

2. 首次使用:点击 Setup environment,等待日志显示 “Environment ready”,环境状态变为 ready。此步只需做一次。

3. 在 Mesh 下拉列表中选择要测量的网格。若列表为空或缺少最新网格,点 Refresh。

4. 点击 Compute。进度条开始活动,日志会显示读取的顶点数与面数以及计算进度。

5. 计算完成后,结果表填充完毕。若网格非水密,警告栏会以橙色显示相应说明。

6. 如需导出:点击 Copy results,结果以制表符分隔文本进入剪贴板,可直接粘贴到 Excel 或报告文档中。

得到什么: 一张分组结果表(拓扑与完整性、尺寸、形状、凸性、惯性),以及必要时的警告说明。整个过程不改变场景中的任何对象。

7. 参数说明

本插件没有需要用户设置的数值型算法参数;界面上的可操作项及其默认状态如下表所示。

项目

默认值 / 默认状态

说明

Mesh 下拉列表

打开面板时自动选中第一个网格

选择要测量的目标网格;内容来自场景扫描。

Setup environment

首次未搭建;搭建后记住路径

构建 venv 并安装 numpy/scipy/trimesh;仅需执行一次。

Compute

为默认按钮(可回车触发)

对选中网格执行整体测量。

Copy results

计算出结果前禁用

把结果表复制为制表符分隔文本。

依赖版本约束

trimesh>=4.0,<5.0;scipy>=1.10;numpy>=1.24,<2.0

由 Setup environment 一次性安装,用户无需手动指定。

所有测量项目本身没有可调阈值:是否报告体积、球形度等值,取决于网格是否水密(见第 8、10 章的“水密门控”说明)。

8. 输出结果

输出不是新的 Dragonfly 对象 —— 本插件不生成 Channel、ROI、MultiROI 或新网格,也不写回原网格。所有结果都以面板内表格 + 可复制文本的形式呈现。表格分为五个分组:

分组

包含的测量项

单位

拓扑与完整性 Topology & integrity

顶点数、面数、边数、连通分量数、开放边界边数、是否水密、缠绕是否一致、是否凸、欧拉数 χ、亏格 genus

计数 / 是否

尺寸 Size

表面积、封闭体积、轴对齐包围盒(AABB)尺寸、定向包围盒(OBB)尺寸、外接球半径、质心 centroid、质量中心 center of mass

length / length² / length³

形状 Shape

球形度 Sphericity(Wadell)、致密度 Compactness(等周商)

[0, 1]

凸性 Convexity

凸包体积、凸包表面积、实心度 Solidity(V / V_hull)、凸度 Convexity(A_hull / A)

length³ / length² / [0, 1]

惯性(单位密度)Inertia

主惯性矩 I₁、I₂、I₃

length⁵

如何查看: 结果直接显示在面板的表格中,分组标题行加粗。数值以简洁的有效数字显示,向量(如包围盒尺寸、质心)以 (x, y, z) 形式显示;无法计算的值显示为 N/A。

单位说明: 数值以网格自身的世界坐标单位表示(length 表示长度单位,length² 表示面积,length³ 表示体积,length⁵ 表示惯性矩)。球形度、致密度、实心度、凸度均为无量纲比值,取值范围 [0, 1]。

水密门控: 体积、球形度、致密度、实心度、亏格与主惯性矩仅对封闭水密网格有意义。若网格存在开放边界,这些行显示为 N/A,并在警告栏中给出说明,以防止对一个未封闭的 CT 表面报告出无意义的体积值。

9. 常见问题与故障排除

问:菜单里找不到 “Compute Overall Measurements (Mesh)...”?

答:确认三点:(1) 安装时勾选了本插件(默认未勾选);(2) 安装完成后完全退出并重启了 Dragonfly(菜单只在启动时扫描);(3) 在 Developer ▸ Prototype Labs... ▸ Menu Item Manager 中该插件处于勾选状态。修改勾选后需再重启一次。

问:体积、球形度、亏格等显示为 N/A?

答:这些量仅对水密网格有定义。当网格存在开放边界边(Open boundary edges 大于 0、Watertight 为 no)时会显示 N/A,这是预期行为,警告栏会说明原因。若你确需这些数值,请先在 Dragonfly 中修补网格使其封闭(消除开放边界),再重新计算。

问:点击 Setup environment 失败怎么办?

答:请检查网络能否访问 PyPI(首次搭建约需下载 100–200 MB)。面板会自动尝试多个基础 Python(Dragonfly 自带、系统 Python、Miniconda 等);把面板底部日志中的报错信息看清后,修复网络或代理设置,再次点击 Setup environment 即可。停用/重启不会删除已搭好的环境。

问:Mesh 下拉列表是空的?

答:说明当前场景中没有可表示的网格对象。请先导入网格或从分割结果重建网格,然后点击 Refresh 重新扫描。

问:计算很慢或长时间无响应?

答:凸包与惯性计算的耗时随网格规模增长。对于顶点/面数极大的网格,计算可能需要较长时间;进度条与日志会持续更新。计算在后台进行,不会阻塞 Dragonfly 界面,请耐心等待日志出现 “Done.”。

10. 注意事项与已知限制

  • 只读操作:插件从不修改场景对象,也不生成新对象;结果仅在面板显示,可复制导出。
  • 水密门控:体积、球形度、致密度、实心度、亏格、主惯性矩仅对封闭水密网格报告,否则为 N/A。这是有意设计,用于避免报告出误导性的数值。
  • 缠绕方向一致性:若网格缠绕方向不一致(Winding consistent 为 no),体积/惯性的符号可能不正确,警告栏会提示。
  • 单位随网格:所有带量纲的数值以网格自身世界坐标单位给出;插件不做单位换算。
  • 首次联网:仅首次 Setup environment 需要联网下载依赖;之后可离线使用。无需 GPU。
  • 输入类型:仅支持已存在的表面网格(Mesh);不直接处理体数据(Channel)或 ROI/MultiROI —— 请先将其重建为网格再测量。

11. 参考资料

  • trimesh(网格几何:面积、体积、惯性、凸包、水密性/欧拉数、包围盒)—— https://trimesh.org/
  • SciPy(凸包 qhull、定向包围盒)—— https://scipy.org/
  • NumPy(数值计算基础库)—— https://numpy.org/
  • 球形度(Wadell)与等周商(致密度)的定义参见常规形态学 / 图像分析文献。
  • 配套插件:Compute Vertex Measurements (Mesh)(逐顶点标量测量,带颜色映射)。


Part II English Manual

Contents

1. Overview

2. Use Cases

3. Installation and Enabling

4. Runtime Environment and First-Run Setup

5. Interface Guide

6. Step-by-Step Usage

7. Parameters

8. Outputs

9. FAQ and Troubleshooting

10. Notes and Known Limitations

11. References

1. Overview

Compute Overall Measurements (Mesh) is a Dragonfly Prototype Apps plugin that reports a full set of whole-mesh (global) scalar measurements for any surface mesh already present in your scene. Simply pick a mesh from the dropdown, click Compute, and the panel shows the results directly as a grouped table: topology and integrity checks, size measurements, shape descriptors, convexity metrics, and principal moments of inertia.

The plugin is read-only: it reads the mesh vertices and triangle faces, computes the scalars, and displays the table in the panel. Nothing is written back onto the mesh, and no scene object is modified. A Copy results button exports the whole table as tab-separated text for pasting into reports or spreadsheets.

Underlying engine and algorithms: the geometry compute runs in an isolated Windows venv subprocess built on permissive open-source scientific Python libraries. The dependencies and version constraints are: trimesh>=4.0,<5.0 (area, volume, inertia, convex hull, watertightness / Euler number, bounding boxes), scipy>=1.10 (convex hull via qhull + oriented bounding box), and numpy>=1.24,<2.0. All ship prebuilt wheels — no local compilation is required.

License notes: the three dependencies trimesh, scipy, and numpy are all permissively licensed (MIT / BSD). There is no libigl, CGAL, or any GPL component, which makes the plugin suitable for commercial and internal engineering workflows.

This plugin reports whole-mesh scalars. If you need per-vertex scalar fields written back onto the mesh with a colormap (curvature, thickness, geodesic distance, roughness, …), use the companion plugin Compute Vertex Measurements (Mesh).

2. Use Cases

The plugin is ideal for quantitatively characterizing objects that were segmented and reconstructed as meshes. Typical applications include:

  • Particle / grain shape analysis in materials science — describe particle or grain shape with sphericity, solidity, and compactness.
  • Porosity and defect checks in industrial CT of castings and additive-manufactured (AM) parts — verify the enclosed volume of pores and defects.
  • Morphology measurements in life-science imaging — measure surface area, volume, bounding boxes, and inertia of cells, bones, or organs.
  • Quality check before 3D printing or simulation — quickly confirm whether a mesh is watertight and topologically sound (connected components, genus) before sending it downstream.

Any object that can be represented as a surface mesh in Dragonfly can serve as input for overall measurement.

3. Installation and Enabling

The plugin ships with the Prototype Labs & Apps Full Package. To install:

1. Unzip the package to a short path (e.g. C:\PL\; avoid a deep Downloads folder or a OneDrive-redirected Desktop to prevent path-too-long errors).

2. Double-click `Install_FullPackage.bat`.

3. In the dialog, choose a core install mode (Fresh or Compatible) and tick Compute Overall Measurements (Mesh) in the Prototype Apps list.

4. Click Install and wait for the console to finish.

5. Quit Dragonfly completely and restart it so the menu is re-scanned.

This plugin is OFF by default. The package enables only the light menu items by default; all plugins (including this one) are off and must be ticked at install time or enabled afterward in the Menu Item Manager.

After the restart the menu appears at Prototype Apps ▸ Compute Overall Measurements (Mesh)... (in the Measurements & Analysis group). Click it to open a dockable floating panel.

Changing your choices later: the easiest way is inside Dragonfly — open Developer ▸ Prototype Labs... ▸ Menu Item Manager, find this plugin in the bottom “Prototype Apps (Full Package)” list, tick = deploy the menu entry, untick = remove it, then restart Dragonfly to apply. Disabling never deletes the plugin's built environment; re-enabling is instant.

Uninstall: double-click `Uninstall_FullPackage.bat` to remove all Full-Package menu items and plugins. Uninstall keeps each plugin's built environment (venv) and lists its paths at the end so you can delete them manually to reclaim disk space.

4. Runtime Environment and First-Run Setup

The geometry compute does not run directly in Dragonfly's bundled Python (Python_env). Instead it runs in an isolated virtual environment (venv) as a subprocess, to avoid polluting Dragonfly's runtime. This venv must be built once on first use.

What the Setup environment button does:

1. Selects a base Python with a working pip — it prefers this Dragonfly's own python.exe (Dragonfly 2025.1 / 2027.1 both bundle a full CPython 3.10 whose venv + pip work), so you need no separate Python install; outside Dragonfly it falls back to a system Python.

2. Creates a venv inside the plugin's code folder and pip-installs the three dependencies numpy, scipy, and trimesh.

3. Records the full path to the venv's python in venv_python.txt so it can be reused on later runs.

Internet / GPU / WSL / external apps: building the environment needs the internet once (downloads roughly 100–200 MB of packages). No GPU is required, no WSL, and no external application. After setup, all subsequent computation runs fully locally and offline.

Where the environment lives: the venv and runtime files reside inside the installed plugin code folder (under %LOCALAPPDATA%\comet\<Dragonfly version>\pythonUserExtensions\GenericMenuItems\OverallMeasurements\runner\):

Path

Purpose

runner\venv

The isolated virtual environment created on first Setup environment click

runner\venv_python.txt

Records the venv python path so the plugin can reuse it

runner\jobs

Per-compute temporary job directories (input / results / status files)

Fallback if setup fails: the panel automatically tries several base-Python candidates (Dragonfly's own python, the py launcher, python on PATH, common install locations, and Miniconda / Miniforge). If the Dragonfly interpreter fails, it retries with a system Python that has pip. If all fail, check your network connection and PyPI access, then click Setup environment again. All setup progress and error messages appear in the log box at the bottom of the panel.

5. Interface Guide

The panel is a dockable floating window composed, top to bottom, of the following controls (matching the code exactly):

Control

Type

Description

Mesh

Dropdown

Lists every representable mesh object in the scene by title. Populated automatically when the panel opens.

Refresh

Button

Re-scans the scene for meshes and refreshes the dropdown (use after creating or deleting a mesh in Dragonfly).

Results table

Table

Three columns: Measurement, Value, Unit. After compute, all results appear grouped; group-title rows are bold and span the row.

Warning bar

Text bar

Shown only when warnings exist (e.g. a non-watertight mesh); lists each note in orange text.

Environment

Text label

Shows the environment state: checking... / ready / not set up / setup failed.

Setup environment

Button

Click once on first use to build the isolated venv and install dependencies (see Chapter 4).

Compute

Button

Computes overall measurements for the currently selected mesh. It is the default button.

Copy results

Button

Copies the current results table to the clipboard as tab-separated text. Disabled until a result exists.

Progress bar

Progress bar

Shows a busy state during compute or environment setup.

Log box

Read-only text

Shows run logs: number of meshes found, vertices/faces read, progress percentage, error traces, etc.

All mesh reads and scene access run on Dragonfly's UI thread, while the heavy geometry compute runs in a background thread / subprocess, so the interface stays responsive during computation.

6. Step-by-Step Usage

Input requirement: the scene must contain at least one representable surface mesh object. If none exists, first import or reconstruct a mesh (e.g. from a segmentation) in Dragonfly.

End-to-end steps:

1. Open Prototype Apps ▸ Compute Overall Measurements (Mesh)...; the panel appears.

2. On first use, click Setup environment and wait until the log shows “Environment ready” and the state becomes ready. This is done only once.

3. Select the mesh to measure in the Mesh dropdown. If the list is empty or missing a new mesh, click Refresh.

4. Click Compute. The progress bar activates and the log shows the vertex/face counts read and the compute progress.

5. When compute finishes, the results table is filled. If the mesh is not watertight, the warning bar shows the relevant note in orange.

6. To export: click Copy results — the table enters the clipboard as tab-separated text, ready to paste into Excel or a report.

What you get: a grouped results table (topology & integrity, size, shape, convexity, inertia) plus any warning notes. The process never changes any scene object.

7. Parameters

The plugin has no numeric algorithm parameters to set; the actionable items and their default states are listed below.

Item

Default / default state

Description

Mesh dropdown

First mesh selected when the panel opens

Choose the target mesh; contents come from the scene scan.

Setup environment

Not built at first; path remembered after setup

Builds the venv and installs numpy/scipy/trimesh; only needed once.

Compute

The default button (triggerable with Enter)

Runs overall measurements on the selected mesh.

Copy results

Disabled until a result exists

Copies the results table as tab-separated text.

Dependency versions

trimesh>=4.0,<5.0; scipy>=1.10; numpy>=1.24,<2.0

Installed once by Setup environment; no manual choice needed.

The measurements themselves have no adjustable thresholds: whether values such as volume or sphericity are reported depends on whether the mesh is watertight (see the “watertight gating” notes in Chapters 8 and 10).

8. Outputs

The output is not a new Dragonfly object — the plugin creates no Channel, ROI, MultiROI, or new mesh, and writes nothing back to the source mesh. All results are presented as an in-panel table plus copyable text. The table has five groups:

Group

Measurements included

Unit

Topology & integrity

vertices, faces, edges, connected components, open boundary edges, watertight, winding consistent, convex, Euler number χ, genus

count / yes-no

Size

surface area, enclosed volume, AABB extents, oriented bbox (OBB) extents, bounding-sphere radius, centroid, center of mass

length / length² / length³

Shape

sphericity (Wadell), compactness (isoperimetric quotient)

[0, 1]

Convexity

convex-hull volume, convex-hull area, solidity (V / V_hull), convexity (A_hull / A)

length³ / length² / [0, 1]

Inertia (unit density)

principal moments I₁, I₂, I₃

length⁵

How to view: results appear directly in the panel's table with bold group-title rows. Numbers show with compact significant figures; vectors (e.g. bounding-box extents, centroid) show as (x, y, z); values that cannot be computed show as N/A.

About units: values are expressed in the mesh's own world-coordinate units (length = a length unit, length² = area, length³ = volume, length⁵ = moment of inertia). Sphericity, compactness, solidity, and convexity are dimensionless ratios in the range [0, 1].

Watertight gating: volume, sphericity, compactness, solidity, genus, and principal inertia are only meaningful for a closed, watertight mesh. If the mesh has open boundaries, those rows show N/A and the warning bar explains why — this prevents silently reporting a meaningless volume for an open CT surface.

9. FAQ and Troubleshooting

Q: I can't find “Compute Overall Measurements (Mesh)...” in the menu.

A: Check three things: (1) you ticked this plugin at install (it is off by default); (2) you fully quit and restarted Dragonfly after installing (menus are scanned only at startup); (3) the plugin is ticked in Developer ▸ Prototype Labs... ▸ Menu Item Manager. Any change to the ticks needs one more restart.

Q: Volume, sphericity, genus, etc. show N/A.

A: These quantities are only defined for a watertight mesh. When the mesh has open boundary edges (Open boundary edges > 0, Watertight = no) they show N/A — this is expected behavior and the warning bar explains why. If you truly need these values, repair the mesh in Dragonfly so it is closed (no open boundaries) and recompute.

Q: Setup environment failed — what now?

A: Check that your network can reach PyPI (the first build downloads roughly 100–200 MB). The panel automatically tries several base Pythons (Dragonfly's own, a system Python, Miniconda, …); read the error in the log box at the bottom, fix your network or proxy settings, then click Setup environment again. Disabling / restarting never deletes an already-built environment.

Q: The Mesh dropdown is empty.

A: The scene contains no representable mesh object. Import a mesh or reconstruct one from a segmentation first, then click Refresh to re-scan.

Q: Compute is slow or seems unresponsive.

A: Convex-hull and inertia computations scale with mesh size. For meshes with very large vertex/face counts, compute may take a while; the progress bar and log keep updating. Compute runs in the background and does not block Dragonfly — wait for “Done.” in the log.

10. Notes and Known Limitations

  • Read-only: the plugin never modifies scene objects and creates no new objects; results are shown in the panel and can be copied out.
  • Watertight gating: volume, sphericity, compactness, solidity, genus, and principal inertia are reported only for closed watertight meshes; otherwise N/A. This is intentional, to avoid misleading numbers.
  • Winding consistency: if the mesh winding is inconsistent (Winding consistent = no), the sign of volume / inertia may be wrong; the warning bar flags this.
  • Units follow the mesh: all dimensioned values use the mesh's own world-coordinate units; the plugin does no unit conversion.
  • Internet only on first setup: only the first Setup environment needs the internet to download dependencies; afterward it works offline. No GPU required.
  • Input type: only existing surface meshes (Mesh) are supported; it does not process volume data (Channel) or ROI/MultiROI directly — reconstruct them into a mesh first.

11. References

  • trimesh (mesh geometry: area, volume, inertia, convex hull, watertightness / Euler number, bounding boxes) — https://trimesh.org/
  • SciPy (convex hull via qhull, oriented bounding box) — https://scipy.org/
  • NumPy (fundamental numerical computing library) — https://numpy.org/
  • Definitions of sphericity (Wadell) and the isoperimetric quotient (compactness) are given in standard morphology / image-analysis literature.
  • Companion plugin: Compute Vertex Measurements (Mesh) (per-vertex scalar measurements with a colormap).
You’ve reached the end of this manual.Explore the library →