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: Amalgam Tag and Amalgamate

2»

Comments

  • EvanReeseEvanReese Member, Mentor Posts: 2,849 PRO
    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 783 PRO

    You got a query variable set to evaluate on use with all solid bodies. The bodies being inserted are pretty solid after insertion. That means they get added to the subtraction scope. Was scratching my head real hard for that one.

  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 783 PRO

    V16 - New updates: global rotation of all seeds to make flipping stuff easier. Composite part support for insertion operations.

  • EvanReeseEvanReese Member, Mentor Posts: 2,849 PRO

    Omg that's it! insane. It was an excellent case study in why it's important to capture ALL of the right logic with your Query Variables, not just what happens to get the selection you want right now. I was actually able to fix it by declaring another qv of the same name with "evaluate on use" UNchecked. That's an interesting workflow I'd not considered. You can essential turn "evaluate on use" off/on at various points in your tree that way.

    image.png
    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 783 PRO
    edited February 10

    @EvanReese there's probably some utility there as well by starting with a QV evaluated one way on startup and then running a new QV with the same name copied into itself stored as Selection as some kind of cache, or to recursively iterate on queries. Or a qNothing.

  • jason_ryan337jason_ryan337 Member Posts: 71

    Hi @Derek_Van_Allen_BD. The new update that has the spin feature is nice! It seems like I have lost the ability to rename the feature to anything other than "Amalgamate" though. Not sure if it's a problem just on my end.

  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 783 PRO

    @jason_ryan337 yeah that's a breaking change that I made so that the naming happens in the tagging step. An unfortunate but necessary sacrifice to allow computed properties into the naming field to allow you to control the amalgamates at the source. The only way to get both the ability to rename the feature and allow computed property naming simultaneously is if I re-declare the feature itself as either hole or routingcurve explicitly because those are baked into the Onshape UI at the global level. It would require a change by the developers at Onshape to allow this for other custom features that don't have one of those two feature declarations. @ilya_baran

    Deleting and reapplying the tag and amalgamate features will allow you to take advantage of the new ability to store names in the tags and drive them with variables based on the part configuration.

  • jason_ryan337jason_ryan337 Member Posts: 71

    Gotcha. So the naming convention can change dynamically from the source side. Like the length/width of features can be pulled into the name? I tried using a # in the optional name, but it didn't seem to allow a variable though.

    I am not sure about others, but I have a lot of instances were I have more need for discernment on the destination side than the source side. Often I might need to apply a feature differently to the right side of a part than a left side. I'm not sure if there is a good way for me to discriminate.

    image.png image.png
  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 783 PRO

    Two ways to go about it, you can either set that field to evaluate as an expression, which I did in my screw thread sample to check that it even works, or you can drive the field with configuration settings which works well enough for parts where you've only got a few dropdown options and you don't feel like wrapping your head around expressions logic.

    I should make an expressions builder feature to make that side of things easier.

  • jason_ryan337jason_ryan337 Member Posts: 71

    Thanks. I didn't think to re-open the example file. I'll look there for a reference! Appreciate it!

  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 783 PRO

    Well in your defense I'm not doing a great job linking back to the examples and writing clear documentation at the moment cause I'm rushing out some sheet metal magic elsewhere. It's the screw test block tab if you find your way in there.

  • wille_jwille_j Member Posts: 14 ✭✭

    This is awesome! Pulling this together into one feature is very neat! Also love the tag approach.

    Interestingly, we have been using this exact modelling practice extensively and use @NeilCooke and @ilya_baran's Super Derive feature for that (https://cad.onshape.com/documents/cfef86ed4f9635531599a973/v/f4bb83e64d800c3dfe88e02e/e/1ca336dd47d98dd00918c589).

    I even did a presentation on it at the Onshape Research Symposium 2023, recording here: https://www.youtube.com/watch?v=fGOWO5yoiao
    We happen to call it 'boolean modelling architecture', and call basic geometries 'atoms' and geometries composing of atoms 'molecules' as we create multi-use geometries, it's nice to keep them apart semantically.

    One trick that should be mentioned is that versioned or released geometry is of preference. Apparently, that is cached in Onshape and don't actively regenerate to upstream or downstream changes, potentially causing significant regeneration time, even more severe in multi-layer amalgam structure. Therefore, Amalgam geometry should either live in a different document, or be careful to always point to document versions within the Amalgamate insert feature.

  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 783 PRO

    I figured I wouldn't be the first to approach modeling this way, Point Derive and Super Derive have been around long before I got introduced to Onshape. For the longest time we were using Point Derive as our source control engine and I was starting to write up an internal document I prospectively titled "Point Derive Is All You Need" that walked through the Boolean Modeling Architecture that you describe in your video. In practice though what I found my team needed was really Three-Point-Derives-in-a-Trenchcoat because they kept doing additive and subtractive geometry in the same seed locations with different targets so that first led me to develop Poly-Mate Connectors to be able to easily re-select the same anchors for the multiple operations. Then Sheet Metal Form came out and gave me the clear roadmap for implementing Amalgamate.

    Had I seen your video prior I might have chosen some clearer semantic language or borrowed your terminology for the feature. But there's also a problem with discoverability for custom features right now even if you use the publishing system that I've chosen to combat with putting the most useful features I develop behind funny names. Partly banking on people spreading the features around like memes, partly hoping that the silliest ones might rage bait the developers into getting the features integrated first party to the software, or that they develop that first party feature store so I can use a tagging and filtering system like a normal human being instead of relying on Minecraft mod author energy.

  • eric_pestyeric_pesty Member, pcbaevp Posts: 2,580 PRO
  • EvanReeseEvanReese Member, Mentor Posts: 2,849 PRO

    @wille_j Thanks for sharing the video. I know we've talked about the methodology in the past, but it was good to have it all right there with images to support. I've used super derive for similar things for years, like making the holes needed for a bearing and retaining ring, but the more I think about the method the more sense it makes to me. I think Amalgamate takes it one step farther, which is terrific! BTW, I'm working up a version of Hole that makes positive bodies for use with atoms/molecules, since the hole attributes and cosmetic threads will transfer through a boolean operation. Should have it available soon.

    image.png
    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
  • Derek_Van_Allen_BDDerek_Van_Allen_BD Member Posts: 783 PRO

    Waiting on the edge of my seat for Anti-Hole to debut. Just today someone on my team came up with another, different attempt at it that is even more limited than the first couple. The people are hungry for inverse fastening features.

  • EvanReeseEvanReese Member, Mentor Posts: 2,849 PRO

    Okay it's ready! Plus more video about amalgamate.

    Evan Reese
    The Onsherpa | Reach peak Onshape productivity
    www.theonsherpa.com
Sign In or Register to comment.