我有 .CATPART 并且我已经手动完成了测量。我想使用 CAT VBA 创建宏并从 .CATPART 中提取测量值并将其导出到 Excel。
问问题
5530 次
3 回答
0
我从来没有找到解决方案,但这是一个允许从用户选择中获取测量值的代码。您无法解析所有测量值,但您可以选择它们并解析选择(此示例仅适用于选定的一个测量值,如果可能,您必须适应许多):
Set oSelection = CATIA.ActiveDocument.Selection
On Error Resume Next
sName = oSelection.Item2(1).Value.Name
On Error Goto 0
'selection should be named with "catiabase"
If InStr(LCase(sName), "catiabase") = 0 Then Exit Function
'Get Name
'PROBLEM: This search will empty the selection if no measurement is selected
oSelection.Search "Name=Length,sel"
'No Length, no measurement (here i need only 1 selection)
If oSelection.Count2 <> 1 Then Exit Function
'Get name of measurement
sName = oSelection.Item2(1).Value.Name 'not the same as previous!
您还可以在此处找到一种获取两个零件之间距离值的方法,但它需要知道您想要从中获取距离的零件。
于 2015-03-09T15:50:33.607 回答
0
抱歉,存储在零件或产品中的度量值不会暴露在 API 中。
于 2015-03-05T23:19:00.167 回答
0
想象最简单的情况:
Sub CATMain()
''Get ActiveDocument
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
''Get Part
Dim part1 As Part
Set part1 = partDocument1.Part
''Get list of parameter of part
Dim oParams As Parameters
Set oParams = part1.Parameters
Dim PatternFind As String
PatternFind = "Measure"
''MsgBox all values of the parameter that contains 'Measure'
For Each item In oParams
If InStr(item.Name, PatternFind) <> 0 Then
MsgBox (item.Name & " = " & item.value)
End If
Next
End Sub
[树视图视图]
- 第1部分
- 措施
- MeasureEdge.1
- 长度=10mm
- MeasureEdge.2
- 长度=100mm
- MeasureEdge.1
您应该进行必要的修改以导出到 Excel。
于 2015-09-15T06:41:29.197 回答