Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. 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_PTCPhilip_Thomas_PTC Member Posts: 7

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 :)



  • John_vd_WerffJohn_vd_Werff Member Posts: 65 PRO
    I am interested to participate on the forum. Most of our projects have a number of fasteners and rivets, often in patterns:

    We are also experimenting with welds in our assemblies and so far the workflow is very similar to the fasteners:

  • philip_7philip_7 Member Posts: 12 PRO
    @Philip_Thomas_PTC - nice Spitfire model!

    We use proportionally a lot of rivets even though our product is much smaller than an aircraft. Primarily we use blind rivets, with configurable clinch length based on the thicknesses of the materials being joined. We find it helpful during detailed design to have the actual rivets in the model to see and check clearances. Parametric replicate has been a huge time-saver in assemblies. Release management is a challenge, as rivets are one of a number of "deformable" parts we use where we'd like to have multiple configurations (in this case clinch lengths) released under the same part number. I'd be happy to talk further.

    Fun trivia: my understanding is the Spitfire made extensive use of the innovative Chobert rivet, which is a stemless, blind rivet designed for rapid insertion and fastening one after another (much faster than a common Pop rivet). Today the Chobert rivet is one of a number of rivet types available for Stanley Advel's Speed Rivet system.

  • eric_pestyeric_pesty Member Posts: 1,307 PRO
    We use similar workflow to @philip_7
    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). 

  • Philip_Thomas_PTCPhilip_Thomas_PTC Member Posts: 7
    @John_vd_Werff @philip_7 @eric_pesty

    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! :)
  • S1monS1mon Member Posts: 2,104 PRO
    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?

    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.

  • eric_pestyeric_pesty Member Posts: 1,307 PRO
    Thanks for listening!
    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...

  • philip_7philip_7 Member Posts: 12 PRO
    edited November 3

    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.

  • eric_pestyeric_pesty Member Posts: 1,307 PRO
    Looks like we do something quite similar with the rivets...
    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)
  • michael_stallsmichael_stalls Member Posts: 59 PRO
    Can i see the spitfire model? is that public? it should be !!
  • philip_7philip_7 Member Posts: 12 PRO
    @eric_pesty We too are fans of master configurable models to derive from. And that's a nice configurable rivet model! More detailed than ours. Your comment earlier about rivets not being released has me curious: why not?

  • eric_pestyeric_pesty Member Posts: 1,307 PRO
    philip_7 said:
    @eric_pesty We too are fans of master configurable models to derive from. And that's a nice configurable rivet model! More detailed than ours. Your comment earlier about rivets not being released has me curious: why not?

    We only "release" things that have revisions, which for us means things we make a specific drawing off. So any "off the shelf" item is never rev-controlled for us. To return the question about releasing rivets, I'm curious: why would you? ;)

    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.
  • John_vd_WerffJohn_vd_Werff Member Posts: 65 PRO
    Like @eric_pesty and @philip_7 we use a configurable rivet model to use in our assemblies. 
    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.

    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.

    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.
  • Evan_ReeseEvan_Reese Member Posts: 2,034 PRO

    ...(including automated part number generation based on @Evan_Reese Part Name FS)...
    Which is in fact based on a feature by @NeilCooke.

    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • philip_7philip_7 Member Posts: 12 PRO
    @eric_pesty - I'm a bit slow on a response, but you asked why we'd release an "off the shelf" (OTS) item like a rivet. Maybe this belongs in a separate thread, but as it might relate to what @Philip_Thomas_PTC is working on, I'll post here and give the thread a bump.

    In our case, we see the following benefits: (note that we use Arena for PLM and assign our own internal part numbers to vendor items)
    • Released OTS items show in Onshape's list view (we're looking forward to seeing them in the structured list views previewed at Onshape live)
    • Referencing a released revision of an item can help avoid being prompted to “update linked document” unnecessarily in a downstream assembly
    • If an OTS item becomes obsolete, we can make this immediately obvious in Onshape
    • Should changes/updates to the model be needed in Onshape, being released forces an ECO which helps us ensure we do a where-used search and evaluate the downstream impact of the change. (This does require an efficient ECO process – something we try very hard for).
    • We're already releasing off-the-shelf items in Arena and the new Onshape-Arena sync makes it easy to release in Onshape in tandem. On balance, we find it worth the modest extra effort involved. Plus, now with releases synced, we can click the Onshape link from the item record in Arena and go right to the released model in Onshape (and know that it is the released version we're referencing in downstream assemblies).
    Looking ahead, we also anticipate/hope that Onshape will be able to pull additional lifecycle information from Arena to make available to the design engineer directly in Onshape (like showing whether an item has been released "in design" vs. "in production" or flagged as "not recommended for new designs")
Sign In or Register to comment.