Hallo zusammen!
Ich würde gerne in einer Bewegungsanalyse eine Kraft per Makro definieren.
Als konstante Kraft funktioniert das auch super:
swForceFeat.FunctionConstantValue = 1000
Ich würde aber gerne ein paar Datenpunkte einfügen. In der Hilfe bin ich auf folgendes gestoßen:
swForceFeat.FunctionInterpolatedValues = Feld
Hierbei ist "Feld" ein Array mit den Zeit- und Kraftwerten, also z.B.:
Dim Feld(2, 1) As Double
Feld(0, 0) = 0
Feld(0, 1) = 0
Feld(1, 0) = 1
Feld(1, 1) = 1000
Feld(2, 0) = 2
Feld(2, 1) = 0
Das ist also eine Kraft, die innerhalb einer Sekunde auf 1000 Newton ansteigt und dann wieder innerhalb einer Sekunde auf Null fällt.
Schließlich noch die Interpolationsmethode:
wForceFeat.InterpolationScheme = swInvalidInterpolation
Leider funktioniert das nicht! Kann mir jemand helfen?
Vielen Dank im Voraus!
Anbei der vollständige Quelltext dieser Sub/Funktion (funktioniert mit konstanter Kraft):
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelMgr As SldWorks.SelectionMgr
Dim swMotionMgr As SwMotionStudy.MotionStudyManager
Dim swMotionStudy1 As SwMotionStudy.MotionStudy
Dim swGravityFeat As SldWorks.SimulationGravityFeatureData
Dim swForceFeat As SldWorks.SimulationForceFeatureData
Dim boolstatus As Boolean
Dim swFeatSK As SldWorks.Feature 'Schwerkraft-Feature
Dim swFeatF As SldWorks.Feature 'Kraft-Feature
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swSelMgr = swModel.SelectionManager
'MotionManager
Set swMotionMgr = swModelDocExt.GetMotionStudyManager()
'aktuelle MotionStudy
Set swMotionStudy1 = swMotionMgr.GetMotionStudy("Bewegungsstudie 1")
swMotionStudy1.Activate
swMotionStudy1.StudyType = 4 'Bewegungsanalyse
'Schwerkraft
Set swGravityFeat = swMotionStudy1.CreateDefinition(swFmAEMGravity)
swGravityFeat.Axis = 1
swGravityFeat.ReverseDirection = True
swGravityFeat.Strength = 9.81
'Feature erstellen
Set swFeatSK = swMotionStudy1.CreateFeature(swGravityFeat)
'KRAFT
'=====
'Fläche selektieren
swModelDocExt.SelectByID2 "", "FACE", 0, hB - dK / 2, sK / 2, False, 0, Nothing, 0
'Kraft definieren
Set swForceFeat = swMotionStudy1.CreateDefinition(swFmAEMLinearForce)
swForceFeat.ActionType = swSimulationForceAction_ActionOnly
'selektierte Fläche
swForceFeat.ActionLocation = swSelMgr.GetSelectedObject6(1, -1)
'Komponente der selektierten Fläche
Dim RelObj As Component2
Set RelObj = swSelMgr.GetSelectedObjectsComponent3(1, -1)
'Kraft relativ zur Fläche definieren
swModelDocExt.SelectByID2 "", "FACE", 0, hB - dK / 2, sK / 2, False, 0, Nothing, 0
swForceFeat.ReferenceComponent = RelObj
swModel.ClearSelection2 True
'Eigenschaften der Kraft
swForceFeat.ReverseDirection = False
swForceFeat.FunctionConstantValue = 1000
'Feature erstellen
Set swFeatF = swMotionStudy1.CreateFeature(swForceFeat)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP