Création macro ouverture fichier solidwork aide macro

Bonjour,

Je vous explique mon problème, j'ai actuellement un fichier excel à partir du quel je désire ouvrir mes 3D ( ce que j'arrive a faire)

 ensuite ....les enregistrer en format .DXf dans un dossier précis dont voici le chemin  "G:\DAO\Iges-fao" et en les renommant avec le code ERP qui apparait dans la carte de données ainsi que l'indice (Révision)

j'ai commencé a écrire le début de la macro mais je bloque au niveau de l'enregistrement du 3D en DXF :-( 

je vous met le code en pièce jointe ainsi que l'imprime écran de la carte de données

Pouvez vous m'aider

 
   Dim choix_liste As String     'type de pi?ce choisi dans la liste d?roulante pour l'ouverture des pi?ces
   Dim nb_de_piece As Integer    'nombre de lignes de la colonne F correspondant aux nombres de pi?ces
   Dim increment As Integer      'incr?ment de 1 pour effectuer la boucle de recherche ligne par ligne sur la colonne F
   Dim myCell As String          'variable pour fusionner l'incr?ment et la colonne F pour la plage de recherche
   Dim path As String            'chemin du dossier d'enregistrement de la pi?ce
   Dim nom As String             'nom de la pi?ce
   Dim path_complete As String   'chemin complet de la pi?ce
   Dim myBool As Boolean
   Dim myError As Long, myWarning As Long
   Dim swApp As Object
   Dim Part As Object
   Dim longstatus As Long
 
 
 'ouverture de SolidWorks :
 
   myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe", vbNormalFocus)
   Application.Wait Now + TimeValue("0:00:10")
 
Set swApp = CreateObject("SldWorks.Application")
 
 
 'Set swApp = Application.SldWorks

 
  Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.OpenDoc6("C:\_FICHETBAUCHE\03 projets\01 safes\pbz00371\technical file\02 cad\millium-newton feu, cadre modifi? caisse ext pop?e\SW00239874.sldprt", 1, 1, "", myError, myWarning)
    
    Set Part = swApp.ActiveDoc
  
    ' Named View
Part.ShowNamedView2 "*Dessus", 5
Part.ViewZoomtofit2

Set Part = swApp.ActiveDoc

' Save As
Set swModel = Part.SaveAs3("G:\DAO\Iges-fao\SW00246182.DXF", 0, 0)

' Save As
'swModel.SaveAs2 Left(path, (Len(path) - 6)) & "dxf", 0, True, False
 
' boucle a creer

'definition de la plage sur lequel va s'appliquer la macro :
 
'Initialisation de certaines variables:
 
   ' valeur de la conne x = "Nouveau" et Valeur de la colonne Y = " Fabriquée" et "Pièces/Opé panoplies"

   nb_de_piece = Application.WorksheetFunction.CountA(Feuil1.Range("$H:$H")) 'nombre de cellules non vide dans la colonne F, soit le nombre de pi?ces
   increment = 1
 

'For increment = 1 To der lign
 
  ' End If
 
'Next increment 'on passe ? la ligne suivante
 
End Sub

 

merci d'avance

 

 

 

 

 


image.docx

Bonjour,

Je vois que tu as un coffre Epdm donc à la remarque "je désire ouvrir mes 3D ( ce que j'arrive a faire)" je ne suis pas tout à fait d'accord, ta macro ne fonctionnera que si tes fichiers sont dans ton cache local sinon il faut utiliser les API Epdm (EPDM.Interop.epdm_namespace) pour se connecter au coffre-fort, chercher le fichier, le rapatrier dans le cache local puis le charger (sans parler des fonctions d'extraction, sauvegarde et archivage si besoin).
Ensuite, puisque tes variables sont exportées de Epdm vers les propriétés SW, tu peux utiliser la fonction "Get6" pour récupérer leurs valeurs.
Et enfin, pour enregistrer un modèle 3D en DWG ou DXF, il faut utiliser la fonction "ExportToDWG2".
Des exemples illustrants les utilisations de ces différentes fonctions sont à disposition sur les différents lien donnés ci-dessus.

Cordialement,

2 « J'aime »

Bonjour d.Roger 

Merci pour les remarques et conseil  moi qui pensait avoir trouvé :-(  ….

Pourrais tu me donner un peu d'aide pour écrire juste cette partie de la macro…. car je débute en vb et la je suis perdu …..

en gros je veux juste aller ouvri en en lecture seule un fichier sw00?????? qui se trouve dans le chemin suivant :"C:\_FICHETBAUCHE\03 projets\01 safes\pbz00371\technical file\02 cad\millium-newton feu, cadre modifi? caisse ext popée"

et ensuite l'enregistrer en .dxf à cette endroit "G:\DAO\Iges-fao et en le renomant avec le code ERP et le l'indice de la carte de données

et fermer le fichier ouvert en lecture seule 

merci beaucoup de ton aide en espérant que tu puisses m'aider juste pour cette partie de la macro

cordialement

sébastien

 

Bonjour,

Voici un exemple permettant de se connecter à un coffre fort Epdm et de charger un fichier dans SW, il faut que tu indique le nom de ton coffre fort et le nom de ton fichier à charger dans la macro. N'oublie pas de mettre les références "SldWorks xxxx Type Library" et "PDMWorks Entreprise xxxx Type Library" dans ta macro (Outils/références). 

Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim longstatus As Long
Dim longwarnings As Long
Dim Coffre as string
Dim Fichier as string

Sub main()

    myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe", vbNormalFocus)
    Application.Wait Now + TimeValue("0:00:10")
   
    Set swApp = CreateObject("SldWorks.Application")

    Dim Vault As New EdmVault5
    Dim File As IEdmFile5
    Dim Folder As IEdmFolder5

	Coffre = "x" 'Mettre le nom du coffre fort Epdm à la place du x
	Fichier = "x" 'Mettre le nom complet du fichier à la place du x

    Vault.LoginAuto Coffre, 0

    Set File = Vault.GetFileFromPath(Fichier, Folder)
    
    Set Part = swApp.OpenDoc6(Folder.LocalPath & "/" & File.Name, 1, 2, "", longstatus, longwarnings)
    
    Set Part = swApp.ActiveDoc
    
    Part.ViewZoomtofit2
    
    MsgBox Part.GetPathName

End Sub

 

Pour les autres fonctions tu as des exemples précis ICI pour la fonction Get6 et ICI pour la fonction ExportToDWG2. Pour fermer le fichier ouvert dans Sw il faut utiliser la fonction CloseDoc, il y a un exemple d'utilisation ICI .

Cordialement,

 

1 « J'aime »