Part Mirror Plane

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
saso
Posts: 1313
Joined: Fri May 16, 2014 1:14 pm
Contact:

Part Mirror Plane

Postby saso » Tue Aug 06, 2019 12:28 pm

Part Mirror does not remember the mirror plane, so while the mirrored shape stays parametric (updates on change) it does not change the position and so does not allow for a fully parametric workflow... IMO it would be very nice if this would work a bit more like the Part Design Mirror where one can select a reference and it stays parametric with it. For the example below, the YZ_Plane of the Origin group would be the obvious choice for the user to pick as a mirror plane, but in different cases users could of course pick something else.
Last edited by saso on Wed Aug 14, 2019 1:52 pm, edited 4 times in total.
openBrain
Posts: 1961
Joined: Fri Nov 09, 2018 5:38 pm

Re: Part Mirror Plane

Postby openBrain » Tue Aug 06, 2019 12:38 pm

Actually it remembers plane. ;)
Limitation is that it is stored as an absolute plane, not as a reference to a parametric "face".
User avatar
saso
Posts: 1313
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Part Mirror Plane

Postby saso » Tue Aug 06, 2019 12:39 pm

openBrain wrote:
Tue Aug 06, 2019 12:38 pm
Actually it remembers plane. ;)
Limitation is that it is stored as an absolute plane, not as a reference to a parametric "face".
Yes, this is what I wanted to say :)

And here is a test case, originally created by GlouGlou, this is my somewhat modified version that is almost fully parametric (as far as I know) except for the last mirror...

Select the Local_CS in the Origin group and change for example its x position to 100mm (or some other parameter of its placement)

https://mega.nz/#!mdwSSCAb!rXJKbukmpis9 ... iJo69Sa_CE
openBrain
Posts: 1961
Joined: Fri Nov 09, 2018 5:38 pm

Re: Part Mirror Plane

Postby openBrain » Tue Aug 06, 2019 1:50 pm

Attached the GlouGlou's example with parametric mirroring. :) Just move "MirrorPlane" and the mirror feature will be recomputed accordingly.
That's a bit tricky but it uses a line (called "MirrorAxis" in this file) that determines the mirroring parameters. The appropriate values are transmitted to mirror feature through expressions. ;)
In this example, I placed an "optional" MirrorPlane. Purpose is mainly to demonstrate how the MirrorAxis could be used in another design by being mapped to a face/edge/... (here MirrorAxis is mapped to MirrorPlane). It also makes the mirror plane a bit more visible. ;)

If it's something often used, the process could be very easily automated with a macro. ;)
Attachments
multisection _OB.FCStd
(586.68 KiB) Downloaded 7 times
User avatar
saso
Posts: 1313
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Part Mirror Plane

Postby saso » Tue Aug 06, 2019 2:03 pm

openBrain wrote:
Tue Aug 06, 2019 1:50 pm
Just move "MirrorPlane" and the mirror feature will be recomputed accordingly. That's a bit tricky but it uses a line (called "MirrorAxis" in this file) that determines the mirroring parameters. The appropriate values are transmitted to mirror feature through expressions... If it's something often used, the process could be very easily automated with a macro.
Interesting, but do you feel that I have posted this because I would be looking for such a solution?

... I have a new T-shirt, it says "word censored Workarounds" ;)
openBrain
Posts: 1961
Joined: Fri Nov 09, 2018 5:38 pm

Re: Part Mirror Plane

Postby openBrain » Tue Aug 06, 2019 2:23 pm

I feel that your OP isn't very clear. ;)
If it's a feature request, I'd advise :
  • To entitle it as being so
  • To make a more complete proposal of the desired change
Typically :
  • What would be the supported references as mirroring plane ? Face only ? 2 lines ? 3 vertices ?
  • How would it be passed to FC ? Through an attachment-like panel ? With a selection button ?
  • Would the current absolute mode be totally lost ? If not, how would you tell what kind of mirroring you want ?
;)
User avatar
saso
Posts: 1313
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Part Mirror Plane

Postby saso » Tue Aug 06, 2019 2:41 pm

openBrain wrote:
Tue Aug 06, 2019 2:23 pm
[*]To make a more complete proposal of the desired change[/list]
Have update the first post a bit...
openBrain
Posts: 1961
Joined: Fri Nov 09, 2018 5:38 pm

Re: Part Mirror Plane

Postby openBrain » Tue Aug 06, 2019 2:46 pm

saso wrote:
Tue Aug 06, 2019 2:41 pm
Have update the first post a bit...
:? Looks like it didn't work. :)
User avatar
DeepSOIC
Posts: 6969
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: Part Mirror Plane

Postby DeepSOIC » Tue Aug 06, 2019 8:22 pm

Lattice2 Mirror supports quite a few mirroring modes. It has a lot of features related to placements and arrays, but I can strip it down for Part workbench.

It supports:
* mirror against a planar face
* mirror against a line (that is 180* rotation actually, not mirroring)
* mirror against centerplane of a line
* mirror against a vertex (aka "inversion")
* mirroring against any baseplane of a placement object (or a localCS object... it should, but it's untested).
User avatar
saso
Posts: 1313
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Part Mirror Plane

Postby saso » Tue Aug 06, 2019 8:51 pm

DeepSOIC wrote:
Tue Aug 06, 2019 8:22 pm
Lattice2 Mirror supports quite a few mirroring modes. It has a lot of features related to placements and arrays, but I can strip it down for Part workbench.
Yes! Have just tested it and it seems to work as expected, simplifying it a bit for the Part WB and adding support for Datum planes (I think they don't work?), would be great...