Insert Cosmetic Weld Bead Example (VB.NET)
This example shows how to insert a cosmetic weld bead feature and access its
properties.
'----------------------------------------------------------------------------
' Preconditions: Open:
' install_dir\samples\tutorial\api\Insert_weld.sldprt
'
' Postconditions:
' 1. A fillet weld, Weld Bead2, is created and added to the Weld Folder in
' the FeatureManager design tree.
' 2. Inspect the Weld Bead1 settings and properties in the Immediate window.
'
' NOTE: Because the model is used elsewhere,
' do not save changes when closing it.
' ---------------------------------------------------------------------------
Imports
SolidWorks.Interop.Sldworks
Imports
SolidWorks.Interop.swconst
Imports
System.Runtime.InteropServices
Imports System
Imports
System.Diagnostics
Partial
Class SolidWorksMacro
Dim Part
As ModelDoc2
Dim
boolstatus As
Boolean
Dim
FeatureData As
CosmeticWeldBeadFeatureData
Dim
WeldFolder As
CosmeticWeldBeadFolder
Dim selman
As SelectionMgr
Dim
myFeature As
Feature
Sub main()
Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("",
"FACE",
-0.0344320907599354, 0.0170180000000641, -0.00227566098720899,
False, 0,
Nothing, 0)
boolstatus = Part.Extension.SelectByID2("",
"FACE",
-0.0161637176506133, 0.0503122973344716, -0.0013752238241409,
True, 0,
Nothing, 0)
myFeature = Part.FeatureManager.InsertCosmeticWeldBead(0.51)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Weld
Bead1", "COSMETIC_WELD",
0, 0, 0, False,
0, Nothing, 0)
selman = Part.SelectionManager
myFeature = selman.GetSelectedObject6(1, 0)
FeatureData = myFeature.GetDefinition
FeatureData.AccessSelections(Part,
Nothing)
Debug.Print("weld bead settings: ")
Debug.Print(" weld bead size was "
& FeatureData.BeadSize)
FeatureData.BeadSize = 0.6
Debug.Print(" weld bead size is now
" & FeatureData.BeadSize)
If
FeatureData.TangentPropagation = False
Then
FeatureData.TangentPropagation
= True
End
If
Debug.Print("
tangent propagation? " & FeatureData.TangentPropagation)
Debug.Print(" weld sides as defined
in swCosmeticWeldBeadSide_e: " & FeatureData.Side)
If
FeatureData.FromToLength = False
Then
FeatureData.FromToLength =
True
End
If
Debug.Print("
from/to length properties enabled? " &
FeatureData.FromToLength)
If
FeatureData.FromToLength Then
Debug.Print("
start weld at: " & FeatureData.FromToStartPoint)
Debug.Print(" weld length: "
& FeatureData.FromToWeldLength)
Debug.Print(" reverse weld? "
& FeatureData.FromToReverse)
End
If
If
FeatureData.IntermittentWeld = False
Then
FeatureData.IntermittentWeld
= True
End
If
Debug.Print("
intermittent weld properties enabled? " &
FeatureData.IntermittentWeld)
If
FeatureData.IntermittentWeld Then
If
FeatureData.GapOrPitch Then
Debug.Print("
intermittent weld gap: " & FeatureData.Gap)
Debug.Print(" intermittent
weld length: " & FeatureData.IntermittentWeldLength)
Else
Debug.Print("
intermittent weld pitch: " & FeatureData.Pitch)
Debug.Print(" intermittent
weld length: " & FeatureData.IntermittentWeldLength)
Debug.Print(" stagger welds
if welding on both sides? " & FeatureData.Staggered)
End
If
End
If
WeldFolder = FeatureData.GetWeldBeadFolder
Debug.Print("weld bead properties:")
WeldFolder.Material = "Steel"
Debug.Print("
weld material is " & WeldFolder.Material)
Debug.Print(" welding cost per unit
mass: " & WeldFolder.CostPerUnitMass)
Debug.Print(" weld mass per unit
length: " & WeldFolder.MassPerUnitLength)
Debug.Print(" number of weld
passes: " & WeldFolder.NumberOfWeldPasses)
Debug.Print(" weld process: "
& WeldFolder.Process)
Debug.Print(" welding time per unit
length: " & WeldFolder.TimePerUnitLength)
Debug.Print(" total welding cost: "
& WeldFolder.TotalCost)
Debug.Print(" total weld length: "
& WeldFolder.TotalLength)
Debug.Print(" total weld mass: "
& WeldFolder.TotalMass)
Debug.Print(" total number of
welds: " & WeldFolder.TotalNumber)
Debug.Print(" total welding time: "
& WeldFolder.TotalTime)
boolstatus = myFeature.ModifyDefinition(FeatureData, Part,
Nothing)
End
Sub
Public
swApp As
SldWorks
End
Class