Communitygithub.com

cli-anything-cloudcompare

面向命令行界面的 CloudCompare 智能工具——专为 AI 智能体设计的 CloudCompare 封装工具,支持 41 个命令,涵盖项目管理、点云处理、网格操作、距离计算、变换和导出等 9 大功能组。

cli-anything-cloudcompare 是什么?

cli-anything-cloudcompare 是一个 AI 智能体友好的命令行封装工具,专为 CloudCompare(开源 3D 点云与网格处理软件)设计。它提供了统一的 CLI 接口,覆盖 41 个命令(9 个功能组),包括项目管理、会话控制、点云操作(降采样、滤波、分割、分析)、网格操作、距离计算(C2C、C2M)、变换(ICP、矩阵)、导出(LAS/LAZ/PLY/PCD/OBJ/STL/E57)以及交互式 REPL 模式。该工具支持在 Linux(Flatpak)、macOS 和 Windows 上运行,并已针对 CloudCompare 2.13.2 版本进行测试。其关键特性包括 JSON 输出模式(便于智能体程序解析)、增量项目文件管理、会话撤销与历史查看、以及丰富的点云处理能力。开发者可以直接在终端中执行复杂点云处理流水线,而无需手动操作 CloudCompare GUI。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HKUDS/CLI-Anything/tree/main/skills/cli-anything-cloudcompare

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

cli-anything-cloudcompare 是做什么的?

面向 AI 智能体的 CloudCompare 命令行封装工具——CloudCompare,开源 3D 点云和网格处理软件。

41 个命令,涵盖 9 个功能组。

安装

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 格式输出结果(便于智能体程序解析)

命令组

1. project — 项目管理(3 个命令)

project new

创建新的空项目文件。

# 使用默认名称创建项目
cli-anything-cloudcompare project new -o myproject.json

# 使用自定义名称创建项目
cli-anything-cloudcompare project new -o myproject.json -n "大桥勘测 2024"

# 为智能体生成的 JSON 输出
cli-anything-cloudcompare --json project new -o myproject.json

选项:-o/--output TEXT(必需),-n/--name TEXT

project info

显示项目信息和已加载的实体。

cli-anything-cloudcompare --project myproject.json project info

# JSON 输出
cli-anything-cloudcompare --project myproject.json --json project info

project status

快速显示项目状态(点云数、网格数、上次操作)。

cli-anything-cloudcompare --project myproject.json project status

2. session — 会话管理(4 个命令)

session save

将当前项目状态保存到磁盘。

cli-anything-cloudcompare --project myproject.json session save

session history

显示最近的操作历史。

# 显示最近 10 个操作(默认)
cli-anything-cloudcompare --project myproject.json session history

# 显示最近 5 个操作
cli-anything-cloudcompare --project myproject.json session history -n 5

选项:-n/--last INTEGER

session set-format

更新后续操作的默认导出格式。

# 将点云默认导出格式设置为 LAS
cli-anything-cloudcompare --project myproject.json session set-format --cloud-fmt LAS --cloud-ext las

# 将网格默认导出格式设置为 OBJ
cli-anything-cloudcompare --project myproject.json session set-format --mesh-fmt OBJ --mesh-ext obj

# 同时设置点云和网格的默认格式
cli-anything-cloudcompare --project myproject.json session set-format \
  --cloud-fmt PLY --cloud-ext ply \
  --mesh-fmt STL --mesh-ext stl

选项:--cloud-fmt TEXT,--cloud-ext TEXT,--mesh-fmt TEXT,--mesh-ext TEXT

session undo

移除最后一次操作记录(软撤销——不删除输出文件)。

cli-anything-cloudcompare --project myproject.json session undo

3. cloud — 点云操作(21 个命令)

所有点云命令都需要提供 CLOUD_INDEX(从 cloud list 获取的从 0 开始的整数),并且大多数支持 --add-to-project 选项,用于将输出结果注册回项目。

cloud add

将点云文件添加到项目。

# 添加 LAS 文件
cli-anything-cloudcompare --project myproject.json cloud add /data/scan.las

# 添加并指定标签
cli-anything-cloudcompare --project myproject.json cloud add /data/scan.las -l "屋顶扫描"

选项:-l/--label TEXT

cloud list

列出当前项目中的所有点云。

cli-anything-cloudcompare --project myproject.json cloud list

# 用于解析索引的 JSON 输出
cli-anything-cloudcompare --project myproject.json --json cloud list

cloud convert

