solvespace/solvespace

GitHub: solvespace/solvespace

开源轻量级参数化2D/3D CAD工具,适合机械零件设计、工程制图和3D打印模型制作。

Stars: 3887 | Forks: 562

# SolveSpace SolveSpace Logo [![Build Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/35e4d7b915080535.svg)](https://github.com/solvespace/solvespace/actions) [![solvespace](https://snapcraft.io/solvespace/badge.svg)](https://snapcraft.io/solvespace) [![solvespace](https://snapcraft.io/solvespace/trending.svg?name=0)](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` 频道。这些包包含最新的改进,但比发布版本接受的测试要少。 [![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](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