Cze wszystkim
Biorąc pod uwagę responsywność wszystkich na tym forum, korzystam z okazji, aby zadać pytanie i nie utknąć na wiele godzin ...
Obecnie próbuję odzyskać masę części za pomocą Menedżera dokumentów, ale mam lekki problem!
Aby móc wyjaśnić to bardziej szczegółowo, oto kod:
Const key As String = "CLEF_DOCUMENT_MANAGER"
Dim swDmClassFactory As SwDocumentMgr.swDmClassFactory
Dim swDmApp As SwDocumentMgr.SwDMApplication
Dim docType As SwDmDocumentType
Dim FilePath As String
Dim allowReadOnly As Boolean
Dim result As SwDmDocumentOpenError
Dim DocProp As SwDMDocument
Dim Config As SwDMConfiguration
Dim GestConfig As SwDMConfigurationMgr
Dim bret As SwDmMassPropError
Sub Test()
Set swDmClassFactory = CreateObject("SwDocumentMgr.SwDMClassFactory")
If Not swDmClassFactory Is Nothing Then
Set swDmApp = swDmClassFactory.GetApplication(key)
FilePath = "CHEMIN_PRT"
Set DocProp = swDmApp.GetDocument(FilePath, swDmDocumentPart, False, result)
Set GestConfig = DocProp.ConfigurationManager
Set Config=GestConfig.GetConfigurationByName(GestConfig.GetActiveConfigurationName)
valeurs = Config.GetMassProperties(bret)
Debug.Print "Masse : " & valeurs(5)
DocProp.CloseDoc
Else
MsgBox "Erreur"
End If
End Sub
Problem polega na tym, że dla niektórych części (bez możliwości znalezienia jakichkolwiek punktów wspólnych między tymi, które nie działają) tablica ' values ' jest wypełniona 0, podczas gdy nie mam błędu co do wartości ' result ' i ' bret '. A jak otwieram dokument na SW i patrzę na masę to nie jest zero, więc nie rozumiem w czym tkwi problem
Powinienem zaznaczyć, że sprawdziłem, czy wersja części jest również poprawna, jak wskazano w Pomocy API: Metoda GetMassProperties (ISwDMConfiguration) - 2022 - Pomoc SOLIDWORKS API
Czy ktoś ma w każdym razie trop?
Z góry dziękuję