Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- 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.
New Feature: Multi-Mirror
Comments
-
I get where you're coming from. I liked the new planes approach for being more flexible (they don't have to be perpendicular), but I do get the tradeoff with the mate connectors. I am considering adding an enum to choose the input style so you can do either way and make the mode sticky so everyone gets what they want. @eric_pesty @S1mon @jelte_steur_info would that do what you want?
0 -
Enum UI choices could work, but it seems like added complexity.
I'm curious if @jelte_steur_info and @eric_pesty would be happy with my proposal for a single MC selection (defaulting to the origin) with XYZ toggles? Is there value in the plane selections potentially being non-orthogonal?
The reality is that with mirroring in part studios I typically end up with a separate left/right mirror and a front/back mirror because inevitably there are some things which don't get mirrored in both directions so I need them to be independent. I've never actually used multi-mirror in a real project, but the behavior I'm suggesting is similar to the mirror tool in some other CAD systems. You get a default at the origin - with an optional selection for a different reference location - and toggles for XYZ.
One option that's missing from this mirror tool that's in Plasticity is to split the input part(s) along the mirror plane before mirroring. This requires flip input(s) to select which side of the mirror plane(s) are kept vs removed.
Simon Gatrall | Product Development, Engineering, Design, Onshape | Ex- IDEO, PCH, Unagi, Carbon | LinkedIn
0 -
@S1mon What you're describing was already the default behavior before. It would default to world coordinates, but could use a mate connector instead. As to whether non-orthogonal mirroring would be useful, I'm not really sure. I could see it being handy for making the pie slice of a pattern before a radial pattern. In any case I do value creating flexibility where it isn't too costly, even if I can't predict all use-cases. This one falls within that threshold for me personally. @jelte_steur_info do you have some scenarios to share where the individual planes are a clear winner for you?
0 -
I looked at it a bit more, I had missed the default 3 planes default behavior. This does help but but it is setup requiring the first box to be populated so it's quite a few more clicks if you don't want to mirror along the right plane.
Another big change is the removal of the behavior that adds the transformed part to their seed only, which was another reason to use this instead of the regular mirror to avoid creating a single solid when mirroring multiple touching parts at once. I.e. the "multi" applying to multiple parts mirrored along a single (or several) direction at once.
0 -
@EvanReese,
An enum seems like a great way to handle this:- XYZ boxes about origin/MC for quick orthogonal mirrors
- OR "specify individual mirror directions". For me, the option for non-orthogonal planes seems like a pretty niche use case (where I would be fine just using separate standard mirrors, or even separate multi-mirror features for that matter) but others might find it useful…
The biggest thing would be bringing back the "merge to seeds" behavior. I guess that would be a new tab at the top (between "New" and "Add"), or maybe an additional check box/option near the "Merge with all".
0 -
@eric_pesty Merge only to seed was one of the main points of the feature, so I agree there. I thought I tested that on this one, but in hindsight I think I tested on surfaces only so missed that it was changed. I'm going to revert it for now, but I'd like to hear from Jelte on use-cases he's imagining.
0 -
Now that this has been reverted, how do I use "use mate connector" to do anything? I would expect to be able to select an existing MC or create one on the fly. Am I missing something obvious?
Simon Gatrall | Product Development, Engineering, Design, Onshape | Ex- IDEO, PCH, Unagi, Carbon | LinkedIn
0 -
You just pick a mate connector and it will mirror about its xyz instead of the world xyz
0 -
This is very very weird. I swear the other day when I tried it that no box opened up for the actual MC selection. I wish I had taken a screenshot.
I would really like the option to create a MC on the fly. I wish that had become the default for features/dialogs after it was added as an option.
Simon Gatrall | Product Development, Engineering, Design, Onshape | Ex- IDEO, PCH, Unagi, Carbon | LinkedIn
0 -
Once you've clicked the box and activate the query param you can make an implicit mate connector. Is that what you're looking for or no?
It doesn't show the implicit MC icon because this param ONLY accepts mate connectors which could be throwing you off. Most of the places you can make a MC on the fly also accept either vertices (i.e. hole feature) or planes (sketch plane, or split feature), so the icon shows up.
0 -
Interesting. I didn't remember that MC-only inputs worked that way. The one subtle difference with having that button and not having it is that I don't think you can make an implicit MC offset from another existing MC. It will reference sketches or other non-part geometry, but because it's expecting an existing MC or a reference to create a MC, it doesn't have the offset ability.
If you tweak the filters a little, you can get the implicit MC button:
Simon Gatrall | Product Development, Engineering, Design, Onshape | Ex- IDEO, PCH, Unagi, Carbon | LinkedIn
0 -
Oh, and just for random fun, this is one Polyhedra plus 3 MultiMirror features. Not sure what the hell it is, but the amount of complexity you can create quickly is crazy.
+ 3x
=
Simon Gatrall | Product Development, Engineering, Design, Onshape | Ex- IDEO, PCH, Unagi, Carbon | LinkedIn
0 -
I used the feature myself yesterday and found indeed that the native boolean behaviour does not do a 'merge to seed', and that is a pitty. I thought the native behaviour did do this, if you don's specify the merge scope or check 'merge with all'.
I'll look into a 'merge to self' checkbox and how to get it to work.
moreover @eric_pesty, I realised the day after finishing the current state that it would be better if one plane is required, but not necessarily the first plane. That would ease the clicking for mirrors that do not need the right plane.
@EvanReese: I regularly use a 45 or 60 degree mirror plane indeed for patterns that are rotationally symmetric. The reason for this general behaviour though is that it's more compliant with the native UI and the speed for origin mirrors can be acquired by edit logic anyway…
I'll get to work on this0 -
@EvanReese : i implemented both improvements:
- not requiring a specific mirror, just at least one
- and a 'merge to seed' mode for add.
I also created a branch with a 'legacy mode' boolean… Have a look and see what you like…0 -
@jelte_steur_info Thanks for taking the time to work on this feature a bit. I just shared you into the official doc. All I ask is that you work in branches and don't merge to Main. I'll do that part.
I think that rather than legacy mode we can just have a different way to select planes and that's remember_previous_value. Look at the UI I mocked up here (but I've not wired it up to functionality yet). I may also want the booleanStepTypePredicate to remember the previous, which might mean rolling our own copy of that part of the precondition. Speed and convenience is one of the main goals here, so remembering that previous selection means that the feature self-tailors to the user a bit better. Whatever you did last is most likely what you want to do next.
https://cad.onshape.com/documents/28ce556560feca48059476f9/w/a452a2ad48e3bf43011501c9/e/806e018bc3681d9d8ef48ba8
0







