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.

Custom Feature Mutual Trim

lanalana Onshape Employees Posts: 661
edited November 2021 in FeatureScript
I hope that surfacing users would appreciate this custom feature

 
Please give your feedback.
«1

Comments

  • bruce_williamsbruce_williams Member, Developers Posts: 835 PRO
    Been waiting a long time for this!!  Thank you @lana !

    I like how it seems robust in handling partial intersections and extending, etc.  Here is a doc with a couple of common types that I have suggestions/questions about. 

    Studio 1 - A) Could Mutual Trim do the enclose when a solid is created?
    Studio 2 - B) Could Mutual Trim give option for saving different selections?  (Like the Split - Delete part work steps where Mutual Split 1 did not give option for this)
    Studio 2 - C) Mutual Trim 2 is another example where saving different options would help (Like choosing one or both of the newly split cylinder faces)
    www.accuratepattern.com
  • lanalana Onshape Employees Posts: 661
    @bruce_williams
    Thank you for your testing and feedback. 
    Studio 1 - A) Could Mutual Trim do the enclose when a solid is created?
    Totally possible, some of the early testers felt that keeping it as a surface is less surprising. I can make it an explicit option.
    Studio 2 - B Could Mutual Trim give option for saving different selections?  (Like the Split - Delete part work steps where Mutual Split 1 did not give option for this)
     If I understand this correctly you would like a mutual split with extension. That, counterintuitively, is harder for us to implement than what mutual trim does. If you look into Mutual Trim code, you'll see that it is easier to implement for split face.
    Studio 2 - C) Mutual Trim 2 is another example where saving different options would help (Like choosing one or both of the newly split cylinder faces)
    You've found a bug there - thank you :)


  • Evan_ReeseEvan_Reese Member Posts: 1,360 PRO
    @lana
    Thanks for making this! I'm excited to try it out.
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • MichaelPascoeMichaelPascoe Member Posts: 822 PRO
    Legit, thanks for sharing!
  • Jacob_CorderJacob_Corder Member Posts: 63 PRO
    @lana
    What other hidden arguments exist for opSplitFace? I see you used "extendToCompletion",which I have never seen before.  These hidden arguments could be so helpful and would have saved me an incredible amount of time over the last 2 years developing features.  It also makes me wonder how many other features have hidden arguments that could help us develop complex features faster, especially with imported geometry. 

    I assume the extendToCompletion argument extends faces to their underlying surface extents?

  • ilya_baranilya_baran Onshape Employees, Developers, HDM Posts: 1,118
    @Jacob_Corder -- we do not have many hidden arguments and when they're hidden, it's almost always for a good reason (e.g. known instabilities outside a specific use-case).  The extendToCompletion argument specifically was actually just added and released by Lana to enable the mutual trim custom feature.
    Ilya Baran \ VP, Architecture and FeatureScript \ Onshape Inc
  • Jacob_CorderJacob_Corder Member Posts: 63 PRO
    Thanks @ilya_baran. I will be using this a lot for a few of my features. Thanks for the continued additions, they are very helpful. 

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 1,779 PRO
    edited December 2021
    @bruce_williams @lana
    Thank you and a merry christmas to you.

    Currently mutual trims are doable but really tough to maintain.

    Thanks for maintaining surface continuity vs. making solids by default. This feature is better than enclose because it doesn't force you into solids. Us surfacers like to stay surfacing.



     
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 1,779 PRO
    edited December 2021
    @Jacob_Corder

    I too thought that an extend surface would be nice, but then realized  I could just extend surfaces with a preceding feature. At the end the day, more features is more understandable and more robust. 

    As the day goes on, it would be cool to have it extend surfaces also. Hopefully it doesn't take a lot of time. I'd like a toggle to turn it off to save time and for debugging. If you get it hooked up, please share.


  • nick_papageorge073nick_papageorge073 Member Posts: 178 PRO
    Wow, I look forward to using this. Coming from proe, I thought trimming quilts in OS was a ton of extra steps. (but OS makes it up in the merging process).
  • lanalana Onshape Employees Posts: 661
    @Jacob_Corder
    opSplitFace imprints tools on face targets creating new edges. If extent of tools is not sufficient to split tool faces using extendToCompletion option allows to complete the split. It is the imprinted edges that are getting tangent extension,  not the tool surfaces. 
  • Jacob_CorderJacob_Corder Member Posts: 63 PRO
     @lana

    so where is this imprintEdges feature :smile:  If the imprinted edges are being extended, how then are you splitting the face with the edges? Lofting with a guide?   

    If there is an function that splits faces with just the actual edge without any surface or face creation, that would be so useful.  And no, not sketch entities, because that is cheating.


    The feature is great, Thanks.
  • lanalana Onshape Employees Posts: 661
    @Jacob_Corder
    Sorry, I've brought imprint edge terminology, which confused things. If you look at split feature in Onshape it has two options for targets: Part or Face , Part can actually handle Part, Surface or Curve targets. When Part option is selected split feature generates new Parts, Surfaces or curves depending on what the selection was, in FS terms, target is a body and the result is splitting this body to several bodies. opSplitPart is used in this case. If Face option is selected, split results in new edges and the target face is split to pieces ( new faces are created, but not new bodies). opSplitFace is used in this case. Those new edges are actually a result of imprinting the tool on the target. I hope this makes sense.
  • S1monS1mon Member Posts: 719 PRO
    @lana

    I have to ask, why was something like this not included in the basic surfacing tools from the start? I have managed to work around the lack of this tool, but the number of steps is crazy in comparison to other CAD systems (1. split, 2. split, 3. delete, 4. boolean/enclose). Have I missed some clever reason why it was good for us to not have mutual trim?
  • lanalana Onshape Employees Posts: 661
    @S1mon
    I hear you and I'm sorry we did not prioritize this functionality high enough much earlier. It took us some time to work out how to do the mutual trim in a robust way. It will take us a little more time to figure out how it fits within Onshape functionality so that it can be released as a standard feature. Because we recognize how painful the process is without it, we've released it as a custom feature early. I hope it improves the workflow.
  • lanalana Onshape Employees Posts: 661
    @bruce_williams
    Thank you for inspiring "Try to make part" option. I'm glad it makes @billy2 happy  :)
    I'd like to hear on why you prefer having closed surface to a solid. 

  • Jacob_CorderJacob_Corder Member Posts: 63 PRO
    @lana

    Thanks for clarification. I was hoping that there was going to be an imprintCurve function close to being completed as it exists in other CAD systems.  I am patient, I can wait :smile:  


    More importantly, Thanks for this, Its a great addition to the FS tools. 
  • bruce_williamsbruce_williams Member, Developers Posts: 835 PRO
    @lana

    Yes, @billy2 is correct that when working with surfaces most often it is best to leave them as surfaces until ready to make solid.  However there are times when the immediate solid will be good confirmation that surfaces are connected (watertight).  Therefore, I think the explicit choice is good as it gives us both options.  Nice!
    www.accuratepattern.com
  • Nick_HolzemNick_Holzem Member Posts: 8 PRO
    I've used this a few times, seems to work well! Thanks!
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 1,779 PRO
    edited December 2021
    @lana

    Controlling all the faces of a solid is too complex for organic shapes. Eventually you learn that you can work with the individual faces of a manifold and eventually combine them all to make a solid. In plastic design this should be the preferred workflow. All designs will eventually end up being solids because there's too many operations that require us to be in solids. Solids are the ultimate deliverable when the design is complete. Many of us surfacing guys keep moving that surface/solid transition down the feature tree. Bosses & ribbing, who wants to do that in surfacing?

    I've worked on a lot of geometries, mainly plastic parts, where the designer worked totally in solids and at the end of a project, the geometry is a house of cards that fails when trying to make slight changes to it. The guy that increases a fillet until the model fails and then backs off, this is not a good practice  and a lot people do this. This geometry is horrible to work with and is filled with slivers and poorly formed vertices. We should discourage this practice.

    Let's say your job is to create a fixture to hold a part that your wizard engineer created using solids and pushing everything to their limits, You put the poorly defined part into a block and try to subtract it and boolean operations won't work. Heaven forbid the idea that you might need a slight offset so the part can be inserted into the fixture. This is happening a lot in industry. Poorly formed geometry is a real bottleneck when producing a product.

    Did you know to change a solid to a surface, you have to delete a face? Many times there aren't any faces I want to delete. To get a face back, you have to recreate it or copy it in a previous feature. It's strange to read through the feature tree and see a feature named "copy due to re-solidification effort".

    While we're at it, if you can merge, why can't we detach? The only way to detach faces is to perform a round robin through a step file and not attach faces on import. Of course, you lose all the parametrics at this time. I don't do this in practice.

    I know it's called solid modeling, but in a lot of cases, you get undesirable effects using only solids.


    Please make surfacing better.





  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 1,779 PRO
    @bruce_williams

    Thanks for teaching the basics, you're unusual in that not many teach this. Let your students know that they're learning the theory which will help them be better designers and engineers down the road. I wish more instructors did this.

    It's still shocking that we still have to explain there are no solids in a solid modeller. Solids is just a state of surface modelling.



  • lanalana Onshape Employees Posts: 661
    @billy2
    Thank you for your response.
    Do I understand it correctly that you would normally build one face patch at a time because multi-face loft newer gives you a sufficient control to build the shape you need? 
    Please suffer me to be a devil's advocate for a bit. Making Onshape better ( including surfacing) is the ultimate goal here. I've seen enough bad geometry and horrible feature trees achieved by surface modeling. Could you please dig a little deeper into why working with surfaces is better. Let's say you have several surfaces defining a shape, you used Mutual Trim and got closed surface. What do you do next?
    Other surfacing users - please join the conversation. I'm looking to understand the organic modeling workflow better.
  • Nick_HolzemNick_Holzem Member Posts: 8 PRO
    @lana
    I'm reading that he has seen many cad users design parts without sufficient education of the program or methods (surfacing) to design an organic shape. An example is trying to make organic shapes by layering fillets on top of fillets (solid modeling) all down the tree of a part until the close-to desired shape is achieved. Then running into issues with making updates to the part and also trying to create the mold because there are far too many 3-side shapes/converging points/tiny slivers or pieces of geometry, offsetting etc.

    I think his ask is more of a general ask to make surfacing better and be more approachable to inexperienced users. I'm not so sure there is an easy way to do that? I do appreciate the mutual trim command, however. For my carbon and alloy bicycle frame design, this is a great tool that has been missed.
  • Nick_HolzemNick_Holzem Member Posts: 8 PRO
    @lana, @billy2
    My company has early versions of a few feature enhancements that should be on the way. Upgrades to Loft and fill allowing more tangency functions. Also, a silhouette split and a intersect type, extrude split feature. Some of these may already be released, or on their way?

    Another idea would be to use a sub-d modeling package (like Phi) for the less experienced user looking to make organic shapes. I hear there will be some enhancements coming to Phi soon too!
  • Evan_ReeseEvan_Reese Member Posts: 1,360 PRO
    @Nick_Holzem
    check out the Silhouette Split custom feature by @MBartlett21
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • Nick_HolzemNick_Holzem Member Posts: 8 PRO
    @Evan_Reese, yes, that's the one! We use it occasionally to split round-ish tubes with a plane to create parting lines. 
  • S1monS1mon Member Posts: 719 PRO
    Are there any big differences between Silhouette Split, and Split by Isocline? 
  • Nick_HolzemNick_Holzem Member Posts: 8 PRO
    @S1mon, not that I can tell. Trying a few different applications with the feature script example model I couldn't see any differences. I can share that our company had asked for the Silhouette Split as it is a tool we commonly use in SolidWorks. It's interesting we didn't get directed to the already existing Split by Isocline feature script. And also that Onshape went forward with creating a seemingly duplicate feature script. If there truly is no difference between feature scripts I would like to see one of these dissolved to avoid future repetition of your legit question! Reducing clutter and confusion are more good reasons to dissolve duplicate feature scripts. Now on the next question, which name is better?

    Does anyone else see a difference between the two?
  • MBartlett21MBartlett21 Member, OS Professional, Developers Posts: 2,000 EDU
    @Nick_Holzem

    Both features work roughly the same, but there is some differences. Mine allows selecting bodies, in which case it splits every face owned by that body/part/surface.

    Silhouette Split [1] is the feature that I created on April 2 2019. Split by Isocline was created by Ilya Baran on April 16th that year.
    mb - draughtsman - also FS author: View FeatureScripts
  • Evan_ReeseEvan_Reese Member Posts: 1,360 PRO
    Out of curiosity I checked back at the Featurescript source code version graph and opSplitByIsocline() was introduced the the update on March 22, 2019, so both of you jumped on it pretty quickly. I have deferred to using Silhouette Split as it has a bit more logic built in, whereas Split By Isocline's code doesn't look like it was ever really meant to be more than a quick way to expose the new Featurescript functionality.
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
Sign In or Register to comment.