Aangepaste eigenschappen ophalen/schrijven met Excel zonder DSO-methode (inactief sinds 2015)

Hallo

Ik had een stukje code gemaakt om aangepaste eigenschappen in Excel op te halen en bij te werken zonder de bestanden te openen met de volgende code:

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

 

Mijn zorg is dat we sinds SW2015 deze stappen niet meer kunnen uitvoeren omdat de DSO-methode niet meer werkt.

Mijn vraag is: Hoe kan ik doen wat ik deed met DSO met SW2016 (of SW2015)?

Bedankt

 

Met macro weet ik niet dat een ander je zeker zal begeleiden, maar als je de mycad-tool hebt, kun je het ook doen met smartbom die je een nomenclatuur exporteert met de gekozen eigenschappen en dit zonder te weten geprogrammeerd in vba of andere.

Hallo

Om per macro aangepaste eigenschappen in Excel op te halen en bij te werken zonder de bestanden te openen, moet u "spelen" met de "Document Manager API" (zie hier), waarvoor u een licentienummer moet verkrijgen (zie hier). Dan vind  je hier een voorbeeld van code (in C#) om aan te passen.

De sbadenis-oplossing lijkt mij veel eenvoudiger en sneller te implementeren en maakt gebruik van tools die in de loop van de tijd zullen worden onderhouden.

Vriendelijke groeten

Hallo en bedankt voor je info.

Het punt is dat ik niet alleen gegevens herstel om ze in Excel te zetten... Ik hernoem al mijn bestanden, terwijl ik hun eigenschappen bijwerk en ik geef de links terug aan de leden van het Europees Parlement.

Voor zover ik weet, doen de MyCad-tools dat niet en SW Explorer geeft de link niet terug naar de Europarlementariërs, dus het is niet super praktisch...

Het voordeel van deze methode was dat de leesbaarheid in Excel perfect is voor dit soort bewerkingen. Zie in plaats daarvan de afbeelding in de bijlage.

 

 


capture.jpg
1 like

Met projectmanager kunt u in dit geval in bulk hernoemen volgens bepaalde regels en ook bepaalde eigenschappen wijzigen volgens bepaalde regels. En natuurlijk krijg je de Europarlementariërs.

En als u niet kunt doen wat u wilt, de combinatie van projectmanager om massaal te kopiëren, te hernoemen en vervolgens batcheigenschappen om de eigenschappen te wijzigen.

Het testen kost je maar wat tijd en indien nodig leggen we uit hoe je het moet doen.

Hallo

Ik wil eigenlijk niet hernoemen volgens de regels.

Laten we ons voorstellen dat mijn klant traag is met het verstrekken van plannummers volgens zijn gegevensbeheersysteem. Dus ik ga mijn studie beginnen (of zelfs afmaken) met bestandsnamen die namen zullen hebben als: Axe, Inf Housing, Upper Rankcase, enz...

Zodra het me vertelt dat mijn bestanden (PRT, ASM en DRW) bijvoorbeeld moeten worden genoemd: 2543-40001; 2543-40002; 2543-40003; 2543-40004; enz... Ik moet in staat zijn om de bestanden te hernoemen met behoud van de links en met respect voor de nummering.

Dat is wat mijn EXCEL-macro me toestond om te doen, die de bestandsnamen opsomde door de eigenschappen voor elk onderdeel te plaatsen en dan hoefde ik alleen maar te zeggen welk nummer voor dit of dat onderdeel kwam ... Hetzelfde geldt voor de eigendommen... en dat alles ZONDER SW te openen!

De enige keer dat ik SW nodig had, was om de links van de Europarlementariër te herstellen.

Met een projectmanager denk ik niet dat ik zo flexibel kan zijn!

1 like

Antwoord: met de projectmanager kunt u massaal hernoemen volgens de regels of, zoals u wilt, kamer voor kamer hernoemen, afhankelijk van wat u wilt.

In 1 kies je het onderdeel of merk om te hernoemen in 2 hernoemingsregels om toe te passen (in jouw geval geen regels)

In 3 zijn de resultaten van de toegepaste regel of, indien er geen regel is, handmatige hernoeming mogelijk.

In 4 pas je de wijziging voor alle stukken toe met de liniaal of voor het onderdeel en ga je verder met het volgende.

 

Voor de regels mogelijkheid om te hernoemen volgens een teller, een eigenschap...

De eenvoudigste is om het op een kleine assemblage te proberen, ik ben ervan overtuigd dat u uw behoefte kunt realiseren.

En als het nodig is, is het forum er om je te helpen!

Ter info, Project Manager is niet alleen zeer compleet, maar ook zeer flexibel!

 


project_manager.png