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.

Options

Designing for OS performance.

owen_sparksowen_sparks Member, Developers Posts: 2,660 PRO
edited January 2017 in Using Onshape
Hi folks.

This might be a case of overthinking things but as CAD models get more complex performance takes a hit.  Better hardware helps of course but should we as designers be using any best practice methods to help Onshape out?

For example there are many ways to design the same part.
Example 1, a plate with 100 holes in it.
(Method 1) Sketch with circles in it, extruded in one step.
(Method 2) Plate with many sketch points, that uses the hole tool to make 100 holes.
(Method 3) Plate with one point, one hole tool use and then the additional holes set up as a feature pattern.

Example 2, a solid with a fillet.
(Method 1) Sketch with radiused corners that's extruded.
(Method 2) Plain sketch with fillet feature after extrude.
yada-yada.

Does it make sense to design with a couple of brain cells set aside to try to optomise the model for efficient regeneration, or does it make very little difference in the grand scheme of things?

Cheers,

Owen S,
Business Systems and Configuration Controller
HWM-Water Ltd

Comments

  • Options
    TimRiceTimRice Member, Moderator, Onshape Employees Posts: 315
    edited January 2017
    Owen, I would highly suggest keeping performance in mind when modeling in any CAD package, including Onshape. Your first example is a great illustration of this point. Method 1, with a linear pattern of 100 sketch entities, will not be nearly as efficient as Method 3, though I would suggest a "face" pattern for even better performance. The use of linked docs and parts will also help your performance.
    Tim Rice | User Experience | Support 
    Onshape, Inc.
  • Options
    3dcad3dcad Member, OS Professional, Mentor Posts: 2,470 PRO
    edited January 2017
    I totally understand why we should keep performance in mind but - please forgive me - we shouldn't have to. It is not making us innovative and brilliant designers of great products if we use our capacity helping cad to perform.

    It's 2017, we can do modeling with our cell phones and send email from wrist watch - Onshape devs, keep up the good work and give us cad that optimizes performance even though I would make 1000 circles into sketch (that doesn't sound very complex task for modern computers). Don't give up, you will find a way to bring high performance for ordinary people who think human like - if I can draw this to paper, it should be easy for computer.

    Or if that's too much, then Onshape could suggest changes if it finds performance hit in my design?

    In the meantime, it wouldn't bother to have 'best practices' guide to select the best approach to most common tasks like the one @owen_sparks mentioned.
    //rami
  • Options
    billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,015 PRO
    edited January 2017
    Use flat faces everywhere, square holes & non-filleted edges. Use analytical faces and never use curves. Helical sweeps are a nightmare

    I think it's important to have strategies for managing data:
    -hide removes things from the display list
    -suppress removes it from regeneration & display list

    We'll always create more than a computer can handle.

    Making data go away and then come back is the key.

    A panel with 1000 holes, I'd suppress that pattern when not printing out a picture. I'd sketch a rectangle indicating the hole boundaries when pattern is suppressed. A perf panel can kill your project.

    I like my projects to be snappy and responsive which is not automatic by any means.


  • Options
    shashank_aaryashashank_aarya Member Posts: 265 ✭✭✭
    I think there can be multiple approaches. First I believe that different methods in modeling came up in practice based on how the product can be manufactured efficiently with available resources such as machines, cutting tools, manpower etc. I would like to give one common theoretical example which is only my assumption. e.g. method of  creating 100 same holes in a plate by pattern method may come up with the approach that one common drill operation in CNC program should replicate at 100 places. But when 100 holes are created by one common extrude it means it requires 100 drill tools at different places making drill at the same time. Earlier CAM programming was not as advanced as it is right now where feature recognition may be highly depending on the modeling method.
    But now a days, with advanced technologies CAM features are smartly recognized. In CAM interface user can manually decide the efficient way of manufacturing no matter how the initial model was designed. So, considering the performance point of view definitely designers can minimize the feature trees and now a days it is one of the well proven modeling practice.
    Now there is one more approach which users generally follow in order to create the model which should be easier to modify. Lets take an example-2 as mentioned by @owen_sparks . I can use method-1 to avoid additional fillet features but  when I need to modify some fillets I should know the sketch where I created the fillets. Suppose I don't need these fillets then I should delete them from sketch. It will make very difficult to recover the sketch when I delete the fillet entities. Also for next feature addition if required, fillet edges are not good references many times. Hence it is highly recommended that fillet should be separate feature which should appear after main features.
    So, overall I think there should be an approach of optimization which will take care of both easier editing and good performance.
  • Options
    owen_sparksowen_sparks Member, Developers Posts: 2,660 PRO
    edited January 2017
    Thanks gents I appreciate your comments.

    @timrice
    Is there any chance we could have a few more examples of how we can be more efficient in our choice of methods?
    I love linked docs but was wary, thinking that long chains of links and derived parts might also hit performance.  In my limited coding experience I was amazed at how small a percentage of the code actually does the work, and how much is spent updating the screen and generally making things pretty for the user. 

    @3dcad
    Interesting idea about OS monitoring it's own performance and offering tips to the user as to how they might like to change their methodology.

    @billy2
    Great tip on making a substitute "simple" part to represent a more complicated one and then suppressing the complicated one when not needed.  A method to link features to their parts would be useful here, so we only suppress features that don't link to the stuff we do want to show.  I'd imagine with multi-part modelling from single sketches etc. this may be complicated as things stand?

    Cheers,

    Owen S.

    Business Systems and Configuration Controller
    HWM-Water Ltd
  • Options
    carl_von_ayrescarl_von_ayres Member Posts: 16 ✭✭
    Hi,

    I have being thinking and testing this quite a bit and there are some surprising differances with onshape and other CAD systems.

    While we do have to be careful about best practices on onshape they are definetly less important. I recently tried the generating lots of holes to see how onshape works and while it is faster to model a linear pattern in with one part using faces and then use union to remove they from your part than to do a linear pattern of remove extrudes features this is only for this one feature. After the feature is done both parts operate with the same performance as its only the graphical power you have to struggle with.
    This has being true for many aspects that while they may slow the individual feature they don't slow down the whole document or part studio.

    Things to be aware of though are (as of my latest knowledge) the document loads all the information when you load a document. If you can move sub-assembles or standard parts to other documets it will improve the loading alot.

    Also loading expernal files saves a copy. Several of my documents have become >300Mb because of this, to combat this you can either delete the part and make a copy of the docunent to remove history (have seen >98% reductiob in file size) or when you start you can create a temp document that you load parts into and tidy them up in and thrn move them when you are happy.

    Additionally mates can slow the model down if you chain them. Of you can link most of your mates to a couple of key parts and use offset to get correct position you can see a improvement in your documents.

    Finally if you deal with large assembles, you can use the branching to create a high detail and low detail version of your parts and use linked documents to build up complex assembles with low detail and individual part drawings with full detail.

    Have to say that with a bit of effort and lateral thinking you can improve the performance alot. Hope this helps.

    Carl
Sign In or Register to comment.