Récupérer une proprieté du modele contenue dans MeP

Bonsoir, pour améliorer une macro d'enregistrement de mise en plan  en pdf, j'aimerai récupérer une propriété de la pièce contenue dans la mise en plan. je précise que cette propriété n'est pas dans le fichier slddrw.
Si quelqu;un peut m'aider, je n'ai rien trouvé sur le forum, d'avance merci.

 

Bonjour fifounet44,

Tu es sûr d'avoir bien cherché ? on trouve tout sur notre sympathique forum :)

Regarde ICI.

Cordialement,

5 « J'aime »

C'est facilement faisable avec les mycadtools.

4 « J'aime »

Merci droger,
J'essaie ce midi, pas toujours facile de faire une recherche, tout dépend des termes à chercher, plus facile quand tu as toi-même participé au post!
J'aurai du rechercher "macro+droger"
;-D  A+

 

 

1 « J'aime »

Merci à vous tous,
Apres bidouillage du code de gdm, ça fonctionne! reste plus qu'à "nettoyer" mon code et c'est bon.

Salut, je crois qu'il est possible d'ouvrir la pièce sans l'afficher, j'ai cherché mais rien trouvé de probant sur le forum.
Merci de m'aiguiller

Bonjour ,

Voici un petit exemple :

Option Explicit

Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swDrawModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc
    Dim swView As SldWorks.View
    Dim swModelDocExt As ModelDocExtension
    Dim strRefModelPath As String
    Dim configname As String
    Dim bRet As Boolean
    Dim nErrors As Long
    Dim nWarnings As Long
    Dim swCustProp As CustomPropertyManager
    Dim val As String
    Dim valout As String

    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    Set swDraw = swModel
    Set swView = swDraw.GetFirstView

    While Not swView Is Nothing
        strRefModelPath = swView.GetReferencedModelName
        configname = swView.ReferencedConfiguration
        Set swDrawModel = swApp.OpenDoc6(strRefModelPath, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)
        If Not swDrawModel Is Nothing Then
            Set swModelDocExt = swDrawModel.Extension
            Set swCustProp = swModelDocExt.CustomPropertyManager(configname)
            bRet = swCustProp.Get4("TEST", False, val, valout)
        
            Debug.Print "valeur évaluée : " & valout
        End If
        Set swView = swView.GetNextView
    Wend

End Sub

Cordialement,

2 « J'aime »

Bonsoir,
Merci beaucoup droger, je viens de tout remanier et ça marche nickel sans ouvrir le modéle 3d.
Par contre je ne vois pas l'intéret de boucler sur les configurations car ça prend la propriété "Indice" => (valout) de la dernière config trouvée. Mon but est de comparer l'indice du 3d avec celui de la MeP avant de l'ajouter au nom du fichier et d'enregistrer en pdf.
Ca pourrait être utile si l'indice était différent par erreur entre 2 config ce qui n'est pas le cas dans notre gestion des 3d. contrairement à de "vieilles" MeP qui ne sont pas toujours au dernier indice du 3d.
Bien cordialement.

 

 

Ce n'est qu'un exemple que je t'ai donné, ceci sans vraiment connaitre ton besoin réel ... Exemple sur lequel je ne boucle pas sur les config mais sur les vues de la mise en plan ce qui n'est pas forcément utile non plus ... Au même titre que cet exemple ne fonctionne tel quel que si le modèle 3D de référence est une pièce sinon il y a quelques modifications à faire ...

Bref juste un exemple permettant de voir comment résoudre le problème énoncé dans ta question.

Cordialement,

2 « J'aime »

Bonjour, Effectivement je ne t'ai donné aucune indication sur mon besoin! désolé je me suis perdu... et tu as bien répondu au problème posé dans la question, comme d'habitude je dirai.

Pour des assemblages je suppose qu'il faut changer swPART par swASSEMBLY ?
Je fais des essais et reviendrai surement pour de précieux conseils ;-)
Bon WE

 

 

 

1 « J'aime »

Bonjour, Après quelques essais positifs, je joins la macro, je compte sur vous pour l"améliorer car je pense qu'elle peut être simplifiée mais comme ça marche je n'ose plus y toucher...


enregistrer-pdf-dxf.swp

Bonsoir,

J'arrive un peu après la bataille mais si l'indice est dans une note liée dans le cartouche il était possible de s'appuyer sur cette note plutôt que d'interroger le 3D.

Ainsi le fonctionnement est simplifié et ne dépend pas du type de fichier lié.

Bonsoir Cyril, ben non c'est bien là le pb, on a de nombreux plans dont l'indice a été 'forcé', alors que les 3d sont bien révisés et indicés, c'est pour celà que je remonte la différence dans un message, on remet donc le bon indice dans la MeP, c'est tordu certes mais on fait avec.

1 « J'aime »

Bonjour fifounet44,

Globalement ça fait le boulot, il manque quand même la gestion des erreurs possibles mais c'est récurrents sur toutes les macros que l'on peut voir ...

Penses à clore le sujet ...

Cordialement,

3 « J'aime »