Bonjour l’équipe,
J’ai décidé de me lancer dans la réalisation d’une maccro pour gagner du temps sur mon travail.
Etant novice, j’ai d’abord lu pas mal de topics sur ce forum mais je n’ai pas forcement trouvé mes réponses.
Je m’expliques : J’ai créer une maccro avec la fonction « Enregistrer » de celle-ci.
Le but de cette maccro serait dans l’ordre :
- A partir d’une pièce.SLDPRT
- L’enregistrer en .STEP
- Ouvrir sa mise en plan
- Enregistrer en .DxF
- Enregistrer en PDF
- Fermer la mise en plan
- Fermer la pièce
Le code qui en ressort est celui-ci :
’ ******************************************************************************
’ C:\Users\bguyetand\AppData\Local\Temp\swx4952\Macro1.swb - macro recorded on 09/20/23 by BGuyetand
’ ******************************************************************************
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
’ Save As
longstatus = Part.SaveAs3(« C:\Users\bguyetand\Desktop\Pièce1.STEP », 0, 2)
’ Open
Set Part = swApp.OpenDoc6(« C:\Users\bguyetand\Desktop\Pièce1.SLDDRW », 3, 0, « », longstatus, longwarnings)
Dim swDrawing As DrawingDoc
Set swDrawing = Part
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 22
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 « Pièce1 - Feuille1 », False, longstatus
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
’ Save As
longstatus = Part.SaveAs3(« C:\Users\bguyetand\Desktop\Pièce1.pdf », 0, 2)
Part.SheetPrevious
’ Redraw
Part.GraphicsRedraw2
’ Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
’ Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
’ Save As
longstatus = Part.SaveAs3(« C:\Users\bguyetand\Desktop\Pièce1.DXF », 0, 2)
’ Close Document
Set swDrawing = Nothing
Set Part = Nothing
swApp.CloseDoc « Pièce1 - Feuille1 »
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 0
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 « Pièce1.SLDPRT », False, longstatus
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
’ Close Document
Set swPart = Nothing
Set Part = Nothing
swApp.CloseDoc « Pièce1.SLDPRT »
End Sub
Mon problème est qu’actuellement, quand je lance cette maccro, elle m’ouvre ma pièce test que j’avais créé (Un cube simple) pour dérouler les étapes.
De plus elle enregistre tous sur le bureau.
Est il possible de m’expliquer dans ma maccro :
- Comment je peux remplacer ma pièce « test » par la pièce « active » sur mon écran ?
- Comment faire pour enregistrer les fichiers dans le dossier de la pièce ouverte ?
J’espère avoir été assez clair dans mes explications
merci d’avance pour le temps que vous m’accorderez !!!