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.
Best Of
Re: Help! Challenge: Fretboard Generation
Nice feature @jelte_steur814! I had tried to come up with ways to make variable feature patterns easier for users but never quite was able to. This simplifies it really well.
Re: Onshape AI Advisor Beta (Coming Soon)
Thanks all for the feedback. The first release of the Onshape AI Advisor (which we hope to have out very soon) will focus on answering questions regarding using Onshape. It won't be optimized on day one for writing FeatureScript or interacting with the API. We want to ship it as soon as it adds value, and then iterate with improvements in each release.
But we've heard you (and others) loud and clear, and are prioritizing this capability for a future improvement.
@S1mon It is built using Amazon Bedrock
@MichaelPascoe It will include the majority of the data sources that you reference. However, the Onshape AI Advisor will not include any user data (even public forum posts) as a source. This is a clear line we are drawing. It's possible (with enough requests) that we add something like this in the future, but only after a user gives explicit permission.
We feel there is a lot of potential for the future, and appreciate all your feedback.
Re: Onshape AI Advisor Beta (Coming Soon)
I made an improvement request for AI Advisor (Wider Data Range)
https://forum.onshape.com/discussion/27334/ai-advisor-wider-data-range/p1?…
Re: We need longer auth sessions
just save your login with browser. All I do is either click a saved link/bookmark or type cad in address bar hit enter then click on the sign in button because my info is saved.
MDesign
Re: We need longer auth sessions
I believe when we log on we are actually using a CPU at AWS. If it never kicked anyone off for a month, it would probably overload the whole system.
Is it possible to avoid logging in every time the browser is launched?
Regards,
Re: I need a little help
Yeah, you shouldn't use LLMs for this. They don't replace understanding, especially for a specialized language like FS. You'll get a nice-looking snippet quickly and then spend a hundred times as long finding the issues.
Michael's suggestion is really the answer here. Failing that, search the forum for custom features that already do this, or find similar custom features and understand their code.
_anton
Re: I need a little help
Compare and contrast - this is why you should not use ChatGPT, it's not even close…
FeatureScript 2615;
import(path : "onshape/std/common.fs", version : "2615.0");
annotation { "Feature Type Name" : "Grid generator", "Feature Type Description" : "" }
export const gridGenerator = defineFeature(function(context is Context, id is Id, definition is map)
precondition
{
annotation { "Name" : "Grid spacing" }
isLength(definition.spacing, { (millimeter) : [0.1, 100, 100] } as LengthBoundSpec);
annotation { "Name" : "Rows" }
isInteger(definition.rows, { (unitless) : [1, 10, 100] } as IntegerBoundSpec);
annotation { "Name" : "Columns" }
isInteger(definition.columns, { (unitless) : [1, 10, 100] } as IntegerBoundSpec);
}
{
const sketch = newSketchOnPlane(context, id + "sketch", {
"sketchPlane" : plane(vector(0, 0, 0) * millimeter, vector(0, 0, 1))
});
for (var i = 0; i < definition.columns; i += 1)
{
skLineSegment(sketch, "vertical" ~ i, {
"start" : vector(i * definition.spacing, 0 * millimeter),
"end" : vector(i * definition.spacing, definition.rows * definition.spacing)
});
}
for (var j = 0; j < definition.rows; j += 1)
{
skLineSegment(sketch, "horizontal" ~ j, {
"start" : vector(0 * millimeter, j * definition.spacing),
"end" : vector(definition.columns * definition.spacing, j * definition.spacing)
});
}
skSolve(sketch);
});