将点云从一种格式转换为另一种格式(格式由文件扩展名确定)。

# LAS → PLY
cli-anything-cloudcompare cloud convert /data/scan.las /data/scan.ply

# PCD → LAS
cli-anything-cloudcompare cloud convert /data/cloud.pcd /data/cloud.las

cloud subsample

使用 RANDOM、SPATIAL 或 OCTREE 方法减少点数量。

# 随机:保留 100,000 个点
cli-anything-cloudcompare --project myproject.json cloud subsample 0 \
  -o /data/sub_random.las -m random -n 100000

# 空间:点间最小距离 0.05 米
cli-anything-cloudcompare --project myproject.json cloud subsample 0 \
  -o /data/sub_spatial.las -m spatial -n 0.05

# 八叉树:级别 8
cli-anything-cloudcompare --project myproject.json cloud subsample 0 \
  -o /data/sub_octree.las -m octree -n 8 --add-to-project

选项:-o/--output TEXT(必需),-m/--method [random|spatial|octree],-n/--param FLOAT,--add-to-project

cloud crop

使用轴对齐包围盒裁剪点云。

# 保留框内的点
cli-anything-cloudcompare --project myproject.json cloud crop 0 \
  -o /data/cropped.las \
  --xmin 0.0 --ymin 0.0 --zmin 0.0 \
  --xmax 10.0 --ymax 10.0 --zmax 5.0

# 保留框外的点
cli-anything-cloudcompare --project myproject.json cloud crop 0 \
  -o /data/exterior.las \
  --xmin 0.0 --ymin 0.0 --zmin 0.0 \
  --xmax 10.0 --ymax 10.0 --zmax 5.0 --outside

选项:-o/--output TEXT(必需),--xmin/ymin/zmin/xmax/ymax/zmax FLOAT(全部必需),--outside,--add-to-project

cloud normals

通过八叉树方法计算表面法向量。

# 在八叉树级别 6 计算法向量
cli-anything-cloudcompare --project myproject.json cloud normals 0 \
  -o /data/with_normals.ply --level 6

# 计算朝向 +Z 的法向量
cli-anything-cloudcompare --project myproject.json cloud normals 0 \
  -o /data/with_normals.ply --level 6 --orientation plus_z --add-to-project

选项:-o/--output TEXT(必需),--level INTEGER(1–10),--orientation [plus_x|plus_y|plus_z|minus_x|minus_y|minus_z],--add-to-project

cloud invert-normals

翻转点云中所有法向量。

cli-anything-cloudcompare --project myproject.json cloud invert-normals 0 \
  -o /data/flipped_normals.ply --add-to-project

选项:-o/--output TEXT(必需),--add-to-project

cloud filter-sor

统计离群点移除——去除孤立的噪声点。

# 默认参数(k=6 个邻居,1.0 标准差系数)
cli-anything-cloudcompare --project myproject.json cloud filter-sor 0 \
  -o /data/denoised.las

# 自定义参数
cli-anything-cloudcompare --project myproject.json cloud filter-sor 0 \
  -o /data/denoised.las --nb-points 12 --std-ratio 2.0 --add-to-project

选项:-o/--output TEXT(必需),--nb-points INTEGER,--std-ratio FLOAT,--add-to-project

cloud noise-filter

使用 PCL 噪声滤波器去除噪声点(KNN 或半径模式)。

# KNN 模式(默认)
cli-anything-cloudcompare --project myproject.json cloud noise-filter 0 \
  -o /data/clean.las --knn 8 --noisiness 1.0

# 半径模式
cli-anything-cloudcompare --project myproject.json cloud noise-filter 0 \
  -o /data/clean.las --radius 0.1 --use-radius --add-to-project

选项:-o/--output TEXT(必需),--knn INTEGER,--noisiness FLOAT,--radius FLOAT,--use-radius,--absolute,--add-to-project

cloud filter-csf

使用布料模拟滤波器(CSF)算法进行地面滤波。将地面点与非地面点(建筑物、植被)分离。

# 仅提取地面——混合地形
cli-anything-cloudcompare --project myproject.json cloud filter-csf 0 \
  --ground /data/ground.las --scene relief

# 分离地面 + 非地面——城市场景
cli-anything-cloudcompare --project myproject.json cloud filter-csf 0 \
  --ground /data/ground.las \
  --offground /data/buildings.las \
  --scene flat --cloth-resolution 0.5 --class-threshold 0.3

