Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
analistacad
710 Views, 6 Replies

COLOR CHANGE FOLDING LINE

Hi friends
Can someone help me, how to create an ilogic rule to change the double lines UP BLUE and DOWN RED in Inventor planes?

 

I WANT THE LINE TO ALSO CHANGE COLOR

Thanks

 

 

JelteDeJong
in reply to: analistacad

Maybe this is what you need:

Sub Main()
    Dim doc As DrawingDocument = ThisDoc.Document

    ChangeLayer(doc, DrawingEdgeTypeEnum.kBendUpEdge, "ARRIBA")
    ChangeLayer(doc, DrawingEdgeTypeEnum.kBendDownEdge, "ABAJO")
End Sub

Private Sub ChangeLayer(doc As DrawingDocument, EdgeType As DrawingEdgeTypeEnum, layerName As String)
    Dim layer As Layer = doc.StylesManager.Layers.Item(layerName)

    Dim segments = doc.Sheets.Cast(Of Sheet).
        SelectMany(Function(sheet) sheet.DrawingViews.Cast(Of DrawingView)).
        SelectMany(Function(view) view.DrawingCurves.Cast(Of DrawingCurve)).
        Where(Function(curve) curve.EdgeType = EdgeType).
        SelectMany(Function(curve) curve.Segments.Cast(Of DrawingCurveSegment)).
        ToList()

    For Each segment As DrawingCurveSegment In segments
        segment.Layer = layer
    Next
End Sub

Edit:

improved the rule

Jelte de Jong
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature


Blog: hjalte.nl - github.com

analistacad
in reply to: JelteDeJong

Uff !!! Excellent work friend !! Thanks
- A question for version 2017 is it possible?
- It is possible to leave a single rule see image

 

- What should I study to have ilogic proficiency?

 

Thanks friend Great help a greeting from
Colombia  :grinning_face_with_big_eyes::folded_hands::handshake:

analistacad
in reply to: JelteDeJong

Hello

Friend Jelte DeJong

 

I get this error, see image

 

Error in rule 3, in document: SER1-00-A00.idw
Cannot find the public member "Cast" in the type Sheets

 

greeting

JelteDeJong
in reply to: analistacad

In the code, I use the LINQ library. I'm not sure if that library is already available in Inventor 2017.  This is the same rule only without the helper functions from the LINQ library.

Sub Main()
    Dim doc As DrawingDocument = ThisDoc.Document

    ChangeLayer(doc, DrawingEdgeTypeEnum.kBendUpEdge, "ARRIBA")
    ChangeLayer(doc, DrawingEdgeTypeEnum.kBendDownEdge, "ABAJO")
End Sub

Private Sub ChangeLayer(doc As DrawingDocument, EdgeType As DrawingEdgeTypeEnum, layerName As String)
    Dim layer As Layer = doc.StylesManager.Layers.Item(layerName)

    For Each sheet As Sheet In doc.Sheets
        For Each view As DrawingView In Sheet.DrawingViews
            For Each curve As DrawingCurve In View.DrawingCurves
                If (curve.EdgeType = EdgeType) Then
                    For Each segment As DrawingCurveSegment In curve.Segments
                        segment.Layer = layer
                    Next
                End If
            Next
        Next
    Next
End Sub

Jelte de Jong
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature


Blog: hjalte.nl - github.com

analistacad
in reply to: JelteDeJong

Friend, I am very grateful to you, thank you very much, it already worked for me!:grinning_face_with_big_eyes:

 

 

from Colombia a cordial greeting

analistacad
in reply to: analistacad

Friend, I am very grateful to you, thank you very much, it already worked for me!

from Colombia a cordial greeting