Dans le lien de solidagora, il est marqué qu'il faut juste contacter la personne qui à poster le message pour recevoir la macro. Donc je commencerai par la! ;)
Dans le même esprit que BATCHCONVERTER il y a INTEGRATION (surtout si tu veux modifier le nom du fichier final en y ajoutant la propriété Révision, car il ne me semble pas que Batch sache le faire).
Tu devrais demander au "DEV" de chez Axemble s'il peuveut te créer une "macro" depuis SW qui lance INTEGRATION avec ton paramétrage de convertion+modification du fichier final.
Personnellement, avant de passer à l'EPDM, nous avons utilisé BATCHCONVERTER pour convertir en automatique les MEP en dxf,pdf et edrw dans un répertoire autre que ceux du BEM (pour qu'ils soient accéssible à la production par exemple).
Nous lancions chaque soir l'utilitaire BATCHCONVERTER qui prenait en compte toutes les mises en plan faites ou modifiés dans la journée (tu gères cela via les filtres sur les dates). L'avantage c'est qu'il n'y a pas d'oublie par cette méthode contrairement à ton bouton macro qui demande une intervention humaine.
En effet j'ai fait une macro similaire (PDF & DWG).
J'avais l'intention de poster celle-ci sur Lynkoa mais je ne l'ai pas fait par manque de temps. Avant de la poster, j'avais envie de la simplifier et commenter toutes les lignes une par une pour plus de lisibilité pour les néophytes de la programmation en VBA.
Est-ce que tu as les bases en VBA ? Est-ce que tu as déjà une base pour cette macro ou tu pars de zéro ?
J'ai créé un tutoriel pour "Enregistrer-sous" pour SolidWorks (qui est plus simple et commenté pour chaque ligne) que tu peux trouver ici :
Tu auras déjà quelques pistes. Je suis actuellement en vacances jusqu'au 6, donc je transfererai la macro à ce moment (mais sache que celle-ci est spécifique à notre entreprise et demandera beaucoup de travail d'adaptation).
J'ai récupéré effectivement la macro sur le forum "Solidagora".
Mais elle me renvoie une erreur.
Un problème lié à la base au fait que je suis en 64 bits. (à ce que j'ai compris)
J'essaie d'avancer pour la faire fonctionner.
Et j'aimerais aussi la simplifier pour qu'en appuyant sur l'icône de la macro elle réalise ce que je lui demande sans avoir à rentrer un chemin de dossier ni à cocher l'extension...
Pour le 64 bits le seul problème que je connaisse, c'est que quand tu lances la macro, la boite de dialogue n’apparaît pas. Avec un "petit" ALT + TAB, tu fais apparaître la boite de dialogue (pas besoin de tout ces longPtr et PrtSafe ...)
cette reponse ne repond pas a ta question
soi patient la plupart des gens sont en congé de fin d'année ca va venir
Je pourrai la modifier pour inclure le chemin que tu veux si tu me le donnes (en UNC c'est mieux, du style : "\\SERVEUR\Bureau d'études\Plans SolidWorks\Plans PDF\")
Quand tu as l'erreur, et que tu cliques sur debuggage, tu arrives à quelle ligne ?
Voici ce que j'ai réussi à faire en récupérant à droite à gauche.
Option Explicit Public Enum swDocumentTypes_e swDocNONE = 0 ' Used to be TYPE_NONE swDocPART = 1 ' Used to be TYPE_PART swDocASSEMBLY = 2 ' Used to be TYPE_ASSEMBLY swDocDRAWING = 3 ' Used to be TYPE_DRAWING
End Enum Dim swApp As Object Dim swModel As ModelDoc2 Dim sPathName As String Dim sReference As String Dim sSaveName As String Dim longstatus As Long Dim myRev As String Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then MsgBox ("Pas de document ouvert") ElseIf swModel.GetType <> 3 Then MsgBox ("Il ne s'agît pas d'une mise en plan") Else sPathName = swModel.GetPathName 'recupere le nom complet du document actif sReference = Mid(sPathName, InStrRev(sPathName, "\") + 1) 'Récupère tout ce qui se situe après le dernier \ sReference = Left(sReference, Len(sReference) - 7) 'Suppression des 6 caractères correspondant à l'extension de fichier et du . sPathName = Left(sPathName, InStrRev(sPathName, "\")) 'Récupère le chemin sans le nom de fichier
'myRev = swModel.CustomInfo2("", "Indice") 'Récupère l'indice dans les propriétés du document myRev = swModel.GetCustomInfoValue("", "Indice")
longstatus = swModel.SaveAs3("X:\" + sReference + myRev + ".PDF", 0, 0) 'Association de l'ensemble des variables pour formater le nom d'enregistrement longstatus = swModel.SaveAs3("X:\" + sReference + myRev + ".DXF", 0, 0)
End If
End Sub
Dernier petit soucis :
Je n'arrive pas à récupérer la propriété "Indice" qui est liée à la pièce.
swModel.CustomInfo2("", "Indice") et swModel.GetCustomInfoValue("", "Indice") ne me renvoie rien.
Que faut-il écrire pour récupérer la propriété "Indice" ?