CATIA VBA装配环境跨零件选参考面报类型不匹配错误求解
CATIA VBA跨零件选取参考面类型不匹配问题
场景说明
- 现有包含2个零件的装配体,设计第二个零件时需选取第一个零件的指定面作为设计输入
- CATProduct工作台交互操作逻辑:执行Pad命令需要将外部零件面作为参考平面时,只需选中第一个零件的目标面,系统会自动在当前编辑的第二个零件工作环境中生成该面的副本,供Pad命令参考完成特征创建
- VBA实现障碍:通过Selection对象选取第一个零件的面时会触发错误,原因是目标面不属于当前编辑零件的工作环境,无法复现交互操作时自动生成面参考副本的内置逻辑
报错表现
现有代码运行至SelectElement4语句行时持续弹出 Type mismatch(类型不匹配) 错误,需要可行的解决思路或变通实现方案。
问题复现代码
Sub CATMain() Dim productDocument1 As ProductDocument Set productDocument1 = CATIA.ActiveDocument Dim product1 As Product Set product1 = productDocument1.Product Dim products1 As Products Set products1 = product1.Products Set partDocument1 = products1.Item(1) MsgBox partDocument1.PartNumber Dim partDoc1 As PartDocument Set partDoc1 = partDocument1.GetMasterShapeRepresentation(True) 'Dim partDocument2 As PartDocument Set partDocument2 = products1.Item(2) MsgBox partDocument2.PartNumber Dim partDoc2 As PartDocument Set partDoc2 = partDocument2.GetMasterShapeRepresentation(True) Dim oSel_1 As Object Set oSel_1 = partDoc1.Selection Dim InputObjectType(0) As String Dim Status As String InputObjectType(0) = "Face" '需要选取的目标面为圆柱面 Status = oSel_1.SelectElement4(InputObjectType, "Select a face", "Select face", True, partDoc2) '该行运行时持续弹出"Type mismatch(类型不匹配)"错误 MsgBox Status If (Status = "Normal") Then partDoc2.Selection.Copy oSel_1.Clear oSel_1.Add partDoc1.Part.HybridBodies.Item(1) '装配体中第一个零件的第一个几何图形集 oSel_1.PasteSpecial "CATPrtResult" End If End Sub
内容的提问来源于stack exchange,提问作者Hung Pham Vu
相关产品推荐
相关产品推荐

