externe iLogic Regel über Multifunktionsleiste ausführen

externe iLogic Regel über Multifunktionsleiste ausführen

ralf.rosenburg
Enthusiast Enthusiast
1.806Aufrufe
4Antworten
Nachricht 1 von 5

externe iLogic Regel über Multifunktionsleiste ausführen

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Leute,

ist es möglich, externe Regeln nicht über einen Schalter (globales Formular), im iLogic-Browser, sondern über einen Schalter in der Multifunktionsleiste auszuführen?

Den Schalter müsste ich wohl über die VBA Schnittstelle erstellen. Dann diesem Schalter die externe Regel zuordnen??

Da ich viele kleine i-Logic Routinen habe, würde ich diese gerne übersichtlich in der Multifunktionsleiste positionieren.

Vielleicht weiß jemand ob und wie das geht.

Vielen Dank

Ralf Rosenburg

0 „Gefällt mir“-Angaben
Akzeptierte Lösungen (1)
1.807Aufrufe
4Antworten
Antworten (4)
Nachricht 2 von 5

S_May
Mentor
Mentor

Hallo @ralf.rosenburg ,

 

hier die Lösung dazu von Dennis makros-in-inventor-einbinden.

Jürgen Wagner hat auf seiner Seite auch noch einen Berg an Anleitungen dazu.

0 „Gefällt mir“-Angaben
Nachricht 3 von 5

ralf.rosenburg
Enthusiast
Enthusiast

Hallo S_May,

Danke für deine schnelle Antwort. Meine Frage war aber nach der Einbindung einer iLogic Regel.

unten ein beispielhafter iLogic Code. Muss ich diesen und wenn ja wie überarbeiten, dass ich ihn über die Multifunktionleiste ausführen kann.

Mit der Anleitung von Dennis bin ich jedenfalls nicht weitergekommen.

Vielen Dank.

If iProperties.Value("Custom","Teilekategorie") = "Normteil" Then
	MessageBox.Show("zu Normteilen aus dem Inhaltscenter, können keine Abwicklungen erzeugt oder ausgelesen werden.", "Info")
End If
If iProperties.Value("Custom","Teilekategorie") = "Halbzeug" Then
	MessageBox.Show("zu Halbzeugen aus dem Inhaltscenter, können keine Abwicklungen erzeugt oder ausgelesen werden.", "Info")
End If

If iProperties.Value("Custom","Teilekategorie") <> "Normteil" Then
	If iProperties.Value("Custom","Teilekategorie") <> "Halbzeug" Then
		'Abwicklung_Länge=(Round(SheetMetal.FlatExtentsLength,2))
		Abwicklung_Länge = (Round (SheetMetal.FlatExtentsLength, 1))
		'MessageBox.Show(Abwicklung_Länge, "Title")

		Abwicklung_Breite = (Round (SheetMetal.FlatExtentsWidth, 1))
		'MessageBox.Show(Abwicklung_Breite, "Title")
		
		Stärke = Parameter("Stärke")
		'MessageBox.Show(Stärke, "Title")		
		iProperties.Value("Custom", "Abwicklung_Länge") = Abwicklung_Länge
		iProperties.Value("Custom", "Abwicklung_Breite")= Abwicklung_Breite
		iProperties.Value("Custom", "Ro_Beschreibung_Blech")= Abwicklung_Länge & " x " & Abwicklung_Breite & " x " & Stärke & "mm"
		iProperties.Value("Custom", "Ro_Beschreibung") = iProperties.Value("Custom", "Ro_Beschreibung_Blech")
		iProperties.Value("Custom", "Abwicklung_Fläche")=(Round(SheetMetal.FlatExtentsArea, 2))
	End If
End If
0 „Gefällt mir“-Angaben
Nachricht 4 von 5

Sergio.D.Suárez
Mentor
Mentor
Akzeptierte Lösung

Hallo vielleicht können diese Informationen nützlich sein, Grüße

 

https://forums.autodesk.com/t5/inventor-customization/run-external-ilogic-rule-using-macro/m-p/78311...


Please accept as solution and give likes if applicable.

I am attaching my Upwork profile for specific queries.

Sergio Daniel Suarez
Mechanical Designer

| Upwork Profile | LinkedIn

Nachricht 5 von 5

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Sergio,

vielen Dank für deinen Link. Das funktioniert perfekt. Ist ne tolle Sache!

Ich habe den Pfad der Regel mit in den Code geschrieben. So funktioniert das auch und ich weiß gleich wo die Regel überhaupt steht. Ist für mich übersichtlicher.

Ich habe den VBA Code mal unten angehängt.

 

Public Sub Parameter_erstellen()
'From https://www.cadlinecommunity.co.uk/hc/en-us/articles/115000859309
Dim addIn As ApplicationAddIn
Dim addIns As ApplicationAddIns
Set addIns = ThisApplication.ApplicationAddIns
    For Each addIn In addIns
        If InStr(addIn.DisplayName, "iLogic") > 0 Then
                        addIn.Activate
            Dim iLogicAuto As Object
            Set iLogicAuto = addIn.Automation
            Exit For
        End If
    Next
Debug.Print addIn.DisplayName
 
 
Dim RuleName1 As String
EXTERNALrule1 = "Z:\Vorlagen\Inventor\iLogic\Regeln\externe Regeln\Parameter definieren\Werte für fx-Parameter Teilekategorie eingeben"
EXTERNALrule2 = "Z:\Vorlagen\Inventor\iLogic\Regeln\externe Regeln\Parameter definieren\Werte für fx-Parameter Abmessungen definieren"

'Dim RuleName2 As String
'INTERNALrule = "Rule0"
 
  Dim oDoc As Document
 
  Set oDoc = ThisApplication.ActiveDocument
  If oDoc Is Nothing Then
    MsgBox "Missing Inventor Document"
    Exit Sub
  End If
 
'iLogicAuto.RunRule oDoc, INTERNALrule 'for internal rule
iLogicAuto.RunExternalRule oDoc, EXTERNALrule1 'for external rule
iLogicAuto.RunExternalRule oDoc, EXTERNALrule2 'for external rule

End Sub