Einrichten mit Excel in VBA

Hallo

Ich habe eine Excel-Datei erstellt, die in VBA codiert ist, um eine Baugruppe und ihre Teile zu ändern. Mir fehlen noch ein paar Dinge, die ich abschließen muss.

- Welcher Code verwendet werden soll, um eine Funktion eines Teils in einer bestimmten Konfiguration dieses Teils zu reaktivieren oder zu deaktivieren (Standard oder Sym)

- Ich gebe die Möglichkeit, die Namen der Teile in meiner Excel-Datei zu ändern, aber ich kann die Verknüpfungen nicht mit meiner neuen Baugruppe wiederherstellen, es wird der ursprüngliche Name wiederhergestellt. Wie man ihm die neuen Verknüpfungen mit den geänderten Teilen gibt.

Ich hänge den Code als Beispiel an.

Bitte hilf mir.

Herzliche Grüße.


code_pour_assemblage_parametre.txt

Hallo.

 

Sie müssen viel Spaß beim Erstellen Ihres kleinen Programms ^^ gehabt haben. Kurz

Ich mag sagen, aber um deinen Namen zu retten, sagst du ihm, er soll in die Zelle "D3" gehen und nachsehen ... Aber du sagst ihm nicht, um welche Akte/welches Blatt es sich handelt. Wenn das Blatt zu diesem Zeitpunkt nicht aktiv ist, weiß er nicht, wo er suchen soll.

 

Ich klebe dir auch die Sldw-Hilfe für das Saveas3

 

IModelDoc2
Dim NewName As String
Dim SaveAsVersion As Integer
Dim Options As Integer
Dim value As Integer (ton "chemin_enr" que tu as déclaré "as long")
 
value = instance.SaveAs3(NewName, SaveAsVersion, Options)

 Also, für Sie könnte es sein

IModelDoc2
Dim NewName As String
Dim SaveAsVersion As Integer
Dim Options As Integer

Newname = Z:\MASCHINE\CONFO\" & Tabelle3.Zellen(3, "D"). Wert2 & ".sldprt"

(Falls es sich bei Ihrer Box um Blatt 3 handelt. Ich bin nicht davon überzeugt, dass Sie .sldprt am Ende hinzufügen sollten. Zu testen)

chemin_enr = swModel.Saveas3(Neuer Name, 0, 2)

 

Dank der Coin37coin-Pipe funktioniert meine Funktion "Als Teile speichern" einwandfrei, erst wenn ich die Baugruppe öffne, kennt sie die neuen Teilepfade nicht und öffnet daher die Originaldateien.

Vielleicht sollte ich die Baugruppe öffnen, bevor ich meine Teile ändere, und sie speichern?

 

Herzliche Grüße.

Haaa, tut mir leid, dass ich es falsch verstanden habe.

 

Wenn es viele Teile speichert, sollten Sie Ihr Makro bitten, die Baugruppe zu öffnen, bevor Sie das Teil speichern, und dann die Baugruppe am Ende speichern (vergessen Sie diesen Schritt nicht ;) )

 

Tatsächlich verhält es sich so, als ob Sie es selbst tun würden: Wenn Ihre Baugruppe geöffnet ist und Sie ein Teil speichern, speichert es den neuen Pfad im Ganzen. (das berühmte "Kopie speichern"-Kästchen, das Sie aktivieren können, wenn Sie es nicht tun möchten)

Andernfalls sollten Sie für Konfigurationen den Code "getconfigurationname" ausprobieren, der die Liste der Konfigurationen Ihres Raums anzeigt. 

Erstellen Sie dann ein Dropdown-Menü, um die richtige Konfiguration auswählen zu können. Dann sollte die "openmodelconfiguration" es Ihnen ermöglichen, mit der gewählten Konfiguration zu öffnen

Und ein kleines "getactiveconfiguration" zu Beginn des Programms sollte es Ihnen ermöglichen, die aktuelle auszuwählen und beim Schließen des Raums zu ihr zurückzukehren

 

Aber das sind nur Vermutungen, ich habe diese Codes noch nie getestet

Ich habe die Lösung gefunden:

