Abrufen/Schreiben von benutzerdefinierten Eigenschaften mit Excel ohne DSO-Methode (inaktiv seit 2015)

Hallo

Ich hatte einen Codeausschnitt erstellt, um benutzerdefinierte Eigenschaften in Excel abzurufen und zu aktualisieren, ohne die Dateien mit dem folgenden Code zu öffnen:

Option Explicit

Dim swApp As SldWorks.SldWorks
Dim swModelDoc As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swPackAndGo As SldWorks.PackAndGo
Dim openFile As String
Dim myFileName As String
Dim pgFileNames As Variant
Dim pgFileStatus As Variant
Dim pgSetFileNames() As String
Dim pgGetFileNames As Variant
Dim pgDocumentStatus As Variant
Dim status As Boolean
Dim warnings As Long
Dim errors As Long
Dim i As Long
Dim j As Long
Dim namesCount As Long
Dim myPath As String
Dim statuses As Variant

Public Chemin, OldFile As String
Public Ligne1, DernligneASM

Sub ListerOldFichiers()

Dim Fichier As String

Range("A2:B1000") = "" 'Vidage des cellules

Chemin = CheminUser
OldFile = Dir(Chemin & "*.sldasm")

'Appel de la progressbar

UserForm1.Show vbModeless
UserForm1.ProgressBar1.Value = 0

Dim ProgressBar, barre

UserForm1.ProgressBar1.Value = 10

'Ecrire les noms de fichiers dans colone A

Ligne1 = 2 'Départ pour rentrer les noms de fichiers

    Do While OldFile <> ""
    
        Cells(Ligne1, 1) = OldFile
        OldFile = Dir()
        Ligne1 = Ligne1 + 1
    
    Loop

DernligneASM = Range("a65536").End(xlUp).Row

Dim Dernligne2
Dernligne2 = Range("a65536").End(xlUp).Row + 1

OldFile = Dir(Chemin & "*.sldprt")

    Do While OldFile <> ""
    
        Cells(Dernligne2, 1) = OldFile
        OldFile = Dir()
        Dernligne2 = Dernligne2 + 1
        
    Loop

UserForm1.ProgressBar1.Value = 50


Dim Dernligne3
Dernligne3 = Range("a65536").End(xlUp).Row

Ligne1 = 2

For Ligne1 = Ligne1 To Dernligne3
        
        Dim DSO As DSOFile.OleDocumentProperties
        Dim File1, OldDes, k, PropName, Compteur
        
        File1 = Cells(Ligne1, 1).Value
        
        Set DSO = New DSOFile.OleDocumentProperties
        DSO.Open sfilename:=Chemin & File1
        
        Compteur = DSO.CustomProperties.Count
        
        If Compteur <> 0 Then
        
            For k = 1 To Compteur - 1
            
                PropName = DSO.CustomProperties.Item(k).Name
            
                If PropName = "Designation-1" Then
                
                    OldDes = DSO.CustomProperties.Item("Designation-1").Value
                    Cells(Ligne1, 2) = OldDes
                
                End If
                
            Next k

        End If
            
        DSO.Save
        DSO.Close
 
Next

'Fini de remplir et Decharger l'userform

barre = 100
UserForm1.ProgressBar1.Value = barre
Unload UserForm1
ProgressBar = 0 'Réinitialisation

MsgBox "Remplissez la colonne des Nouveaux noms a attribuer puis cliquez sur ''Renommer''"

End Sub

 

Meine Sorge ist, dass wir seit SW2015 diese Schritte nicht mehr ausführen können, da die DSO-Methode nicht mehr funktioniert.

Meine Frage ist: Wie kann ich das tun, was ich mit DSO mit SW2016 (oder SW2015) gemacht habe?

Vielen Dank

 

Mit Makro weiß ich nicht, dass ein anderer Sie sicherlich führen wird, aber da Sie das mycad-Tool haben, können Sie es auch mit smartbom tun, das Ihnen eine Nomenklatur mit den ausgewählten Eigenschaften exportiert und dies ohne zu wissen, programmiert in VBA oder andere.

Hallo

