使用SOLIDWORKS API从链接文件更新XYZ曲线的宏
 { width=450 }
{ width=450 }
SOLIDWORKS允许通过外部文本文件中的XYZ坐标插入自由形式曲线。然而,该文件并未链接到特征本身,当外部文件更改时,曲线不会更新。
{ width=300 }
这个VBA宏可以在单击一次后自动将外部文件与坐标链接并更新所选曲线。
曲线文件示例:
0mm 0mm 0mm
10mm 10mm 10mm
5mm 1mm 25mm
曲线文本文件必须保存在与SOLIDWORKS文件相同的文件夹中,并且必须命名为[模型标题]_[特征名称].sldcrv。例如,如果曲线特征命名为Curve1,并且位于名为Part1.sldprt的SOLIDWORKS文件中,则曲线文本文件必须命名为Part1_Curve1.sldcrv。
Dim swApp As SldWorks.SldWorks
Sub main()
    Set swApp = Application.SldWorks
    
    Dim swModel As SldWorks.ModelDoc2
    
    Set swModel = swApp.ActiveDoc
    
    If Not swModel Is Nothing Then
        
        Dim swFeat As SldWorks.Feature
        Set swFeat = swModel.SelectionManager.GetSelectedObject6(1, -1)
        
        If Not swFeat Is Nothing Then
            
            Dim swCurveFeatDef As SldWorks.FreePointCurveFeatureData
            Set swCurveFeatDef = swFeat.GetDefinition
            
            If Not swCurveFeatDef Is Nothing Then
                
                Dim filePath As String
                filePath = swModel.GetPathName
                filePath = Left(filePath, InStrRev(filePath, ".") - 1)
                filePath = filePath & "_" & swFeat.Name & ".sldcrv"
                
                If False = swCurveFeatDef.LoadPointsFromFile(filePath) Then
                    MsgBox "无法更新曲线"
                End If
                
                swFeat.ModifyDefinition swCurveFeatDef, swModel, Nothing
                
            Else
                MsgBox "所选特征不是XYZ点曲线"
            End If
        Else
            MsgBox "请选择曲线XYZ特征"
        End If
        
    Else
        MsgBox "请打开模型"
    End If
    
End Sub