cli-anything-cloudcompare 是一个面向智能体(Agent)的命令行工具,用于驱动 CloudCompare 这一开源的 3D 点云与网格处理软件。它将 CloudCompare 的能力封装为命令行接口,提供跨 9 个命令组的 41 条命令,方便在脚本或自动化流程中调用点云处理功能。
用途与定位 该工具的核心用途是让智能体或自动化脚本能够以命令行方式操作 CloudCompare 处理点云和网格数据,包括数据导入导出、格式转换、滤波去噪、地面分类、特征计算、配准对齐等。
安装与前置条件 安装方式为 pip install cli-anything-cloudcompare。使用前需要满足两个前置条件:一是 Python 3.10 及以上版本;二是系统上已安装 CloudCompare。Linux(Flatpak)可通过 flatpak install flathub org.cloudcompare.CloudCompare 安装,macOS 和 Windows 则需从 https://cloudcompare.org 下载。已测试版本为 CloudCompare 2.13.2(Flatpak,Linux)。
全局选项 全局选项必须放在子命令之前,格式为 cli-anything-cloudcompare [--project FILE] [--json] COMMAND [ARGS]...。其中 -p/--project TEXT 指定项目 JSON 文件的路径;--json 使输出以 JSON 格式返回,便于智能体消费。
命令组概览
- project(项目管理,3 条命令):project new 创建新的空项目文件(选项 -o/--output 必填、-n/--name 可选);project info 显示项目信息和已加载实体;project status 显示项目快速状态(点云数量、网格数量、最近操作)。
- session(会话管理,4 条命令):session save 保存当前项目状态到磁盘;session history 显示最近操作历史(-n/--last 指定条数,默认 10);session set-format 更新后续操作的默认导出格式(选项 --cloud-fmt、--cloud-ext、--mesh-fmt、--mesh-ext);session undo 从历史中移除最后一次操作(软撤销,不删除输出文件)。
- cloud(点云操作,21 条命令):所有点云命令均接受 CLOUD_INDEX(从点云列表获取的基于 0 的整数),多数命令支持 --add-to-project 将输出注册回项目。具体包括:cloud add 添加点云文件(-l/--label 标签);cloud list 列出项目中的点云;cloud convert 格式转换(由扩展名决定);cloud subsample 按 RANDOM、SPATIAL 或 OCTREE 方法降采样;cloud crop 按轴对齐包围盒裁剪(--outside 保留盒外点);cloud normals 按 octree 方法计算表面法线(--level 1–10,--orientation 可选六轴朝向);cloud invert-normals 翻转法线;cloud filter-sor 统计离群点去除;cloud noise-filter 使用 PCL 噪声滤波(KNN 或半径模式);cloud filter-csf 使用布料模拟滤波算法进行地面滤波,分离地面与非地面点(场景可选 slope/relief/flat,支持 --proc-slope 坡度后处理);cloud filter-sf 按标量场值范围过滤;cloud sf-from-coord 将坐标轴转换为标量场(常用于生成高度 Z 标量场);cloud sf-filter-z 一步完成 Z 转标量场并按高度范围过滤;cloud sf-to-rgb 将活动标量场转为 RGB 颜色;cloud rgb-to-sf 将 RGB 颜色转为标量场(亮度值);cloud curvature 计算曲率标量场(mean 或 gauss);cloud roughness 计算粗糙度标量场;cloud density 计算点密度标量场(knn、surface、volume);cloud segment-cc 将点云分割为连通分量(每个分量单独保存文件);cloud merge 合并项目中的所有点云;cloud mesh-delaunay 从点云构建 2.5 维 Delaunay 三角网网格(支持 --best-fit 和 --max-edge-length)。
- mesh(网格操作,3 条命令):mesh add 添加网格文件(-l/--label);mesh list 列出项目中的网格;mesh sample 从网格表面采样点云(-n/--count 指定点数)。
- distance(距离计算,2 条命令):distance c2c 计算点云到点云距离,为被比较点云添加距离标量场(--split-xyz 可按 X/Y/Z 拆分,--octree-level 指定层级);distance c2m 计算点云到网格距离(支持 --flip-normals 翻转法线、--unsigned 无符号距离)。
- transform(变换与配准,2 条命令):transform apply 将 4×4 刚体变换矩阵应用于点云(-m/--matrix 指定矩阵文件,--inverse 应用逆变换);矩阵文件需包含 4 行、每行 4 个空格分隔的值。transform icp 运行 ICP(迭代最近点)配准使一个点云对齐到另一个(--max-iter 最大迭代、--overlap 重叠度、--min-error-diff 最小误差差)。
- export(导出,4 条命令):export formats 列出所有可用的导出格式预设,支持 --json 输出;其余导出相关内容资料中未完整展示。
适用场景 该工具适合需要在自动化流程中批量处理点云数据的场景,例如点云格式转换、降采样、去噪、裁剪、地面提取、特征计算(曲率、粗糙度、密度)、点云配准、点云与网格间的距离分析等。--json 输出设计使其特别适合智能体解析和后续处理。
限制 使用前必须安装 CloudCompare 本体,该工具本身是其命令行封装。已测试版本为 CloudCompare 2.13.2(Flatpak,Linux)。关于 export 命令组的完整内容、具体收费与价格信息,资料中暂未提供。