SOLIDWORKS: Einfügen eines Teils in eine Baugruppe mithilfe von VBA

Hallo

Ich bin neu bei VBA und möchte ein Makro erstellen, das eine Baugruppe erstellt und zuerst ein 1. Teil einfügt.

Ich habe versucht, ein Makro aufzunehmen, aber es funktioniert nicht!

Da ist sie:

Dim-swApp als ObjektDim-Teil als Objekt
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long

Sub main()

Legen Sie swApp = Application.SldWorks fest

Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2015\templates\Assemblage.asmdot", 0, 0, 0)
swApp.ActivateDoc2 "Assemblage1", False, longstatus
Set Part = swApp.ActiveDoc
myModelView als Objekt dimmen
Festlegen von myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized

boolstatus = Part.AddComponent("C:\Benutzer\Ich\Desktop\Ordner\Part1.SLDPRT", 0, 0, 0)

Ende Sub

Auf den ersten Blick scheint der Fehler von der Zeile zu kommen:

boolstatus = Part.AddComponent("C:\Benutzer\Ich\Desktop\Ordner\Part1.SLDPRT", 0, 0, 0)

 

Kann mir jemand sagen, woher das Problem kommt?

Vielen Dank im Voraus.

Herzliche Grüße

 

Hallo

Hüten Sie sich vor allem vor dem Makrorekorder, er verwendet nicht die neuesten Versionen der API-Methoden.

Für die AddComponent sehen Sie hier, Sie werden sehen, dass Sie mit dieser Funktion eine Komponente hinzufügen können, die in Solidworks vorgeladen ist.

Herzliche Grüße

1 „Gefällt mir“

Oh okay, die einzige Lösung besteht also darin, das Teil zuerst zu öffnen, in die Baugruppe einzufügen und dann zu schließen? Es gibt keine andere Funktion als AddComponent?

Noch eine Frage:

Wenn ich Makros aufnehme, lande ich oft mit Variablen wie boolstatus, longstatus, etc... Könnte mir jemand erklären, wofür sie gedacht sind? Beim Lesen des Codes habe ich den Eindruck, dass es sich um Variablen handelt, die eigentlich keinen bestimmten Zweck haben, sondern für alles und für nichts verwendet werden. Stimmt das?

Hallo

Die Variablen boolstatus, longstatus, etc... nicht völlig unbrauchbar sind, z. B. für die AddComponent-Funktion, ist boolstatus der Rückgabewert der Methode:

Function AddComponent(_

ByVal CompName As System.String, _

ByVal X As System.Double, _

ByVal Y As System.Double, _

ByVal Z As System.Double _

) As System.Boolean

 

Schauen Sie sich diese Seite an, bevor Sie sich kopfüber in Makros stürzen, sonst riskieren Sie, sich schnell zu verirren, und lesen Sie dann ein wenig über die Solidworks APIs, die hier zu finden sind.

Herzliche Grüße

Hallo

Wie in der vorherigen Nachricht erwähnt, werden diese Variablen zum Speichern von Funktionsrückgabewerten verwendet.

Wenn die Funktion mehrere Werte zurückgeben muss (Fehlermeldungen, Ergebnis der Funktion, z. B. beim Zugriff auf benutzerdefinierte Eigenschaften), müssen Sie zuerst die Variablen erstellen und sie als Verweis auf die Funktion übergeben, um die Werte abzurufen.