# 陡峭森林坡地,带坡度后处理
cli-anything-cloudcompare --project myproject.json cloud filter-csf 0 \
  --ground /data/terrain.las --scene slope --proc-slope --add-to-project

选项:-g/--ground TEXT(必需),-u/--offground TEXT,--scene [slope|relief|flat],--cloth-resolution FLOAT,--class-threshold FLOAT,--max-iteration INTEGER,--proc-slope,--add-to-project

cloud filter-sf

根据标量场值范围过滤点云(保留 SF 值在 [min, max] 内的点)。

# 保留 SF 值在 10 到 50 之间的点
cli-anything-cloudcompare --project myproject.json cloud filter-sf 0 \
  -o /data/filtered.las --min 10.0 --max 50.0

# 使用指定 SF 索引进行过滤
cli-anything-cloudcompare --project myproject.json cloud filter-sf 0 \
  -o /data/filtered.las --min 0.0 --max 1.5 --sf-index 2 --add-to-project

选项:-o/--output TEXT(必需),--min FLOAT(必需),--max FLOAT(必需),--sf-index INTEGER,--add-to-project

cloud sf-from-coord

将坐标轴(X/Y/Z)转换为标量场。常用于创建高度(Z)标量场。

# 创建 Z 标量场(高度)
cli-anything-cloudcompare --project myproject.json cloud sf-from-coord 0 \
  -o /data/with_z_sf.las --dim z --add-to-project

# 创建 X 标量场并指定活动索引
cli-anything-cloudcompare --project myproject.json cloud sf-from-coord 0 \
  -o /data/with_x_sf.las --dim x --sf-index 0

选项:-o/--output TEXT(必需),--dim [x|y|z](默认:z),--sf-index INTEGER,--add-to-project

cloud sf-filter-z

便捷命令:一步完成 Z → 标量场转换并按高度范围过滤。

# 提取 z=1.0 米到 z=2.5 米之间的点
cli-anything-cloudcompare --project myproject.json cloud sf-filter-z 0 \
  -o /data/slice.las --min 1.0 --max 2.5 --add-to-project

# 仅使用上限
cli-anything-cloudcompare --project myproject.json cloud sf-filter-z 0 \
  -o /data/below_5m.las --max 5.0

选项:-o/--output TEXT(必需),--min FLOAT,--max FLOAT,--add-to-project

cloud sf-to-rgb

将活动的标量场转换为 RGB 颜色。

cli-anything-cloudcompare --project myproject.json cloud sf-to-rgb 0 \
  -o /data/coloured.ply --add-to-project

选项:-o/--output TEXT(必需),--add-to-project

cloud rgb-to-sf

将 RGB 颜色转换为标量场(亮度值)。

cli-anything-cloudcompare --project myproject.json cloud rgb-to-sf 0 \
  -o /data/luminance.las --add-to-project

选项:-o/--output TEXT(必需),--add-to-project

cloud curvature

计算曲率标量场(MEAN 或 GAUSS)。

# 平均曲率,半径 0.5 米
cli-anything-cloudcompare --project myproject.json cloud curvature 0 \
  -o /data/curvature.las --type mean --radius 0.5

# 高斯曲率
cli-anything-cloudcompare --project myproject.json cloud curvature 0 \
  -o /data/curvature.las --type gauss --radius 0.5 --add-to-project

选项:-o/--output TEXT(必需),--type [mean|gauss],-r/--radius FLOAT,--add-to-project

cloud roughness

计算粗糙度标量场(相对于局部最佳拟合平面的偏差)。

cli-anything-cloudcompare --project myproject.json cloud roughness 0 \
  -o /data/roughness.las --radius 0.2 --add-to-project

选项:-o/--output TEXT(必需),-r/--radius FLOAT,--add-to-project

cloud density

计算点密度标量场。

# KNN 密度
cli-anything-cloudcompare --project myproject.json cloud density 0 \
  -o /data/density.las --type knn --radius 0.5

# 表面密度
cli-anything-cloudcompare --project myproject.json cloud density 0 \
  -o /data/density.las --type surface --radius 1.0 --add-to-project

选项:-o/--output TEXT(必需),-r/--radius FLOAT,--type [knn|surface|volume],--add-to-project

cloud segment-cc

将点云分割成连通分量(聚类)。每个分量保存为单独文件。

# 使用八叉树级别 8,每个分量最少 100 个点进行分割
cli-anything-cloudcompare --project myproject.json cloud segment-cc 0 \
  -o /data/components/ --octree-level 8 --min-points 100

