SolveSpace概述与入门

第01章 SolveSpace概述与入门

1.1 SolveSpace简介

SolveSpace是一款免费开源的参数化2D/3D CAD(计算机辅助设计)软件。它最初由Jonathan Westhues开发,现在由开源社区维护。SolveSpace以其轻量级、易于使用和强大的约束求解能力而闻名。

1.1.1 SolveSpace的特点

轻量级设计

  • 软件体积小巧,安装包仅约10MB
  • 启动迅速,界面简洁
  • 对系统资源占用低

强大的约束系统

  • 基于几何约束的参数化建模
  • 支持超过35种约束类型
  • 实时求解,即时反馈

跨平台支持

  • Windows (32位和64位)
  • macOS (10.6及以上版本)
  • Linux (通过GTK或QT界面)
  • Web版本 (实验性)

丰富的功能

  • 2D草图绘制
  • 3D实体建模
  • 装配设计
  • 约束动画
  • 多种文件格式导入导出

1.1.2 SolveSpace的历史

SolveSpace最初发布于2009年,由Jonathan Westhues个人开发。2013年,软件以GPL v3许可证开源,并迁移到GitHub进行社区开发。

主要版本历程:

  • 2.0 (2013): 首次公开发布
  • 2.1 (2015): 新增旋转组、贝塞尔曲线编辑
  • 2.2 (2016): 3Dconnexion设备支持
  • 2.3 (2017): 修复TTF字体度量问题
  • 3.0 (2019): 新增交集布尔运算、旋转和螺旋拉伸
  • 3.1 (2021): 弧长比和差约束、爆炸视图
  • 3.2 (2023): 面平行/垂直约束、QT界面选项

1.1.3 SolveSpace与其他CAD软件对比

特性 SolveSpace FreeCAD OpenSCAD Fusion 360
开源
免费 有限制
参数化
约束建模
学习曲线
文件大小 ~10MB ~500MB ~50MB 云端
求解器库

SolveSpace的优势场景:

  • 快速原型设计
  • 机械零件草图
  • 教育和学习CAD
  • 嵌入式约束求解
  • 轻量级建模需求

1.2 SolveSpace核心概念

1.2.1 参数化设计

参数化设计是SolveSpace的核心理念。在参数化CAD中,几何形状不是简单地通过坐标定义,而是通过参数和约束来描述。这意味着:

  1. 修改灵活: 改变一个尺寸,相关几何自动更新
  2. 设计意图保留: 约束表达设计的意图,而非仅仅是形状
  3. 历史无关: 与基于历史的CAD不同,SolveSpace的约束系统允许任意修改

1.2.2 草图与组

SolveSpace使用"组"(Group)来组织设计。每个组可以包含:

草图组 (Sketch Group)

  • 在指定平面上绘制2D几何
  • 包含点、线、圆、弧、贝塞尔曲线等
  • 应用约束定义几何关系

三维操作组

  • 拉伸 (Extrude): 将2D草图拉伸为3D实体
  • 车削 (Lathe): 绕轴旋转生成旋转体
  • 革命 (Revolve): 沿路径旋转
  • 螺旋拉伸 (Helix): 螺旋形拉伸

装配组

  • 链接 (Link): 导入其他SolveSpace文件
  • 步进平移/旋转: 创建阵列

1.2.3 实体与约束

实体 (Entity)
实体是几何元素的基本单位:

  • 点 (Point): 2D或3D空间中的位置
  • 线段 (Line Segment): 连接两点
  • 圆 (Circle): 由圆心和半径定义
  • 圆弧 (Arc): 圆的一部分
  • 三次贝塞尔曲线 (Cubic): 由四个控制点定义
  • 工作平面 (Workplane): 用于2D草图的平面

约束 (Constraint)
约束定义实体之间的几何关系:

  • 重合 (Coincident): 两点位于同一位置
  • 距离 (Distance): 两点或点到线的距离
  • 角度 (Angle): 两线之间的夹角
  • 水平/垂直 (Horizontal/Vertical): 线的方向
  • 平行/垂直 (Parallel/Perpendicular): 线之间的关系
  • 相切 (Tangent): 曲线之间光滑连接
  • 等长 (Equal Length): 多条线长度相等
  • 对称 (Symmetric): 关于某线或平面对称

1.2.4 自由度

自由度(DOF, Degrees of Freedom)是理解约束系统的关键概念:

  • 2D空间中的一个点有2个自由度 (x, y)
  • 3D空间中的一个点有3个自由度 (x, y, z)
  • 每添加一个约束,通常减少1个自由度

完全约束: DOF = 0,几何完全确定
欠约束: DOF > 0,几何还可以移动
过约束: 约束冲突或冗余

