无聊的时候对重心的功能改进了一下:
主要改进说明:
- 双重处理流程:
- 第一遍:遍历所有主要视图,排除剖视或者放大等视图,更新关联模型的重心点
- 第二遍:遍历所有主要视图,排除剖视或者放大等视图,在工程图中显示重心点
- 使用字典确保每个模型只更新一次(避免重复操作)
- 重心点更新函数封装:
- 创建通用函数
UpdateOrCreateCenterOfMass
- 同时支持零件、装配体和工程图文档
- 返回操作状态(成功/失败)
- 创建通用函数
- 模型文档处理优化:
- 使用
InternalName
作为唯一标识符 - 避免对同一模型多次更新
- 支持处理多个引用相同模型的视图
- 使用
- 增强的错误处理:
- 区分模型更新错误和视图显示错误
- 详细记录每个视图的处理状态
- 保留原始模型名称用于错误报告
- 用户反馈改进:
- 显示更新的模型数量
- 显示成功显示重心的视图数量
- 错误信息包含具体视图和模型名称
- 汇总报告所有操作结果
工作流程说明:
- 在零件/装配体文档中:
- 直接创建/更新重心点
- 显示成功消息
- 在工程图文档中:
- 步骤1:遍历所有视图,更新每个视图关联模型的重心点
- 自动跳过无效视图
- 每个模型只更新一次
- 步骤2:再次遍历所有视图,显示重心点
- 使用更新后的重心点
- 跳过无法找到重心点的视图
- 步骤3:更新工程图并显示操作报告
- 步骤1:遍历所有视图,更新每个视图关联模型的重心点
此实现确保无论在零件/装配体还是工程图环境中,都能正确创建和更新重心点,并在工程图的所有视图中正确显示重心位置。
发表回复