Pobieranie/zapisywanie właściwości niestandardowych w programie Excel bez metody DSO (nieaktywne od 2015 r.)

Witam

Utworzyłem fragment kodu, aby pobrać właściwości niestandardowe w programie Excel i zaktualizować je bez otwierania plików z następującym kodem:

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

 

Obawiam się, że od SW2015 nie możemy wykonać tych kroków, ponieważ metoda DSO już nie działa.

Moje pytanie brzmi: Jak mogę zrobić to, co robiłem z DSO z SW2016 (lub SW2015)?

Dziękuję

 

Z makrem nie wiem, czy każdy inny na pewno Cię poprowadzi, ale jak masz narzędzie mycad to możesz to również zrobić za pomocą smartbom, który eksportuje Ci nomenklaturę z wybranymi właściwościami i to bez znajomości zaprogramowanej w vba lub innej.

Witam

Aby pobrać, za pomocą makra, właściwości niestandardowe w Excelu i zaktualizować je bez otwierania plików, będziesz musiał "pobawić się" z "Document Manager API" (zobacz tutaj), co wymaga uzyskania numeru licencji (patrz tutaj). Następnie znajdziesz tutaj przykład kodu (w C#) do adaptacji. 

Rozwiązanie sbadenis wydaje mi się być znacznie prostsze i szybsze do wdrożenia oraz wykorzystuje narzędzia, które będą utrzymywane w czasie.

Pozdrowienia

Witam i dziękuję za informacje.

Chodzi o to, że nie tylko odzyskuję dane, aby umieścić je w Excelu... Zmieniam nazwy wszystkich moich plików, jednocześnie aktualizując ich właściwości i oddaję linki posłom do Parlamentu Europejskiego.

O ile mi wiadomo, narzędzia MyCad tego nie robią, a SW Explorer nie daje linku do MEP, więc nie jest to super praktyczne...

Zaletą tej metody było to, że czytelność w Excelu jest po prostu idealna do tego rodzaju przetwarzania. Zamiast tego zobacz obraz w załączniku.

 

 


capture.jpg
1 polubienie

Dzięki menedżerowi projektu w tym przypadku możesz zbiorczo zmieniać nazwę zgodnie z określoną regułą i modyfikować określone właściwości zgodnie z określoną regułą. No i oczywiście posłowie do Parlamentu Europejskiego.

A jeśli nie możesz zrobić tego, co chcesz, kombinacja menedżera projektu do skopiowania, masowa zmiana nazwy, a następnie wsadowe właściwości, aby zmodyfikować właściwości.

Przetestowanie tego będzie kosztować tylko trochę czasu, a jeśli to konieczne, wyjaśnimy, jak to zrobić.

Witam

Właściwie nie chcę zmieniać nazwy zgodnie z zasadami.

Wyobraźmy sobie, że mój klient zwleka z dostarczeniem mi numerów planów zgodnie ze swoim systemem zarządzania danymi. Zamierzam więc rozpocząć (lub nawet zakończyć) moje badanie od nazw plików, które będą miały nazwy takie jak: Axe, Inf Housing, Upper Rankcase, itp.

Raz mówi mi, że moje pliki (PRT, ASM i DRW) powinny być wywoływane na przykład: 2543-40001; 2543-40002; 2543-40003; 2543-40004; itd... Muszę być w stanie zmienić nazwy plików, zachowując linki i szanując ich numerację.

To właśnie pozwoliło mi moje makro EXCEL, które wyświetlało nazwy plików, umieszczając właściwości przed każdą częścią, a następnie musiałem tylko powiedzieć, który numer znajduje się przed tą lub inną częścią... To samo dotyczy właściwości... a wszystko to BEZ otwierania SW!

Jedynym momentem, w którym potrzebowałem oprogramowania, było przywrócenie łączy MEP.

Z kierownikiem projektu nie sądzę, żebym mógł być tak elastyczny!

1 polubienie

Odpowiedz z Menedżerem projektów, możesz masowo zmienić nazwę zgodnie z zasadami lub według własnego uznania, zmienić nazwę pokoju po pokoju zgodnie z tym, co chcesz.

W 1 wybierasz część lub złożenie, których nazwę chcesz zmienić, w 2 regułach zmiany nazw do zastosowania (w twoim przypadku brak reguł)

W 3 przypadkach możliwe jest ręczne przekształcenie nazwy reguły, a jeśli nie ma reguły, ręczna zmiana nazwy.

W 4 zastosuj modyfikację do wszystkich elementów za pomocą linijki lub do części i przejdź do następnej.

 

Dla reguł możliwość zmiany nazwy według licznika, właściwości...

Najprostszym z nich jest wypróbowanie go na małym montażu, jestem przekonany, że będziesz w stanie zrealizować swoją potrzebę.

A jeśli zajdzie taka potrzeba, forum jest po to, aby Ci pomóc!

FYI, Project Manager jest nie tylko bardzo kompletny, ale także bardzo elastyczny!

 


project_manager.png