blog

Parametric design really shines when geometry has an infinite number of possible combinations.

For quite a few parts, it is easy to import pre-defined geometry as a STEP file. Most CAD systems have systems that allow easily importing libraries of parts in a variety of formats.

Some parts, though, cannot be pre-generated, because they can be customized.

AISC Structure steel shapes are in this category. The profiles are standard, but length is arbitrary, so it is not feasible to simply import a static, pre-defined 3D model.

Typically, you import a 2d shape, and then use that to create the 3D shape.

That's doable, but it is quite a few steps.

Using a parametric tool, you can do it all in one step.​Select the profile, supply a length ( or even an offset face in your existing project), and you're off and running:

As it turns out, there are quite a few sets of parts like this. Another good example are aluminum extrusions from 8020 inc. The profiles are pre-defined, but the length is not. A bit of code makes it super easy to create all of the possible parts:

We've created Onshape generators for these two geometries. You can download them here

This type of feature saves time, but it turns out there's a way to save a lot. One common real-world need to create a torus would be in a design that uses an o-ring. Geometrically, an O-ring is just a torus:

If you are a designer, you already know that automating the steps to create the torus is not where the effort lies. You might even already know that AS568 defines the standard o-ring sizes. The real effort is in looking up the dimensions for the standard O-ring sizes, and then transferring those into the Onshape. For a torus, we need the minor and major radius. But it is not even that easy, because o-rings are generally defined using the inner diameter, and cross-section diameter, not the major radius and minor radius. So there's math that needs to be done to create a simple o-ring, even outside of creating the torus

To really save time, we need to allow the designer to communicate design intent-- in this case, I'd like a standards compliant, AS568 o-ring of a given size. The details ( creating a torus ) should be automatic.

Creating an o-ring feature allows design intent is fairly easy. We can use the torus feature to build a torus. If we just add a lookup table of the AS568 standard o-ring dimensions:​

.. and then translate the AS568 standard into the torus geometry, and allow the user to select from the options:

Now, we have saved a lot of time. We can go directly from the design intent: a given size of o-ring, to the finished geometry. If you'd like to give it a try, we've made our o-ring feature publicly available.

As Featurescript grows, we'll see this way of creating parts and feature become the standard. And not just because it is faster for the designer. In contrast with importing static parts from part libraries, a feature has the ability to modify other parts in the assembly. For example, it would be pretty easy to automatically cut a seating groove into a part to accept the o-ring, in addition to just placing the o-ring itself.

Stay tuned for more examples of features that both add parts and modify existing geometry to make it easy to create features based on design intent.

If you use Onshape a lot, you know that planes are the center of your universe. You need one to create a sketch, and since Onshape doesnt have 3d sketching, you always need to start a sketch with a 2D plane.

There are already lots of ways to create planes in Onshape, but I quickly found I wanted more. One example I ran into was creation of tangent planes on curved surfaces. Consider this situation:

This is a simple shape with a draft on the side. I want to create a plane tangent to surface 1, parallel to plane 2. How can I do that? With stock Onshape, I need to follow these steps:

Create a midplane between surfaces 3 and 4

Create a sketch on that plane

Draw a line on the sketch in a direction perpendicular to plane 2

Project the draft surface onto the sketch, using the 'use intersections' tool

place a vertex at the intersection of this curve and the line from step 3

finish the sketch

use tangent at point to create a plane on surface 1, at the vertex created in step 5

Phew! Really? Just to create a single plane? I'd like to be able to simply select plane 2, and surface 1, and create a plane tangent to the surface, and 'aligned' with plane 2. But what does 'aligned' mean?

If surface 1 were it a cylinder, 'aligned' would be easy to define: we want a plane tangent to the surface, and parallel with surface #2. But surface 1 is a cone. Here, we can define 'aligned' as a plane who's normal vector is only different than the reference plane in only one direction. Or, put another way-- the plane with normal vector as close as possible to the reference plane.

Enhanced planes makes quick work of several other scenarios that are harder than they should be:

Create a plane by selecting > 1 linear edge, or a single arc. This comes in handy when the edges were not defined in the same plane already

Create a plane having a normal vector aligned with an edge tangent vector

Create a plane tangent to a curved surface, and aligned with another reference plane. This saves about 4 steps using core product, where you need to create a plane and then use the intersection functionality to compute the point on the surface

Create a plane tangent to a curved surface, at given surface parameters. This is handy when you want a tangent plane at the center of a surface

Create multiple offset planes or midplanes. Core product allows creating a single mid-planes and offset planes, but sometimes I want to create a whole array, not just one.

As an Onshape user, sometimes I find that things should just be a little easier. It's not that the core product cannot work-- it just takes more steps than I want.

A good example is creating a sphere. That should be pretty easy right? Surprisingly, creating a sphere is missing in Onshape. You can do it using these steps:

