Aktivieren einer Teilekonfiguration in einer Baugruppe mit einem Makro

Hallo

 

Ich bin auf der Suche nach einem Makro, mit dem ich die verschiedenen Konfigurationen eines Teils aus der Hauptbaugruppe aktivieren kann.

Ich habe ein Stück Code, an dem ich herumgebastelt habe, aber es funktioniert nicht.

 

swApp = _ setzen
Anwendung.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("CleanSeal WELDED-1@CleanSeal COMPLETE/Cxxx-x-1@CleanSeal WELDED", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Teil.ShowConfiguration2("C200-0")
Part.ClearSelection2 Wahr
boolstatus = Teil.EditRebuild3()
Ende Sub

 

Vielen Dank im Voraus für Ihre Hilfe

Herzliche Grüße.

Hallo

Ich habe diesen Code, der zu Hause funktioniert, siehe auf der Ebene Ihrer boolstatus-Zeile, im ersten Teil. Ich verstehe das "/"... Bearbeiten Sie nicht eine Komponente?

Bearbeiten: Sie müssen haben: "Configuration@nomfichier.extension"

Teil als Objekt dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long

Sub main()

swApp = _ setzen
Anwendung.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Teil.EditRebuild3()
boolstatus = Part.Extension.SelectByID2("Défaut@12345678-E-STÜTZZYLINDER. SLDASM", "KONFIGURATIONEN", 0, 0, 0, Falsch, 0, Nichts, 0)
boolstatus = Part.ShowConfiguration2("Standard")
boolstatus = Teil.EditRebuild3()
boolstatus = Part.Extension.SelectByID2("MIT REHAUSSE@12345678-E-STÜTZZYLINDER. SLDASM", "KONFIGURATIONEN", 0, 0, 0, Falsch, 0, Nichts, 0)
boolstatus = Part.ShowConfiguration2("MIT ANSICHT")
boolstatus = Teil.EditRebuild3()


Ende Sub

1 „Gefällt mir“

Hallo Glaffont,

Zunächst einmal vielen Dank für deine Antwort;)

Ich habe Ihren Code genommen, indem ich aber Dateiname hinzugefügt habe, aber es funktioniert nicht:(

Hier ist der Code:

 

swApp = _ setzen
Anwendung.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Teil.EditRebuild3()
boolstatus = Part.Extension.SelectByID2("C250-0@Cxxx-x.part@CleanSeal VERSCHWEIẞT. SLDASM", "KONFIGURATIONEN", 0, 0, 0, Falsch, 0, Nichts, 0)
boolstatus = Part.ShowConfiguration2("C250-0")
boolstatus = Teil.EditRebuild3()

Ende Sub

 

In Ihrem Code ändern Sie einfach die Konfiguration Ihrer Assembly?

Für meinen Teil ist der Aufbau meines 3D wie folgt:

 * Hauptbaugruppe (. SLDASM)

                                       * Teilmenge (. SLDASM)

                                                                        * Komponente (.part)

                                                                        * Komponente (.part)

                                                                       * Komponente(.part)

                                     * verschiedene Komponenten (.part)

Ich möchte, dass der Code die Konfiguration einer Komponente (.part)  in meiner Teilmenge (. SLDASM), während ich in meiner Hauptversammlung (. SLDASM).

Ich hoffe, meine Erklärung ist verständlich...

Vielen Dank im Voraus

 

 

 

Hallo

Ich habe die Bitte verstanden, es war von Anfang an klar, aber ich muss zu schnell gelesen haben.

In diesem Fall funktioniert es auch bei mir nicht. Ich habe versucht, das Stück zu bearbeiten, ohne Erfolg. Ich schaue weiter.

1 „Gefällt mir“

Hallo

Wie viele Level gibt es maximal?

1) die Head-Assembly (wo wir das Makro ausführen werden)

2) eine Teilmenge

3) Teile

Stimmt das?

Keine Zwischenstufen mehr?

 

1 „Gefällt mir“

Wir können uns von diesen beiden Makros inspirieren lassen, die ich auf Lynkoa gepostet habe:

http://www.lynkoa.com/tutos/3d/enregistrer-une-piece-chaque-configuration

http://www.lynkoa.com/tutos/solidworks/macro-pour-toutes-les-configurations-d-un-assemblage-pour-activer-l-option-%E2%80%9Cpromouv

 

