Onshape Plate FeatureScript

Hello all,
I’m very pleased to announce my second ever Onshape FeatureScript, the Plate FeatureScript! It’s been in the works for several weeks now, and I’m very excited to finally be releasing it to the FRC community.


Read on for a breakdown of the features included.

Basic Features:

  • Create complex convex and concave plates by selecting sketch geometry which lies on the exterior of the plate in a clockwise or counterclockwise fashion
    • Choose the face of a circle to use the circle as an exterior hole
    • Choose the edge of circles, lines, or arcs to use the edges as exterior
    • Choose points to override the direction of lines and arcs, and when adding motor mounting and holes using the motor and hole tabs of the FeatureScript
  • Choose additional interior geometry to remove
  • Optionally specify a plane or face for the plate to lie on, which overrides the default position
  • Specify a wall thickness and plate thickness, as well as the extrude direction of the plate
  • Add a fillet to the exterior of the plate

Advanced Features:

  • Create mounting patterns for motors and gearboxes using a heavily modified version of Julia Schatz’s (@dydx) motor mounting FeatureScript
  • Seamlessly add and orient multiple motors at once
  • Incorporate motors on the exterior of the plate by selecting the point used to locate the motor when selecting the exterior geometry of the plate
    • Note that square gearboxes are currently not supported when on the exterior of the plate. However, you can still manually add them by drawing in the rectangle manually and selecting it instead of the sketch point
  • Add custom holes, with optional counterbore
  • Custom holes can be seamlessly integrated into the exterior of the plate in the same manner as motors

The plate FeatureScript also sports extremely fast regeneration times in the neighborhood of 100 to 200 ms, even when adding multiple motors and performing other complex operations.

Thus, the plate FeatureScript allows users to create complex plates from nothing more than a few sketch points, simplifies the model tree by combining several operations into one, removes the need to repeatedly and tediously draw and update tangent lines, makes adding counterbores to plates fast and painless, and greatly streamlines the plate building process overall.

Thanks to Andrew Kempen and Everen Wegner for letting me bounce endless questions about the user experience off of them. Thanks to Julia for creating the original Motor Mounting FeatureScript.

If you have any feedback or concerns, please don’t hesitate to reach out to me. A lot of time went into this project; thus, any feedback is greatly appreciated. If you like my work and want to see more of it, you can also check out my Belt Calculator FeatureScript here.


So cool!

Took me a minute to figure out but this seems really useful, nice work!

Awesome work! Now you just need to build lightening into it and it’ll be complete single feature plate generation!

1 Like

Everyday, we move closer and closer to CADing a robot only out of feature scripts. Looks great!


I think there is value to having that be a seperate operation applied after the plate generation.

I could see wanting to change the lightning pattern with out wanting to regenerate the whole plate

If you do a robot by feature script, are you really doing CAD?

Who cares?


Yes. If we’re going to be pedantic, CAD stands for Computer Aided Design. This is still the computer aiding the design. In fact, it’s aiding more than it did before, so this is theoretically CADdier


Yeah, to kinda elaborate on this and explain my thought process, the main reason lightening isn’t a feature of the plate FeatureScript is because it wouldn’t allow for the user to connect ribs to the exterior edge of the plate at arbitrary points. Because the outer edge of the plate is created inside the plate FeatureScript, users wouldn’t be able to then easily draw lightening ribs to the plate. Admittedly, most plates don’t need this, but for the ones who do, having to make a separate FeatureScript whose sole purpose is adding one or two additional ribs isn’t great. Plus, by moving lightenening to another FeatureScript, I can break out the code base a bit and keep things easier to understand.
But never fear; I should be able to attach relevant data such as the wall thickness to the plate itself, so lightening a plate created with the Plate FeatureScript should (theoretically) be as easy as clicking the plate, selecting any ribs and faces you’d like to keep, and clicking done. So know that it is something that is in the pipeline, though it might be a few weeks before I get an implementation I’m happy with.


Very true, I don’t even use the Circle featurescript included in many CAD programs, I typically zoom in and make many very small lines that approximate a circle. In the unfortunate circumstances in which I am forced to use a COTS part instead of doing real engineering, I always model it myself from my own measurements (done with a ruler and a steady hand - no fancy caliper nonsense here!) instead of taking a shortcut and downloading the manufacturer’s model.


It looks similar to the plate extruder I posted here, but with more features. I look forward to trying it out :)

1 Like

“If you’re designing something on a computer, are you really designing?”

-Some drafting engineer in the mid 80s, probably

“If a computer is controlling your mill/lathe, are you really a machinist?”

-Machine shop owners no longer in business, probably

"If you’re plowing the fields with a tractor instead of animals, are you really farming?’

-Farmers who had to sell their farm during the industrial revolution, probably

Never be too proud to use the technology that makes your job or someone else’s job easier, quicker, more accurate, etc.


I’ve ported the Plate FeatureScript into my Belt FeatureScript document, which has been renamed Alex Kempen’s FeatureScripts. Moving forward, all FeatureScripts I create will be located in that document. Here’s the new link:


I’ve just released an updated version of my Plate FeatureScript, which has a host of changes across the board aimed at improving and streamlining the user experience. As an added bonus, there are also new options for the Motor Mounting FeatureScript, included the ability to add mate connectors, and the ability to add sets of clocked holes. You can read more about the details of the update on this page of my new FeatureScript blog!

I’ve also created some documentation for the Plate FeatureScript which can be found here.

As always, you can find the Plate FeatureScript, along with all of my other FeatureScripts, in this Onshape document:
Alex’s FeatureScripts


This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.