# ZenithGridAddons **Repository Path**: ZenithGrid/ZenithGridAddons ## Basic Information - **Project Name**: ZenithGridAddons - **Description**: ZenithGridAddons 是围绕 ZenithGrid 的 GPL 功能套件,通过独立插件提供几何操作、网格生成、网格修复等扩展能力。 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-10-06 - **Last Updated**: 2026-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ZenithGridAddons:ZenithGrid GPL 系功能套件 本项目使用已安装的 PreCess SDK 独立开发,主程序源码仓库为 [ZenithGrid](https://gitee.com/ZenithGrid/ZenithGrid),不需要软件源码树。开发前读取 AGENTS.md 和 SDK 的 skills/zenithgrid-external-plugin-development/SKILL.md。 ## 插件 | 插件 | 系统 | 说明 | 三方依赖 | | --- | --- | --- | --- | | `plugins/algo/GmshPlugin` | 算法 | Gmsh 渐进式网格划分(含增量网格状态) | `gmsh::shared`、OCCT | | `plugins/algo/TetGenPlugin` | 算法 | TetGen 体网格剖分(旧版:调用外部 `tetgen` 可执行文件,路径经参数传入) | 运行期 tetgen 可执行文件(可选) | | `plugins/algo/TetGenLibPlugin` | 算法 | TetGen 体网格剖分(新版:直接链接 `tetgen::tetgen` 库) | TetGen(`Findtetgen.cmake` 本仓自带) | | `plugins/feature/MeshBooleanPlugin` | 功能 | 网格布尔(并/交/差) | CGAL(经 `CgalSupport`) | | `plugins/feature/MeshRepairPlugin` | 功能 | 网格修复(孔洞填补、自交检测、退化清理) | CGAL(经 `CgalSupport`) | | `plugins/shared/cgal_support` | 共用库 | CGAL 网格转换层 `CgalSupport` 静态库 | CGAL、Boost(仅头文件) | ## 独立开发准备 - 准备 SDK、配套 PreCess-deps、CMake 3.27+、Ninja、C++20 工具链;Windows 先加载所选工具链的 x64 开发环境。 - 不固定 SDK 或编译器版本;按 SDK 的依赖/ABI 提示核对,Debug/非 Debug 不混用。 - gmsh / CGAL / Boost / TetGen 由本项目补齐到依赖根;已有配套依赖时可直接构建: ```powershell python ZenithGridAddons-deps.py ``` ## 构建、测试、安装 复制 CMakeUserPresets.json.example 为 CMakeUserPresets.json,填写 SDK 与依赖路径。用户预设独立提供 Debug、Release、RelWithDebInfo 三种入口,后两者使用配套的非 Debug SDK。 ```powershell cmake --preset x64-debug cmake --build out/build/x64-debug ctest --test-dir out/build/x64-debug --output-on-failure cmake --install out/build/x64-debug --prefix "<目标主程序目录>" --component AllPlugins ``` - DLL 输出到构建目录的 plugins/,安装到指定前缀的 plugins/;不指定 --prefix 时使用预设的 installDir 暂存目录(默认 out/install/<预设名>)。安装前核对目标主程序目录。 - 构建、测试、安装和打包直接指定所选用户预设的实际 binaryDir。切换配置时改用对应的配置预设及构建目录。 - 调试使用匹配的目标主程序,先安装本次插件,再启动或附加进程;.vs/launch.vs.json 的 exe/PATH 按本机修改。检查注册、功能、undo/redo;测试通过不等于已验证主程序加载。 - SDK/公共头更新后重建全部插件;更换 SDK、配置或目录时使用新构建目录。 ## 插件包 ```powershell cd out/build/x64-debug cpack ``` 在已配置的构建目录内运行 cpack。构建、安装和打包共用同一构建目录,相对 plugins/ 安装路径也用于 CPack staging。在构建插件所用的工具链环境执行。 Windows NSIS 插件安装器使用独立的 ZenithGridAddons 卸载注册项和 Uninstall-ZenithGridAddons.exe,更新时直接覆盖插件文件,不在安装前卸载 PreCess 或旧插件。默认安装目录与主程序一致,为 C:\Program Files\ZenithGrid;若主程序安装在其他位置,请选择实际安装根目录(包含 bin/PreCess.exe,而不是 bin/ 或 plugins/ 子目录)。SDK 与可执行文件仍使用 PreCess 名称;插件包不包含主程序,不创建开始菜单或桌面快捷方式;卸载通过 Windows 应用列表进行。 Windows 包同时包含 plugins/ 与 bin/:Gmsh 所需的额外运行库装入 bin/,使用 ZIP 时须把这两个目录合并到主程序安装根目录。 ## 插件图标 网格布尔与网格修复的 SVG 分别内嵌在 MeshBooleanPlugin.dll 和 MeshRepairPlugin.dll,资源前缀为 `/zenithgrid-addons/<插件名>/`。图标随插件安装,无需宿主打包或另装 SVG;导航入口引用插件自身的 qrc URL。`TestPluginIcons` 在无宿主资源、无旁置 SVG 的独立进程中验证 DLL 加载前后的资源可用性。 需要配套支持 Feature 导航入口注册的新版 ZenithGrid SDK;图标资源由插件 DLL 注册,宿主使用导航入口返回的 qrc URL。 ## 许可证 源码沿用 AGPLv3,见 AGPLv3-LICENSE.txt;OwnerQueue 测试辅助头保留 LGPLv3。GPL/AGPL 功能与依赖留在本项目,不引入 PreCess 的 LGPL core/model/cmake。项目原名 ZenithGridToolkit。