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.
Instantiation within a function?
MichaelPascoe
Member Posts: 1,952 PRO
I'm modifying a custom feature. Instead of having the feature pattern a part, I would like it to create instantiations of a part.
The feature uses a pattern operation inside a function. I replaced the pattern operation with an instantiator, but I get an error saying the instantiator transform needs to be a function. Usually the instantiator does not need the transform to be in function format. I'm not sure how to fix this. Can someone help explain what I'm doing wrong?
Error message:
Shortened version of the code:
The feature uses a pattern operation inside a function. I replaced the pattern operation with an instantiator, but I get an error saying the instantiator transform needs to be a function. Usually the instantiator does not need the transform to be in function format. I'm not sure how to fix this. Can someone help explain what I'm doing wrong?
Error message:
Shortened version of the code:
function createBodyPattern(id is Id, context is Context, baseBody, mateConnector, coordMatrix, matSize, definition, cutDepth) { //Old pattern operation opPattern(context, id + "pattern1", { "entities" : baseBody, "transforms" : transform, "instanceNames" : instanceNames }); //New instantiator var x = .25 * inch; var y = .3 * inch; var z = .01 * inch; const instantiator = newInstantiator(id + "inst", {}); var queries = []; for (var i = 0; i < size(instancePlanes); i += 1) { var q = addInstance(instantiator, brick::build, { "configuration" : { "width" : x, "depth" : y, "height" : z }, "transform" : transform(XY_PLANE, instancePlanes[i]) //Error: Called value must be a function, value is array }); queries = append(queries, q); q = append(queries, q); } instantiate(context, instantiator); }
Learn more about the Gospel of Christ ( Here )
CADSharp - We make custom features and integrated Onshape apps! cadsharp.com/featurescripts 💎
Tagged:
0
Best Answers
-
MichaelPascoe Member Posts: 1,952 PROI think I'm on to it now. I need to make the instantiator transform match the function the old pattern was calling for.
Got it working, but i'm still not sure why it required the instantiation transform to be in function format.
Learn more about the Gospel of Christ ( Here )
CADSharp - We make custom features and integrated Onshape apps! cadsharp.com/featurescripts 💎0 -
ilya_baran Onshape Employees, Developers, HDM Posts: 1,210It's much better if you share a link to the document. I suspect that the issue is actually in the part of the code you shortened -- you declared transform as a variable and that hid the transform function you're trying to call.Ilya Baran \ VP, Architecture and FeatureScript \ Onshape Inc1
Answers
Got it working, but i'm still not sure why it required the instantiation transform to be in function format.
Learn more about the Gospel of Christ ( Here )
CADSharp - We make custom features and integrated Onshape apps! cadsharp.com/featurescripts 💎
Learn more about the Gospel of Christ ( Here )
CADSharp - We make custom features and integrated Onshape apps! cadsharp.com/featurescripts 💎