znlgis 博客

GIS开发与技术分享

第一章:Chili3D概述与入门

1.1 什么是Chili3D

Chili3D是一款基于Web浏览器的开源3D CAD(计算机辅助设计)应用程序,专为在线模型设计和编辑而构建。该项目由开发者”仙阁”创建,采用TypeScript编写,通过将OpenCascade(OCCT)几何建模内核编译为WebAssembly,并与Three.js 3D渲染引擎集成,实现了接近原生应用程序的性能表现。Chili3D的目标是让用户无需安装任何本地软件,即可在浏览器中完成强大的3D建模、编辑和渲染操作。

1.1.1 项目定位与目标

Chili3D的核心定位是成为一款轻量级、易用、功能强大的在线3D CAD工具。传统的CAD软件如AutoCAD、SolidWorks、CATIA等通常需要安装庞大的客户端程序,占用大量系统资源,而且往往需要高昂的许可证费用。Chili3D的出现打破了这些限制,它具有以下几个核心目标:

  1. 零安装部署:用户只需打开浏览器访问网站即可开始使用,无需下载、安装任何软件,大大降低了使用门槛。

  2. 跨平台兼容:由于基于Web技术构建,Chili3D可以在Windows、macOS、Linux等任何支持现代浏览器的操作系统上运行,真正实现了”一次开发,处处运行”的理念。

  3. 开源免费:Chili3D采用GNU Affero通用公共许可证v3.0(AGPL-3.0)发布,任何人都可以免费使用、学习和修改源代码,对于商业授权需求可联系开发者获取。

  4. 专业级建模能力:通过集成业界标准的OpenCascade几何内核,Chili3D提供了专业级的3D建模能力,支持精确的边界表示(B-Rep)建模、布尔运算、曲面操作等高级功能。

  5. 现代化用户体验:采用类Office风格的Ribbon界面设计,结合直观的3D视图控制,为用户提供熟悉且高效的操作体验。

1.1.2 技术架构概览

Chili3D采用现代Web技术栈构建,其技术架构可以分为以下几个核心层次:

前端层

几何内核层

构建工具层

存储层

1.1.3 核心特性总览

Chili3D提供了丰富的功能特性,覆盖了3D CAD应用的各个方面:

建模工具

捕捉与追踪

编辑工具

测量工具

文档管理

用户界面

国际化

1.2 环境准备

在开始使用或开发Chili3D之前,需要准备好相应的开发环境。本节将详细介绍如何搭建开发环境。

1.2.1 系统要求

操作系统

浏览器要求(用于运行):

开发环境要求

1.2.2 安装Node.js

Node.js是JavaScript运行时环境,是Chili3D开发的基础。推荐使用Node.js版本管理工具如nvm来安装和管理Node.js版本。

Windows用户

