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.

Imported Part fast regen workflows

michael_mcclainmichael_mcclain Member Posts: 198 PRO
edited January 2018 in General
I am working with some very detailed imported parts from a supplier and some of them have faulty topology. This results in very long regen time and generally a very sluggish modelling experience.

I am looking to learn new workflows to decrease regen times, find and solve faulty topology, and what methods help to speed up my model. Some things I do are to eliminate as much geometry as I can and export as STEP and Re-import again.
Should I derive the new imported part into another part studio?
Is there a way to swap an imported part in the feature tree with a different imported part?
Do I have to copy the feature tree to the new imported part's part studio to have a different imported part?

Another methodology I use is to "copy" geometry using sketches that use edges and faces of the imported part or also contexts from the assembly to have limits and relevant geometrical data to model other pieces to. After I use the edge, I often delete any references that are largely unnecessary or not prone to change to not have unexpected results when I suppress many regen taxing features. I also make sure that most features are not very connected to these types of sketches. I've found that coupling use edge, delete constraints, and feature suppression has been very helpful to not have to deal with certain "heavy" features regenerating every time i do something.

For my normal job, I work in 1000+ part models using Creo 2.0 to design engines. Many of these no-xref workflows are inspired by how that program works well and I've borrowed many ideas from it. I know that Onshape fundamentally works differently in data management and some workflows do not translate between the two.

I want to hear the community's take on what works best for them when dealing with very annoying imported parts and general tips to reduce regen times.


  • owen_sparksowen_sparks Member, Developers Posts: 2,660 PRO
    edited January 2018
    Hi, sounds like you're thinking along the right lines to me.

    One suggestion I would have is to not do the "cleaning" export/import cycle with a step file but instead use the native parasolid, so there are less conversions going on.


    Owen S.
    Business Systems and Configuration Controller
    HWM-Water Ltd
  • michael_mcclainmichael_mcclain Member Posts: 198 PRO
    edited January 2018
    Ahhhh yes I often overlook that. Great advice! I just need to do something to improve this model.

    I have a cable STEP file with both ends attached and need to reroute it. I had an epiphany last night and thought about performing an import, then duplicating the part studio. Use a split, delete part to cut the cable and one end off in one studio and do the same for the other end in the second studio. Perform the "clean-up" export/import to have two new simplified files of the ends alone. Create a cable assembly and a part studio of only the cable. Route the cable and assemble the ends and cable in the assembly. Voila!
  • NeilCookeNeilCooke Moderator, Onshape Employees Posts: 5,240
    edited January 2018

    Is there a way to swap an imported part in the feature tree with a different imported part?

    When you re-import data (using the update command from the element tab) it will create another copy of the data. One way I have found to update an import feature is a little convoluted and maybe someone has a better way.

    1. First derive your import (Part Studio 1) into another Part Studio (PS2) and work on PS2 as per normal
    2. Re-import the updated data
    3. Derive the imported data PS3 into PS1
    4. Edit the Derived feature in PS2 to point to the new feature in PS1
    5. Fix any broken references.

    Not ideal and like I say, there may be a better way. Fixing broken references is the pain point and making use of in-context editing and other techniques to reduce dependencies on imported geometry is good.

    find and solve faulty topology, 
    Making use of the Enclose feature can help to fix broken geometry, but sometimes finding the errors is the hard part. I just made this custom feature for you to highlight laminar (open) surface edges. To use it, create a Feature Studio (from the + menu bottom left) then copy paste the code below. Then in your Part Studio, run the custom code from the toolbar top right.

    FeatureScript 729;
    import(path : "onshape/std/geometry.fs", version : "729.0");
    annotation { "Feature Type Name" : "Find Laminar Edges" }
    export const myFeature = defineFeature(function(context is Context, id is Id, definition is map)
            annotation { "Name" : "Select surface", "Filter" : EntityType.BODY && BodyType.SHEET }
            definition.surfaces is Query;
            debug(context, qEdgeTopologyFilter(qOwnedByBody(definition.surfaces, EntityType.EDGE), EdgeTopology.LAMINAR));

    Senior Director, Technical Services, EMEAI
  • michael_mcclainmichael_mcclain Member Posts: 198 PRO
    Thank you @NeilCooke!

    As a rule of thumb, should I derive imported parts that I will be adding features to or referencing heavily?

    If I will be adding a long feature tree to the part studio this could allow me to be able to swap the imported part if necessary. Otherwise, I may be stuck with that imported part in that part studio and if I need to change it I may have to replicate all the features in a different studio with the new import. If I were to derive the imported part, couldn't this be a very regen taxing operation because it regens the geometry in both part studios?

    And thank you for the script! Ill try it out a little later today and let you know if it solves my faulty topology.
  • NeilCookeNeilCooke Moderator, Onshape Employees Posts: 5,240

    I would derive imported parts if you are going to be editing them. Swapping geometry out like I mentioned before may cause many regen failures due to missing refs. If you are only picking faces, then maybe you could create an assembly of the imported part and your part studio and use in-context editing to grab the references. Then later you can just swap in the different imported part into the assembly and fix only the refs that have changed.

    That script will only highlight the problem areas, not fix them, sorry.

    Senior Director, Technical Services, EMEAI
  • michael_mcclainmichael_mcclain Member Posts: 198 PRO
    At least knowing where they are can help me troubleshoot better. Ok I understand now. Yes that's a much simpler route that allows you to swap imported parts when necessary. The main advantage for my particular scenario is to be able to suppress the imports so I'm not wasting so much time being hypnotized by the spinning circle
Sign In or Register to comment.