# 保存为 PLY 文件
cli-anything-cloudcompare --project myproject.json cloud segment-cc 0 \
  -o /data/components/ --octree-level 6 --min-points 50 --fmt ply

选项:-o/--output-dir TEXT(必需),--octree-level INTEGER,--min-points INTEGER,--fmt TEXT

cloud merge

将项目中的所有点云合并为一个点云。

cli-anything-cloudcompare --project myproject.json cloud merge \
  -o /data/merged.las --add-to-project

选项:-o/--output TEXT(必需),--add-to-project

cloud mesh-delaunay

从点云构建 2.5 维 Delaunay 三角剖分网格。

# 基本 Delaunay 网格
cli-anything-cloudcompare --project myproject.json cloud mesh-delaunay 0 \
  -o /data/surface.obj

# 最佳拟合平面,并限制最大边长
cli-anything-cloudcompare --project myproject.json cloud mesh-delaunay 0 \
  -o /data/surface.ply --best-fit --max-edge-length 2.0 --add-to-project

选项:-o/--output TEXT(必需),--best-fit,--max-edge-length FLOAT,--add-to-project


4. mesh — 网格操作(3 个命令)

mesh add

将网格文件添加到项目。

cli-anything-cloudcompare --project myproject.json mesh add /data/model.obj

# 添加并指定标签
cli-anything-cloudcompare --project myproject.json mesh add /data/model.ply -l "建筑模型"

选项:-l/--label TEXT

mesh list

列出项目中的所有网格。

cli-anything-cloudcompare --project myproject.json mesh list

# JSON 输出
cli-anything-cloudcompare --project myproject.json --json mesh list

mesh sample

从网格表面采样点云。

# 从索引 0 的网格中采样 50,000 个点
cli-anything-cloudcompare --project myproject.json mesh sample 0 \
  -o /data/sampled.las -n 50000

# 将采样的点云添加回项目
cli-anything-cloudcompare --project myproject.json mesh sample 0 \
  -o /data/sampled.las -n 100000 --add-to-project

选项:-o/--output TEXT(必需),-n/--count INTEGER(必需),--add-to-project

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

cli-anything-adguardhome

>-

cli-anything-anygen

>-

cli-anything-audacity

>-

cli-anything-blender

>-

cli-anything-browser

Browser automation CLI using DOMShell MCP server. Maps Chrome

cli-anything-calibre

>-

cli-anything-ccswitch

CLI interface for CC Switch — manage AI coding tool configurations from the terminal

cli-anything-chromadb

>-

cli-anything-cloudanalyzer

Command-line interface for CloudAnalyzer — Agent-friendly harness for CloudAnalyzer, a QA platform for mapping, localization, and perception outputs. Supports 27 commands across 8 groups: point cloud evaluation, trajectory evaluation, ground segmentation QA, config-driven quality gates, baseline evolution, processing, visualization, and interactive REPL.

cli-anything-comfyui

>-

cli-anything-dify-workflow

Wrapper for the Dify workflow DSL CLI. Create, inspect, validate, edit, and export Dify workflow files through a CLI-Anything harness.

cli-anything-drawio

>-

cli-anything-eez-studio

Use EEZ Studio from the command line: inspect and modify native .eez-project files, edit LVGL screens/widgets, manage SCPI commands, and invoke the real EEZ Studio backend for LVGL builds.

cli-anything-eth2-quickstart

>-

cli-anything-exa

>-

cli-anything-firefly-iii

Firefly III CLI - Personal finance management via CLI-Anything

cli-anything-freecad

Complete CLI harness for FreeCAD parametric 3D CAD modeler (258 commands). Covers ALL workbenches: Part (29 primitives + boolean + mirror + loft + sweep), Sketcher (26 cmds: geometry + constraints + editing), PartDesign (38 cmds: pad/pocket/groove/fillet/chamfer/patterns/hole/datum), Assembly (11 cmds), Mesh (16 cmds), TechDraw (15 cmds: views + dimensions + PDF/SVG), Draft (33 cmds: 2D shapes + arrays + transforms), FEM (12 cmds), CAM/CNC (10 cmds), Surface (6 cmds), Spreadsheet (7 cmds), Import (13 formats), Export (17 formats), Measure (12 cmds), Materials (21 presets). Headless FreeCAD export to STEP/IGES/STL/OBJ/DXF/PDF/glTF/3MF.

cli-anything-gimp

>-

cli-anything-godot

>-

cli-anything-inkscape

>-

相关技能