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 »