访问Node.js官网(https://nodejs.org/)下载并安装LTS版本。安装完成后,打开命令提示符或PowerShell,执行以下命令验证安装:

node --version
npm --version

macOS/Linux用户

推荐使用nvm(Node Version Manager)来管理Node.js版本:

# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# 重新加载shell配置
source ~/.bashrc  # 或 source ~/.zshrc

# 安装Node.js LTS版本
nvm install --lts

# 验证安装
node --version
npm --version

1.2.3 安装Git

Git是版本控制系统,用于克隆Chili3D源代码仓库。

Windows用户

访问Git官网(https://git-scm.com/)下载并安装Git for Windows。安装过程中可以选择默认选项。

macOS用户

# 使用Homebrew安装
brew install git

# 或通过Xcode命令行工具安装
xcode-select --install

Linux用户

# Ubuntu/Debian
sudo apt update
sudo apt install git

# Fedora
sudo dnf install git

# Arch Linux
sudo pacman -S git

验证Git安装:

git --version

1.2.4 克隆项目

准备好开发环境后,可以从GitHub克隆Chili3D项目:

# 克隆仓库
git clone https://github.com/xiangechen/chili3d.git

# 进入项目目录
cd chili3d

1.2.5 安装依赖

项目使用npm作为包管理器,执行以下命令安装所有依赖:

npm install

这个过程可能需要几分钟,取决于网络速度。安装完成后,项目目录中会生成node_modules文件夹,包含所有依赖包。

1.3 快速开始

1.3.1 启动开发服务器

安装完依赖后,可以启动开发服务器:

npm run dev

命令执行后,开发服务器将在 http://localhost:8080 启动。打开浏览器访问该地址,即可看到Chili3D的主界面。

开发服务器支持热模块替换(HMR),当修改源代码并保存后,浏览器会自动刷新以显示更改。

1.3.2 构建生产版本

要构建生产环境版本,执行以下命令:

npm run build

构建完成后,生成的文件将位于dist目录中。这些文件可以部署到任何静态文件服务器上。

1.3.3 运行测试

Chili3D使用Jest作为测试框架。执行以下命令运行测试:

npm run test

要生成测试覆盖率报告,执行:

npm run testc

1.3.4 代码格式化

项目使用Prettier进行代码格式化。执行以下命令格式化所有代码文件:

npm run format

1.4 项目结构

理解项目结构对于学习和开发Chili3D至关重要。本节将详细介绍项目的目录结构和各个包的功能。

1.4.1 顶层目录结构

chili3d/
├── cpp/                    # C++源代码(OpenCascade绑定)
├── packages/               # TypeScript包(Monorepo结构)
├── public/                 # 静态资源文件
├── screenshots/            # 截图文件
├── scripts/                # 构建和发布脚本
├── .github/                # GitHub Actions配置
├── .vscode/                # VS Code配置
├── package.json            # 项目配置
├── tsconfig.json           # TypeScript配置
├── rspack.config.js        # Rspack构建配置
├── jest.config.js          # Jest测试配置
├── Dockerfile              # Docker配置
├── compose.yml             # Docker Compose配置
└── README.md               # 项目说明

1.4.2 Packages目录结构

Chili3D采用Monorepo架构,所有核心包都位于packages目录下:

packages/
├── chili/                  # 主应用包
├── chili-builder/          # 应用构建器
├── chili-controls/         # UI控件库
├── chili-core/             # 核心库
├── chili-geo/              # 几何计算库
├── chili-storage/          # 存储层
├── chili-three/            # Three.js集成
├── chili-ui/               # 用户界面
├── chili-vis/              # 可视化层
├── chili-wasm/             # WebAssembly绑定
├── chili-web/              # Web入口
└── global.d.ts             # 全局类型定义

1.4.3 核心包详解

chili-core: 核心库,包含了应用程序的基础设施代码。主要功能包括:

chili: 主应用包,实现了核心库中定义的各种接口。主要功能包括:

chili-wasm: WebAssembly绑定包,封装了OpenCascade的调用。主要功能包括:

chili-three: Three.js集成包,负责3D渲染和视图管理。主要功能包括:

chili-ui: 用户界面包,实现了各种UI组件。主要功能包括:

chili-builder: 应用构建器包,负责组装和初始化应用程序。主要功能包括:

chili-storage: 存储层包,处理数据持久化。主要功能包括:

1.5 界面介绍

Chili3D采用现代化的用户界面设计,主要由以下几个部分组成:

1.5.1 功能区(Ribbon)

功能区位于窗口顶部,采用类似Microsoft Office的Ribbon设计。功能区分为多个选项卡,每个选项卡包含相关的命令组:

首页选项卡

绘图选项卡

修改选项卡

视图选项卡

1.5.2 项目树

项目树位于窗口左侧,显示当前文档的层级结构:

通过项目树,用户可以:

1.5.3 属性面板

属性面板位于窗口右侧,显示当前选中对象的属性:

用户可以直接在属性面板中修改对象属性,更改会立即反映在视图中。

1.5.4 3D视口

3D视口是主工作区域,占据窗口的大部分空间:

视图控制

视图小部件

网格和坐标系

1.5.5 状态栏

状态栏位于窗口底部,显示以下信息:

1.6 基本操作

本节介绍Chili3D的基本操作方法,帮助用户快速上手。

1.6.1 创建新文档

  1. 点击功能区左上角的”新建”按钮
  2. 或使用键盘快捷键 Ctrl+N
  3. 系统将创建一个空白文档

1.6.2 打开和保存文档

打开文档

  1. 点击”打开”按钮
  2. 选择之前保存的.chili文件
  3. 文档将在新标签页中打开

保存文档

  1. 点击”保存”按钮(Ctrl+S)
  2. 首次保存时需要输入文件名
  3. 文档将保存到浏览器本地存储

1.6.3 创建基本形状

以创建长方体为例:

  1. 点击”绘图”选项卡
  2. 点击”长方体”按钮
  3. 在视口中点击确定起点
  4. 移动鼠标确定长度和宽度
  5. 点击确定尺寸
  6. 移动鼠标确定高度
  7. 点击完成创建

1.6.4 选择对象

单选

多选

取消选择

1.6.5 变换对象

移动

  1. 选择对象
  2. 点击”移动”按钮或按M键
  3. 指定基点
  4. 指定目标点

旋转

  1. 选择对象
  2. 点击”旋转”按钮或按R键
  3. 指定旋转中心
  4. 指定旋转角度

镜像

  1. 选择对象
  2. 点击”镜像”按钮
  3. 指定镜像平面

1.6.6 使用捕捉

Chili3D提供多种捕捉模式:

捕捉模式可以通过状态栏或快捷键切换。

1.6.7 使用工作平面

工作平面定义了2D绘图的基准面:

设置工作平面

  1. 点击”视图”选项卡中的”工作平面”
  2. 选择预设平面(XY、YZ、XZ)
  3. 或选择一个平面作为工作平面

工作平面捕捉

1.7 在线使用

如果不想本地搭建开发环境,可以直接在线使用Chili3D:

1.7.1 官方网站

访问官方网站:https://chili3d.com

这是Chili3D的主要部署站点,提供了最新的稳定版本。

1.7.2 Cloudflare镜像

访问Cloudflare部署:https://chili3d.pages.dev

这是备用镜像站点,提供相同的功能。

1.7.3 在线使用注意事项

  1. 浏览器兼容性:建议使用最新版本的Chrome、Firefox或Edge浏览器
  2. WebGL支持:确保浏览器已启用WebGL
  3. 本地存储:文档保存在浏览器本地存储中,清除浏览器数据会导致文档丢失
  4. 导出备份:建议定期将重要文档导出为STEP或IGES格式备份

1.8 获取帮助

1.8.1 社区资源

GitHub讨论区: https://github.com/xiangechen/chili3d/discussions

这是与开发者和社区交流的主要渠道,可以:

GitHub Issues: https://github.com/xiangechen/chili3d/issues

用于报告bug或提交功能请求。

1.8.2 视频教程

中文用户可以访问B站观看视频教程: https://space.bilibili.com/539380032/lists/3108412?type=season

这里包含了开发者发布的官方教程和更新日志。

1.8.3 邮件联系

如需私下联系开发者,可以发送邮件至:xiangetg@msn.cn

1.8.4 商业授权

Chili3D采用AGPL-3.0许可证,对于需要商业授权的场景,请联系开发者获取商业许可选项。

1.9 本章小结

本章介绍了Chili3D的基本概念、技术架构、环境搭建和基本操作。通过本章的学习,读者应该能够:

  1. 理解Chili3D的定位和核心特性
  2. 成功搭建本地开发环境
  3. 了解项目的目录结构和各个包的功能
  4. 熟悉用户界面的各个组成部分
  5. 掌握基本的建模和编辑操作
  6. 知道如何获取帮助和社区资源

在后续章节中,我们将深入探讨Chili3D的核心架构、几何建模原理、二次开发方法等高级主题,帮助读者成为Chili3D的专业用户和开发者。

Chili3D作为一个活跃开发中的项目,功能在不断完善和扩展。建议读者关注项目的GitHub仓库,及时了解最新的开发动态和版本更新。同时,也欢迎有兴趣的开发者参与到项目的开发中来,通过提交代码、报告bug或提供反馈来帮助改进这个优秀的开源项目。


下一章预告:第二章将深入分析Chili3D的核心架构,包括应用程序生命周期、文档模型、命令系统、序列化机制等核心概念,为后续的二次开发打下坚实的基础。