PyCATIA高级建模技术:等距平面、点云重命名与棱柱体创建的工业级实现
引言:自动化建模在工程中的核心价值
在现代机械设计领域,参数化建模和批量操作已成为提升设计效率的关键技术。本文深入解析使用pyCATIA库实现的三类核心建模操作:等距平面创建、点云重命名和棱柱体生成。以下代码展示了一套完整的工业级实现方案:
@classmethod
def planes_at_equal_distance(cls):# 创建新的混合体对象obd = opart.hybrid_bodies.add()# 获取轴系集合axis_syss = opart.axis_systems# 选择绝对坐标系axis_sys = axis_syss.item("Absolute Axis System")# 循环创建间距为30mm的平面 (从30mm到600mm)for i in range(30, 601, 30):# 创建第一个参考面(来自绝对坐标系的XY平面)ref = opart.create_reference_from_b_rep_name("RSur:(Face:(Brp:(AxisSystem.1;1);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)",axis_sys)# 创建偏移平面hsp_offset = ohsf.add_new_plane_offset(ref, i, False)# 将平面添加到混合体obd.append_hybrid_shape(hsp_offset)# 创建第二个参考面(来自绝对坐标系的ZX平面)ref_2 = opart.create_reference_from_b_rep_name("RSur:(Face:(Brp:(AxisSystem.1;3);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)",axis_sys)# 创建偏移平面hsp_offset2 = ohsf.add_new_plane_offset(ref_2, i, False)# 将平面添加到混合体obd.append_hybrid_shape(hsp_offset2)# 更新模型显示opart.update()
一、等距平面创建技术
1.1 坐标系与参考面处理
axis_syss = opart.axis_systems
axis_sys = axis_syss.item("Absolute Axis System")
- 轴系集合:获取零件中的所有坐标系
- 绝对坐标系:选择CATIA内置的绝对坐标系作为基准
1.2 参考面创建技术
ref = opart.create_reference_from_b_rep_name("RSur:(Face:(Brp:(AxisSystem.1;1);None:();Cf11:());...",axis_sys)
- B-rep名称解析:通过精确的边界表示名称创建参考
- 参考面类型:
AxisSystem.1;1
:XY平面AxisSystem.1;3
:ZX平面
- 参数说明:
WithPermanentBody
:创建永久几何体WithoutBuildError
:忽略构建错误MFBRepVersion_CXR15
:指定边界表示版本
1.3 等距平面生成算法
for i in range(30, 601, 30):hsp_offset = ohsf.add_new_plane_offset(ref, i, False)obd.append_hybrid_shape(hsp_offset)
- 循环参数:
- 起始距离:30mm
- 终止距离:600mm
- 步长:30mm
- 平面创建:
add_new_plane_offset
:创建偏移平面- 参数
False
:表示单向偏移
- 几何管理:
append_hybrid_shape
:将平面添加到混合体
二、点云重命名技术
@classmethod
def rename_selected_points(cls):# 清除当前选择集osel.clear()# 搜索所有点特征osel.search("CATPrtSearch.Point,all")# 遍历所有选中的点for i in range(1, osel.count + 1):# 重命名为"pts_序号"格式osel.item(i).value.name = f"pts_{i}"# 清除选择集osel.clear()
2.1 点云选择技术
osel.search("CATPrtSearch.Point,all")
- 搜索语法:
CATPrtSearch.Point,all
- 功能:选择零件中所有点特征
- 工程价值:批量处理点云数据
2.2 命名规范化策略
osel.item(i).value.name = f"pts_{i}"
- 命名规则:
pts_序号
格式 - 技术优势:
- 保持命名一致性
- 支持后续脚本化操作
- 增强特征树可读性
2.3 选择集管理
osel.clear() # 操作前后清除选择集
- 资源优化:避免选择集堆积
- 操作安全:确保每次操作从干净状态开始
- 最佳实践:脚本中始终管理选择集生命周期
三、棱柱体创建技术
@classmethod
def create_prism(cls):# 获取零件主实体obody = opart.main_body# 获取实体上的草图集合osketches = obody.sketches# 创建基准参考面(XY平面)ref = opart.create_reference_from_name("Selection_RSur:(Face:(Brp:(AxisSystem.1;1);None:();Cf9:());AxisSystem.1)")# 在参考面上新建草图osketch = osketches.add(ref)# 设置当前工作对象为该草图opart.in_work_object = osketch
3.1 草图创建流程
ref = opart.create_reference_from_name(...)
osketch = osketches.add(ref)
opart.in_work_object = osketch
- 参考面创建:通过名称获取XY平面
- 草图添加:在参考面上创建新草图
- 工作对象设置:激活草图进行编辑
3.2 草图几何构建
factory2d = osketch.open_edition()
geo_elements = osketch.geometric_elements# 创建点
pt1 = factory2d.create_point(110.0, 40.0)
pt2 = factory2d.create_point(300.0, 40.0)# 创建直线
line = factory2d.create_line(110.0, 40.0, 300.0, 40.0)
line.start_point = pt1
line.end_point = pt2# 创建闭合轮廓
pt3 = factory2d.create_point(300.0, -70.0)
line2 = factory2d.create_line(300.0, 40.0, 300.0, -70.0)
pt4 = factory2d.create_point(110.0, -70.0)
line3 = factory2d.create_line(300.0, -70.0, 110.0, -70.0)
line4 = factory2d.create_line(110.0, -70.0, 110.0, 40.0)osketch.close_edition()
- 点创建:
create_point(x, y)
定义关键点 - 线创建:
create_line(x1, y1, x2, y2)
生成直线段 - 拓扑连接:显式设置线的起点和终点
- 轮廓闭合:四点四线形成封闭矩形
3.3 拉伸特征生成
opart.shape_factory.add_new_pad(osketch, 20.0)
opart.update()
- 拉伸创建:
add_new_pad(sketch, length)
生成拉伸特征 - 参数说明:
osketch
:输入草图轮廓20.0
:拉伸高度20mm
- 模型更新:
update()
刷新几何显示
最新技术动态请关注作者:Python×CATIA工业智造
版权声明:转载请保留原文链接及作者信息