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: How to use Move boundary in FeatureScript - opMoveBoundary()
And of-coarse if you're trimming edges back you'll need to use "opEdgeChange" you'll have to figure out how to use it by studying the "Extend" tab in std library source: https://cad.onshape.com/documents/02e253006c3b752eb13303a7/w/7b120b69b752b11fdbbb09dc/e/4b13fb3967e27f942c8ae475
Re: How to use Move boundary in FeatureScript - opMoveBoundary()
Actually I'll go one better: I've made an opTrimEdges function in case anyone wants to trim back the boundaries of a sheet/surface:
export function opTrimEdges(context is Context, id is Id, surfacesOrEdges is Query, trimDistance is ValueWithUnits, tangentPropegation is boolean) { //get edges and track them var selectedEdges = qEntityFilter(surfacesOrEdges, EntityType.EDGE); if (tangentPropegation) { selectedEdges = qUnion([selectedEdges, qTangentConnectedEdges(selectedEdges)]); } var allEdges = qEdgeTopologyFilter(qUnion([selectedEdges, qOwnedByBody(surfacesOrEdges, EntityType.EDGE)]), EdgeTopology.ONE_SIDED); var trackedEdges = []; for (var edge in evaluateQuery(context, allEdges)) { trackedEdges = append(trackedEdges, qUnion([edge, startTracking(context, edge)])); } //Make array to use in edge trimming var edgeChangeOptions = []; for (var i = 0; i < size(trackedEdges); i += 1) { var edge = trackedEdges[i]; edgeChangeOptions = append(edgeChangeOptions, { "edge" : edge, "face" : qAdjacent(edge, AdjacencyType.EDGE, EntityType.FACE), "offset" : trimDistance}); } if (edgeChangeOptions == []) { throw regenError(ErrorStringEnum.EXTEND_SHEET_BODY_NO_BODY, ["entities"]); } //trim edges try silent { opEdgeChange(context, id + "edgeTrim", { "edgeChangeOptions" : edgeChangeOptions }); } catch { var edgesToTrim = []; for (var i = 0; i < size(edgeChangeOptions); i += 1) { edgesToTrim = append(edgesToTrim, edgeChangeOptions[i].edge); } setErrorEntities(context, id, { "entities" : qUnion(edgesToTrim) }); throw regenError(ErrorStringEnum.TRIM_FAILED); }}
Two more things to note that I've learnt is:
- In std library the tab that holds the "moveBoundary" feature is called "extend" which is silly
- You can refer to standard library tabs buy in this format "import(path : "onshape/std/##tab name##", version : "2543.0");" for example: import(path : "onshape/std/extend.fs", version : "2543.0"); and that way you can make sure you use the latest ver.
Rib creation creates disconnected end faces
Is there a way to use the tool differently or does the tool just need an improvement so that it can make ribs more on part with how solidworks does.
Currently it does this...
meaning we wither have to add an arbitrary extra length to the sketch of the rib thickness or use the delete face and heal tool.

Re: How can we make Section Views awesome in Onshape?
I was just visiting a guy who is still on a CAD system I used in the past and we discussed a few design details. This reminded me on how an awesome section view actually works.
- With section view tool open but nothing selected, a click on any vertex creates a section view through that vertex parallel to screen plane. That is super useful in discussions.
- Selecting a line, axis or two points creates a section view that svivels around these. Also super useful when talking all sorts of bearings and gearboxes.
- Selecting three vertexes creates section plane though these three vertexes.
- Selecting any axis (or line) and one vertex creates a section view along the axis and through the vertex or point.
- Selecting any rotational object (cylinder, cone, …) sections along it's axis in the closest parallel default workplane (X,Y,Z) if no third reference (Vertex, point, ..) is specified.
- Section views have an option to view them in screen plane.
- Each section view has an "up to" option, so you can move any section plane parallel up to e.g. an axis of a hole, bolt, corner or sphere centre or any point, vertex mate or such.
- Section views have an option to dim everything behind the section plane to make the section itself more visible.
- Sketches have an option to automatically create a section view while sketching (including the super awesome dimming option). This is extremely helpful while working in crowded models and speeds up sketching quite some.
- Section views have a means of immediately converting them into a sketch with all intersecting geometry becoming selectable as a sketch reference (You just hit "Sketch" while in a section view).
- Geometry that intersects the section plane (Faces, edges) can be edited (E.G. Move Tool, Offset Tool, mates and conditions, driving dimension). Tricky, but useful.
- Section views have an option to automatically switch sides, as you rotate the model. It makes little sense to section view the back side. This considerably speeds up model handling in meetings.
Well, even though Catia is much worse, now I have been reminded of this, it appears to me there's actually still a long way to go for Onshape section view management to eventually win the Awesome Section View Batch.
Can we please branch this into an enhancement request?
Default Hole Tool parameter
- pitch corse (which is simply standard)
- Thread Class H6
- Tread length = 2xDIA
- Bore Lenght = 2,5xDIA or 3xDIA
Re: New Custom Feature: Publish Geometry
I was excited to see @GregBrown 's video, and decades ago I remember appreciating Creo (then Pro/E) using the Publish/Subscribe model. It made a fair amount of sense to me then, and I missed it when I moved to Solidworks.
Now that this is in the context of Onshape, I question the functionality a bit. It makes a lot of sense if there are multiple dependent part studios, as it makes it much easier to modify the available references in one place (the publish feature). However, if the path of dependencies is just one master part studio to a dependent part studio, then perhaps it would be better to have a more capable derive feature which would allow all the available reference types and make it a little easier to see what's been picked. Right now the derive feature brings up a very tiny window with small previews and if you don't have sketches named, it's really hard to tell what you're picking.
I also find the UX of turning on and off visibility of the sub-items in a derive to be tricky. I sometimes end up toggling things on and off more than I really need to because there are layers of states which control what's visible. I haven't tried this Publish feature yet, but I'm curious how this one (or Greg's) affects the visibility toggling if everything is bundled in a composite item.
I miss Solidworks concept of "favorites" which allows key sketches etc. to be collected at the top of the tree for quick location and visibility toggling.
I think there's room for both approaches, but I'd really like to see more improvements to the built-in derive.

Re: New Custom Feature: Publish Geometry
@rob_mcmahon I changed the FS to not kill the mate (i was trying to reduce duplicates), and you can use get and set property in edit logic, but not for mate connectors.
Re: Fixing Broken Part Through FeatureScript
could you roll back the document to an older point in history in the version graph? You should be able to restore to just before the fillet was added.