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 »