You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:CATIA V5宏实现建模角度值自动导入工程图表格

CATIA V5 建模角度自动同步工程图表格宏方案

前置准备

  • 运行宏前同时打开目标3D建模零件文件、对应关联的2D工程图文件
  • 提前在工程图中插入需要填充数值的表格,记录好待填入角度的单元格行列索引(CATIA工程图表格行列从1开始计数)
  • 给3D模型中需要提取的角度参数设置明确的自定义名称,不要使用系统生成的随机参数名,避免读取失败

核心实现逻辑

  • 对接当前运行的CATIA应用进程,分别识别激活的3D零件文档、已打开的工程图文档
  • 遍历零件参数集合,匹配目标角度参数,读取原始数值后从弧度单位转换为角度单位
  • 定位到工程图激活工作表内的目标表格,定位到预设的待填充单元格
  • 按设定的小数精度格式化角度数值后写入单元格,触发工程图更新保证数值显示正确

可直接运行的VBA宏代码

Option Explicit

Sub SyncModelAngleToDraftTable()
    Dim CATIA As Object
    Set CATIA = GetObject(, "CATIA.Application")
    
    Dim partDoc As PartDocument
    Dim draftDoc As DrawingDocument
    Dim targetPart As Part
    Dim targetSheet As DrawingSheet
    Dim targetTable As DrawingTable
    
    ' 校验激活文档是否为零件
    On Error Resume Next
    Set partDoc = CATIA.ActiveDocument
    If Err.Number <> 0 Or TypeName(partDoc) <> "PartDocument" Then
        MsgBox "请先切换到要提取角度的3D零件窗口再运行宏!", vbExclamation
        Exit Sub
    End If
    Set targetPart = partDoc.Part
    
    ' 遍历已打开文档匹配工程图文件
    Dim docIdx As Integer
    For docIdx = 1 To CATIA.Documents.Count
        If TypeName(CATIA.Documents.Item(docIdx)) = "DrawingDocument" Then
            Set draftDoc = CATIA.Documents.Item(docIdx)
            Exit For
        End If
    Next docIdx
    If draftDoc Is Nothing Then
        MsgBox "未检测到已打开的关联工程图文件!", vbExclamation
        Exit Sub
    End If
    On Error GoTo 0
    
    ' 读取3D模型目标角度参数,注意替换为你自己模型里的角度参数名
    Dim angleParam As Parameter
    Set angleParam = targetPart.Parameters.Item("Draft_Angle")
    Dim angleValue As Double
    angleValue = angleParam.Value * 180 / 3.1415926535 ' 弧度转角度
    
    ' 定位工程图中目标表格,默认取激活页第一个表格
    Set targetSheet = draftDoc.Sheets.ActiveSheet
    Set targetTable = targetSheet.DrawingTables.Item(1)
    ' 写入指定单元格,示例为第3行第2列,按实际位置修改行列号
    targetTable.SetCellString 3, 2, Format(angleValue, "0.0") & "°"
    
    ' 更新工程图确保数值生效
    draftDoc.Update
    MsgBox "角度同步完成,写入值:" & Format(angleValue, "0.0") & "°", vbInformation
End Sub

使用调整说明

  • 将代码中"Draft_Angle"替换为你自己3D模型内对应角度参数的实际名称,可直接从CATIA参数树复制参数名避免拼写错误
  • 如果工程图内存在多个表格,修改DrawingTables.Item(1)中的索引值匹配目标表格,也可以增加表格名称判断逻辑实现精准定位
  • 代码示例中写入位置为第3行第2列,修改SetCellString后的两个数字即可调整写入的行、列位置
  • 角度显示精度可修改Format(angleValue, "0.0")的格式串实现,比如保留2位小数改为"0.00",不需要角度符号就删除后面的& "°"
  • 需要同步多个角度值时,重复参数读取、单元格写入的代码段,分别匹配不同参数名和单元格位置即可

内容的提问来源于stack exchange,提问作者Milos Mladenovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:48:51