Image Une Avril 2019

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 16×16 pixels pour la petite icône  Module1.PDF_Export.Small.bmp et

Module1.PDF_Export.Large en 32×32 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 SubPublic 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

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.