Générer massivement des DXF

Générer massivement des DXF

Anonymous
Non applicable
3 595 Visites
34 Réponses
Message 1 sur 35

Générer massivement des DXF

Anonymous
Non applicable

Bonjour a tous,

 

Je souhaite générer massivement des fichiers .dxf a l’échelle 1 pour envoyer au machine de découpe laser.

 

Je connais l'outils "clic droit/exporter la face comme..." puis enregistrer le .dxf . Ca fonctionne très bien.

 

Je souhaiterai savoir si il existe un moyen simple de créer une automatisation, qui ferai cette action sur une liste de plusieurs dizaines d'.ipt ? 

 

Merci

 

Ben

0 J'aime
Solutions acceptées (4)
3 596 Visites
34 Réponses
Replies (34)
Message 2 sur 35

gmassart
Collaborator
Collaborator

Bonjour

Je réfléchis actuellement à ce type de macro, mais je n'ai pas le temps de développer pour le moment.

Mes idées :

-dans les fichiers ipt, il faut créer une ipropriété "sendtodxf" qui contient l'identifiant de la face à exporter > sélectionner la face, déclencher la macro

-Faire une boucle sur les fichiers ipt que l'on souhaite exporter, dans la boucle on vérifier l'existence de l'ipropriété "sendtodxf" et on fait l'export pour chaque fixer vers un répertoire dédié avec comme nom le nom du fichier par exemple

 

Il existe peut être déjà quelque chose, il va falloir fouiller le forum d'à côté 

Guillaume MASSART
AFFIVAL SAS
Inventor Pro 2022
EESignature

0 J'aime
Message 3 sur 35

Anonymous
Non applicable

Bonjour et merci de ta réponse,

 

j'ai trouvé cela : https://apps.autodesk.com/INVNTOR/fr/Detail/Index?id=7498862835390395853&appLang=en&os=Win32_64&auto...

 

Je suis entrain de le tester... 

 

Je vous tiens au courant si cela répond a mon besoin.

 

Merci,

0 J'aime
Message 4 sur 35

gmassart
Collaborator
Collaborator

Ca ne fonctionnera qu'avec les fichiers ipt tôlerie

On utilise parfois les exports dxf sur des multicorps ou des pièces non pliées.

D'ailleurs il faut aussi que l'on règle l'épaisseur de la tôle, mais bon pour ça il suffit d'avoir un paramètre "épaisseur" et de le récupérer à l'export pour nommer le fichier par exemple

Guillaume MASSART
AFFIVAL SAS
Inventor Pro 2022
EESignature

0 J'aime
Message 5 sur 35

Anonymous
Non applicable

Oui en effet, je m'en apercois.. c'est pas idéal. 

 

J'ai 180 fichiers .ipt reçu d'un client a traiter, donc dans cette optique il faudrait que je convertisse tout ça en tôlerie ET de m'assurer que le paramètre épaisseur est correct.... 

 

J'ai plus vite fait d'exporter ma face désiré en dxf. 

 

Je suis preneur si jamais tu parviens a créer une iLogic ! 

 

Merci,

0 J'aime
Message 6 sur 35

ThomasB44
Mentor
Mentor

Huum pour faire un DXF il faut un dessin non ?

Donc si tu as reçu un IPT, il faut poser des vues sur un dessin puis faire enregistrer sous / DXF

 

Moi je verrai ça comme cela en iLogic :

  1. Créer un dessin avec toutes les vues (face, gauche, droite, dessus, dessous, arrière), peu importe la pièce.
  2. Ouvrir ce dessin
  3. Lancer la règle
    1. La règle demande un emplacement de fichiers (où on a préalablement stocké les IPT à transférer en DXF)
    2. Pour chaque pièce *.ipt présente dans le dossier
      1. Remplacement du modèle
      2. Enregistrement sous dxf
    3. Pièce suivante

Est ce que ça conviendrait ?


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 7 sur 35

Anonymous
Non applicable

Pas vraiment, je m'explique.

 

