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.
The use of Rivets (or other fastener types with typically large part counts) in CAD models
Philip_Thomas_PTC
Member Posts: 10 PRO
in General
We are currently thinking about how we might improve the use of fasteners (such as rivets) in CAD models.
We know its hard in other platforms for many reasons and we are asking ourselves how we might make it better/easier for Onshape users.
- Are you someone who does this today in Onshape?
- Have you done this in desktop CAD and are trying to figure out how to do this in Onshape?
- Are you interested in sharing your opinions either here in this forum or via a zoom with some of our PM/PD/UX engineers?
- Do you have a cool document you would like to share or post screenshots of?
We value all input from users and subject to all the usual 'play nice' rules, please feel free to post here or message me directly if you would prefer a private chat.
If you feel like posting your opinions/experiences here - details are always interesting.
What is your current workflow? Any comments about what works well or how it might be improved?
Looking forward to some good discussion and I will post additional questions as the thread develops
3
Comments
We are also experimenting with welds in our assemblies and so far the workflow is very similar to the fasteners:
It's nice to have the "formed" rivets in different grip lengths for realistic clearance evaluation. We also use "before installation" configurations in exploded views for assembly instructions.
The rivets don't get released so release management isn't an issue for us, however having the different configurations not combining in BOMs is the biggest pain. This could be solved "easily" by allowing configuration input to be marked as "ignored" for BOMs/Properties (i.e. remove a column from the configured properties, this would help with other "deformable" parts requiring revision management).
Thank you all for responding and being willing to do this in a public forum.
There are many sets of eyes on this and the feedback is very valuable.
We are interested in weldments and spot welds (we are thinking these are a type of fastener), but for now this discussion is prolly going to focus on rivets.
Each of you has the exact needs that we are looking at and we have questions
1) What is your current workflow for defining and aligning holes? Do you use a single Part Studio and cut through two or more parts? A shared sketch across multiple Part Studios, an Assembly context either in an existing Part Studio or a new one. How would you improve the process?
2) The representation of a deformed state is interesting and challenging at the same time. Fasteners of different lengths and diameters are part of the available workflows today, but to calculate the deformed shape at two ends of a fastener on a (potentially curved) surface is a considerable 'expense' one time, let alone tens of thousands of times. How critical is this? Would you wait 10 minutes for the fasteners to all update (somewhat rhetorical)? What if there were two states, the un-deformed and then a second state where only the outside was deformed? The BOM would be correct as would the mass properties. How would you improve this?
3) Does anyone put rivets on curved faces? are the parts machined or formed? How do you define these in a way that enables the parts to be manufactured? How do you show the locations on any drawings?
4) What families/types of these deformable fasteners are absolute musts for you?
The screenshots you all proved are super helpful - thank you!
I assume you're asking about Onshape users? Airplanes have been covered in the past with rivets, and there aren't many flat surfaces on their exteriors. I've never had to do this myself, but I would imagine that before it was easy (in some CAD packages at least, hint, hint) to flatten lofted or 3D formed sheet metal, rivet locations would be shown in an assembled state, and the holes would be drilled in place.
I don't use rivets, but I'm very interested in parts having an as-manufactured state and an as-installed state - with the same part number. This is a huge pain for my company.
Being able to flatted sheet metal which isn't just simple bends would also be huge.
I don't do CAD with assembly features (e.g. holes which only happen when the parts are assembled), but I know it's a huge request for others.
It's a lot easier to provide feedback when you can tell someone is actually interested in acting on it!
1) Current preferred method is to design the parts in one part studio but it can become sluggish so we do end up using different methods such deriving in a common sketch for fastener locations or sometimes in-context relations depending on the case (i.e. place the clearance holes in one part and use a context to match the hole in the other part, although that requires manual updating so not always desirable).
"other tools" allow propagating features down from the assembly to individual parts, although I never used it much and didn't really trust it, I could see the appeal if it was implemented well and worked reliably. Onshape doesn't have "assembly" features at all currently (that's something that would come in handy but that's another topic...) so not sure that's a path that's likely to happen. It'd be kind of like a "reverse context" that could propagate something down to multiple part studios from one assembly. But you would likely want to have at least one "side" of the feature and use a replicate for the fasteners.
I have used at least once a special configuration of a part to use for an in-context boolean (like a weird shape cutout) so that would be a way to do this. Automating it may be helpful for people who deal with that a lot (like SW "smart features" or whatever it's called) but there other ways to deal with that (for example with a custom Featurescript or something like a super derive with the body to cutout).
2) I'm not sure what you mean by "only the outside was deformed". I'm not sure how much effort should be spent on automating that... It would be nice but I suspect different people/companies may have different needs... "some" way of doing it is as things like pop rivets or rivnuts (which we use quite often) do look quite different after installation and getting some sense of clearance is helpful but it doesn't need to be super accurate (at least not for us). The way we do it with a configuration variable isn't bad, but we would really like to be able to adjust the configuration of patterned/replicated items (assuming the BOM issue can be solved).
The only thing I can think off would be if the stack height could be automatically "sensed" (with some ability to manually specify a reference if it gets it wrong...) and we could decide what do do with it through a "special" variable that picked up that value, kind of like a "driven" configuration variable. This would provide flexibility for everyone to get the behavior they wanted. Expanding from there would to allow multiple variables to be defined (like a "hole size" for example) but you'd need to figure out a way to link it to the assembly geometry.
3) We don't do that but presumably if I was to do it I would make the fastener in such a way that it interfered with the underlying geometry, i don't think you'd need to model the curve (for the rare case where you did, you could do it manually with configuration variables if the BOM handling was sorted). My opinion is that there should be more "urgent" things to spend resources on! One thing that might help would be if we could "flag" "fasteners" so we could exclude them from interference display (as threaded items interfere).
4) For us it's really just pop rivets and rivnuts. We do sometimes model "deformed" gaskets and orings, etc... but low priority to try to automate that...
1) We use single part studios to design related parts where possible because it is the easiest and most intuitive way to align related features like holes. Otherwise, we’ll use in-context design or a shared sketch as makes sense. Assembly context references that don’t break are great. Sometimes a shared sketch is clearer or works better to put features into a part before even building an assembly. Having an analog to the sketch “blocks” found in other CAD programs would help.
2) We have quite a few parts beyond just rivets that deform on installation and for which we want to model both installed and uninstalled configurations and/or drive the installed configuration with a configuration variable. Some are custom parts; others are off-the-shelf (OTS) like rivets.
Here’s a basic blind rivet in the uninstalled configuration, suitable for use in an exploded view of an assembly to show how it goes together (much as @eric_pesty showed above). The "Installed Length" configuration variable doesn't do anything in this configuration.
[Shout out to @Evan_Reese for his Sphere custom feature]
Here's the "Installed" configuration. When inserting into an assembly, we specify the Installed Length configuration variable based on the combined thickness of the materials being joined, then replicate across all locations for rivets at that length.
The Max and Min bounds for the installed length configuration variable are defined based on the manufacturer’s spec so that a design engineer inserting the rivet into an assembly will immediately see an error if attempting to use the rivet to join too thick or too thin material. (I’d love to be able to drive these min/max bounds on a configuration variable from a variable or variable studio but this does not currently seem to be possible.)
The Installed Features in the rivet model approximate the typical deformation seen at install so we can check for clearances to other parts in the assembly model. We don’t worry too much about the weight of our rivets, so the model above is just a single solid. If we needed to account for their weight more precisely, we would update our model to be a more exact representation.
I don’t think I follow about having two states with only the outside deformed.
3) We typically install rivets into flat faces, mostly in sheet metal but sometimes in machined parts. Installing rivets on curved faces works fine with regular parts in Onshape but holes on curved faces in sheet metal are challenging to model and challenging to mate to.
We show locations for rivets on drawings much the same way we would show other inserts (helicoils, PEMs, heat set inserts, etc.): an assembly drawing shows the installed configuration with locations, qty and type of rivets called out. Depending on the complexity of the assembly, we may put a parts list on the drawing, the assembly drawing may include an exploded view, and we may need to create separate drawings of the component parts being assembled.
4) Rivets and rivnuts are the primary types for us where we would care about modelling the part in the deformed state in the Onshape (because these parts can change size enough on installation we want to see what the assembly will really look like "as built").
We don’t use them much, but toggle bolts, expansion anchors, and various kinds of automotive fasteners also come to mind as examples of fasteners where the “installed” geometry could vary substantially from “uninstalled”.
Fasteners that deform without a significant change to their exterior shape (e.g. most types of locknut and lock washers) are not a concern. Things like split lock washers would be an edge case where we might want to show them in their flattened state in an assembly.
We also use an "infinitely configurable" master model that we derive in to create specific manufacturer rivets and that's where we set the min and max installation distances.
Master model
Specific part:
I had forgotten about that but the inability to override the color from the assembly levels led to experiment with adding an option for "painting" (we have a few "standard" powder-coating colors we use regularly and ideally don't want to have unpainted rivets showing in the model when the assembly gest painted after they are installed...
@Philip_Thomas_PTC, I've shared the doc (which is a copy of our "real" one) with Onshape support so you should be able to access it if you are curious... (and if not PM me and I can share it explicitly)
For that matter we don't even release our top level assemblies in CAD as they are "built up" from modular sub-assemblies outside of the CAD environment and we don't see the value of going through a release process that isn't "driving" anything.
The nice thing with Onshape is that you can release a work instruction drawing of an assembly even if you don't release the assembly itself as you know the released drawing will always point to the correct assembly version.
But ours is much less refined, only diameter and length are configurable, other dimension just scale linear. It is more a placeholder than an actual rivet.
Workflow
We are stil experimenting on how to align holes in different parts. We mostly use in context assembly in existing part studio's to create linked holes. Sometimes we use a shared sketch. And sometimes we just agree on a specific pattern to be used and don't bother with linked features.
We almost never use multiple part studio's because we find that releasing individual parts (for revisions) from a multipart studio can become quite confusing.
Deformed state
In our products the exact dimensions and weight of the deformed rivet are not that important.
The main reasons we want the rivets in the assembly:
- check general clearance with other parts
- check tool access
- show rivets in the BOM
- somewhat accurate visual representaion of the assembly
Curved faces
So far we haven't used fasteners on curved faces.
Types
We often use these types:
- blind rivets
- blind rivet nuts
- clinch nuts
- clinch studs
On the related subject of built in content:
Initially we used the 'Standard content' fasteners in Onshape, but we didn't find it very convenient. It has to many variables to configure (mis one and you end up with the wrong part number) and at the same time it is too limited. We only use a handful of different srews, nuts and washers, but some of them are not present in the 'Standard content' (or just difficult to find ).
We reverted to build our own little collections of configurable screws, nuts and washers, with less features than the built in content, but fully customizable (including automated part number generation based on @Evan_Reese Part Name FS) and expandable.
We mainly do development of new products, flexibility is more important to us than standardization, even if that results in a less efficient workflow in CAD.
and common pop rivets in our assemblies. We use placeholder part numbers to designate each type and allow assembly personnel to choose the proper length rivet based on the thickness of the parts being joined.
That having been said, it would be nice to have these rivets configure themselves to appear as-installed in assemblies rather than in their initial geometry (we remove the pintail from pop rivets, though). If Onshape could magically do this for us, we would still want our BOMs to show only two different part numbers, one for semi-tubular rivets and the other for pop rivets, regardless of what length is calculated, configured and modeled on the fly.
This would not only make our assemblies look more authentic, it would also eliminate some unnecessary interferences we are ignoring during our normal interference checks at Design Review (as seen in red here where full-length pop rivets are interfering with house-shaped cutouts in in part at top of image).