Récupérer propriété personnalisée [RESOLU]

vos questions concernant les API SolidWorks

Récupérer propriété personnalisée [RESOLU]

Messagepar Rojnin » Jeu 30 Oct 2014, 11:05

Bonjour

Pour une gestion interne, je dois récupérer une propriété personnalisée à partir d'un assemblage actif.
Cette propriété fait partie d'un fichier (PART ou ASM) inclus dans cet assemblage. (Voir copie écran)

Après quelques heures de recherche et d'essais tous négatifs, quelqu'un pourrait-il m'aider?

Merci
Fichiers joints
exemple.jpg
Petit exemple
exemple.jpg (21.96 Kio) Vu 923 fois
Dernière édition par Rojnin le Ven 31 Oct 2014, 11:54, édité 1 fois.
Rojnin
Ewok SolidWorks
 
Messages: 10
Inscription: Mer 19 Mar 2014, 11:33
Localisation: Bruxelles

Re: Récupérer propriété personnalisée sur fichier clos

Messagepar MarcS » Jeu 30 Oct 2014, 18:02

Dans le temps j'utilisais le DsoFile.dll que tu retrouve chez Microsoft
J'ai pas tester en 64 bit, mais une fois que tu récupérer le nom complet de ton fichier
tu peut utilisé ce code

Dim DSO_DocumentProps As DSOFile.OleDocumentProperties
Dim DSO_CustProp As DSOFile.CustomProperty
Dim DSO_OpenReadOnly As Boolean
Doc_Name = Nom_Du_Ficiher
Set SwDoc = Nothing
DSO_DocumentProps.Open Doc_Name, DSO_OpenReadOnly, dsoOptionOpenReadOnlyIfNoWriteAccess
For Each DSO_CustProp In DSO_DocumentProps.CustomProperties
Debug.Print DSO_CustProp.Name & ": " & CStr(DSO_CustProp.Value)
Next


DSO_DocumentProps.Close False

Si je te donne un poisson tu pourras manger Aujourd’hui
mais si je t’apprend a pêcher tu pourras manger toute ta vie !!!
Salut !

Marc S.
Avatar de l’utilisateur
MarcS
Chevalier Jedi SolidWorks
 
Messages: 311
Inscription: Mar 06 Jan 2009, 20:10
Localisation: Quebec, Quebec SolidWorks 2017 SP 1.0 & SolidWorks 2014 SP 2.0

Re: Récupérer propriété personnalisée sur fichier clos

Messagepar Rojnin » Ven 31 Oct 2014, 11:53

Merci MarcS

je vais regarder de plus près à ce dsofile mais je doute que mon service info me laisse installer une dll sur les postes...

Cependant en continuant à fouiller et à tester, je suis arrivé au code qui suit. Je pense que c'est un peu lourd mais cela fonctionne.

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swConf = swModel.GetActiveConfiguration
Set swRootComp = swConf.GetRootComponent

nTypeDoc = swModel.GetType

sPropBaseMaterial = "-"

If nTypeDoc = swDocASSEMBLY Then
vChildComp = swRootComp.GetChildren

If UBound(vChildComp) = 0 Then
' Assemblage avec 1 pièce
Dim vComponents As Variant
Set swAssem = swModel
vComponents = swAssem.GetComponents(True)
Set swComp = vComponents(0)
Set swCompDoc = swComp.GetModelDoc2
Set swCPM = swCompDoc.Extension.CustomPropertyManager("")
bRet = swCPM.Get4("E_Material", False, ValOut, sPropBaseMaterial)
End If

End If
Rojnin
Ewok SolidWorks
 
Messages: 10
Inscription: Mer 19 Mar 2014, 11:33
Localisation: Bruxelles


Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 5 invités

banniere