Mirror faces [BUG?]

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?

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

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?

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.

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? :lady_beetle:

1 Like

Thanks, that might indeed be one. :pray:

1 Like

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…?

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.

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

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

1 Like

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.

It is not my intention to hurt your feelings, but 3D-CAD is hardcore-math, there is no room for feelings. :wink:
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.

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.

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.

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?

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.

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!

He considered this might be a bug:

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!


Yes, parametric comes from parameter. :slight_smile: 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.

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