Um benutzerdefinierte Eigenschaften in Excel per Makro abzurufen und zu aktualisieren, ohne die Dateien zu öffnen, müssen Sie mit der "Document Manager API" (siehe hier) "spielen", wofür Sie eine Lizenznummer erhalten müssen (siehe hier). Dann finden Sie  hier ein Beispiel für Code (in C#) zum Anpassen.

Die sbadenis-Lösung scheint mir viel einfacher und schneller zu implementieren zu sein und verwendet Tools, die im Laufe der Zeit gepflegt werden.

Herzliche Grüße

Hallo und vielen Dank für Ihre Infos.

Die Sache ist die, dass ich nicht nur Daten wiederherstelle, um sie in Excel abzulegen... Ich benenne alle meine Dateien um, aktualisiere ihre Eigenschaften und gebe die Links an die Abgeordneten zurück.

Soweit ich weiß, tun die MyCad-Tools das nicht und SW Explorer gibt den Link nicht an die MEPs zurück, also ist es nicht super praktisch...

Der Vorteil dieser Methode war, dass die Lesbarkeit in Excel für diese Art der Verarbeitung einfach perfekt ist. Sehen Sie sich stattdessen das Bild im Anhang an.

 

 


capture.jpg
1 „Gefällt mir“

Mit dem Projektmanager können Sie in diesem Fall in großen Mengen nach einer bestimmten Regel umbenennen und bestimmte Eigenschaften auch nach einer bestimmten Regel ändern. Und natürlich gibt es die Abgeordneten des Europäischen Parlaments.

Und wenn Sie nicht tun können, was Sie möchten, können Sie mit der Kombination aus Projektmanager Eigenschaften kopieren, massenhaft umbenennen und dann Batch-Eigenschaften verwenden, um die Eigenschaften zu ändern.

Es zu testen kostet Sie nur ein wenig Zeit und bei Bedarf erklären wir Ihnen, wie es geht.

Hallo

Ich möchte eigentlich nicht nach Regeln umbenennen.

Stellen wir uns vor, mein Kunde stellt mir nur langsam Plannummern gemäß seinem Datenmanagementsystem zur Verfügung. Also werde ich meine Studie mit Dateinamen beginnen (oder sogar beenden), die Namen haben werden wie: Axe, Inf Housing, Upper Rankcase, etc...

Einmal sagt es mir, dass meine Dateien (PRT, ASM und DRW) zum Beispiel aufgerufen werden sollen: 2543-40001; 2543-40002; 2543-40003; 2543-40004; etc... Ich muss in der Lage sein, die Dateien umzubenennen, während ich die Links beibehalte und die Nummerierung respektiere.

Das ist es, was mir mein EXCEL-Makro ermöglichte, das die Dateinamen auflistete, indem es die Eigenschaften vor jeden Teil setzte, und dann musste ich nur noch sagen, welche Nummer vor diesem oder jenem Teil stand... Das Gleiche gilt für die Eigenschaften... und das alles OHNE Öffnungs-SW!

Das einzige Mal, dass ich SW brauchte, war, um die Links des MEP wiederherzustellen.

Mit einem Projektmanager glaube ich nicht, dass ich so flexibel sein kann!

1 „Gefällt mir“

Antwort: Mit dem Projektmanager können Sie massenhaft nach Regeln umbenennen oder nach Belieben Raum für Raum umbenennen, je nach Ihren Wünschen.

In 1 wählen Sie das Teil oder die Baugruppe aus, die in 2 Umbenennungsregeln umbenannt werden soll (in Ihrem Fall keine Regeln)

In 3 sind die Ergebnisse der angewendeten Regel oder wenn keine Regel manuelle Umbenennung möglich.

In 4 wenden Sie die Modifikation auf alle Teile mit dem Lineal oder auf das Teil an und fahren Sie mit dem nächsten Teil fort.

 

Für die Regeln Möglichkeit der Umbenennung nach einem Zähler, einer Eigenschaft...

Am einfachsten ist es, es an einer kleinen Montage auszuprobieren, ich bin überzeugt, dass Sie Ihren Bedarf realisieren können.

Und wenn nötig, ist das Forum da, um Ihnen zu helfen!

Zu Ihrer Information, der Projektmanager ist nicht nur sehr vollständig, sondern auch sehr flexibel!

 


project_manager.png