Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro zum Einfügen von Komponenten in eine Baugruppe

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
  
PLM TechnologieForum Bamberg
Autor Thema:  Makro zum Einfügen von Komponenten in eine Baugruppe (532 mal gelesen)
ChaosKonstrukteur
Mitglied



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

Beiträge: 13
Registriert: 29.01.2023

SolidWorks 2022 SP5

erstellt am: 29. Jan. 2023 18:48    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 stehe noch ganz am Anfang der Makroprogrammierung. Ich will mir aktuell ein Makro erstellen, welches eine Input-Box aufruft wo dann der SAP-Benutzer und die Teilenummer eingegeben werden kann, die dann den String für den Speicherpfad ergeben.
Da der Speicherpfad immer der Selbe ist, wird dieser dann durch die Variablen SAP-Benutzer und Teilenummer nur ergänzt, sodass er komplett ist.

Allerdings habe ich das Problem, dass ich immer einen Fehler im boolstatus in der letzten Zeile bekomme und die Komponente aktuell nicht eingefügt werden kann.

Wenn ich die Speicherpfade allerdings händisch eingebe, kommt dieser Fehler nicht. Kann mir jemand erklären, warum ich den String für den Speicherpfad nicht so zusammensetzen kann, bzw. wie es mir gelingt eine Komponente mit einem solchen "zusammengesetzten" Speicherpfad einzufügen?

Anbei mein Code:

Sub main()

Dim swApp As SldWorks.SldWorks
Dim swAssembly As SldWorks.AssemblyDoc
Dim AssemblyTitle As String
Dim tmpObj As SldWorks.ModelDoc2
Dim swInsertedComponent As SldWorks.Component2
Dim errors As Long
Dim Part As SldWorks.ModelDoc2
Dim TransformData(15) As Double
Dim TransformDataVariant As Variant
Dim swMathUtil As Object
Dim swTransform As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Dim DateiPfad As String

Dim SAPbenutzer As String

SAPbenutzer = InputBox("Den SAP-Benutzernamen bitte eingeben")

Dim Teilenummer As String

Teilenummer = InputBox("Die Teilenummer bitte eingeben")

DateiPfad = "c:\users\" & SAPbenutzer & "\ectr\m46_001_" & SAPbenutzer & "\sess\" & SAPbenutzer & "\" & Teilenummer & "swa000.SLDASM"

'swApp.SendMsgToUser2 DateiPfad, swMessageBoxIcon_e.swMbInformation, swMessageBoxBtn_e.swMbOk

    Set swApp = Application.SldWorks
    Set Part = swApp.OpenDoc6("-Platzhalter für Dateipfad der Uebergeordneten Baugruppe-", 2, 0, "", longstatus, longwarnings)
   
    Set swAssembly = Part
    swApp.ActivateDoc2 "assem2.sldasm", False, longstatus
    Set Part = swApp.ActiveDoc
   
    AssemblyTitle = Part.GetTitle
   
    Set tmpObj = swApp.OpenDoc6(DateiPfad, 1, 32, "", errors, longwarnings)
    Set Part = swApp.ActivateDoc3(AssemblyTitle, True, 0, errors)
    Set swInsertedComponent = Part.AddComponent5(DateiPfad, 0, "", False, "", 0.29642267129384, 9.20506109250709E-02, -0.187506963149644)
    swApp.CloseDoc (DateiPfad)
    TransformData(0) = 1
    TransformData(1) = 0
    TransformData(2) = 0
    TransformData(3) = 0
    TransformData(4) = 1
    TransformData(5) = 0
    TransformData(6) = 0
    TransformData(7) = 0
    TransformData(8) = 1
    TransformData(9) = 0.29642267129384
    TransformData(10) = 9.20506109250709E-02
    TransformData(11) = -0.187506963149644
    TransformData(12) = 1
    TransformData(13) = 0
    TransformData(14) = 0
    TransformData(15) = 0
    TransformDataVariant = TransformData
    Set swMathUtil = swApp.GetMathUtility()
    Set swTransform = swMathUtil.CreateTransform((TransformDataVariant))
    boolstatus = swInsertedComponent.SetTransformAndSolve2(swTransform)

End Sub

Wie gesagt meine VBA Kenntnisse sind leider noch rudimentär, ich würde mich trotzdem freuen wenn sich jemand findet, der mir weiterhelfen kann

Viele Grüße,
Quint

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 30. Jan. 2023 23:14    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 ChaosKonstrukteur 10 Unities + Antwort hilfreich

Hallo und willkommen,

hm ...
ich würd die Benennung ähnlich wie in den Beispielen machen.
swAssembly für eine Baugruppe
swPart für ein Teil
swModel wenn man nicht so genau weiß, was es ist (also z.B. der Typ von active doc offen ist)

du nimmst swpart als modeldoc2 mal für Baugruppe, dann für Teil - das verwirrt uns alte Leute ... 
vielleicht auch SWX?

klappt es evtl, wenn du statt part.addcomponent5 auf swassembly.addcomponent5 änderst?

Gruß, Christian

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