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.

Règle iLogic en utilisant le Ruban-01

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.

Règle iLogic en utilisant le Ruban-02

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

Module1.PDF_Export.Small en 16x16 pixels pour la petite icône  Module1.PDF_Export.Small.bmp et

Module1.PDF_Export.Large 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

Règle iLogic en utilisant le Ruban-11

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

Règle iLogic en utilisant le Ruban-03

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.

Règle iLogic en utilisant le Ruban-07

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)
__________________________________________
-Le fichier DxfOut.ini pour la règle Export_DXF.iLogicVb
__________________________________________
[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,
__________________________________________
-Ci-dessous la règle PDF_Export.iLogicVb
__________________________________________
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)
______________________________________________________

Règle iLogic en utilisant le Ruban-05

Règle iLogic en utilisant le Ruban-06

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Il faut enfin ajouter les "Commandes utilisateur" au Ruban dans un environnement de mise en plan.Règle iLogic en utilisant le Ruban-09

Nous obtenons :

Règle iLogic en utilisant le Ruban-10

 

Ces articles peuvent vous intéresser :

Aplicit vous épaule dans tous les métiers
de l'Industrie

Leave A Comment

Aller en haut