Hallo PL,

Vielen Dank, dass Sie sich für mein Problem interessieren.

 

Die Architektur meines Modells ist in Ordnung, so wie Sie sie beschrieben haben.

In meiner Hauptassembly möchte ich die Konfiguration einer Komponente ändern, die sich in einer Teilmenge meiner Hauptassembly befindet.

Ich bin ein Anfänger in VBA, ich verstehe die Codes, die Sie in Ihre Tutorials einfügen, nicht wirklich :s

 

Vielen Dank im Voraus für Ihre Hilfe.

Herzliche Grüße.

PL, haben Sie jemals diese Art von Code verwendet, um eine Konfiguration auszuwählen?

Herzliche Grüße.

Hallo

Ich habe vielleicht eine Ahnung: Haben Sie versucht, die Baugruppe mit der Funktion der Traversenkomponente zu durchlaufen, wie im folgenden Makro gezeigt:

http://help.solidworks.com/2012/english/api/sldworksap/traverse_assembly_at_component_level_example_vb.htm

, um die gewünschte Komponente zu aktivieren und dann ihre Konfiguration mit den oben aufgeführten Befehlen zu ändern?

Hallo Glaffont,

Ich verstehe nicht alles über diesen Code...

Herzliche Grüße.

Hier ist der richtige Link:

http://help.solidworks.com/2012/english/api/sldworksapi/traverse_assembly_at_component_level_example_vb.htm

1 „Gefällt mir“

Als Anfänger in der Programmierung gebe ich zu, dass ich nicht viel über diesen Code verstehe :s

 

Ich habe einen kleinen Fortschritt gemacht:

Der folgende Code wählt eine Komponente auf Ebene -2 aus und ändert ihre Konfiguration.

ABER es gibt einen Fehler..... Die Konfiguration, die angezeigt wird , ist nicht diejenige, um die ich sie bitte??!?

Sehen Sie, wie es zu Hause mit den richtigen Wegen aussieht und erzählen Sie es mir. (Es ist auch ein Chaos in den Deklarationen, ich habe mir nicht die Zeit genommen, aufzuräumen...)

       ********************************************************************

    Dim swApp als SldWorks.SldWorks
    Dim swAssy As SldWorks.assemblyDoc
    Sun swSelMgr As SldWorks.selectionMgr
    Dim swModel As SldWorks.ModelDoc
    Dim swComp als SldWorks.Component
    ConfigMgr als ConfigurationManager dimmen
    Dim-Instanz Als ISelectionMgr
    Dim-Index als Ganzzahl
    Dimmen Als Ganzzahl markieren
    Dim boolstatus als boolescher Wert
    Dimmen Sie modelDoc2 als SldWorks.modelDoc2
Dimmen assemblyDoc als SldWorks.assemblyDoc
Dimmen featureMgr As SldWorks.FeatureManager
Dim modelDocExt als SldWorks.ModelDocExtension
Sun selectionMgr As SldWorks.selectionMgr
Dimm-Funktion als SldWorks.feature
Dim selObj Als Objekt
Dim fim As SldWorks.feature
Dim-OrdnerFeat As SldWorks.feature
Fehler so lange dimmen
Schwache Warnungen So lange
Dimm-Status So lange
Dim-Zählung So lange
Dimmen des Werts als SldWorks.Component2
Dim componentsToMove() als Objekt
Sonne i So lang
Dim retVal als boolescher Wert
    Dim RefCfg als Zeichenfolge

Sub main()

    Legen Sie swApp = Application.SldWorks fest
    Festlegen von swModel = swApp.ActiveDoc
    Set swAssy = swModel
    Legen Sie swSelMgr = swModel.SelectionManager fest
    Legen Sie ConfigMgr = swModel.ConfigurationManager fest
    Legen Sie modelDoc2 = swApp.ActiveDoc fest
    Legen Sie assemblyDoc = modelDoc2 fest
    
    'Komponente auswählen
    Legen Sie modelDocExt = modelDoc2.Extension fest
    Festlegen von selectionMgr = ModellDoc2.SelectionManager
    status = modelDocExt.SelectByID2("testEUT15B0178'015 S-E STÜTZZYLINDER-1@Assemblage1/testO-RING STD-2@testEUT15B0178'015 S-E STÜTZZYLINDER", "KOMPONENTE", 0, 0, 0, Wahr, 0, Nichts, 0)
    Set selObj = selectionMgr.GetSelectedObject6(1, -1)
    Wert festlegen = selectionMgr.GetSelectedObjectsComponent4(1, -1)

    ' Zeige Config1 und mache sie zur aktiven Konfiguration
    Value.ReferencedConfiguration = "O-RING Ø24xØ1.5"

    " Damit die Änderungen wirksam werden
    swModel.EditRebuild3

