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