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
New featureScript: Voronoi face lattice
Hi everyone,
This is my first post here, so let me start by introducing myself. I’ve been a professional Onshape user since 2019 and have been creating FeatureScripts from the very beginning. My background is in aerospace engineering, composite material science, and robotics. In my day job, I’ve had the privilege of working on some truly exciting engineering projects, but up until now my FeatureScripts have always lived strictly inside our Onshape Enterprise environment. That said, I’ve long wanted to share some of my work with the wider community. So, during my summer holiday, I finally took the chance to build something for fun for myself, but also for all of you! I hope you’ll find it useful.
The only required input for the FeatureScript is a flat face or sketch surface, everything else is optional. On that face, it creates a Voronoi lattice, an organic-looking structure you’ll recognize from patterns in nature, biology, physics, architecture, and even consumer product design.
I’ve also implemented a random pattern generator, adapted from Philip Thomas’s Random Surface Perturbator, based on earlier work by Maximilian Schommer and Ilya Baran.
To demonstrate usage, I’ve included examples showing how the flat-face limitation can be worked around using wrap features, though I’m sure the community will find other creative ways to apply it. A version that works directly on more complex surfaces may come later.
Key Features
- User-selected or pseudo-random Voronoi points (with seed input)
- Choice between bezier-curve or polyline cells
- Option to truncate circular concave/convex edges for cleaner bezier outputs
- Cell offset control for wall thickness
- Short-edge filtering to avoid overly sharp bezier artifacts
- Option to output only 2D geometry (useful for wraps or other downstream features)
- Blind extrude with boolean and composite part options
Known Limitations / Future improvements
- Currently works only on flat faces and sketch surfaces, option for general surface would be nice
- Polyline output limited to 2D surfaces (sketch option disabled for now)
- Extrude is blind-only (future: up-to, two-sided, etc.)
- Editing logic function addition to pre-select the extrude direction upon creation would be nice.
- Truncation could be extended to non-circular curves
- Short-edge filter can misbehave if set too high
- Large offsets may break the feature (error handling would help)
See it here: Voronoi face lattice.
If you discover any bugs, have ideas for improvements, or would like to collaborate, please reach out. If you like the tool, I’d love for you to use it, share it, and even improve upon it, just please give credit and share your work under the same license (CC BY-SA).

Re: Improvements to Onshape - July 18th, 2025
I've got the same issue as @alex_pitt
Dxf export default to meters is a huge pain. I output flats for laser cutting all day, and this feature has been running interference very effectively.
Please make it default to the drawing units.
Everything else seems great, keep up the great work!
New Custom Feature: Heal All
Applies Delete Face to all interior and/or perimeter voids. Excellent when working with imported parts.
Just finished writing, let me know if you have issues.
https://cad.onshape.com/documents/3f65bff7ab2d519cc620870e/w/12baf1601587fbc230b23102/e/3d37d0ed38e9372c48fed726
Re: show either "in", "mm" or the "symbol
Meanwhile all European users reading this are like:

Re: Improvements to Onshape - August 7th, 2025
Great improvements - Thank you!
But Configuration Visibility Conditions are lacking the possibility to choose the whole range of options.
Imagine you have 3 sizes of T-Nuts for aluminum profiles in dimensions for slots 6, 8 and 10 mm. Options then provide inner threadings of 4, 5, 6 and 8 mm.
Selecting "Nut 10" (Slot 10 mm) should show all threading options from 4 to 8 mm. But you cannot use the whole range of options as there appears an error message "Alle Optionen können nicht gewählt werden" (You cannot select all options). You can see that in the uppermost box. But a workaround is to leave one option open (e.g. like I did "M4") and subsequentially add an additional condition for M4.
I think it's more of a bug than an inconvenience as redundant conditions are always prone to cause problems.
Re: Released Configured Part Not Configurable
Can't fully agree with you, the part is unchangeble when manufactured by its nature beacuse this is the purpose why we made them for our conviniences. But why should digital model to behave the same way, what conviniences it brings? I can't see any. We already release every desired configuration independently, but can't even switch between released configurations. This is not an advantage but a disfunction, which stops us in company from using release management at all.romeograham said:@david_troy
Released parts are supposed to represent a single part (or assembly or drawing) - think of something that is physically producible. Once you make a part or print a drawing, you can't change the configuration. It's unlikely that a, say, fabricated sheet metal part can have different states (or configurations), once it's made. Also, in manufacturing, it's important that only one part (with a specific Part Number) can be used in an assembly or other application - if a different part is used, then the Parent assembly is actually different. The only way to track that is for a single Part Number to be associated with a single (released) state of a part. Released parts are meant to be like that - a real, unchangeable, part (or drawing or whatever). Release Management (and revisions) are supposed to be a permanent, traceable record of your design workflow, manufactured parts, or specification drawings. Imagine if you had produced 10,000 parts incorrectly. To figure out why, you go back to see what part number was produced, and see that part number P1234 could have two states (configurations) - and the manufacturer happened to choose the wrong one (that's possible with configurations, but not with Revisions).