J'ai cherché et je n'ai pas trouvé une petite macro qui exporte l'onglet courant d'une mise en plan solidworks au format dxf (pour découpe laser) avec comme nom de fichier le nom exacte de l'onglet de plan courant
regarde cette macro, essaye et dit moi si cela te va
Sub main()
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim montab As Variant Dim montab2 As Variant Dim montab3 As Variant Dim interm As String Dim nom As String Dim chemin As String Dim name As String Dim FilePath As String Dim PathSize As Long Dim PathNoExtension As String Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc
chemin = PathNoExtension & ".dxf" 'format dan lequel tu veu enregistrer 'cheminMEP = swModel.GetPathName 'NomFichierComplet = Mid(cheminMEP, 1, Len(cheminMEP) - 7) 'Elements = Split(NomFichierComplet, "\", -1) 'NomFichierComplet = Elements(0)
'MessAlert = MsgBox("Accepter vous ce fichier ? " + NomFichierComplet, vbYesNo) 'If MessAlert = vbNo Then Exit Sub name = nom & " - Feuille1" Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager Part.SaveAs2 chemin, 0, True, False Part.Save2 False Set Part = Nothing swApp.CloseDoc swModel.GetTitle 'Set swModel = Nothing: Set swApp = Nothing
je ne suis pas un spécialiste donc j'ai pu mettre le nom du document et le nom de la feuille mais pas mieux.
Sub main()
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim montab As Variant Dim montab2 As Variant Dim montab3 As Variant Dim interm As String Dim nom As String Dim nom2 As String Dim chemin As String Dim name As String Dim FilePath As String Dim PathSize As Long Dim PathSizeTitle As Long Dim PathNoExtension As String Dim PathNoExtension2 As String Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc
'MessAlert = MsgBox("Accepter vous ce fichier ? " + NomFichierComplet, vbYesNo) 'If MessAlert = vbNo Then Exit Sub 'name = nom & " - Feuille1" Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager Part.SaveAs2 chemin, 0, True, False Part.Save2 False Set Part = Nothing 'swApp.CloseDoc swModel.GetTitle Set swModel = Nothing: Set swApp = Nothing
@gwygwy la macro proposé c'est loin d'être clean au niveau code, doublon, partie de code inutile... Et de plus je ne vois pas comment tu récupère le Nom de la feuille . Le seul nom de feuille est tapé à la mano "Feuille1"
Pour exporter le fichier avec le nom de l'onglet voir ce sujet auquel je t'ai répondu sans savoir si la réponse te convenais ou pas.
Oui le code n'est pas clean, je ne suis pas un pro.J'ai modifié une macro existante ou il reste du code qui ne sert à rien, mais je le garde au cas ou j'en aurais besoin dans une autre macro.
Et non il n'est pas tapé à la mano comme tu dit il y as un ' devant la ligne.Donc cette ligne ne sert à rien.
Je recupère avec get.title, c'est tout ce que j'ai trouvé.Mais si tu as une macro qui marche pour son cas, fais lui tu as l'air de bien coder.
Pour récupérer le nom de chaque feuille et exporter chaque feuille avec le nom de la feuille comme nom d'export il faut obligatoirement créer une boucle sur les feuilles comme sur la macro fournit dans le lien. Si ça t'intéresse je t'invite a regarder, il y a rien de bien compliqué, il y a 2 ans je n'avais aucune connaissance en vba et c'est en tâtonnant que je m'y suis mis.
Pour la macro j'en ai fais une dans l'autre sujet mais pas de réponse @Fennec_Flegmatique semble être aux abonnés absent!