• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    Autodesk Inventor

    Reply
    Valued Contributor
    Posts: 56
    Registered: ‎09-25-2009
    Accepted Solution

    Turning lots of features on and off in ilogic

    396 Views, 5 Replies
    10-06-2010 08:39 AM

    Is there a better way to turn alot of features on and off than haveing it turn them on and off for each case?  I have put the code but this takes a while to process and I was wondering if there was a faster way to make this happen than markign each one for being turned on or turned off.  I am using 2011 and this is ilogic for a multi body solid that will be made into an assembly later.

     

    'EFFLUENT RULES FOR TURNING FEATURES ON AND OFF
    If EffluentType="Drop Pipe" Then
        Feature.IsActive("DropPipeFlange")=True
        Feature.IsActive("DropPipeEndRim")=True
        Feature.IsActive("DropPipeExtrusion")=True
        Feature.IsActive("DropPipeCut")=True
        Feature.IsActive("DropPipeChannelEnd")=True
        Feature.IsActive("EffluentChannelRim")=False
        Feature.IsActive("PipedEffluentTrim")=False
        Feature.IsActive("PipedEffluentFill")=False
        Feature.IsActive("PipedEffluentPipe")=False
        Feature.IsActive("PipedEffluentFlange")=False
        Feature.IsActive("PipedEffluentCut")=False
        Drop = iFeature.FindRow("DropPipeFlange", "PipeDiameter", "=", EffluentPipeDiameter)'Change iFeature Flange size
        iFeature.ChangeRow("DropPipeFlange", Drop)

    ElseIf EffluentType="Channel" Then
        Feature.IsActive("DropPipeFlange")=False
        Feature.IsActive("DropPipeExtrusion")=False
        Feature.IsActive("DropPipeCut")=False
        Feature.IsActive("DropPipeChannelEnd")=False
        Feature.IsActive("EffluentChannelRim")=True
        Feature.IsActive("DropPipeEndRim")=False
        Feature.IsActive("PipedEffluentTrim")=False
        Feature.IsActive("PipedEffluentFill")=False
        Feature.IsActive("PipedEffluentPipe")=False
        Feature.IsActive("PipedEffluentFlange")=False
        Feature.IsActive("PipedEffluentCut")=False

    ElseIf EffluentType="Pipe" Then
        Feature.IsActive("DropPipeFlange")=False
        Feature.IsActive("DropPipeExtrusion")=False
        Feature.IsActive("DropPipeCut")=False
        Feature.IsActive("DropPipeChannelEnd")=False
        Feature.IsActive("EffluentChannelRim")=False
        Feature.IsActive("DropPipeEndRim")=False
        Feature.IsActive("PipedEffluentTrim")=True
        Feature.IsActive("PipedEffluentFill")=True
        Feature.IsActive("PipedEffluentPipe")=True
        Feature.IsActive("PipedEffluentFlange")=True
        Feature.IsActive("PipedEffluentCut")=True
        Piped = iFeature.FindRow("PipedEffluentFlange", "PipeDiameter", "=", EffluentPipeDiameter)'Change iFeature Flange size
        iFeature.ChangeRow("PipedEffluentFlange", Piped)
    End If

    Please use plain text.
    Employee
    Posts: 932
    Registered: ‎02-24-2009

    Re: Turning lots of features on and off in ilogic

    10-06-2010 09:09 AM in reply to: josephcooley

    Every call to Feature.IsActive will do an Update, so it can be slow.  As a workaround, you can have the rule set the end-of-part marker to the top of the model tree.  The part will be temporarily empty, and updates will be fast.  Add this to the top of your rule:

    DipartDoc as PartDocument = ThisDoc.Document
    partDoc.ComponentDefinition.SetEndOfPartToTopOrBottom(True)' Set to top

     

    Dim partDoc as PartDocument = ThisDoc.Document
    partDoc.ComponentDefinition.SetEndOfPartToTopOrBottom(True)' Set to top

    And add this at the bottom:

     

    partDoc.ComponentDefinition.SetEndOfPartToTopOrBottom(False) ' Set to bottom

     

    If you need more control over the end-of-part, there is a way to move it before or after a particular feature.

     



    Mike Deck
    Software Developer
    DLS - Mechanical Design
    Autodesk, Inc.

    Please use plain text.
    Valued Contributor
    Posts: 56
    Registered: ‎09-25-2009

    Re: Turning lots of features on and off in ilogic

    10-06-2010 09:29 AM in reply to: MjDeck

    the colors of all that text is brown (like its incorrect maybe)  Should it be purple like the rest of the commands?

    ThisDoc.Document is purple and Dim is red  I just wanted to make sure this is correct the rule closes and like there is no syntax error but I wanted to make sure there was no error.

    Please use plain text.
    Employee
    Posts: 932
    Registered: ‎02-24-2009

    Re: Turning lots of features on and off in ilogic

    10-06-2010 09:37 AM in reply to: josephcooley

    Those colors sound OK.  Most of that code is Inventor API code (not iLogic functions), so iLogic doesn't show it in purple.  Dim shows up in red because it is a Visual Basic keyword.



    Mike Deck
    Software Developer
    DLS - Mechanical Design
    Autodesk, Inc.

    Please use plain text.
    Valued Contributor
    Posts: 56
    Registered: ‎09-25-2009

    Re: Turning lots of features on and off in ilogic

    10-06-2010 09:40 AM in reply to: josephcooley

    Thanks that worked I think.

    Please use plain text.
    Active Contributor
    Posts: 28
    Registered: ‎01-07-2010

    Re: Turning lots of features on and off in ilogic

    11-15-2012 06:20 AM in reply to: MjDeck

    I think moving the End Of Part could be useful for a rule I am setting up. How do you go about writing a command to specify where to move the EOP to?

    Sorry for jumping into an old thread.

     

     

    Ian Farmery
    Inventor 2011 SP2, Vault Professional 2011
    Dell T3400 Core2 Quad 2.4GHz. 8.0GB RAM
    Nvidia Quadro FX1700 (x2)
    Please use plain text.