-für die Konfigurationen:

boolstatus = Part.Extension.SelectByID2("défaut@Embase confo ORIGIN. SLDPRT", "KONFIGURATIONEN", 0, 0, 0, Falsch, 0, Nichts, 0)
        boolstatus = Teil.ShowConfiguration2("Vorgabe")
        boolstatus = Part.Extension.SelectByID2("Congé2@Embase confo ORIGIN-1@confo ORIGIN", "BODYFEATURE", 0, 0, 0, False, 0, Nichts, 0)
        Part.EditSuppress2  , um eine Funktion in einer solchen Konfiguration des Teils zu aktivieren
        Part.ClearSelection2 Wahr

- Für die Registrierung:

Set swModel = swApp.OpenDoc6("Z:\MACHINE\CONFO\0 confo ORIGINE 3D\confo ORIGINE.sldasm", 2, 0, "", longstatus, longwarnings)    
    Set Part = swApp.ActiveDoc
    
    Part.ClearSelection2 Wahr
    boolstatus = Part.Extension.SelectByID2("Komfortabler Header ORIGIN-1@confo ORIGIN", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0)
    boolstatus = swModel.ReplaceComponents("Z:\MASCHINE\CONFO\" & Bereich("d1"). Wert2 & " embase.sldprt", "", Wahr, Wahr)
    Part.ClearSelection2 Wahr
    boolstatus = Part.Extension.SelectByID2("Konfo-Flügel ORIGIN-1@confo ORIGIN", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0)
    boolstatus = swModel.ReplaceComponents("Z:\MASCHINE\CONFO\" & Bereich("d1"). Value2 & " wing.sldprt", "", True, True)
    Part.ClearSelection2 Wahr
    boolstatus = Part.Extension.SelectByID2("Gang confo ORIGIN-1@confo ORIGIN", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0)
    boolstatus = swModel.ReplaceComponents("Z:\MASCHINE\CONFO\" & Bereich("d1"). Value2 & " corridor.sldprt", "", True, True)
    Part.ClearSelection2 Wahr
    boolstatus = Part.Extension.SelectByID2("Konfo-Sym-Korridor ORIGIN-1@confo ORIGIN", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0)
    boolstatus = swModel.ReplaceComponents("Z:\MASCHINE\CONFO\" & Bereich("d1"). Value2 & " SYM.sldprt Corridor", "", True, True)
    Part.ClearSelection2 Wahr
    boolstatus = Part.Extension.SelectByID2("Bewehrung bequem ORIGIN-1@confo ORIGIN", "COMPONENT", 0, 0, 0, False, 0, Nichts, 0)
    boolstatus = swModel.ReplaceComponents("Z:\MASCHINE\CONFO\" & Bereich("d1"). Wert2 & " reinforcement embase.sldprt", "", True, True)
    Part.ClearSelection2 Wahr
    boolstatus = Part.Extension.SelectByID2("Bewehrungskonfuse sym ORIGIN-1@confo ORIGIN", "COMPONENT", 0, 0, 0, False, 0, Nichts, 0)
    boolstatus = swModel.ReplaceComponents("Z:\MASCHINE\CONFO\" & Bereich("d1"). Wert2 & " SYM.sldprt Kopfverstärkung", "", Wahr, Wahr)
    Part.ClearSelection2 Wahr
    
    chemin_enr = swModel.Saveas3("Z:\MASCHINE\CONFO\" & Bereich("d1"). Wert2 & ".sldasm", 0, 2)
    swApp.CloseDoc (swModel.GetTitle)
    Set swModel = swApp.OpenDoc6("z:\machine\confo\" & Range("d1"). Wert2 & ".sldasm", 2, 0, "", longstatus, longwarnings)
    Set Part = swApp.ActiveDoc

 

Grüße

2 „Gefällt mir“

Hallo, haben Sie bitte ein Beispiel in Excel (Makro) + Datei, um eine Funktion eines Teils zu aktivieren oder zu deaktivieren?

Hallo

Ich rate Ihnen, eine Frage neu zu erstellen, da diese mehr als zwei Jahre alt ist.