116 lines
4.7 KiB
Plaintext
116 lines
4.7 KiB
Plaintext
|
|
======================================================================
|
|||
|
|
资源中心管理器 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\
|