Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. Be respectful, on topic and if you see a problem, Flag it.

If you would like to contact our Community Manager personally, feel free to send a private message or an email.

Why doesn't this work?

Dylan_StewartDylan_Stewart Member, Developers Posts: 107 PRO
Hello all, I have a seemingly quick question. I am playing around with arrays and have come across a problem when trying to append under a conditional statement. 

I'm not sure why my code works with the boolean in the precondition but doesn't when I take it out and try to use the (definition.selection == selection.K) if fails....???? 
FeatureScript 686;
import(path : "onshape/std/geometry.fs", version : "686.0");

export enum selection
{
    annotation { "Name" : "1" }
    A,
    annotation { "Name" : "2" }
    B,
    annotation { "Name" : "3" }
    C,
    annotation { "Name" : "4" }
    D,
    annotation { "Name" : "5" }
    E,
    annotation { "Name" : "6" }
    F,
    annotation { "Name" : "7" }
    G,
    annotation { "Name" : "8" }
    H,
    annotation { "Name" : "9" }
    I,
    annotation { "Name" : "10" }
    J,
    annotation { "Name" : "Custom" }
    K
}

function selectionID(value is selection)
{
    return {
                "A" : 0,
                "B" : 1,
                "C" : 2,
                "D" : 3,
                "E" : 4,
                "F" : 5,
                "G" : 6,
                "H" : 7,
                "I" : 8,
                "J" : 9,
                "K" : 10
            }[value as string];

}

annotation { "Feature Type Name" : "My Feature" }
export const myFeature = defineFeature(function(context is Context, id is Id, definition is map)
    precondition
    {
        annotation { "Name" : "Selection" }
        definition.selection is selection;

        if (definition.selection == selection.K)
        {
            annotation { "Name" : "My Count" }
            isInteger(definition.myCount, POSITIVE_COUNT_BOUNDS);
            
            annotation { "Name" : "My Boolean" }
            definition.myBoolean is boolean;   
        }
    }
    {

        var selection = selectionID(definition.selection);
        var myArray = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];

        // if (definition.selection == selection.K)
        if(definition.myBoolean)
        {
            myArray = append(myArray, definition.myCount);

        }
        var sketch1 = newSketch(context, id + "sketch1", {
                "sketchPlane" : qCreatedBy(makeId("Front"), EntityType.FACE)
            });
        skLineSegment(sketch1, "line1", {
                    "start" : vector(0, 0) * inch,
                    "end" : vector(0, myArray[selection]) * inch
                });
        skSolve(sketch1);
    });

Digital Engineering

Best Answer

Answers

  • Dylan_StewartDylan_Stewart Member, Developers Posts: 107 PRO
    .....wow  :D 

    It's the little things... Thank you so much @jon_sorrells


    Digital Engineering
Sign In or Register to comment.