====================================================================== 资源中心管理器 V1.2 — 开发技术文档 2026-07-29 ====================================================================== 一、项目概述 -------------------------------------------------- 项目:资源中心管理器 (Res_center) 类型:Creo Pro/TOOLKIT DLL 插件 功能:标准件库浏览、3D 预览、搜索过滤、快速装配、LIC 授权 语言:C (核心) + C++ (preview.cpp) 编译器:MSVC 2022 | SDK:Creo 8.0 PTK | 平台:Win10/11 x64 | Creo 7.0+ 二、源文件 -------------------------------------------------- src/main.c (50行) DLL入口,路径初始化 src/dialog.c (1080行) 主对话框(TreeView+Parts+Preview+FT+Search+LIC) src/menu.c (73行) Creo命令注册(2个命令) src/assembly.c (624行) 装配逻辑 + 参数化对话框 src/preview.cpp (223行) OpenGL 3D 预览 src/license.c (250行) MAC激活(源码保留,未编译) include/res_center.h (84行) 公共头文件 tools/keygen_lic.c LIC授权文件生成器(Metro UI + BGM) tools/configen.c protk.dat自动配置器(Metro UI) tools/build_lic.bat keygen编译脚本 tools/build_config.bat configen编译脚本 三、Creo命令(2个) -------------------------------------------------- RL_Ico2 资源中心 → 对话框 + 插入装配 RL_Ico3 资源中心(参数定位) → 对话框 + 参数窗口(X/Y/Z/RX/RY/RZ) 四、核心技术 -------------------------------------------------- 【4.1】零件发现 — LoadParts() 直接扫目录 *.prt / *.prt.* / *.asm / *.asm.* → 提取基名 → 去重保留最高版本 【4.2】全局搜索 — SearchDirRecursive() 搜索框 → 递归全库匹配文件名 → 显示结果 【4.3】3D 预览 — OpenGL ProPartTessellate → 三角面片 → glDrawElements 装配体:ProSolidFeatVisit → ProAsmcompMdlGet → ProAsmcomppathInit → ProAsmcomppathTrfGet 3点光 + 双面光,灰蓝材质,中灰背景,鼠标旋转/缩放 【4.4】对话框布局 TreeView(300固定) | 按钮+搜索+零件列表(35%) | GL预览+族表+按钮(65%) 【4.5】收藏/最近使用 config\favorites.txt, config\recent.txt,MRU去重 【4.6】LIC授权 文件:config\lic\res_center.lic 算法:MAC → 去横线 → A=01 B=02 ... Z=26 → 倒序 验证:选中零件时检查LIC → 不匹配则隐藏"插入装配",显示"LIC文件不正确" 工具:tools\keygen_lic.exe (Metro暗色UI + poemstear.mp3背景音乐) 五、已知限制 -------------------------------------------------- 超大模型(>500万顶点) → 提示"模型过大,已取消预览" 旧版 .prt → 部分文件 ProPartTessellate 失败 装配体阵列实例 → Pattern 成员待完善 组件替换/删除 → PTK DLL 不支持(参见附录A) 六、已修复 Bug -------------------------------------------------- 最近使用/收藏模式崩溃 → ApplyFilter 递归断环 文件路径双 config → FAV_FILE/RECENT_FILE 修正 参数对话框无确定按钮 → 英文→中文,对话框加高 搜索框上边框缺失 → WS_EX_CLIENTEDGE 替换 WS_BORDER Insert 按钮中文被截 → 200×50 加宽居中 七、工具说明 -------------------------------------------------- tools\keygen_lic.exe LIC授权文件生成器(Metro暗色UI + 背景音乐) tools\configen.exe protk.dat自动配置器(一键生成) 部署时放在DLL同目录运行 ====================================================================== 附录A:组件替换开发记录(已暂停) ====================================================================== 需求:装配环境选中组件 → 从资源中心选新零件 → 删旧换新 结论:PTK DLL 不支持装配树修改 尝试方案: ProFeatureDelete → 链接失败(库未导出) ProFeatureSuppress → 运行时崩溃 ProFeatureWithoptionsDelete → 运行时崩溃 ProMacroExecute(ProCmdMdlTreeDelete) → 运行时崩溃 ProSelect+先装后删 → 状态冲突 后续:研究 Creo 原生 Replace 命令名或 OTK/同步模式 ====================================================================== 附录B:LIC 授权规则 ====================================================================== 算法: MAC "AA-BB-CC-DD-EE-FF" → 去横线 "AABBCCDDEEFF" → A=01 B=02 ... Z=26 → "010102020303040405050606" → 倒序 → "606050504040303020201010" = LIC 文件内容 生成:keygen_lic.exe AA-BB-CC-DD-EE-FF res_center.lic 部署:res_center.lic 放入 config\lic\