1.3 SolveSpace工作流程

1.3.1 典型设计流程

1. 创建工作平面
   └─> 选择标准平面(XY, YZ, ZX)或创建自定义平面

2. 绘制草图
   └─> 使用绘图工具创建基本几何
   └─> 点、线、圆、弧、曲线等

3. 添加约束
   └─> 定义几何关系
   └─> 添加尺寸约束
   └─> 检查自由度

4. 创建3D特征
   └─> 拉伸、车削、螺旋等
   └─> 设置布尔运算(并、差、交)

5. 重复步骤2-4
   └─> 在新平面上添加更多特征

6. 导出结果
   └─> 导出为STL、STEP、DXF等格式

1.3.2 草图绘制基本操作

创建几何

  1. 选择绘图工具(线、圆、弧等)
  2. 在画布上点击或拖动创建
  3. Esc 或右键结束

添加约束

  1. 选择要约束的实体
  2. 按快捷键或从菜单选择约束类型
  3. 输入约束值(如果需要)

修改几何

  1. 拖动点或线修改位置
  2. 双击约束值进行编辑
  3. 删除不需要的约束或实体

1.3.3 项目文件结构

SolveSpace使用 .slvs 作为原生文件格式。文件是纯文本格式,包含:

└── .slvs 文件
    ├── 参数 (Parameters)
    │   └── 定义实体的数值参数
    ├── 实体 (Entities)
    │   └── 点、线、圆等几何元素
    ├── 约束 (Constraints)
    │   └── 几何关系和尺寸
    ├── 组 (Groups)
    │   └── 草图和操作的组织
    └── 样式 (Styles)
        └── 线型、颜色等视觉属性

1.4 快速入门示例

1.4.1 绘制简单矩形

让我们通过一个简单的示例来熟悉SolveSpace:

步骤1: 打开SolveSpace
启动SolveSpace,默认会创建一个新草图,工作在XY平面上。

步骤2: 绘制矩形

  1. R 键激活矩形工具
  2. 在画布上点击第一个角点
  3. 移动鼠标到对角位置点击

步骤3: 添加尺寸约束

  1. 选择矩形的一条水平边
  2. D 键添加距离约束
  3. 输入 50 (单位毫米)
  4. 对垂直边重复,输入 30

步骤4: 固定位置

  1. 选择矩形的一个角点
  2. Shift+D 添加点的距离约束到原点
  3. 分别约束 x 和 y 坐标

1.4.2 创建简单3D模型

步骤1: 从上面的矩形开始

步骤2: 拉伸

  1. 选择菜单 新建组 → 拉伸
  2. 在属性窗口中设置拉伸深度为 20
  3. 确认拉伸方向

步骤3: 查看结果

  1. 按住鼠标中键拖动旋转视图
  2. 滚轮缩放
  3. F 键适应视图

1.4.3 导出为STL

  1. 选择菜单 文件 → 导出三角网格
  2. 选择STL格式
  3. 设置弦公差(影响曲面精度)
  4. 保存文件

1.5 学习资源

1.5.1 官方资源

1.5.2 GitHub资源

1.5.3 社区资源

  • 示例文件: 官方仓库中的test目录包含大量示例
  • 开发者文档: developer_docs目录包含内部实现说明
  • 贡献指南: CONTRIBUTING.md详细说明如何参与开发

1.6 本教程结构

本教程将分为以下章节:

基础篇

  • 第01章: SolveSpace概述与入门(本章)
  • 第02章: 安装与环境配置
  • 第03章: 用户界面详解
  • 第04章: 草图绘制基础
  • 第05章: 约束系统详解

进阶篇

  • 第06章: 三维建模基础
  • 第07章: 高级建模技巧
  • 第08章: 装配与链接功能
  • 第09章: 导入导出与数据交换

开发篇

  • 第10章: 约束求解器原理
  • 第11章: 命令行工具使用
  • 第12章: C语言库API详解
  • 第13章: Python绑定开发
  • 第14章: 源码架构分析
  • 第15章: 二次开发实战

1.7 总结

本章介绍了SolveSpace的基本概念和特点:

  1. SolveSpace是什么: 轻量级、开源的参数化CAD软件
  2. 核心概念: 参数化设计、组、实体与约束
  3. 工作流程: 草图→约束→3D特征→导出
  4. 学习资源: 官方文档、GitHub、社区

在下一章,我们将详细介绍如何在不同操作系统上安装SolveSpace,并配置开发环境。


导航


posted @ 2026-01-10 13:15  我才是银古  阅读(52)  评论(0)    收藏  举报