Create a sketch

Draw a center line

Draw a half circle

Add a dimension

Revolve the sketch

It's not difficult, but if you add lots of little examples like this up, it ends up taking longer to draw something than I'd like.

All is not lost. An Onshape tool called Featurescript has recently been released, that we can use to fill the gaps. Using Featurescript, it is possible to create an addin that provides the one-step sphere I'd like.

Making a sphere add-inWhen finished it should look like this:

I'd like to provide a vertex and a radius as input (2). And, I'd like it available on my toolbar for quick access (1).

How do you do it? Turns out, its not very difficult. First, create a new feature:

Next, change the template for our needs:

We've modified the template as follows:

We've just modified the auto-generated code to name this a Sphere.

Accept a vertex as input. This will be the center of the sphere.

A radius

call a function called makeSphere that actually creates the sphere.

But what about this makeSphere function? Here, we need to write the code that makes a sphere. It is simply the code version of what you would do by hand. It ends up being about 25 lines of code:

The steps are as follows:

create a sketch

create a semi-circular shape

draw a rotation axis

revolve the sketch around the axis

delete the sketch so it doesn't clutter the work space.

Once this is saved, you can use this feature from Part Studios inside of your Onshape document. First, create a sketch, and put a vertex somewhere. Then, select the vertex and use the feature selector to choose your new feature:

Now you should be able to use the new sphere function. But what about that last little bit: adding it to your toolbar?

​To do that, you first need to create a version (1), and then add this feature to your toolbar (2).

​You can name the version anything you want. Onshape requires that you use a version when you add the feature to your toolbar, you select which version you want. That way, you can change the feature and not worry about breaking older documents.

If you already have an Onshape account, you can see the full example we've worked through here:

If you would like to create spheres in your own projects, don't use this demo project, though. There is a better version of the sphere feature in our Torus, Sphere, and Dome feature for Onshape , which allows you to select multiple vertices to create multiple spheres at once. You an use it for free, to save the effort of creating it yourself.

Other things that should be easier

There are several other things we wish were easier in Onshape too, like:

It's a nice 3d printer, but I'll bet you don't have a 3d printer like this at home. But I'll bet you DO have a 2D printer at home. Why is that?

The answer is easy, and it is not the cost. Ask yourself this: would you have a 2d printer at home if you could only print things you could download directly off the net, or that you could create and share using a $400 copy of Adobe Photoshop? If you are old like me and you remember the glory days of 2D dot-matrix printers, you remember that those first Apple IIs that had a dot-matrix printer also came with software called PrintShopPro. You used it to create birthday banners, and things like that. Even in 1982, you could create custom content on a 2d printer.

Though CAD and 3d printing has come a long way in the last 10 years, we still don't have the 3d equivalent of 1982 PrintShopPro (boy, I'm dating myself there!) . Sure, you can go to sites like www.grabcad.com and www.thingiverse.com and get 3d models. And sure, you can install Solidworks or Inventor for $1000 and create whatever you want. But where are my tools that let mere-mortals create 3D content? This is really still the reality for 3d models and 3d printing. Nobody is going to learn CAD just to print a part, but people need things a bit-more customized than just download-and-print! Parametric Products, LLC was started to solve this problem.

Finally we have some good news, though, by way of cloud-CAD company Onshape. Yes, it's pretty cool that they feature CAD-in-a-browser. Their free plan and no-install CAD system makes CAD a lot more accessible. But that's not what's so exciting.

What's really cool is an Onshape feature called FeatureScript. Using FeatureScript, you can create features that can be programmed to produce very complex geometry that can very easily be changed without having to learn anything about CAD. This may seem like a small thing, but it is actually a really, really big deal. Why? Because we can use it produce really complex, custom-generated parts with very simple, easy-to-use user inputs.

Suppose I want to print a replacement gear for my RC car. Making a gear is really a lot of work. There's no way I'm going to design it myself, even if I know CAD and I have the skills to use it. That's not to mention all of the mere-mortals out there that don't know how to use CAD. But I'll probably not find a CAD file for it either by searching.

But what if I had a simple, easy-to-use GUI that lets me make the gear I want? I just want to input the basics, and I want the tool to do all the hard work for me:

Now that's what I'm talking about!

This is a Parametric Part. Someone writes the code one time that can produce any gear, and then mere-mortals can generate any gear by changing the parameters (in this case, the number of teeth and the pitch) .

What's really powerful about FeatureScript is that ANYBODY can write modules, and share them with the whole world. Have a look at the FeatureScript site or our catalog to see a few more examples.

This tech is a game-changer. It is what will finally move CAD and 3D printing from the shop into the mainstream. Parametric Parts is about making 3D accessible to the rest of us. These tools are a big step forward.

Do you have ideas that should be a Parametric Part? Let us know, we'll make it happen!