Inventor Exécuter une macro ou une règle iLogic en utilisant le Ruban
Inventor Exécuter une macro ou une règle iLogic en utilisant le Ruban
Pour les macros ou règles iLogic fréquemment utilisées, il est beaucoup plus pratique de créer un bouton dans le Ruban pour les exécuter.
Ci-dessous Exporter PDF et DXF d'une mise en plan Inventor.
Pour créer un bouton, il faut que ces règles ou macros existent dans le projet VBA par défaut.
C'est le projet VBA qu'Inventor charge automatiquement à chaque démarrage.
Le projet VBA par défaut est défini à l'aide de l'onglet Fichier de la commande Options d'application, comme indiqué ci-dessous.
Dans ce cas, il s'agit du fichier Default.ivb dans le répertoire
C:\Users\Public\Documents\Autodesk\Inventor 2020\Macros
mais il peut s'agir de n'importe quel fichier .ivb selon la configuration CAO de votre installation.
Ensuite il faut créer 2 fichiers BMP
en 16x16 pixels pour la petite icône Module1.PDF_Export.Small.bmp et
en 32x32 pixels Module1.PDF_Export.Large.bmp pour la grande icône.
Le nom de l'image est important. Dans cet exemple, la macro ou règle s'appelle "PDF_Export.iLogicVb" et ses images sont les suivantes:
Module1.PDF_Export.Small.bmp et Module1.PDF_Export.Large.bmp où le nom est “NomModule.NomMacro.IconSize.bmp” où IconSize peut être “Large” ou “Small”
Attention au Majuscules et minuscules.
Ci-dessous le contenu du fichier default.ivb
Public Sub PDF_Export() RuniLogic ("C:\CAO_2020\Config_2020\Règles Externes\PDF_Export.iLogicVb") End Sub Public Sub DXF_Export() RuniLogic ("C:\CAO_2020\Config_2020\Règles Externes\DXF_Export.iLogicVb") End Sub Public Sub RuniLogic(ByVal RuleName As String) Dim iLogicAuto As Object Dim oDoc As Document Set oDoc = ThisApplication.ActiveDocument If oDoc Is Nothing Then MsgBox "Missing Inventor Document" Exit Sub End If Set iLogicAuto = GetiLogicAddin(ThisApplication) If (iLogicAuto Is Nothing) Then Exit Sub iLogicAuto.RunExternalRule oDoc, RuleName End Sub Public Function GetiLogicAddin(oApplication As Inventor.Application) As Object Dim addIn As ApplicationAddIn On Error GoTo NotFound Set addIn = oApplication.ApplicationAddIns.ItemById("{3bdd8d79-2179-4b11-8a5a-257b1c0263ac}") If (addIn Is Nothing) Then Exit Function addIn.Activate Set GetiLogicAddin = addIn.Automation Exit Function NotFound: End Function
Ici l'éditeur VBA d'Inventor avec le code du Module1
Les fichiers doivent se trouver dans le même répertoire que le fichier de projet VBA, comme indiqué plus haut.
Sur mon ordinateur, il s’agit de C:\Users\Public\Documents\Autodesk\Inventor 2020\Macros
Les règles PDF_Export.iLogicVb et DXF_Export.iLogicVb sont dans le dossier C:\CAO_2020\Config_2020\Règles Externes déclaré dans Inventor.
Ci-dessous la règle DXF_Export.iLogicVb
' Get the DXF translator Add-In. oPath = ThisDoc.Path oFileName = ThisDoc.FileName(False) Dim DXFAddIn As TranslatorAddIn DXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}") 'Set a reference to the active document (the document to be published). Dim oDocument As Document oDocument = ThisApplication.ActiveDocument
Dim oContext As TranslationContext oContext = ThisApplication.TransientObjects.CreateTranslationContext oContext.Type = IOMechanismEnum.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
If DXFAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then Dim strIniFile As String strIniFile = "C:\CAO_2020\Config_2020\Règles Externes\DxfOut.ini" oOptions.Value("Export_Acad_IniFile") = strIniFile End If
'Chemin pour enregistrement du pdf exemple dossier Fichiers DXF oFolder = oPath & "\DXF"
'Vérifiez le dossier DXF est cree si il n existe pas If Not System.IO.Directory.Exists(oFolder) Then System.IO.Directory.CreateDirectory(oFolder) End If
'Set the DXF target file name oDataMedium.FileName = oFolder & "\" & oFileName & ".dxf"
Call DXFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
[EXPORT SELECT OPTIONS] AUTOCAD VERSION=AutoCAD 2013 CREATE AUTOCAD MECHANICAL=No USE TRANSMITTAL=No USE CUSTOMIZE=No CUSTOMIZE FILE=C:\Users\Public\Documents\Autodesk\Inventor 2020\Compatibility\Support CREATE LAYER GROUP=No PARTS ONLY=No REPLACE SPLINE=Yes CHORD TOLERANCE=0,5 [EXPORT PROPERTIES] SELECTED PROPERTIES= [EXPORT DESTINATION] SPACE=Model SCALING=Geometry ALL SHEETS=Yes MAPPING=MapsBest MODEL GEOMETRY ONLY=Yes EXPLODE DIMENSIONS=No SYMBOLS ARE BLOCKED=Yes AUTOCAD TEMPLATE= DESTINATION DXF=Yes USE ACI FOR ENTITIES AND LAYERS=No ALLOW RASTER VIEWS=No [EXPORT LINE TYPE & LINE SCALE] LINE TYPE FILE=C:\Users\Public\Documents\Autodesk\Inventor 2020\Compatibility\Support\invISO.lin Continuous=Continuous;0, Dashed=Continuous;0, Dashed Space=Continuous;0, Long Dash Dotted=Continuous;0, Long Dash Double Dot=Continuous;0, Long Dash Triple Dot=Continuous;0, Dotted=Continuous;0, Chain=Continuous;0, Double Dash Chain=Continuous;0, Dash Double Dot=Continuous;0, Dash Dot=Continuous;0, Double Dash Dot=Continuous;0, Double Dash Double Dot=Continuous;0, Dash Triple Dot=Continuous;0, Double Dash Triple Dot=Continuous;0,
oPath = ThisDoc.Path oFileName = ThisDoc.FileName(False) 'sans extension oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById _ ("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}") oDocument = ThisApplication.ActiveDocument oContext = ThisApplication.TransientObjects.CreateTranslationContext oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism oOptions = ThisApplication.TransientObjects.CreateNameValueMap oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
oOptions.Value("All_Color_AS_Black") = 0 oOptions.Value("Remove_Line_Weights") = 1 oOptions.Value("Vector_Resolution") = 400 oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
'Option pages pour publication 'oOptions.Value("Custom_Begin_Sheet") = 2 'oOptions.Value("Custom_End_Sheet") = 4
'Chemin pour enregistrement du PDF (exemple ici sous dossier PDF) oFolder = oPath & "\PDF" 'Chemin enregistrement identique au fichier 'oFolder = oPath
'Vérifiez le dossier PDF et crée si il n'existe pas If Not System.IO.Directory.Exists(oFolder) Then System.IO.Directory.CreateDirectory(oFolder) End If
'Set the PDF target file name oDataMedium.FileName = oFolder & "\" & oFileName & ".pdf"
'Publish document oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
Il faut enfin ajouter les "Commandes utilisateur" au Ruban dans un environnement de mise en plan.
Nous obtenons :
Ces articles peuvent vous intéresser :