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.
Featurescript fails when using EvBoundingBox?
luis_trueba
Member, Developers Posts: 9 ✭
Hello all,
I'm currently trying to write a script which evaluates the bounding boxes of a given set of parts, and then prints the vertices to the featurescript terminal. However, when I attempt to do this, it breaks and throws a Precondition of evBox3d failed (arg.topology is Query) error. I have added my code below. I'm sure it's a simple syntax thing, but I'm having a hard time finding relevant information online. Any help is greatly appreciated!
I'm currently trying to write a script which evaluates the bounding boxes of a given set of parts, and then prints the vertices to the featurescript terminal. However, when I attempt to do this, it breaks and throws a Precondition of evBox3d failed (arg.topology is Query) error. I have added my code below. I'm sure it's a simple syntax thing, but I'm having a hard time finding relevant information online. Any help is greatly appreciated!
<br>FeatureScript 626;<br>import(path : "onshape/std/geometry.fs", version : "626.0");<br><br>annotation { "Feature Type Name" : "Name Parts" }<br>export const NameParts = defineFeature(function(context is Context, id is Id, definition is map)<br> precondition<br> {<br> annotation { "Name" : "Parts", "Filter" : EntityType.BODY, "MaxNumberOfPicks" : 100000 }<br> definition.bodies is Query;<br><br> // Define the parameters of the feature type<br> }<br> { <br> for (var parts in definition.bodies) {<br> // define bounding box<br> const boundingBox is Box3d = evBox3d(context, {<br> "topology" : parts ,<br> });<br> println(boundingBox.minCorner);<br> println(boundingBox.mazCorner);<br> // assign names<br> // <br> // <br> }<br> <br> println(" this is the list of parts" );<br> <br> });<br><br><br>
Tagged:
0
Best Answer
-
I think you intend to do
for (var parts in evaluateQuery(context, definition.bodies))
The way it is written now, your loop iterates through map entries of definition.bodies5
Answers
-
I think you intend to do
for (var parts in evaluateQuery(context, definition.bodies))
The way it is written now, your loop iterates through map entries of definition.bodies5 -
What Lana said and see also: https://cad.onshape.com/FsDoc/modeling.html#queriesIlya Baran \ VP, Architecture and FeatureScript \ Onshape Inc0
-
evaluateQuery did the trick! Thanks!
0


