- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Melden
Hallo Zusammen,
ich möchte gerne über eine iLogic Regel 2 bestimmte Arbeitsebenen in einem Beuteil ein- bzw. ausblenden.
Im VBA habe ich schon einen gewissen Ansatz gefunden, aber ich laufe dabei noch auf einen kleinen Fehler, da der Originalcode sich auf eine Baugruppe bezog.
Da ich VBA erst seit letzter Woche etwas näher kennengelernt habe, hoffe ich, das Ihr mir vielleicht bei der Fehlersuche bzw. Übersetzung nach iLogic etwas helfen könntet.
Anbei findet Ihr den Code und das Bauteil:
VBA:
Option Explicit
Public Sub Workplane_Visible()
'Deklaration
Dim oApp As Application
Dim oPart As PartDocument
Dim oPara_WPV As Inventor.Parameter
Dim c As PartComponentDefinition
Dim occ As ComponentOccurrence
'Zuweisung
Set oApp = ThisApplication
Set oPart = oApp.ActiveDocument
Set c = oPart.ComponentDefinition
Set oPara_WPV = c.Parameters.Item("Workplane_Replacement_Visible")
For Each occ In c.Occurrences
Dim d As Document
Set d = occ.Definition.Document
If oPara_WPV = True Then
d.ComponentDefinition.WorkPlanes.Item("YZ_Workplane_Replacement").Visible = True
d.ComponentDefinition.WorkPlanes.Item("XZ_Workplane_Replacement").Visible = True
ElseIf oPara_WPV = False Then
d.ComponentDefinition.WorkPlanes.Item("YZ_Workplane_Replacement").Visible = False
d.ComponentDefinition.WorkPlanes.Item("XZ_Workplane_Replacement").Visible = False
End If
'occ.Definition.Document
Next
oPart.Update
End Sub
iLOgic:
Sub Main()
'Deklaration
Dim oApp As Application:oApp = ThisApplication
Dim oPart As PartDocument:oPart = oApp.ActiveDocument
Dim c As PartComponentDefinition:c = oPart.ComponentDefinition
Dim oPara_WPV As Inventor.Parameter:oPara_WPV = c.Parameters.Item("Workplane_Replacement_Visible")
Dim occ As ComponentOccurrence
For Each occ In c.Occurrences
Dim d As Document:d = occ.Definition.Document
If Workplane_Replacement_Visible = True Then
d.ComponentDefinition.WorkPlanes.Item("YZ_Workplane_Replacement").Visible = True
d.ComponentDefinition.WorkPlanes.Item("XZ_Workplane_Replacement").Visible = True
ElseIf Workplane_Replacement_Visible = False Then
d.ComponentDefinition.WorkPlanes.Item("YZ_Workplane_Replacement").Visible = False
d.ComponentDefinition.WorkPlanes.Item("XZ_Workplane_Replacement").Visible = False
End If
'occ.Definition.Document
Next
oPart.Update
End Sub
Im iLOgic scheint er mir die Regel überhaupt nicht mit dem Parameter zu verknüpfen und auch in VBA schmeißt er mir keine Fehlermeldung aus.
Vielleicht seh ich auch vor lauter Wald den Baum nicht mehr.
Jedenfalls würde ich mich freuen, wenn ihr mal ein Auge auf den Code werfen könntet.
Gruß Sven
Gelöst! Gehe zur Lösung