Ich denke, es kommt auch von dort, aber ich sehe nichts Ungewöhnliches in der Auswahl der Gesichter.
Ich denke mehr über die CreateDefinition-Zeile für die lineare Engine nach
@PL.: Auch wenn Sie ein Objekt auswählen, bevor Sie das Makro starten, will es das nicht.
Hier ist das Makro, das funktioniert:
Sub main()
Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Sun swSelMgr As SldWorks.SelectionMgr
Sun swMotionMgr als SwMotionStudy.MotionStudyManager
Dim swMotionStudy1 als SwMotionStudy.MotionStudy
Dim swMotorFeat As SldWorks.SimulationMotorFeatureData
Dim swGravityKunststück Als Objekt
Dim boolstatus als boolescher Wert
Dim swFeat As SldWorks.Feature
Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc
Legen Sie swModelDocExt = swModel.Extension fest
Legen Sie swSelMgr = swModel.SelectionManager fest
'---------
'Vordere Palette
boolstatus = Part.Extension.SelectByID2("", "GESICHT", 0.116975825107659, 9.86277918692053E-02, -2.07497793580842E-02, Falsch, 0, Nichts, 0)
Herkunft der Palette
boolstatus = Part.Extension.SelectByID2("Point1@Origine@Part 1-2@toto-2", "EXTSKETCHPOINT", 0, 0, 0, Falsch, 0, Nichts, 0)
Ursprung
boolstatus = Part.Extension.SelectByID2("Point1@Origine", "EXTSKETCHPOINT", 0, 0, 0, Falsch, 0, Nichts, 0)
'-------------------
' Holen Sie sich den MotionManager
Set swMotionMgr = swModelDocExt.GetMotionStudyManager()
Wenn (swMotionMgr ist nichts), dann
Ende
Ende, wenn
' Holen Sie sich Motion Study 1
Set swMotionStudy1 = swMotionMgr.GetMotionStudy("Bewegungsstudie 3")
' Aktivieren der Registerkarte "Bewegungsstudie" 1
swMotionStudy1.Aktivieren
' Erstellen der linearmotorischen Funktion als Datenobjekt
Set swMotorFeat = swMotionStudy1.CreateDefinition(swFmAEMLinearMotor)
' Zuweisung des interpolierten Verdrängungsmotors
swMotorFeat.InterpolatedMotor swSimulationMotorDrive_Displacement, 0
' Leitungsauftrag
boolstatus = swModelDocExt.SelectByID2("", "GESICHT", 0.195285205513159, 4.90124177502054E-02, -3.98286386705422E-02, Falsch, 0, Nichts, 0)
swMotorFeat.DirectionReference = swSelMgr.GetSelectedObject6(1, -1)
" Zuweisung des Einsatzortes des Motors
boolstatus = swModelDocExt.SelectByID2("Point1@Origine@Part 1-2@toto-2", "EXTSKETCHPOINT", 0, 0, 0, Falsch, 0, Nichts, 0)
swMotorFeat.Location = swSelMgr.GetSelectedObject6(1, -1)
' Zuordnen des Referenzobjekts
boolstatus = swModelDocExt.SelectByID2("Teil 1-1@toto-2", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0)
Dim RelObj As SldWorks.Component2
Set RelObj = swSelMgr.GetSelectedObjectsComponent3(1, -1)
swMotorFeat.RelativeComponent = RelObj
"Laden der Verschiebungsdatendatei
boolstatus = swMotorFeat.LoadSplineData("C:\CoordMX1.txt")
' Drucken Sie den Motortyp
Debug.Print swMotorFeat.MotorType
' Erstellen Sie das Linearmotor-Feature
Set swFeat = swMotionStudy1.CreateFeature(swMotorFeat)
Wenn swFeat nichts ist, dann
Debug.Print " FEHLER: Fehler bei der Erstellung der Motorfunktion."
Oder
Debug.Print "Name der hinzugefügten Funktion: " & swFeat.Name
Ende, wenn
Ende Sub
Danke für die Hilfe, damit es funktioniert