solvespace/solvespace
GitHub: solvespace/solvespace
开源轻量级参数化2D/3D CAD工具,适合机械零件设计、工程制图和3D打印模型制作。
Stars: 3887 | Forks: 562
# SolveSpace
[](https://github.com/solvespace/solvespace/actions)
[](https://snapcraft.io/solvespace)
[](https://snapcraft.io/solvespace)
本仓库包含 [SolveSpace][] 的源代码,这是一个参数化 2d/3d CAD 工具。
# 安装
### 通过官方包
macOS (>=10.6 64-bit) 和 Windows (>=Vista 32-bit) 的*官方*发布包可通过 [GitHub releases][rel] 获取。这些包由 SolveSpace 维护者为每个稳定版本自动构建。
### 通过 Flathub
官方版本可以作为 Flatpak 从 Flathub 安装。
[从 Flathub 获取 SolveSpace](https://flathub.org/apps/details/com.solvespace.SolveSpace)
这应该适用于任何支持 Flatpak 的 Linux 发行版。
### 通过 Snap Store
官方版本可以从 `stable` 频道安装。
来自 master 的构建会自动发布到 Snap Store 的 `edge` 频道。这些包包含最新的改进,但比发布版本接受的测试要少。
[](https://snapcraft.io/solvespace)
或者从终端安装:
```
# 用于最新稳定版:
snap install solvespace
# 用于 master 的最新构建版本:
snap install solvespace --edge
```
### 通过自动边缘构建
来自最新 master 提交的尖端构建可从以下链接以 zip 压缩包形式获取:
- [macOS](https://nightly.link/solvespace/solvespace/workflows/cd/master/macos.zip)
- [Windows with OpenMP enabled 32bit](https://nightly.link/solvespace/solvespace/workflows/cd/master/windows_x86.zip)
- [Windows 32bit](https://nightly.link/solvespace/solvespace/workflows/cd/master/windows_single_core_x86.zip)
- [Windows with OpenMP enabled 64bit](https://nightly.link/solvespace/solvespace/workflows/cd/master/windows_x64.zip)
- [Windows 64bit](https://nightly.link/solvespace/solvespace/workflows/cd/master/windows_single_core_x64.zip)
**请注意,64位 Windows 版本 *不* 支持 6DOF (SpeceMouse, SpaceNavigator) 控制器。**
解压下载的压缩包,并根据您的平台安装或执行其中包含的文件。
### 通过源代码
无论使用何种操作系统,在构建之前,请检出项目和必要的子模块:
```
git clone https://github.com/solvespace/solvespace
cd solvespace
git submodule update --init
```
您需要 `git`。请参阅下面特定平台的说明来安装它。
## 在 Linux 上构建
### 为 Linux 构建
您需要常用的构建工具、CMake、zlib、libpng、cairo、freetype。要构建 GUI,您需要 fontconfig、gtkmm 3.0(3.16 或更高版本)用于 GTK,或者 QT6 用于较新的 QT 界面、pangomm 1.4、OpenGL 和 OpenGL GLU,以及可选的 Space Navigator 客户端库。
在 Debian 衍生版(例如 Ubuntu)上,可以使用以下命令安装这些依赖:
```
sudo apt install git build-essential cmake zlib1g-dev libpng-dev \
libcairo2-dev libfreetype6-dev libjson-c-dev \
libfontconfig1-dev libpangomm-1.4-dev libgl-dev \
libglu-dev libspnav-dev libgtkmm-3.0-dev qt6-base-dev
```
在 RedHat 衍生版(例如 Fedora)上,可以使用以下命令安装依赖:
```
sudo dnf install git gcc-c++ cmake zlib-devel libpng-devel \
cairo-devel freetype-devel json-c-devel \
fontconfig-devel pangomm-devel mesa-libGL-devel \
mesa-libGLU-devel libspnav-devel gtkmm30-devel \
qt6-qtbase-devel
```
需要 `gtkmm30-devel` 来构建 GTK 版本,需要 `qt6-qtbase-devel` 来构建 QT 版本。如果不需要两个版本,可以省略其中一个。Debuntu 系统中的 `libgtkmm-3.0-dev` 和 `qt6-base-dev` 同理。
在构建之前,[检出项目和必要的子模块](#via-source-code)。
之后,按以下步骤构建 SolveSpace:
```
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_OPENMP=ON [-DENABLE_LTO=ON] [-DUSE_QT_GUI=ON] [-DENABLE_GUI=OFF]
make
# 可选
sudo make install
```
可选项:
- -DENABLE_LTO=ON:启用链接时优化,代价是构建时间更长。
- -DUSE_QT_GUI=ON:构建较新的 QT GUI 界面。
- -DENABLE_GUI=OFF:仅构建命令行界面
GTK 图形界面构建为 `build/bin/solvespace`,命令行界面构建为 `build/bin/solvespace-cli`。QT 图形界面构建为 `build/bin/solvespace-qt`。
### 为 Windows 构建
Ubuntu 需要 20.04 或更高版本。使用 WSL 进行交叉编译也已确认可行。
您需要常用的构建工具、CMake 和 Windows 交叉编译器。在 Debian 衍生版(例如 Ubuntu)上,可以使用以下命令安装这些依赖:
```
apt-get install git build-essential cmake mingw-w64
```
在构建之前,[检出项目和必要的子模块](#via-source-code)。
使用以下命令构建 64 位 SolveSpace:
```
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake \
-DCMAKE_BUILD_TYPE=Release
make
```
图形界面构建为 `build/bin/solvespace.exe`,命令行界面构建为 `build/bin/solvespace-cli.exe`。
Space Navigator 支持将不可用。
### 为 Web 构建(非常实验性)
**请注意,此端口包含许多严重错误和未实现的核心功能。**
您需要常用的构建工具、cmake 和 [Emscripten][]。在 Debian 衍生版(例如 Ubuntu)上,除 Emscripten 外的依赖可以通过以下方式安装:
```
apt-get install git build-essential cmake
```
首先,安装并准备 `emsdk`:
```
git clone https://github.com/emscripten-core/emsdk
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
cd ..
```
在构建之前,[检出项目和必要的子模块](#via-source-code)。
之后,按以下步骤构建 SolveSpace:
```
mkdir build
cd build
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO="ON" -DENABLE_TESTS="OFF" -DENABLE_CLI="OFF" -DENABLE_COVERAGE="OFF"
make
```
图形界面构建为 `build/bin` 目录下名称以 `solvespace` 开头的多个文件。可以使用 `emrun build/bin/solvespace.html` 在本地运行。
命令行界面不可用。
## 在 macOS 上构建
您需要 git、XCode tools、CMake 和 libomp。Git、CMake 和 libomp 可以通过 [Homebrew][] 安装:
```
brew install git cmake libomp
```
XCode 必须通过 AppStore 或 [Apple 官网][appledeveloper] 安装;它需要一个免费的 Apple ID。
在构建之前,[检出项目和必要的子模块](#via-source-code)。
之后,按以下步骤构建 SolveSpace:
```
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_OPENMP=ON
make
```
通过向 cmake 添加 `-DENABLE_LTO=ON` 支持链接时优化,代价是构建时间更长。
或者,生成一个 XCode 项目,打开它并构建 "Release" scheme:
```
mkdir build
cd build
cmake .. -G Xcode
```
应用程序构建在 `build/bin/SolveSpace.app` 中,图形界面可执行文件是 `build/bin/SolveSpace.app/Contents/MacOS/SolveSpace`,命令行界面可执行文件是 `build/bin/SolveSpace.app/Contents/MacOS/solvespace-cli`。
## 在 OpenBSD 上构建
您需要 git、cmake、libexecinfo、libpng、gtk3mm 和 pangomm。
这些可以从 ports 树中安装:
```
pkg_add -U git cmake libexecinfo png json-c gtk3mm pangomm
```
在构建之前,[检出项目和必要的子模块](#via-source-code)。
之后,按以下步骤构建 SolveSpace:
```
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
sudo make install
```
不幸的是,在 OpenBSD 上,生成的可执行文件与文件系统位置无关,必须在使用前安装。默认情况下,图形界面安装到 `/usr/local/bin/solvespace`,命令行界面构建为 `/usr/local/bin/solvespace-cli`。可以通过向 cmake 调用传递 `-DENABLE_GUI=OFF` 标志来仅构建命令行界面。
## 在 Windows 上构建
您需要 [git][gitwin]、[cmake][cmakewin] 和 C++ 编译器(Visual C++ 或 MinGW)。如果使用 Visual C++,则需要 Visual Studio 2015 或更高版本。
如果您的路径中有 gawk,请确保它是可以处理 CL LF 行尾的正确 Windows 移植版本。否则,CMake 可能会在 libpng 中由于某些 awk 脚本而失败 - 问题 #1228。
在构建之前,[检出项目和必要的子模块](#via-source-code)。
### 使用 Visual Studio IDE 构建
在源代码树中创建一个目录 `build`,并将 cmake-gui 指向源代码树和该目录。
点击 "Configure" 和 "Generate",然后用 Visual C++ 打开 `build\solvespace.sln` 并构建它。
### 在命令提示符中使用 Visual Studio 构建
首先,确保 `git` 和 `cl`(Visual C++ 编译器驱动程序)在您的 `%PATH%` 中;后者通常通过从 Visual Studio 安装目录调用 `vcvarsall.bat` 来完成。然后,在 cmd 或 PowerShell 中运行以下命令:
```
mkdir build
cd build
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
nmake
```
### 使用 MinGW 构建
也可以使用 [MinGW][mingw] 构建 SolveSpace,尽管 Space Navigator 支持将被禁用。
使用 MinGW 构建的最简单方法是使用 [MSYS2][msys2]。如果您不使用 MSYS2,请跳过安装说明,并确保您的 `$PATH` 中有 git、cmake、ninja 和 gcc。
使用 MSYS2,您可以根据所使用的编译器构建 32 位或 64 位二进制文件。以下说明假设您在 `MSYS2 MINGW64` 终端窗口内运行命令并构建 64 位版本。如果您想构建 32 位版本,则需要在 `MSYS2 MINGW32` 终端窗口中运行命令,并在安装命令中将 `x86_64` 替换为 `i686`。
首先,安装 Git、GCC、CMake 和 Ninja:
```
pacman -Sy mingw-w64-x86_64-git mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja
```
然后,在 bash 中运行以下命令:
```
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -GNinja
ninja
```
## 贡献
请参阅[贡献者指南](CONTRIBUTING.md),了解提交 issue、贡献代码和调试 SolveSpace 的最佳方式。
## 许可证
SolveSpace 根据 [GPL v3](COPYING.txt) 或更高版本的条款分发。
标签:2D绘图, 3D建模, Bash脚本, CAD, CAx, Flatpak, Linux软件, macOS软件, Snap, SolveSpace, STL导出, Windows软件, 三维建模, 产品设计, 几何约束求解器, 参数化建模, 工程制图, 技术绘图, 机械设计, 矢量绘图, 计算机辅助设计, 轻量级CAD