版本:2026-06-22
说明:本文件基于仓库现有代码与模块说明整理,面向插件使用者与二次开发者。建议将本文件保留在仓库根目录以便查阅。
TxTools 是面向机器人焊接工艺的 Process Simulate(Tecnomatix)二次开发插件集合。基于 Tecnomatix.Engineering SDK,提供一组常用功能以辅助焊接仿真与后处理,包括:焊枪/焊点导出、焊点可视化(点球)、机器人可达性检查、由曲线生成实体、沿线生成围栏等。
设计要点:
- 在不同 PS 版本下采用防御式 API 探测(dynamic + 多路径 try/catch)。
- 统一的 GUI 风格:基于 TxForm + TxFlexGrid 的卡片式面板与日志。
- 批量操作包裹在 UndoScope 中,支持 Ctrl+Z 回滚。
- 对外部系统(如 CATIA)使用桥接层以集中管理 COM 互操作。
- Process Simulate:推荐 2402(其它版本可能可用但未全面测试)。
- .NET Framework:4.8(与 PS 宿主匹配)。
- C# 语言:C# 7.3(严格限制,避免使用新语法)。
- Visual Studio:2019 / 2022。
- 可选:CATIA V5(用于 CATIA 相关功能的桥接)。
编译时常用引用:
- Tecnomatix.Engineering.dll
- Tecnomatix.Engineering.Ui.dll
- System.Windows.Forms、System.Drawing 等
编译目标:Release / x64,输出为 DLL 并连同资源一起部署到 PS 插件目录。
- 克隆仓库并在 Visual Studio 中打开
.sln。 - 为项目添加 PS 安装目录下的
Tecnomatix.Engineering.dll等引用(例如:C:\Program Files\Tecnomatix_2402\eMPower\)。 - 选择 Release / x64 并生成 DLL。
- 将生成的插件文件夹(DLL + Resources)复制到:
<Tecnomatix 安装目录>\eMPower\DotNetCommands\<PluginName>\ - 进入
<Tecnomatix 安装目录>\eMPower\,运行CommandReg.exe:- Assembly:选择插件 DLL。
- Class(es):勾选要注册的
TxButtonCommand类(如 ExportGunCmd、LineToSolidCommand 等)。 - Product(s):通常勾选 Process Simulate。
- File:选择或新建 XML(例如 TxTools.xml),点击 Register。
- 启动 Process Simulate → Customize → 将新命令拖到工具栏。
卸载:再次运行 CommandReg.exe,选择相同 XML,点击 Unregister。
-
ExportGun(导插枪)
将焊枪与焊点数据从 PS 导出到 CATIA(CGR 放置)或 Excel,便于下游工艺校验与可视化。包含 PsReader 风格的数据提取与 CatiaBridge(CATIA COM 互操作)。 -
DotBall(点球)
在焊点处生成球形几何,便于在 CATIA 等系统中直观显示焊点位置。 -
RobotReachabilityChecker(可达性验证)
基于机器人模型、焊接操作点与关节限位,分析可达性、是否超限、是否满足 TCP 余量等。 -
LineToSolid(曲线转实体)
将场景中的 Polyline / Line / Arc 拆分成段,并按用户指定截面(矩形/圆形)为每段生成独立 Solid(每段为一个零件)。支持圆弧自适应细分以满足最大弦高设置。 -
FenceBuilder / AutoFance(围栏生成)
根据直线或折线基线按参数生成网片 + 立柱 + 可选底板。优先采用“单薄板 + 纹理”策略以显著降低 Solid 数量并保证可视效果,提供降级路径以适配不同 PS 版本的纹理 API。
仓库还包含:AutoRecorder、DeviceZAligner、WeldAnnotator、WeldSpotAllocator、SelectButton 等模块(详见各子目录)。
LineToSolid:
- 在 PS 中选中一个或多个曲线特征。
- 菜单 → TxTools → LineToSolid,点【从选择添加】加入特征列表。
- 选择截面类型(矩形/圆形)、输入尺寸(mm),如有圆弧调整“最大弦高”。
- 点击【生成几何体】,操作包裹在 UndoScope 中,支持 Ctrl+Z 撤销。
FenceBuilder(围栏):
- 在场景准备直线或多段线基线(首端 Z 作为地面)。
- 菜单 → TxTools → 围栏生成器,选择基线并调整参数(网片宽/高、立柱尺寸、间隙、底板、纹理)。
- 点击【生成围栏】;若不满意使用 Ctrl+Z 或【撤销上次】。
ExportGun:
- 在插件窗体加载或选择焊点集合/焊枪对象。
- 选择导出目标(Excel / CATIA),配置输出选项并执行导出。
- 圆弧离散(LineToSolid):给定半径 r 与最大弦高 s,分段角度 θ = 2·arccos(1 - s/r),总扫掠角 / θ 向上取整得到段数 n,然后等分生成点与直线段。
- 姿态对齐:段方向 dir = normalize(End - Start) 作为局部 Z;选取不共线的辅助轴以生成局部 X、Y,组装 4×4 变换赋给几何的 AbsoluteLocation。
- 围栏几何约定(FenceBuilder):强制水平投影、立柱两端放置与段内定间距生成、角点合并规则、网片宽度按中心距减去立柱与间隙计算等。
- 纹理/颜色设置采用分级回退:若纹理 API 不可用则退为半透明纯色;颜色构造尝试多种构造形式以兼容不同 PS 版本接口。
- 找不到或无法访问 PS API 成员:检查当前引用的 PS SDK 版本,使用 IntelliSense 确认实际类型/成员名;首次运行观察日志以确定实际生效的探测路径。
- 插件未在 PS 中出现:确认 CommandReg 注册成功、选择的 XML 与产品是否正确、PS 是否重启。
- TxTransformation 或几何姿态异常:尝试不同的矩阵构造路径(ctor、SetMatrix、Matrix 属性等),并观察日志中回退路径。
- 纹理无法加载或颜色异常:检查资源是否随 DLL 部署或嵌入资源是否正确解包,纹理 API 有多级降级逻辑。
- 圆弧顶点/属性读取失败:模块尝试多种候选属性名(Center、Radius、Start/End、Normal/Axis、SweepAngle 等),请以日志为准固化正确字段。
调试建议:在小场景下快速验证几何与姿态,再扩展到大场景;启用并审阅内置日志以判断探测路径与 API 调用结果。
- 资源(如 mesh_pattern.png)可随 DLL 同目录下的 Resources 文件夹一起发布,或嵌入并在运行时正确解包。
- 插件发布前在对应 PS 版本上做回归测试(测量 Solid 数量与生成耗时),以避免在生产场景中出现性能问题。
- 对于 CATIA 交互功能,确保目标机器上已安装所需的 CATIA COM 组件并做好权限/COM 注册验证。
- 仅使用 C# 7.3 语法,避免新的语言特性引发运行时不兼容。
- 所有不确定的外部 API 都应优先用 dynamic + try/catch 多路径探测,稳定后可替换为强类型以提升性能。
- 每个
TxButtonCommand的 GUID 顶部注解请确保为合法 GUID(使用 VS Create GUID 工具生成)。 - 贡献前请阅读并遵守仓库根目录的 CONTRIBUTING.md。欢迎 Issues 与 PR。
- 授权:MIT(详见 LICENSE 文件)。
- 欢迎在仓库中提交 Issue 与 PR: https://github.com/ShuiYinMaster/TxTools
- ExportGun/:导出相关实现(PsReader、ExportGunForm、CatiaBridge 等)。
- LineToSolid/:曲线离散、几何构建、姿态对齐的实现。
- AutoFance/(FenceBuilder):围栏布局、几何构建、纹理处理。
- RobotReachabilityChecker/:可达性检查逻辑。
- 共享工具与资源:Common/、Image/、SRC/、Resources 等。
(文档由仓库现有 README 与子模块说明整理而成)