Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- 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_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....????
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
0
Best Answer
-
jon_sorrells Onshape Employees Posts: 51You have a local variable with the same name as your enum: selection.
I suggest naming the enum Selection.
5
Answers
I suggest naming the enum Selection.
It's the little things... Thank you so much @jon_sorrells