Ende Sub

                         ****************************************************************

1 „Gefällt mir“

Bei einem Missverständnis kann es funktionieren: Die Konfiguration, die es anzeigt, ist die der Komponente, wenn Sie sie alleine öffnen.

 

Wie soll ich die Codezeile mit den Namen meiner eigenen Dateien ausfüllen?

Hier sind meine Dateinamen

 

Hauptmontage: CleanSeal COMPLETE

                    Baugruppe: CleanSeal WELDED

                                     Komponente innerhalb der Baugruppe : Cxxx-x      (Nicht von einem der "C250-0"

Vielen Dank für Ihre Hilfe

Herzliche Grüße.

1 „Gefällt mir“

Ganz einfach: Sie kopieren den Code, den Sie in Ihre Frage eingegeben haben...... ;-)

Unten ist der Code mit meinen Dateinamen.

Es ist fast so, aber es erfordert nicht die richtige Konfiguration...

 

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc


swApp = _ setzen
Anwendung.SldWorks

  Legen Sie swApp = Application.SldWorks fest
    Festlegen von swModel = swApp.ActiveDoc
    Legen Sie swModelDocExt = swModel.Extension fest
    Legen Sie swSelMgr = swModel.SelectionManager fest
       
 
Legen Sie swApp = Application.SldWorks fest
    Festlegen von swModel = swApp.ActiveDoc
    Set swAssy = swModel
    Legen Sie swSelMgr = swModel.SelectionManager fest
    Legen Sie ConfigMgr = swModel.ConfigurationManager fest
    Legen Sie ModelDoc2 = swApp.ActiveDoc fest
    Set AssemblyDoc = ModelDoc2
    
    'Komponente auswählen
    Legen Sie modelDocExt = ModelDoc2.Extension fest
    Set SelectionMgr = ModelDoc2.SelectionManager
    Status = modelDocExt.SelectByID2("CleanSeal COMPLETE-1@Assemblage1/Cxxx-x-2@CleanSeal COMPLETE", "COMPONENT", 0, 0, 0, True, 0, Nothing, 0)
    Set selObj = SelectionMgr.GetSelectedObject6(1, -1)
    Wert festlegen = SelectionMgr.GetSelectedObjectsComponent4(1, -1)

    ' Zeige Config1 und mache sie zur aktiven Konfiguration
    Value.ReferencedConfiguration = "Cxxx-x C250-0"

    " Damit die Änderungen wirksam werden
    swModel.EditRebuild3


Ende Sub

 

 

1 „Gefällt mir“

Öffnen Sie Ihren Cxxx-x-2 und prüfen Sie, in welcher Konfiguration er sich befindet.

Setzen Sie es in die Konfiguration "C250-0" ein und versuchen Sie es erneut.

Lassen Sie mich klarstellen: Es ist DIY! Wir werden versuchen, eine Lösung in VBA zu finden.

Bearbeiten: Es gibt einen Fehler im Namen der Konfiguration, die Sie aufrufen, Sie sollten nur "C250-0" und nicht "Cxxx-x C250-0" eingeben

1 „Gefällt mir“

Es funktioniert, du hast einen glücklichen  gemacht :-)  !!

Verglichen mit dem allerersten Code, den Sie mir gegeben haben, was macht dieser noch?

Wenn du sagst: "Es ist DIY! Wir werden versuchen, eine Lösung in VBA zu finden." Was meinen Sie damit?

Auf jeden Fall vielen Dank für Ihre Hilfe.

 

 

Können Sie eines überprüfen: Öffnen Sie Ihr Cxxx-x-1-Teil, ändern Sie die Konfiguration und starten Sie das Makro neu.

Wird die gewünschte Konfiguration aktiviert?