# huanfang **Repository Path**: lukecheng666/huanfang ## Basic Information - **Project Name**: huanfang - **Description**: 大黄蜂各家各户不回家 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-21 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 构形 构形是一套独立的 Windows AI 建模工作台。它连接 OpenAI-compatible 模型接口,由模型规划工具调用,并通过本地 SolidWorks Bridge 执行实际 CAD 操作。 ## 已实现 - 原生 WPF 中文桌面界面 - 自定义模型接口、API Key 和模型 ID - DeepSeek、ChatGPT/OpenAI、通义千问、MiniMax 服务商与常用模型预设 - OpenAI Chat Completions 工具调用循环;MiniMax 使用 OpenAI Responses API - 42 个 SolidWorks 草图、特征、扫描与验证工具 - 工具执行轨迹、取消任务、对话持久化 - 独立的 `Huanfang.SolidWorksBridge.exe` - STEP 导出和 OCCT 验证器集成 ## 一键启动 执行: ```powershell powershell -ExecutionPolicy Bypass -File .\start.ps1 ``` 脚本会自动:检测 .NET SDK → 从 SolidWorks 安装目录复制 Interop 依赖 → 首次运行时构建 → 拉起 SolidWorks(若未运行)→ 启动构形。 可选参数:`-Rebuild` 强制重新构建;`-SkipBuild` 跳过构建直接启动。 ## 构建 需要: - Windows x64 与 .NET 8 SDK - SolidWorks Interop DLL - 如需 STEP 验证,需 OCCT `step-verifier.exe` 及其运行库 将 `HUANFANG_CAD_RUNTIME_DIR` 指向包含 SolidWorks Interop 与 OCCT 文件的目录,然后执行: ```powershell $env:HUANFANG_CAD_RUNTIME_DIR = "D:\path\to\cad-runtime" powershell -ExecutionPolicy Bypass -File .\build.ps1 ``` 构建前可以先运行环境诊断: ```powershell powershell -ExecutionPolicy Bypass -File .\doctor.ps1 ``` 诊断脚本会检查 .NET 8 SDK、SolidWorks Interop、可选的 OCCT `step-verifier.exe`、 SolidWorks 默认安装路径和两个项目文件。源码目录下的 `cad-runtime` 会优先于旧版安装包 路径使用;也可以始终通过 `HUANFANG_CAD_RUNTIME_DIR` 显式指定。 发布结果位于 `artifacts/Huanfang-<版本>-win-x64`,入口为 `Huanfang.exe`。发布包为 self-contained x64,不要求目标机器预装 .NET Desktop Runtime。 ## 生成安装程序 安装 Inno Setup 6 后执行: ```powershell winget install --id JRSoftware.InnoSetup --exact powershell -ExecutionPolicy Bypass -File .\build-installer.ps1 ``` 脚本会先生成应用图标和 self-contained 发布目录,再在 `artifacts` 中输出 `Huanfang-Setup-<版本>-win-x64.exe`。安装程序支持当前用户/所有用户安装、覆盖升级、 开始菜单快捷方式、可选桌面快捷方式、安装后启动和标准卸载;升级与卸载均保留 `%LOCALAPPDATA%\Huanfang` 中的配置和最近会话。 已有发布目录时可使用 `-SkipPublish` 只重建安装程序。正式发布可传入 Windows 代码签名 证书指纹: ```powershell powershell -ExecutionPolicy Bypass -File .\build-installer.ps1 ` -CertificateThumbprint "证书指纹" ``` ### 自动更新 首次对外发布前需要确定一个长期不变的 HTTPS 清单地址。构建时传入该地址: ```powershell powershell -ExecutionPolicy Bypass -File .\build-installer.ps1 ` -UpdateManifestUrl "https://download.example.com/huanfang/Huanfang-update.json" ` -ReleaseNotes "本版本的更新说明" ``` 脚本会把更新源写入程序目录,并在 `artifacts/Huanfang-update.json` 生成发布清单。 将新安装包和该清单上传到同一目录即可;程序每 24 小时自动检查一次,发现新版本后 后台下载并校验文件大小和 SHA256,用户确认后启动覆盖安装。清单中的 `url` 默认是 安装包相对于清单的文件名,也可以用 `-InstallerDownloadUrl` 指定独立 CDN 地址。 界面中的“检查更新”可随时手动检查。更新源必须使用 HTTPS,本机集成测试例外: ```powershell powershell -ExecutionPolicy Bypass -File .\update-test.ps1 ``` #### 使用 Gitee 发布 推荐把稳定更新清单放在公开 Gitee 仓库的 `releases/Huanfang-update.json`,把安装包放在对应版本的 Release 附件中。客户端只读取 固定的 raw 清单地址,后续发布新版本时不需要修改旧客户端。 先在 Gitee 创建具有仓库写权限的私人令牌,并只在当前 PowerShell 会话中设置: ```powershell $env:GITEE_TOKEN = "你的 Gitee 私人令牌" ``` 然后执行一键构建和发布,`-Repository` 同时支持仓库 URL 和 `owner/repo`: ```powershell powershell -ExecutionPolicy Bypass -File .\publish-gitee.ps1 ` -Repository "你的 Gitee 仓库 URL" ` -ReleaseNotes "本版本的更新说明" ``` 脚本会自动读取仓库默认分支,构建带固定 Gitee 更新源的安装包,创建或更新 `v<版本号>` Release,上传安装包,写入清单并校验公网 raw 地址。非默认分支可传入 `-Branch`。令牌只从 `GITEE_TOKEN` 读取,不会写入文件或输出到终端。 正常发布应递增版本号,不应覆盖同版本安装包。仅在同版本发布中断且确定需要替换时, 才使用 `-ReplaceExistingAttachment`;已有附件与已发布清单完全匹配时脚本会直接复用。 ## 测试 先启动 SolidWorks,然后执行: ```powershell powershell -ExecutionPolicy Bypass -File .\test.ps1 ``` 测试只连接并扫描当前 SolidWorks 状态,不创建或修改文档。 ## 使用 1. 启动 SolidWorks。 2. 运行 `Huanfang.exe`。 3. 在“模型设置”中填写兼容接口地址、API Key 和模型 ID。 4. 输入建模要求,例如“创建一个 100×60×10 mm 的底板,四角开直径 6 mm 通孔”。 5. 幻方会显示规划和工具执行状态,并直接操作 SolidWorks。 配置和最近一次对话保存在 `%LOCALAPPDATA%\Huanfang`。 设置页内置以下预设,模型 ID 下拉框仍可手动输入其他型号: - DeepSeek:`deepseek-v4-pro`、`deepseek-v4-flash` - ChatGPT / OpenAI:`gpt-5.6-sol`、`gpt-5.6-terra`、`gpt-5.6-luna` - 通义千问 / 阿里云百炼:`qwen3.7-plus`、`qwen3.7-max`、`qwen3.6-flash` - MiniMax(中国大陆):`MiniMax-M3`、`MiniMax-M2.7-highspeed`、`MiniMax-M2.7`、`MiniMax-M2.5-highspeed`、`MiniMax-M2.5`、`MiniMax-M2.1-highspeed`、`MiniMax-M2.1`、`MiniMax-M2` - MiniMax(国际):使用相同模型列表和国际站接口;图纸与截图识别请选择支持图片输入的 `MiniMax-M3` - 自定义 OpenAI-compatible 服务 ## 当前限制 - DeepSeek、OpenAI、通义千问和自定义服务需兼容 `/chat/completions` 与 OpenAI `tool_calls`。 - MiniMax 使用 `/responses`,自动转换扁平函数工具、`input_image` 图片块,以及 `message/reasoning/function_call/function_call_output` 历史项;MiniMax 返回的完整 output 会原样回传到下一轮。 - MiniMax 推理强度通过 `reasoning.effort` 发送;`xhigh` 映射为 `high`,自动模式不发送该字段并采用模型默认行为。 - 第一版暂未实现 token 流式显示;建模工具执行状态会实时更新。 - STEP 验证器目前使用随本地 CAD 运行环境提供的 OCCT 原生组件。 - API Key 当前保存在 `%LOCALAPPDATA%\Huanfang\settings.json`,建议在共享电脑上使用专用账户或 文件系统权限保护该目录;后续版本应迁移到 Windows DPAPI/Credential Manager。 - 工具轮数默认预算为 48;设置为 0 同样使用 48 轮自动安全预算,也可以手动设置 1–512 轮。长任务会自动压缩旧工具上下文,模型扫描默认使用轻量摘要,并在重复失败或停滞时提前结束,不会为了用满预算而继续调用工具。 - 对话窗口和模型上下文都会恢复上次会话;工具执行中的残缺回合会在重启或取消后安全回滚。