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.

Best practice to hide tabs/parts for imported parts to prevent insertion.

For FIRST Tech Challenge we have been importing parts from the major robotics vendors (ServoCity, Pitsco, Rev Robotics, AndyMark and GoBilda).  As you would expect, many of these parts are actually assemblies (for example a simple Ball bearing - https://cad.onshape.com/documents/b46dc8c82cf451ddfbcfd8e2/w/3699555b377dcdb59d6f94ac/e/3705a44b09fe80cac74bf70f).
Typically each of these documents has three tabs:
  1. The step file that was imported,
  2. the parts from the step file, and
  3. the actual assembly.
When a team wants to insert the part, they can either navigate by traversing the folders or by searching for the part number.  This is where we lead to trouble.  By default, the STEP files are created using the part number and the initial part studio has the part number.  When you search for the known part number, OnShape properly offers the STEP file, the parts in the part studio and the created assembly.  Fortunately the step file doesn't come up when searching to insert parts.  However, we don't want the step files or the part studio for those parts which have assemblies to show up.  I've tried hiding the parts in the part studio to no avail.  Currently, we are forced to do some arbitrary things such as rename all step files to STEP (which just feels wrong) and take all the part numbers off the parts in the part studio (which also feels wrong).  One approach has been to rename the part studio to "DO NOT USE" but it doesn't quite help since the part studio ones show up on the search before the assemblies (i.e. they have to click on the assemblies).  We have thousands of these parts and the FTC Robotic season is starting in a couple weeks.  

Am I missing some obvious step?

Thanks!

Answers

  • owen_sparksowen_sparks Member, Developers Posts: 2,660 PRO
    I'd:-
    (a) Move just the Part Studio Or assembly to a curated library document and have the team pull from there.
    (b) Make a featurescript that is effectively a curated "derive to here" tool.  Useful only in partstudios though.



    Owen S.
    Business Systems and Configuration Controller
    HWM-Water Ltd
  • romeograhamromeograham Member, csevp Posts: 682 PRO
    @John_Toebes_FTC2901
    I am not sure I'm not missing something either...but my understanding is:
    1. You are successfully importing files that result in Assemblies that you want to use in other Assemblies (in other documents)
    2. your users are (erroneously) finding Part Studios and trying to insert them to use as Reference Geometry. However, because these are a mix of surfaces and solids (and the elements are probably all located at the origin) these are not usable as reference geometry.
    Unless I'm not understanding your situation, I think you could say to your teams: "Use Advanced Search on the Document Page, and only insert Assemblies that you find".

    You can use Advanced search on the Document Page to find only Assemblies:


    ...and make sure when inserting these into your working Assemblies, that only Assemblies are inserted:


    However, this only works if:
    1. the reference assemblies are inserted into Assemblies (not Part Studios)
    2. your members are doing "top-down" in-context design work inside Assemblies, rather than importing the reference geometry into Part Studios and referencing them there. Here's a link to Onshape's course on Managed In-Context Design.
    I don't know if this works for your team members or not - but it is the only way to take advantage of the imperfect imported assemblies---which probably have a mix of Solid and Surface bodies, which makes it impossible to use a Boolean feature to "join" them into a single part body.

    If this in-context, in assembly workflow can work for you, you may also choose to rename the Part Studios (that result from the import of the STEP files) so they don't show up in search results...and name the Assembly so that they do show up (only). You won't lose the Part Studios even if they're named "import" because they live in the Document with the STEP and Assembly tabs.

    Hopefully some of this might help!
    Romeo


  • John_Toebes_FTC2901John_Toebes_FTC2901 Member Posts: 9 EDU
    I'd:-
    (a) Move just the Part Studio Or assembly to a curated library document and have the team pull from there.
    (b) Make a featurescript that is effectively a curated "derive to here" tool.  Useful only in partstudios though.



    Owen S.
    I definitely like the "derive to here" approach, but the problem with putting all the curated parts into a single document is that the list of parts is constantly changing and every time we add a part, everyone would be pestered to update the linked document even though nothing had changed with any of the parts. 

    In the case of ServoCity, the number of parts is in the thousands and changing daily.  Rev Robotics only has a couple hundred, but they are also adding all the time.  

    Think along the lines of creating a curated version of all the McMaster parts.  In this case it is for FIRST Tech Challenge robotics and we have potentially thousands of teams modeling their robots.  For the past many years, they have been using SolidWorks and Creo, but the power of collaboration in OnShape is causing quite a few to switch.  I'm trying to avoid having every team import all the parts from the robot part vendors and have many duplicated in the OnShape public library.

    That being said, one idea that comes out of this is for every part which is an assembly, create a second document of just the assembly and hide the first document that has the parts that make up the assembly. 
  • John_Toebes_FTC2901John_Toebes_FTC2901 Member Posts: 9 EDU
    @John_Toebes_FTC2901
    I am not sure I'm not missing something either...but my understanding is:
    1. You are successfully importing files that result in Assemblies that you want to use in other Assemblies (in other documents)
    2. your users are (erroneously) finding Part Studios and trying to insert them to use as Reference Geometry. However, because these are a mix of surfaces and solids (and the elements are probably all located at the origin) these are not usable as reference geometry.
    Unless I'm not understanding your situation, I think you could say to your teams: "Use Advanced Search on the Document Page, and only insert Assemblies that you find


    However, this only works if:
    1. the reference assemblies are inserted into Assemblies (not Part Studios)
    2. your members are doing "top-down" in-context design work inside Assemblies, rather than importing the reference geometry into Part Studios and referencing them there. Here's a link to Onshape's course on Managed In-Context Design.
    I don't know if this works for your team members or not - but it is the only way to take advantage of the imperfect imported assemblies---which probably have a mix of Solid and Surface bodies, which makes it impossible to use a Boolean feature to "join" them into a single part body.

    If this in-context, in assembly workflow can work for you, you may also choose to rename the Part Studios (that result from the import of the STEP files) so they don't show up in search results...and name the Assembly so that they do show up (only). You won't lose the Part Studios even if they're named "import" because they live in the Document with the STEP and Assembly tabs.

    Hopefully some of this might help!
    Romeo


    I am thinking that I didn't do a good job explaining the problem, so let me try some more:

    There are thousands of teams participating in FIRST Tech Challenge and for the past many years they have been using SolidWorks and PTC Creo to design their robots.  Most of that design involves assembling parts that are available from a number of vendors including Pitsco, Rev Robotics, ServoCity and GoBilda.  Typically with SolidWorks/PTC Creo, the teams download the 3D models of the components from the vendor websites and then use those parts locally to design their robots.  

    Some of the components are simple parts such as U-Channels, Plates, and Screws.  However, some of them are actual assemblies such as Bearings, Hub Clamps, Motors, Servos and electronic components.  A good example is the Adjustable Angle bracket (https://www.pitsco.com/sharedimages/resources/tetrix/41790_TXM-Adjustable%20Angle%20Corner%20Bracket.STEP) which comes down as a part and the Axle Hub 39172 (https://www.pitsco.com/sharedimages/resources/tetrix/39172_TXM-Axle%20Hub%20With%20Set%20Screw.STEP ) which comes down as an assembly built up of two parts.  

    When a student is building their robot, they will have an assembly open for their robot and then need to insert an existing part. Often they know the part number so they select the insert dialog, click on Other Documents and type in 39172, they are presented with a lot of choices as you can see below. If they click on the first one, the default is that OnShape presents them with the Part Studios by default which even looks like most of the part as you can see in the middle.  However, they need to remember to click on Assemblies to get to the correct part which has the proper mates on it.

    Now in the case of the Axle Hub, it probably works ok without the set screw in the model, but there are plenty of other components which are slightly more complicated.

    Does this explain the problem a bit more?

    Note that one thing that I have done to simplify getting to more curated components is to create a shared folder with the components organized the same way that they are on the websites so that the teams can search or navigate by vendor/part category.  It helps getting to the right components quickly but doesn't address the problem of components which are actually assemblies.

    Any insight would be greatly appreciated.
      -- John Toebes
  • romeograhamromeograham Member, csevp Posts: 682 PRO
    Seems like you're on the right track - but just need to enforce the "look for an Assembly" to insert part for your teams.
    Do you think that will cause trouble for them?

    One advantage of this approach too, is that (someone...you?) can import the assemblies, and add any useful Mate Connectors, motion, Groups etc. That way, the Teams can take advantage of some of the Assembly features.

    I think your idea of putting the assemblies (only) in a special Directory that they will search in will really help too.

    Good luck!
  • John_Toebes_FTC2901John_Toebes_FTC2901 Member Posts: 9 EDU
    Seems like you're on the right track - but just need to enforce the "look for an Assembly" to insert part for your teams.
    Do you think that will cause trouble for them?

    One advantage of this approach too, is that (someone...you?) can import the assemblies, and add any useful Mate Connectors, motion, Groups etc. That way, the Teams can take advantage of some of the Assembly features.

    I think your idea of putting the assemblies (only) in a special Directory that they will search in will really help too.

    Good luck!
    Yes, you get the advantage of having someone curate the assemblies so that they work well.

    Which leaves me with the look for an assembly problem where I got started with this question.  I'm trying to find a way to hide the parts so that they don't appear in the insert dialog.

    By the way, the challenge with the directory is that there is no way to make a directory public, but we are doing it by adding them to a team which has access to the folder and that seems to work well.
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,938 PRO
    To answer you question, you cannot Hide parts from the insert dialogue.

    The only way is to break things down into documents.
    you can only see "everything" in your current document, or "everything" in the linked document. If you want something hidden, put those parts in a new document..

    But if they are searching from the Onshape home screen, then the only way will be to give a indicator in the name, such as a prefix for all usable parts, maybe a "_" so all your parts have no prefixes unless it is a single body like a screw, still give it the "_" to re-assure the person, only insert parts/assemblies with a "_".

    But that is just dumb... Educate them on the differences between assemblies and part studios. They should know if something is an assembly or not, if they know it well enough to have its part number. which means they know if it has moving parts, or is a solid single part.. etc.. If you add an pneumatic cylinder, you should know to look in assemblies First. if you add an angle bracket, then it's a part.

    I assume, somewhere, someone (the person who took the time to import the parts) has given them a catalog of parts/part numbers, indicate whether or not it is an assembly there.

    Furthermore IF your assemblies do not require movement, such as bearings, or that set-screw in your example... then delete the assembly and boolean-union everything into a single part. You never need an assembled bearing with motion (unless you are making a super fancy, over the top, overkill animation). a revolute mate works regardless. In fact too much junk to move around just slows everything down.
  • John_Toebes_FTC2901John_Toebes_FTC2901 Member Posts: 9 EDU
    To answer you question, you cannot Hide parts from the insert dialogue.

    The only way is to break things down into documents.
    you can only see "everything" in your current document, or "everything" in the linked document. If you want something hidden, put those parts in a new document..

    But if they are searching from the Onshape home screen, then the only way will be to give a indicator in the name, such as a prefix for all usable parts, maybe a "_" so all your parts have no prefixes unless it is a single body like a screw, still give it the "_" to re-assure the person, only insert parts/assemblies with a "_".

    But that is just dumb... Educate them on the differences between assemblies and part studios. They should know if something is an assembly or not, if they know it well enough to have its part number. which means they know if it has moving parts, or is a solid single part.. etc.. If you add an pneumatic cylinder, you should know to look in assemblies First. if you add an angle bracket, then it's a part.

    I assume, somewhere, someone (the person who took the time to import the parts) has given them a catalog of parts/part numbers, indicate whether or not it is an assembly there.

    Furthermore IF your assemblies do not require movement, such as bearings, or that set-screw in your example... then delete the assembly and boolean-union everything into a single part. You never need an assembled bearing with motion (unless you are making a super fancy, over the top, overkill animation). a revolute mate works regardless. In fact too much junk to move around just slows everything down.
    Good point on optimizing parts.  I've been doing that as I see them. Interestingly enough I'm finding that bearings often come in as a single part that I have to split and add a revolute mate. Certainly combining set screws would help, but many of the assemblies refer to the set screw externally which involves multiple steps to derive a part and then union it.  If anyone has a good featurescript that does that I wouldn't mind a pointer.

    The issue on education is a bit more complicated.  Some of the parts are obvious to be assemblies.

    But not always.  When you are inserting a part.. you don't always know in advance that it may be an assembly.  As you can see in the example of the Hub, it isn't obvious that it would be an assembly (unless you think about the set screw of course).  What is worse is that some of the clamping hubs include a screw (hence an assembly) and some of them don't so a person inserting the part has to actually know to click on the assembly tab as there is no indication that there is or isn't an assembly.  

    Right now what I am hearing about best possible practices are:
    1. Any component with no moving elements should be a single part
    2. Put the parts for assemblies in a separate document that is not visible to people.
    Anything else?
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,938 PRO
    edited August 2019
    What documentation are they using to look up models and part numbers
  • John_Toebes_FTC2901John_Toebes_FTC2901 Member Posts: 9 EDU
    What documentation are they using to look up models and part numbers
    They come by the parts in four different ways (beyond just remembering parts by numbers):
    1. Searching on the vendor website for the parts.
    2. Looking at a visual printed page that shows many of the parts (for example: https://www.firstinspires.org/sites/default/files/uploads/resource_library/ftc/tetrix-bom.pdf
    3. Instructions written by a team or vendor about putting parts together. For example https://www.servocity.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/6/3/637226-product-insight-_2.png is a good example for a worm gear assembly.
    4. Or navigating the folders of parts looking visually at them.  For example looking for a Tetrix motion component gets these three clicks..  If you look at the list of motion parts, the Servo and Servo Y Connector are both assemblies while the rest are parts.  There are also some wheels in that set which are Assemblies.
       

  • bradley_saulnbradley_sauln Moderator, Onshape Employees, Developers Posts: 373
    @John_Toebes_FTC2901, Have you seen how the public MKCad library is set up for FIRST teams?

    You can see more information here:https://www.chiefdelphi.com/t/pic-introducing-mkcad-the-onshape-frc-parts-library/161295

    Here is the link to our marketing page for FIRST: https://www.onshape.com/edu/frc

    If you look at the public listing: https://cad.onshape.com/documents?nodeId=3&resourceType=filter&column=promotedAt&order=desc&viewMode=0&q=mkcad

    You will notice that assemblies have been imported in part studios and combined to a single part. There is an option when importing to do this. An example of this is to look at the MKCad - Motors document. The advantage of this public structure is that any team or user can go to the public docs section of the insert dialog and type in the standard name that they are looking for, and insert right away.

    I'd be happy to dive deeper into this subject as I help companies set up their organizational structure for the re-usability of parts within Onshape.
    Engineer | Adventurer | Tinkerer
    Twitter: @bradleysauln


Sign In or Register to comment.