En effet, si DXF, dessin il doit y avoir... mais en fait certain client font des mises en plan de plusieurs pièces différentes sur une même feuille, oui c'est pas terrible, mais ça leur fait gagner beaucoup de temps.

 

En contre partie, pour les personnes qui font la mise en production et fabrication çà génère du travail supplémentaire, mais malheureusement on ne pourra pas faire autrement.  

 

Je verrai plus la iLogic comme suit: 

 

Ouvre la pièce

sélectionne la face parallèle au plan X,Y

génère un DXF.

Fichiers suivant

 

Est-ce possible ?

 

Merci,

0 J'aime
Message 8 sur 35

ThomasB44
Mentor
Mentor

A ma connaissance, l'API permet d'interagir avec la sélection de l'utilisateur, mais pas de sélectionner une face suivant une direction...

On pourrait demander à l'utilisateur de sélectionner la bonne face, bien que je ne sache pas comment faire à ce jour, et ça ne serait pas très pratique ni rapide...

 

Et si tu poses une vue de dessin normale au plan XY ? Ça ne convient pas ?


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 9 sur 35

Anonymous
Non applicable

En effet, ça ne serait pas très pratique. Je pense que pour mon cas d'aujourd'hui, je vais simplement ouvrir une par une mes (90) pièces .ipt , sélectionner la bonne face puis exporter en dxf.

 

Cependant, pour le plus long terme, et puisque nous développons aussi nos propres produit a l'interne, j'aimerai avoir un outils (macro) qui génère automatiquement un .dxf a partir de mon dessin. 

 

Je suis, comme tu as certainement pu le remarquer, entrain de préparer la configuration général des outils et standard Inventor de ma compagnie... 

 

J'ai dans l'idée d'imposer a quiconque créer une pièce amené a être découpé en 2D, de créer l'esquisse de base sur le plan X, Y ( LA bonne pratique) dans le but de pouvoir justement utiliser une macro efficacement. 

 

Je ne suis pas encore sur de comment est-ce que la macro devrait fonctionner, mais j'avais pensé a ça : 

 

Dans le dessin de détail .idw et une fois celui-ci fini (avec toutes les côtes, vues, cadre, etc.. ), une règle exécuté soit a l'aide d'un bouton ou d'un raccourcis clavier:

 

- Crée une deuxième feuille (format très grand) 

- Ouvre l'outil "placer les vues/Base" et la fenêtre "vue de dessin" 

- L'utilisateur sélectionne la bonne face (Idéalement celle proposé par défaut sur le plan X,Y), puis clic sur la feuille. ( a ce moment la, il faudrait que l'échelle soit toujours 1:1)

- la fenêtre "vue de dessin" se ferme.

- Un texte s'inscrit automatiquement sous la vue en question, et indique le numéro de pièce, la matière, (et deux ou trois paramètres personnalisé (Largeur, Longueur)) 

Et la

- Soit exporte ça en .dxf (Echelle 1;1) vers un dossier réseau. puis reviens a la première feuille.

