Witam wszystkich, szukam możliwości odzyskania właściwości " tytułu " i " słów kluczowych " moich plików Solidworks
Powiedziałem sobie, że to będzie proste z Power Query i presto.
i presto, to nie działa
pomysł polegał na pobraniu tych dwóch właściwości moich plików stałych z katalogu w tabeli Excela
działa to częściowo, mogę odzyskać wiele właściwości, ale nie ten, gdy Windows mi je pokazuje
przez VBA, też szukałem, ale nic przekonującego (poza tym nie jestem ekspertem od VBA)
Nie mam też narzędzi do wizualizacji
Czy jest to wykonalne? i w jaki sposób
Dziękuję
Witam
O ile się nie mylę, nie jest dostępny za pośrednictwem interfejsów API systemu Windows. Należy spojrzeć na stronę menedżera dokumentów w interfejsach API Solidworks
3 polubienia
Dobra, będę tak wyglądał
szkoda, bo Windows wyświetla je dobrze
Witam
@SOFAME, czy chcesz mieć te właściwości w Excelu z Solidworks lub Windows (Excel)?
Powiedzmy, że chciałem to zrobić z systemu Windows, ale oczywiście nie było to wykonalne
więc tak na pewno od SolidWorks.
W załączeniu znajduje się przykład, który może zainspirować
Warunek wstępny
1, Otwórz oprogramowanie ze wszystkimi dokumentami, z których chcesz wyodrębnić informacje (alternatywa dla przeglądania folderu, a następnie otwarcia wszystkich dokumentów według VBA)
2, Otwórz plik Excel
3, strumień makro
4, Wypełnij odniesienie " SOLIDWORKS 20** typ/polecenie/biblioteka stałych " w Narzędzia >odniesienie.
5, Zapytaj o odpowiednią wersję SW.
Option Explicit
Dim swapp As SldWorks.SldWorks
Dim swmodel As ModelDoc2
Sub test()
Set swapp = GetObject("", "sldworks.application.26") '2022 > 30
'2021 > 29
'2020 > 28
'...
Dim row As Long
row = 1
Cells(row, 1).Value = "Title"
Cells(row, 2).Value = "Author"
Cells(row, 3).Value = "Key words"
Set swmodel = swapp.GetFirstDocument
While Not swmodel Is Nothing
If swmodel.Visible Then
row = row + 1
Cells(row, 1).Value = swmodel.GetTitle()
Cells(row, 2).Value = swmodel.SummaryInfo(swSumInfoAuthor)
Cells(row, 3).Value = swmodel.SummaryInfo(swSumInfoKeywords)
End If
Set swmodel = swmodel.GetNext
Wend
End Sub
Wynik

(Jeśli chcesz uwzględnić wszystkie komponenty (podzespół) złożeń, komponentów odniesienia, po prostu usuń warunek widoczności, bardzo wygodnie jest otworzyć złożenie, a wszystko zostanie uwzględnione w Excelu
)
Oczywiście idealnym rozwiązaniem byłoby użycie docmanagera, jeśli masz klucz, będzie to bardziej optymalne, ponieważ bardziej konieczne będzie otwieranie wszystkiego za pomocą oprogramowania,
W przeciwnym razie, aby uzyskać pełną wersję programu Excel, znalazłem to
Sub test2()
Dim sfile As Variant
Dim oshell As Object
Dim odir As Object
Set oshell = CreateObject("shell.application")
Set odir = oshell.Namespace("C:\Users\dell\Desktop\test")
Dim row As Long
row = 1
Cells(row, 1).Value = "Title"
Cells(row, 2).Value = "Author"
Cells(row, 3).Value = "Key words"
For Each sfile In odir.Items
'For i = 0 To 40
'Debug.Print i & " : " & odir.getdetailsof(sfile, i)
'Next
row = row + 1
Cells(row, 1).Value = odir.getdetailsof(sfile, 0)
Cells(row, 2).Value = odir.getdetailsof(sfile, 20)
Cells(row, 3).Value = odir.getdetailsof(sfile, 18)
Next
End Sub
Prosty i wydajny (pozostaje tylko zarządzanie typami plików, lub w przypadku, gdy folder zawiera inne pliki niż solidworks) 
Dziękuję za te odpowiedzi, przyjrzę się tej sprawie i będę na bieżąco informował
Być może źle zinterpretowałem "tytuł", najwyraźniej nie jest to gettitle(), ale raczej summaryinfo(swsuminfotitle), dla 2. przykładu wskazówka dotycząca mojej konfiguracji Windows 10 i 21