You are on page 1of 2

Dim swApp As SldWorks.

SldWorks
Dim swModel As ModelDoc2
Dim swFeature As Feature
Dim swEdge As SldWorks.Edge
Dim edges As Variant
Dim swSpecificFeature As Object
Dim swCosmeticWeldBeadFeatureData As SldWorks.CosmeticWeldBeadFeatureData
Dim swVertex1 As SldWorks.Vertex
Dim swVertex2 As SldWorks.Vertex
Dim vertex1Coords As Variant
Dim vertex2Coords As Variant
Dim startVertexObj As Object
Dim endVertexObj As Object
Dim startPt As Variant
Dim endPt As Variant
Dim swCurve As SldWorks.Curve
Dim filePath As String
Dim fileNum As Integer

Sub main()

' 初始化 SolidWorks 应用程序


Set swApp = Application.SldWorks

' 获取当前激活的文档
Set swModel = swApp.ActiveDoc

' 确定您要查找的特征和子特征的名称
featurePrefix = "焊缝"
filePath = "C:\path\to\your\file.txt" ' 更改为你想要保存的路径
fileNum = FreeFile()
Open filePath For Output As fileNum
Dim j As Integer
For j = 1 To 3 ' 假设您有 10 个这样的特征
' 构造特征名称
Dim featureName As String
featureName = featurePrefix & j

' 尝试获取该名称的特征
Set swFeature = swModel.FeatureByName(featureName)

If Not swFeature Is Nothing Then


Set swCosmeticWeldBeadFeatureData= swFeature.GetDefinition
swCosmeticWeldBeadFeatureData.AccessSelections swModel, Nothing
edges = swCosmeticWeldBeadFeatureData.GetReferenceEdges
MsgBox " Number of reference edges: " & UBound(edges)
If Not IsEmpty(edges) Then
Set swEdge = edges(0) ' 获取数组中的第一条边
Set swCurve = swEdge.GetCurve

Dim startParam As Double


Dim endParam As Double
Dim IsClosed As Boolean
Dim IsPeriodic As Boolean
swCurve.GetEndParams startParam, endParam, IsClosed,isPeriodic
Dim numberOfPoints As Integer
numberOfPoints = 5

Dim i As Integer
Dim t As Double
Dim pointCoords As Variant

For i = 0 To numberOfPoints
t = startParam + (endParam - startParam) * i / numberOfPoints
pointCoords = swCurve.Evaluate(t)
Dim x As Double, y As Double, z As Double
x = Round(pointCoords (0), 5)
y = Round(pointCoords (1), 5)
z = Round(pointCoords (2), 5)
print #fileNum, "点 " & i & ", " & x & ", " & y & ", " & z
Next i

End If

End If
Next j

Close fileNum

Set swModel = Nothing


Set swApp = Nothing
End Sub

You might also like