- Soit enregistre la feuille, puis reviens a la première feuille. (Puis un Job processor externe a l'utilisateur, ouvre chaque dessin, puis exporte la deuxième page en .dxf)

 

c'est une idée pour parvenir a mes fins, je ne sais pas si c'est la meilleur et/ou la plus simple a intégrer. 

 

Qu'en dis tu ?

 

Merci,

 

 

 

 

 

 

 

0 J'aime
Message 10 sur 35

ThomasB44
Mentor
Mentor

Salut @Anonymous

Je pense qu'il n'y a rien d'impossible dans ce que tu as écris.

Ma première réaction, je pense qu'il y a plusieurs personnes qui ont déjà développé des outils similaires, en tout cas j'ai déjà vu ça sur le forum en anglais.

Je vais essayer de te retrouver des exemples. Smiley clignant de l'œil

 

Autre point, si tu utilises une pièce de tôlerie, il suffit de faire une mise à plat, la vue créée à partir de la mise à plat sera forcément la bonne.

 

J'ai une question, est on obligé de régler l'échelle de la vue sur 1 ? Il me semble que l'export en DXF s'adapte automatiquement non ? Enfin, je ne gère pas la partie laser, je peux comprendre si la réponse est oui Smiley clignant de l'œil

 

Ensuite je vois plusieurs possibilités,

  1. Soit comme tu le dis tu créés une 2ème feuille dans ton gabarit de dessin, avec le petit cartouche qui va bien pour les info importantes, la macro peut poser la vue mise à plat automatiquement, changer de feuille, exporter en DXF, revenir à la 1ere feuille.
  2. Soit tu créés un dessin modèle avec une 1ère pièce, et au lancement de la macro, ce dessin modèle s'ouvre, remplace la référence du modèle, et donc mets à jour les info, puis sauvegarde en DXF, sauve, et ferme le dessin modèle.
  3. On peut aussi, directement dans l'environnement de la pièce, exporter une mise à plat en DXF, ça peut être intéressant aussi

Pour conclure, il faut bien réfléchir, car une fois que tu auras adopté un système, il faudra vivre avec ! Smiley très heureux


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 11 sur 35

ThomasB44
Mentor
Mentor

Outils existants :

SmartInventor permet d'exporter en DXF depuis un dessin ou une pièce de tôlerie, avec des options de configuration, il n'y a qu'à cliquer sur un bouton.

Il y a aussi DXF Flat Pattern Exporter: Inventor 2011 – 2018

 

Haaa j'ai retrouvé une règle iLogic faite par Curtis : https://forums.autodesk.com/t5/inventor-customization/save-all-associated-files-to-dxf/m-p/6056485/h...


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

Message 12 sur 35

Anonymous
Non applicable

J'ai testé DXF Flat pattern et malheureusement il ne répond pas a mon besoin.  Smiley triste

 

Il est assez contraignant, explication ici : 


gmassart a écrit :

Ca ne fonctionnera qu'avec les fichiers ipt tôlerie

On utilise parfois les exports dxf sur des multicorps ou des pièces non pliées.

D'ailleurs il faut aussi que l'on règle l'épaisseur de la tôle, mais bon pour ça il suffit d'avoir un paramètre "épaisseur" et de le récupérer à l'export pour nommer le fichier par exemple


 

J'ai testé la règle de curtis, et c'est très intéressent pour générer des DXF a partir de dessin !! Peux-ton imaginer générer des DWG au lieu de DXF ? Smiley heureux

 

 

Apres longue réflexion, je pense que mettre une deuxième feuille avec la vue pour découpe puis générer le DXF, (soit le point 1), répondrait parfaitement a mes différents besoin, client interne et externe. Smiley très heureux

 

@ThomasB44 pourrais-tu m'aider ?

 

Merci !

 

0 J'aime
Message 13 sur 35

ThomasB44
Mentor
Mentor

Et as tu testé SmartInventor ?

https://www.youtube.com/watch?v=TWAeIDoTQ3w

 

Donc si je reformule, tu souhaites :

  • La même règle que celle de Curtis mais en générant un DWG plutôt qu'un DXF ?
  • Je suppose que tu souhaites un DWG Autocad et non Inventor ?
  • Donc la règle ne devra exporter que la 2ème feuille d'un dessin ?
  • Ou la dernière feuille ?
  • Tu as vu les conditions du code de Curtis ?
    • La conversion se fait à condition que le nom du dessin, en idw, soit le même (sauf pour l'extension) que le nom de la pièce/ensemble
    • La règle doit être lancée depuis un assemblage de plus haut niveau

Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 14 sur 35

Anonymous
Non applicable

En effet, j'aimerai bien avoir SmarInventor pour me dépanner, je ne trouve nul part pour le télécharger, as-tu un lien ?

 

Alors oui, je voudrais, deux choses distinctes: 

 

1/  Pour exporter mes plan .idw en .dwg

  • La même règle que celle de Curtis mais en générant un DWG plutôt qu'un DXF ? Oui
  • Je suppose que tu souhaites un DWG Autocad et non Inventor ? Oui, et si possible exporter dans l'espace Objet a l'échelle 1 de la vue du dessin.
  • Tu as vu les conditions du code de Curtis ?
    • La conversion se fait à condition que le nom du dessin, en idw, soit le même (sauf pour l'extension) que le nom de la pièce/ensemble. C'est parfait
    • La règle doit être lancée depuis un assemblage de plus haut niveau, C'est parfait, ca fait gagner beaucoup de temps !

 

2/ Pour générer mes fichiers de découpe (DXF)

  • Donc la règle ne devra exporter que la 2ème feuille d'un dessin ? Oui
  • Ou la dernière feuille ? La 2ème serai Ok, mais si ça change rien, pourquoi pas la dernière, oui

Merci ! Smiley heureux

0 J'aime
Message 15 sur 35

ThomasB44
Mentor
Mentor

SmartInventor Easy Export n'est plus disponible dans le Web Autodesk Exchange Apps Smiley surpris

Je l'ai sur ma machine...

Tu peux encore le trouver sur le web en tapant les mots clés : SmartInventor Easy Export

 

Je vais regarder pour ton code...Smiley clignant de l'œil

 


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 16 sur 35

ThomasB44
Mentor
Mentor

Un premier jet très simple...j'ai juste récupéré le code initial et changé les variables pour exporter en DWG.

Toute la configuration de l'export se fait grâce au fichier de configuration que je t'ai joins.

 

Capture.JPG

Comme tu le vois, la configuration n'exporte que la feuille 2, et transfère la vue (ou les vues) dans l'espace objet en réglant l'échelle sur 1:1.

Petit bonus je pense, car pas de cotes, de cadre ou de cartouche, et pas besoin d'avoir la vue à l'échelle 1.

 

Ensuite la règle donne ceci, et il faudra choisir l'emplacement du fichier de configuration :

'define the active document as an assembly file
Dim oAsmDoc As AssemblyDocument
oAsmDoc = ThisApplication.ActiveDocument
oAsmName = Left(oAsmDoc.DisplayName, Len(oAsmDoc.DisplayName) -4)

'check that the active document is an assembly file
If ThisApplication.ActiveDocument.DocumentType <> kAssemblyDocumentObject Then
MessageBox.Show("Please run this rule from the assembly file.", "iLogic")
Exit Sub
End If

'get user input
RUsure = MessageBox.Show ( _
"This will create a DWG file for all of the asembly components that have drawings files." _
& vbLf & "This rule expects that the drawing file shares the same name and location as the component." _
& vbLf & " " _
& vbLf & "Are you sure you want to create DWF Drawings for all of the assembly components?" _
& vbLf & "This could take a while.", "iLogic  - Batch Output DWGs ",MessageBoxButtons.YesNo)

If RUsure = vbNo Then
Return
Else
End If
oPath = ThisDoc.Path
'get DWG target folder path
oFolder = oPath & "\" & oAsmName & " DWG"
'Check for the DWG folder and create it if it does not exist
If Not System.IO.Directory.Exists(oFolder) Then
    System.IO.Directory.CreateDirectory(oFolder)
End If

'[ DWG setup
'Get the DWG translator Add-In.
Dim DWGAddIn As TranslatorAddIn
DWGAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC2-122E-11D5-8E91-0010B541CD80}")
'Set a reference to the active document (the document to be published).
Dim oDocument As Document
oDocument = ThisApplication.ActiveEditDocument
Dim oContext As TranslationContext
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = kFileBrowseIOMechanism
' Create a NameValueMap object
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
' Create a DataMedium object
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium

'Check whether the translator has 'SaveCopyAs' options
If DWGAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then
	Dim strIniFile As String
	strIniFile = "C:\temp\Config Vue base echelle 1-1.ini"
	' Create the name-value that specifies the ini file to use.
	oOptions.Value("Export_Acad_IniFile") = strIniFile
End If
'] end of DWG setup

'[ ComponentDrawings 
	'look at the files referenced by the assembly
	Dim oRefDocs As DocumentsEnumerator
	oRefDocs = oAsmDoc.AllReferencedDocuments
	Dim oRefDoc As Document
	'this expects that the model has a drawing of the same path and name 
For Each oRefDoc In oRefDocs
	idwPathName = Left(oRefDoc.FullDocumentName, Len(oRefDoc.FullDocumentName) - 3) & "idw"
	'check to see that the model has a drawing of the same path and name 
	If(System.IO.File.Exists(idwPathName)) Then
		Dim oDrawDoc As DrawingDocument
		oDrawDoc = ThisApplication.Documents.Open(idwPathName, True)
		oFileName = Left(oRefDoc.DisplayName, Len(oRefDoc.DisplayName) -3)
		On Error Resume Next ' if DWG exists and is open or read only, resume next
		'Set the DWG target file name
		oDataMedium.FileName = oFolder & "\" & oFileName & "dwg"
		'Write out the DWG
		Call DWGAddIn.SaveCopyAs(oDrawDoc, oContext, oOptions, oDataMedium)
		'close the file
		oDrawDoc.Close
	Else
	'If the model has no drawing of the same path and name - do nothing
	End If
Next
'] End of ComponentDrawings 

'[ Top Level Drawing 
	oAsmDrawing = ThisDoc.ChangeExtension(".idw")
	oAsmDrawingDoc = ThisApplication.Documents.Open(oAsmDrawing, True)
	oAsmDrawingName = Left(oAsmDrawingDoc.DisplayName, Len(oAsmDrawingDoc.DisplayName) -3)
	'write out the DWG for the Top Level Assembly Drawing file
	On Error Resume Next ' if DWG exists and is open or read only, resume next
	'Set the DWF target file name
	oDataMedium.FileName = oFolder & "\" & oAsmDrawingName & "dwg"
	'Write out the DWG
	Call DWGAddIn.SaveCopyAs(oAsmDrawingDoc, oContext, oOptions, oDataMedium)
	'Close the top level drawing
	oAsmDrawingDoc.Close
'] Top Level Drawing 

MessageBox.Show("New Files Created in: " & vbLf & oFolder, "iLogic")
'open the folder where the new ffiles are saved
'Shell("explorer.exe " & oFolder,vbNormalFocus)

Que penses tu de ce premier essai ?


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 17 sur 35

ThomasB44
Mentor
Mentor
Solution acceptée

Comme évoqué, il y a aussi Inventor Drawing Porter qui est pas mal du tout !

Et c'est une application Autodesk :

https://apps.autodesk.com/INVNTOR/fr/Detail/Index?id=3275134152794222964&appLang=en&os=Win32_64

 

Capture.JPG

 

Par contre il n'y a pas d'options pour les DXF...


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

Message 18 sur 35

Anonymous
Non applicable

Salut @ThomasB44 et Merci !

 

J'ai essayé d’exécuté la règle et j'ai ce message d'erreur qui apparaît : 

 

image.png

 

Y'a t'il quelques chose que j'ai oublié ?

 

Merci ! 

0 J'aime
Message 19 sur 35

Anonymous
Non applicable

ThomasB44 a écrit :

Comme évoqué, il y a aussi Inventor Drawing Porter qui est pas mal du tout !

Et c'est une application Autodesk :

https://apps.autodesk.com/INVNTOR/fr/Detail/Index?id=3275134152794222964&appLang=en&os=Win32_64

 

Capture.JPG

 

Par contre il n'y a pas d'options pour les DXF...


Oui je l'ai un peu essayé, ça pourrait être une bonne alternative pour généré rapidement des DWG. Merci !

0 J'aime
Message 20 sur 35

ThomasB44
Mentor
Mentor

As tu créé un fichier de configuration ?

Ou bien as tu utilisé celui que j'ai joins ?

As tu renseigné l'emplacement de ce fichier dans le code ? (je l'avais mis en gras plus haut)

 

Edit : et oui pour drawing porter, il n'y a pas d'option DXF...c'est pour ça que je n'y avais pas pensé au début...


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime