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 :













