Files
sincos.cc-website/开发技术文档_V1.2.txt
2026-08-13 21:24:16 +08:00

116 lines
4.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
======================================================================
资源中心管理器 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\