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.
Standard Parts - what is the best way to reuse them?
Standard Parts Documents - A discussion.
The topic of standard parts comes up with enough regularity that I thought it would be worth having a discussion here. In an ideal world there would (will) be integrations with content aggregators and part vendors AND there will be inter-document relationships - both of which will make the current situation a lot easier. This thread is an intellectual exercise to poll the collective minds of Onshape users to answer the question;
What is the most practical solution today?”
This is a first attempt at looking at the issues and offering a solution. Many of you will think there are better ways - that is what the ‘reply’ button is for
I am assuming that you have a good understanding of the mechanisms available in Onshape
For one-off purchase or standard parts, simply uploading that part into your current document is an obvious route. It might make sense also to create an “Acme standard parts document” - a document containing multiple tabs, each containing an approved part/sub-assembly. When you want to use one, copy and paste that tab into your target document. Have the standard parts document always open either as another tab on your main browser window, or as a separate browser window on another monitor to make this quicker/easier.
But what about items that are typically ‘configured’ and more importantly, sometimes substituted? Here think of fasteners.
I wondered what it would take to develop a methodology that would allow a user to insert a named fastener into an assembly and then have the ability to substitute one fastener for another without having to reinsert and re-mate the replacement. Here is my first pass.
There are three (public) documents for you to play with (in the order we will look at them);
http://bit.ly/OnshapeStandardPartsGearbox
http://bit.ly/OnshapeSampleStandardParts
http://bit.ly/OnshapeStardPartsDocumentBuilder
Lets start at the end - the Gearbox document contains a number of metric SHCS’s
Each group of screws (3 top and 3 bottom) are 3 instances of a part inserted from another part studio (two different parts studios). If all the screws were always the same, there would have been six instances of a single part inserted from a single part studio.
If you switch to the ‘Top Screws’ tab you will see that there are a series of features that produce a single body (part) and that it looks like there are 3 different lengths of an m3 and 3 different length of an m5. You can probably also guess that because all but the m3x10 features are suppressed that you are looking at an m3x10 and you would be right. The actual features are an extrude that creates an encompassing cylinder and a series of ‘delete part’ features that selectively delete all but one of the bodies imported into this part studio and finally a boolean that intersects all the bodies present to produce a single result. The feature list is rounded off by a mate connector attached to the origin.
There are some nuances to this worth pointing out.
The boolean operation was created BEFORE the delete-part features so that it could include all the bodies. It was later reordered AFTER the delete-part features. It doesn’t fail even when some of the nominated bodies are not present because it was architected to be very resilient in these situations.
The part studio was carefully constructed so that a single body is produced whose ‘id’ never changes. Its the same body, just with different geometry. This is critical to the substitution working
The mate connector was attached to origin so that its parent would not change
Now you know what you’re looking at, go ahead and unsuppress the m3x14 and suppress the m3x10 (do it in this order and then do it in the other reverse order to see the difference in performance)
When you switch back to the main gearbox assembly you will see that the top screws are now longer
The bottom screws did not change in length because they were inserted from a different part studio (Bottom Screws (Metric SHCS)
Ok, so how did those part studios get into this document.
They were copied and pasted from a standard parts document - http://bit.ly/OnshapeSampleStandardParts
This could possibly be a single document into which your company puts all approved standard parts.
When you want to use (for instance) a metric SHCS, you either duplicate an existing instance of that part studio in your target document (eg duplicate top-screws to make bottom-screws), or copy and paste that part studio into your target document.
Ok, so continuing to work backwards, the next obvious question is “how did you get the bolts into the part studio?”
The answer is in the 3rd document - http://bit.ly/OnshapeStardPartsDocumentBuilder
I started by downloading the fasteners from a content aggregation site (it happened to be my favorite McMaster, but you can use any source) and then uploaded them into this document. Uploading downloaded cad files creates one tab per upload.
Next insert one instance of each into an assembly tab such that the mating location is common across all parts
Next, translate the assembly into a Parasolid tab, and then translate that tab back into the Onshape format making sure that you select the ‘Flatten’ option. Now you have all the parts in a single part studio.
To recap - this article works backwards from the in-production use of a standard part in a document that includes the ability to select a different configuration. It shows a standard parts document that your company may wish to create for your users to draw from and it shows a ‘builder’ document that outlines a methodology for building the standard parts document.
In practice, the workflow is not that hard. That said, I am hoping that this group can improve upon this process and as we refine it, i will start making videos so that we can show a wider audience what we came up with!
Over to you - comment, suggest, make this better!
Comments
I'm not sure Onshape is ready for this discussion. I would like the gears in the part studio. How do I put a standard parts in a part studio?
To add a component (eg a gear) to your standard parts document, there are 2 methods.
1) If you have downloaded the gear from a site, then simply open your standard parts document (SPD) and click on the '+' in the lower left hand corner and select 'upload'. This will upload the file. Once it's uploaded (into a new tab), you will need to RMB on the tab name and select 'translate' (to Onshape format). Congratulations, its now in your SPD!!! Optionally, you can delete the uploaded file tab.
2) If the part is in another document, RMB over the part studio and select 'copy to clipboard'. Next, go to your SPD and click on the '+' in the lower left hand corner and select 'Paste tab'. Congratulations, its now in your SPD!!!
I hope this answers your question.
This doesn't answer my question. I'll spell it out more clearly:
I'm using a part studio to be my engineering layout (because you don't offer a layout tool).
So I need to add a sprocket to my layout, got one from mcmaster and have gone through the steps you describe:
Now I copy this part studio to the clipboard.
Now, how do I paste this into my engineering layout?
Insert one of each Part studio to assembly tab
Next, translate the assembly into a Parasolid tab, and then translate that tab back into the Onshape format making sure that you select the ‘Flatten’ option. Now you have all the parts in a single part studio.
I'm amazed you actually came out with a solution to have standard parts library with configurations (even if it's a workaround but still). Great work, I will try this later on..
@JakeRamsley spot on, it's a work around need more tools to make this fly. I at least want to be able to replace a copied tab with a new version of the original and to be able to import parts into an existing part studio (even if it were only a parasolid) and configurations.
Interesting how @Philip Thomas has made a part studio grouping in the project doc for specific fastener set's to get around the re mating problem when changing parts (very common for me to want to change bolt length). I can see this working is some scenario's but still considering if it is a sound workflow, don't know if I want tab's hanging around for different fasteners position's with arbitrary names however in practice might not be too bad. I'll have to give it a try.
What about shared tab's across doc's, I am sure that something being considered too but suppose Philip is after solutions with the current toolset.
Twitter: @onshapetricks & @babart1977
Twitter: @onshapetricks & @babart1977
Just paint some text and click link to create.
Thanks for sharing that ingenious and thought provoking workaround. It's definitely "geek territory", but (given that geek are inheriting the earth) the usefulness of the concept will outlive the availability of the configurations which will make this specific dodge superfluous.
One small but heartfelt plea: and I address this to every engineer in the US
1) Please don't use lowercase m for metric thread designation. m3 is a shaft tolerance; M3 is a thread.
Capitalisation is a key demarcator in SI and much of ISO, so while it may seem innocuous here, it's the sort of apparently trivial lapse of communicational rigour which could eventually see another NASA mission fail (gratuitous tie-in to Mars Polar Orbiter)
2) PLEASE don't transport the notion "EVERY thread must have a pitch designation" from US customary world to the metric thread world. (Philip doesn't do this in the linked model, I'm just exploiting this opportunity to make a different but important point)
There are some wonderful simplications inherent to the design of the ISO thread family.
It's not unlike Onshape in many ways: simple, without being "dumbed down". Smart-simple.
One of those is this:
The proper designation for metric coarse series threads invariably (not optionally) OMITS the pitch, which makes for wonderful clarity, because it turns out that coarse pitch threads are just fine for the huge majority of uses, contrary to what older engineers (and many younger US engineers) were taught, making this series the universal standard UNLESS otherwise specified.
It just muddies the waters when people producing drawings or jobsheets, presumably through risk aversion, specify a standard thread as, say, M12 x 1.75. It is in a different class from other trivial tautologies, like "eight am in the morning", which do not have any serious downside.
The thread is an M12. Period.
Because the inclusion of a pitch designation implies a non-standard pitch, it sends people reaching for their thread tables, which (armed with that wrong pre-conception) they are quite prone to misread, when all they have to do is grab a standard tap from the standard rack. In my experience, it can bring about the exact mistake it seeks (in a 'mommyish' way) to prevent.
ON EDIT: In some cases it's not the "Mommy" factor, when I think back to times I've struck this behaviour by people who actually know better: it's simply blame avoidance. Either bad boss culture (I'll kick their ass so hard they'll never sit down again) or "The rule of lawyers", perhaps....
Replace part would be a nice feature to solve this in the assembly if you could somehow re use the mate connectors from the part studio and not get a mate error, however it is quick to remate in Onshape. I often thought it would be good to have the one mate connector owned by multiple parts in the part studio, this could this be useful if a replace part was implemented.
What I want is to be able to use Onshape like my ERP software when searching for standard company parts. 1 bucket of parts using filter in a search function to find what I need to insert into the assembly. At the moment I am reluctant to put too many tabs in a doc due to speed, the assembly part adding list does take a bit of time to generate on large docs.
I also need to have a system in place for prelimary unapproved company's parts used in conceptual design which can be switched to approved at a later stage. Using ERP terimerilgy these standard company parts,could be a mix of made in and bought out parts.
Certainly don't need or want a toolbox like solidworks but do want a way to organise parts from vendors into my company's . Why do we need to download and translate, hopefully from sites like Macmaster Carr we should be able to move to Onshape account all done on the cloud with one click and a Onshape signin, (mate connects include for free).
Twitter: @onshapetricks & @babart1977
Twitter: @onshapetricks & @babart1977
Even though it was difficult and backwards, I carried this same structured assembly approach to SW to help kept SW assemblies organized. Though SW assemblies were easy and flexible, I think the lack of rigidness hung many people as the assy's grew in size and complexity. I would say SW assemblies are an easy mess and Pro/E assemblies are difficult nightmares. Pick your poison. Hopefully we'll have something in the middle and better.
Naming components, hopefully all this is easier now that our data is in a database. Keeping a part, assembly & drawing in separate files was conceived in 1987 and it's time to change that ancient idea. Tying a CAD data structure with a file system is just silly.
When I left Pro/e in 1998, the buzz was collaboration which I never saw PTC do effectively. The idea was to send update notification packets around and sync all active CAD stations. This never worked. I'm excited about Onshape's new capabilities. One database with multiple access points and I think this will work great once we figure it out.
The concept of parsing a project up into assemblies mated by coordinates should go away also (maybe). The idea that you open the master assembly at night to review all the changes your engineering team has made goes away also (hopefully).
It's going to be interesting.
I think of DE-STA-CO clamps that have downloadable models of there product. (I'll have to try to pull one of those into Onshape). If every supplier on Earth (or the ISS or Mars) was on Onshape...
Be careful with zip and transferring them over the internet. Internet protocols only transfer certain characters and zip uses many others that aren't capable. I've broken zip files after transferring them over the internet. I use encode64 to insure proper internet character protocols.
Onshape has abstracted the file name out of CAD. Onshape files have an internal id not assigned by a user. The file naming issue you speak of will not happen here.
The data merge you talk about won't happen here as there isn't 2 databases to merge, hopefully never will be.
Standards will be an issue for any CAD company and trying to define orientations for all vendors will be challenging. Let's all agree to use my standards ok.....
I always review vendor parts before using them. Typically I strip detail out of the models to improve performance ie.. stripping screw threads or helical sweeps. Flipping a component's orientation is trivial. After a review, then I'll use the part.
Does catapillar have a CAD configuration team that checks and standardizes parts & assemblies? Sounds like things may have gone maverick on you and your data structures are a little frayed.
Twitter: @onshapetricks & @babart1977
I was able to pull into Onshape a DE-STA-CO clamp off of their website. So if a company controls their products CAD models, everything seems to work out! Once you start sharing parts across companies or just divisions, issues arise! Example of sharing an assembly. You share your unique CAD models (wiring harnesses assemblies), but the ladder clips, bolts, nuts, and washers come out of the "common" database. Or a "Pack-n-Go" in SolidWorks, but the files for the hardware would not be sent along in the zip file. When you pull up the assembly it searches the "common" database for those files.
A company library is hard to define, but a community library, wow, wonder if thats possible?
I don't like using mcmaster parts because they're too pretty. I always clean them up first to reduce polygon count. A plate with 30 bolts is 10 megs. Strip the threads from the bolts and it's .5 meg. How do you solve this issue? Simplified vs. Detailed representations. I lean towards simplified representations. Does a vendor offer 2 version:simple, detailed? Do we use family tables?
Hoping Onshape takes off and vendors offer their product catalog inside Onshape. Hopefully they'll subsidize the free users. Standardizing web part catalog would be great. Have you tried using 8020, SMC, Mouser websites? Some of these vendors offer horrible solutions for us designer looking to use their parts.
@christopher imagine dragging all your vendor parts into a layout, click a button, and tomorrow a box shows up with all your parts. I tend not to show common components in my layouts, I guess I'm lazy.
Twitter: @onshapetricks & @babart1977
I think you've brought up some really good points. It's going to be interesting to see how all this pans out.
It's silly today that the cosmetic thread data in a CAD file can't be translated to any other system and all standard translation formats strip this information out of the CAD file. Meta data is as important as geometry and we need to consider this moving forward. Hopefully starting here with Onshape.
There's a push to make javascript objects immutable yet you can inherit from them and define your own object which contains the original information. Maybe this is a structure that would work? How do we explain something like this to people?
Pete, kinda sounds like you might like a meta data driven CAD environment vs. drawings. Am I pushing this to far?
Back to Philip's original point, I hope we can also interchange parts in assemblies with ease, like in SoildWorks when you base your bolt off the same master part and can do a replace with out losing mate reference. Maybe this could be done via mate connectors with a common id.
Twitter: @onshapetricks & @babart1977