Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro: Kraft in SolidMotion definieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Bechtle PLM Deutschland tritt dem Deutschen Robotik Verband bei und startet Kooperation, eine Pressemitteilung
Autor Thema:  Makro: Kraft in SolidMotion definieren (1524 mal gelesen)
stonedqueens
Mitglied


Sehen Sie sich das Profil von stonedqueens an!   Senden Sie eine Private Message an stonedqueens  Schreiben Sie einen Gästebucheintrag für stonedqueens

Beiträge: 8
Registriert: 04.06.2012

erstellt am: 12. Jun. 2012 11:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

stonedqueens
Mitglied


Sehen Sie sich das Profil von stonedqueens an!   Senden Sie eine Private Message an stonedqueens  Schreiben Sie einen Gästebucheintrag für stonedqueens

Beiträge: 8
Registriert: 04.06.2012

erstellt am: 12. Jun. 2012 11:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Noch ne Frage gleich hinterher 

Wieso funktioniert der Makrorecorder nicht in Solidmotion?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 12. Jun. 2012 11:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für stonedqueens 10 Unities + Antwort hilfreich

Das ist zumindest schnell beantwortet:

Zitat:
Original erstellt von stonedqueens:
Wieso funktioniert der Makrorecorder nicht in Solidmotion?

Der Makrorcorder funktioniert nur in Ausnahmefällen gut und zuverlässig, Solidmotion ist also eher die Regel 

Zu deiner ursprünglichen Frage: hast du dein Feld as Safearray übergeben, das ist in der Regel nicht besonders intuitiv und wird schnell vergessen. Schau mal in der API Hilfe unter dem Stichwort "Passing SafeArrays in Visual Basic" wie das gemacht wird, vielleicht ist es das schon.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

stonedqueens
Mitglied


Sehen Sie sich das Profil von stonedqueens an!   Senden Sie eine Private Message an stonedqueens  Schreiben Sie einen Gästebucheintrag für stonedqueens

Beiträge: 8
Registriert: 04.06.2012

erstellt am: 12. Jun. 2012 12:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Fehler.JPG

 
Hi Stefan,

danke für die Info.

Leider hat es mit

    Dim Feld(2, 1) As Double
    Dim varFeld As Variant
    Feld(0, 0) = 0
    Feld(0, 1) = 0
    Feld(1, 0) = 1
    Feld(1, 1) = 1000
    Feld(2, 0) = 2
    Feld(2, 1) = 0
    varFeld = Feld
    swForceFeat.FunctionInterpolatedValues = varFeld
    swForceFeat.InterpolationScheme = swInvalidInterpolation

auch nicht funktioniert. Der Debugger zeigt immer auf den Interpolationstyp am Ende. Wenn ich den weglasse, ist in Solid nach Ausführen des Makros aber eine konstante Kraft (Null Newton) eingestellt. Also liegts am Feld?

Gruß
Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz