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.
New FeatureScript: Engineering Grid
william_knoblauch
Member Posts: 18 ✭✭
Hi everyone,
So I made my own ISO grid featurescript. I tried out the other two feature scripts that can create isogrid patterns, and I found that Julia's is fast but rudimentary, and Evan Reese's is immensely powerful but slightly slower than I would like, and is missing a couple of features I wanted. Of course, the next logical step was for me to create my own from the ground up…
Link: Engineering Grid
Features:
- Create ISO and Ortho grid patterns.
- Extend the pattern to a customizable border.
- Delete small holes that appear at the border of the pattern face.
- Fillet internal corners within the pattern pockets.
- Delete pockets with bad fillets.
- Align the pattern perfectly with an edge.
The basic functionality is closer to Julia's script, where you select a face and the part you want to create the isogrid on, and there it is.
I've added borders to all the edges of the pattern, the thickness of which can be adjusted, as well as the dimensions of the pattern, and so on.
One of the more interesting features I've added is the ability to remove any triangles or parts of triangles that are smaller than a certain percentage of the original pattern. So, no need to painstakingly remove every small hole that appears at the border.
You can also fillet the lower inside edges of the pattern in order to make some really professional ISO grid patterns. I’ve also tried to solve an issue with so many fillets by adding an option to remove pockets that potentially have bad fillets.
So I just posted about my guide pins feature script a couple of days ago, but I've actually been working on this for much longer. From the testing I have done, this script runs a little faster than others (Not Julia’s. Hers is blazingly fast), and I’ve tried to optimize it a little to make it run faster, but there’s only so much you can do when subtracting a bunch of triangles. Please let me know if you have any other quality of life improvements for ISO or Ortho grid patterns. I tried to add the major ones I could think of, but Evan Reese’s Grid Extrude can center the pattern on any point you choose, which would be a good addition.
I also want to add more patterns, but I only got around to adding triangles and rectangles. If you want hexagonal or circular patterns, let me know, and I can add them pretty quickly.
Definitely go check out the other two scripts:
- Evan Reese: Grid Extrude (forum post)
- Julia: ISOgrid




Comments
There isn't a feature that delivers it as an option and there would likely be very little to absolutely zero engineering benefit to its development and application, but suddenly I find myself wanting an ISOgrid feature in Penrose Tiling flavor.
Derek Van Allen | Engineering Consultant | MeddlerImpressive. Nice work.
@william_knoblauch This is a really nice looking feature! I think you can benefit a lot from having them all the same depth so you can get away with face patterns and go faster.
One question, since you're already choosing a face on a part, do you need a merge scope? If it's always a face on the part you can set the scope with qOwnerBody(). If you may instead want to sometimes pick a sketch face on the part, you could set the merge scope with editing logic if the face belongs to a body, and not if it's from a sketch.
Another thought, in some of your gifs it shows some failed fillet edges debugging red. You might have success adding a second fillet step to catch the new sharp edges created by the first fillet.
I love the ability to delete the small ones, I have been meaning to get into that for Grid Extrude at some point, as it's a need I've run into often.
The Onsherpa | Reach peak Onshape productivity
www.theonsherpa.com
@Derek_Van_Allen_BD If you make the Penrose one I'll at least use it! I got really fascinated with those tessellations in college and laser cut a bunch of tiles to mess around with. Good times.
The Onsherpa | Reach peak Onshape productivity
www.theonsherpa.com
@Derek_Van_Allen_BD I will definitely look into adding a Penrose tiling option!
I implemented the former functionality (qOwnerBody()) but encountered issues with disambiguation, so I reverted to the initial implementation with the user-selected merge scope. The edit logic function is a very elegant solution, and I will add it in the next update.
I'm actually doing that already! The code attempts to fillet the whole body in one go, and then it performs some queries to check if it succeeded or failed. If it failed, it goes through and fillets each edge individually. Those red edges are the result of the second step, where some of the edges are already filleted, and the opFillet() is complaining that it can't apply a second fillet. I've tried to stop it from showing those red edges by using try silent{}, but somehow those debug error entities still come through. The fillet error entities do look ominous, but they shouldn't affect the code running. If you are 3D-printing the part, those failed fillets don't matter. On the other hand, if you are machining the part, the remove bad fillets checkbox will be your friend (and your enemy because it can and will delete the wrong thing).
nice! if you go with editing logic to set merge scope, keep in mind you have the isCreating boolean, which is only true when the feature is first created, but not on edits of the feature later. Not sure what you're after, but if you think it might become obnoxious to update the merge scope every time the face is changed you might want to only do it the first time the feature is being made. A number of the native features use it for things like that.
The Onsherpa | Reach peak Onshape productivity
www.theonsherpa.com
Absolutely fantastic integration. I was using a different feature script and was running into a few problems with it. I, similar to what other users have said, needed a way to add borders seamlessly (instead of adding an offset or manually creating a border). I also like the OrthoGrid feature and will try that on some of my future projects. I've tried the IsoGrid on a few of my parts and so far everything is working great. Its a lot faster than the others and more powerful in most aspects. Thank you for creating this and sharing with the community.