# Mirror faces \[BUG?\]

**URL:** <https://discourse.shapr3d.com/t/mirror-faces-bug/21976>\
**Category:** Modeling Questions\
**Created:** [October 18, 2022, 7:13pm UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976 "2022-10-18T19:13:53Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [October 18, 2022, 7:13pm UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/1 "2022-10-18T19:13:53Z")

</div>

I feel like this should work but it doesn’t. I select a few faces and want to mirror in the origin plane but it won’t result in a valid body even though the body is symmetrical in respect to the origin. What have I missed / forgotten?

 ![image](https://us1.discourse-cdn.com/flex002/uploads/shapr3d/original/3X/7/4/74ca544b13eb9b6c84313ea0c02c0e2aeb7ee529.jpeg)

---

<div class="post-metadata">

**Author:** ![TigerMike](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.shapr3d.com/tigermike/32/32650_2.png) [@TigerMike](https://discourse.shapr3d.com/u/TigerMike)\
**Post date:** [October 18, 2022, 9:41pm UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/2 "2022-10-18T21:41:51Z")

</div>

You cannot mirror faces. You can mirror the entire body.

---

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [October 19, 2022, 4:42am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/3 "2022-10-19T04:42:07Z")

</div>

You’re wrong. I just mirrored some faces on another body without issue (see below). Maybe the first issue is some sort of precision error since the body is so thin?

 ![image](https://us1.discourse-cdn.com/flex002/uploads/shapr3d/original/3X/8/9/890d463a88869df657fef3b96355e96fcdb1a8ae.jpeg)

---

<div class="post-metadata">

**Author:** ![Laci\_K](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.shapr3d.com/laci_k/32/8196_2.png) [@Laci\_K](https://discourse.shapr3d.com/u/Laci_K)\
**Post date:** [October 19, 2022, 6:56am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/4 "2022-10-19T06:56:46Z")

</div>

In this second case, the mirror operation resulted in a closed body, thanks to the surface of the body you got in the middle.

In the first case, it would be an “open” body, which Shapr doesn’t support, as it’s a solid body modeller, that’s why it’s an invalid body.

---

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [October 19, 2022, 8:14am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/5 "2022-10-19T08:14:09Z")

</div>

There is no difference in principal between the two cases, only geometry. I’ve done some more testing and seems this must be a precision error. Look at the attached screenshot. It IS possible to mirror faces to an opposing side (I’ve done this many times before, of course it’s possible), but ONLY if the faces and WITHIN another face and NOT TANGENT.

This must certainly be a BUG? 🐞

 ![Skärmavbild 2022-10-19 kl. 10.09.04](https://us1.discourse-cdn.com/flex002/uploads/shapr3d/original/3X/e/6/e60c294334464c3791f17707a8ad608263647a4a.jpeg)

---

<div class="post-metadata">

**Author:** ![Laci\_K](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.shapr3d.com/laci_k/32/8196_2.png) [@Laci\_K](https://discourse.shapr3d.com/u/Laci_K)\
**Post date:** [October 19, 2022, 8:26am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/6 "2022-10-19T08:26:25Z")

</div>

Thanks, that might indeed be one. 🙏

---

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [October 19, 2022, 8:29am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/7 "2022-10-19T08:29:11Z")

</div>

It’s also a bit strange. I created a test scene with a extruded cylinder of diameter 20mm, duplicated the body and changed the radius to 19,9999 and mirror worked. BUT, the following attempts failed and I had to reduce the diameter to 19,95 in order for the mirror to perform. Maybe it has something to do with the segmentation…?

 ![Skärmavbild 2022-10-19 kl. 10.26.35](https://us1.discourse-cdn.com/flex002/uploads/shapr3d/original/3X/b/c/bc20868cbe1c3f73034458e4a423ad1f5572b6b1.jpeg)

---

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [October 19, 2022, 8:41am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/8 "2022-10-19T08:41:40Z")

</div>

Further testing. I’m not sure how edges are segmented, but it is definitely related. Increasing the diameter from 19 up to 19,9999 keeps the edge of the cube unsegmented, but lowering it from 20 to 19,9999 keeps it segmented into two parts, see screenshots (bold edge of cube and cylinder radius). As long as the edge is unsegmented, mirroring works fine.

 ![Skärmavbild 2022-10-19 kl. 10.38.34](https://us1.discourse-cdn.com/flex002/uploads/shapr3d/original/3X/8/0/808f8c8b3b5deae8712b123b99c110f8fdcfceca.jpeg)  
 ![Skärmavbild 2022-10-19 kl. 10.39.07](https://us1.discourse-cdn.com/flex002/uploads/shapr3d/original/3X/b/f/bf2fed8c1b0e3aa799156f2988f8e5439e3ba87b.jpeg)

---

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [December 3, 2022, 9:52am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/9 "2022-12-03T09:52:26Z")

</div>

This is still an issue in the latest release - Version 5.271.0 (4458)

---

<div class="post-metadata">

**Author:** ![Matt\_the-Rathje](https://avatars.discourse-cdn.com/v4/letter/m/49beb7/32.png) [@Matt\_the-Rathje](https://discourse.shapr3d.com/u/Matt_the-Rathje)\
**Post date:** [December 3, 2022, 10:56am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/10 "2022-12-03T10:56:26Z")

</div>

I think this is no bug, it is a limitation.  
I smell a zero-thickness-issue here. I can’t tell exactly how the operation works under the hood, but I guess that it would have to divide something by zero, what is practically not possible - that causes the operation to fail.  
As there are plenty workarounds for that…

- decrease the diameter of the source by 1mm, mirror the faces, increase the diameter of both cylinders after mirroring again by 1mm
- mirror the body instead of faces (what is typically the way to go - especially for symmetric parts)
- Extrude the cylinder as a unique body, mirror the body and merge all bodies with a union

… I would not expect this “issue” to be fixed at any release. The Shapr3D - Team has a lot things to do that are considered more valuable for the user than this.

Just my 2 cents.  
Cheers Matt

---

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [December 4, 2022, 11:42am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/11 "2022-12-04T11:42:01Z")

</div>

You’re probably right. There are workarounds, but I feel that it should work in a parametric environment. It seems mostly related to the edge segmentation policy and that’s a bigger question. Should edges be segmented by tangential edges/lines? Probably, but as seen here, there are edge cases for everything. Pun intended.

---

<div class="post-metadata">

**Author:** ![Matt\_the-Rathje](https://avatars.discourse-cdn.com/v4/letter/m/49beb7/32.png) [@Matt\_the-Rathje](https://discourse.shapr3d.com/u/Matt_the-Rathje)\
**Post date:** [December 4, 2022, 4:10pm UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/12 "2022-12-04T16:10:30Z")

</div>

> [@swebal](#):
>
> I feel that it should work in a parametric environment.

It is not my intention to hurt your feelings, but 3D-CAD is hardcore-math, there is no room for feelings. 😉  
The next fact is, that Shapr3D is no parametric environment - at least not today (and not tomorrow) - it is a direct-modelling software.  
The algorithm behind this operation does not support mirroring faces under this circumstances, period!  
As there are several workarounds, this issue is definitely not critical.  
Plus: In a parametric environment one would usually mirror the features, not the faces.

---

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [December 5, 2022, 8:01am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/13 "2022-12-05T08:01:03Z")

</div>

In this case I’m referring to parametric as non-polygonal. There is no mathematical difference between parametric and direct-modeling, one offers a non-destructive objective approach and the other applies each operation to the model as it is executed. The main advantage of DM having a flat hierarchy.

Your claim that this operation will never support mirroring faces doesn’t exactly hold much merit. If you bothered to read this thread, the operation already does support mirroring faces (as demonstrated), but not for tangential faces causing edge segmentation, hence one of the devs acknowledging this as a bug.

Don’t worry, my feelings aren’t hurt. Your sense of self-entitlement might be though.

---

<div class="post-metadata">

**Author:** ![Matt\_the-Rathje](https://avatars.discourse-cdn.com/v4/letter/m/49beb7/32.png) [@Matt\_the-Rathje](https://discourse.shapr3d.com/u/Matt_the-Rathje)\
**Post date:** [December 5, 2022, 11:37am UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/14 "2022-12-05T11:37:56Z")

</div>

> [@swebal](#):
>
> In this case I’m referring to parametric as non-polygonal.

I don’t care what you refer parametric to.  
“Parametric” comes from “parameter”.  
Where are those parameters in direct-modelling? Right: not existing! You do not have any features, history, associativity between sketches and geometry… Shapr3D uses a parametric kernel, what is causing the geometry to be non-polygonal, but that is not necessarily saying that there is parametric-modelling involved.

> [@swebal](#):
>
> There is no mathematical difference between parametric and direct-modeling, one offers a non-destructive objective approach and the other applies each operation to the model as it is executed.

If so, why is it not possible do mirror the faces (what is a unparametric operation) when there is a tangent edge involved (what does not work with SolidWorks either, by the way), but its possible to mirror the (parametric) features (in SolidWorks)? If both operations would base on the same mathematical algorithems, both should work, shouldn’t it?

> [@swebal](#):
>
> The main advantage of DM having a flat hierarchy.

There is absolutely no hierachy, it is a lump of clay - and if that is an advantage is a question of the point of view. Some say so, others don’t.

> [@swebal](#):
>
> Your claim that this operation will never support mirroring faces doesn’t exactly hold much merit. If you bothered to read this thread, the operation already does support mirroring faces (as demonstrated), but not for tangential faces causing edge segmentation, hence one of the devs acknowledging this as a bug.

Don’t you bother to read what I wrote: This operation is likely to never support mirroring faces **under this circumstances (tangential edges)** as it seems to be a restriction by the kernel. I never said that it wont mirror faces at all - how could I? I know it does!

> [@swebal](#):
>
> hence one of the devs acknowledging this as a bug.

He considered this **might** be a bug:

> [@Laci\_K](#):
>
> Thanks, that might indeed be one. 🙏

That is not the same as acknowlediging it is one.

Again: As this issue seems to be caused by kernel-function (as it is the same behaviour over at SolidWorks) AND there are several workarounds for this, I dont expect Shapr3D to spend a minute or a dime on this issue. Like it or not: that is the way it is!

> [@swebal](#):
>
> Don’t worry, my feelings aren’t hurt. Your sense of self-entitlement might be though.

🤣

---

<div class="post-metadata">

**Author:** ![swebal](https://avatars.discourse-cdn.com/v4/letter/s/bb73d2/32.png) [@swebal](https://discourse.shapr3d.com/u/swebal)\
**Post date:** [December 10, 2022, 6:27pm UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/15 "2022-12-10T18:27:22Z")

</div>

Yes, parametric comes from parameter. 🙂 Solid bodies are represented by math (not vectors as in polygons). Math, as you know, contains functions. And functions… here it comes… contain parameters. Just because you can’t see them doesn’t mean they aren’t there. Shocking, I know…

I am trying to determine why the mirroring operation is failing in an effort to help the devs. As I am not a dev on this app, I can’t say if it’s fixable or not, but as I am a dev, I would certainly appreciate the trial and error.

If you claim this operation also fails in SolidWorks, Ok fine. Write only that and skip the rant. This doesn’t mean it will never be fixed, it just means it’s outside of Shapr3D scope. They likely have an internal reporting feature to SW. If not, then fine. If they do, then good.

Might be a bug, is a bug, whatever. It doesn’t work. Should it? I think so.

---

<div class="post-metadata">

**Author:** ![Istvan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.shapr3d.com/istvan/32/23668_2.png) [@Istvan](https://discourse.shapr3d.com/u/Istvan)\
**Post date:** [December 10, 2022, 6:30pm UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/16 "2022-12-10T18:30:43Z")

</div>

I understand everyone’s point, but this thread took an unfortunate direction so I am closing this topic.

---

<div class="post-metadata">

**Author:** ![Istvan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.shapr3d.com/istvan/32/23668_2.png) [@Istvan](https://discourse.shapr3d.com/u/Istvan)\
**Post date:** [December 10, 2022, 6:30pm UTC](https://discourse.shapr3d.com/t/mirror-faces-bug/21976/17 "2022-12-10T18:30:59Z")

</div>


