Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regression: CurvedSegment Ribs are too small and don't fit the hullcurve #52

Open
AIRCAP opened this issue Nov 19, 2024 · 6 comments · May be fixed by #54
Open

Regression: CurvedSegment Ribs are too small and don't fit the hullcurve #52

AIRCAP opened this issue Nov 19, 2024 · 6 comments · May be fixed by #54

Comments

@AIRCAP
Copy link
Contributor

AIRCAP commented Nov 19, 2024

Commit ba13b70 reintroduced #34 - breaks CurvedSegments

@AIRCAP
Copy link
Contributor Author

AIRCAP commented Nov 19, 2024

Probably tessellate is the wrong way to fix this. Shape.BoundBox should not be used anywhere in an execute() function, since its exact values

a) depend on whether the part has been tessellated
b) depend on the GUI Shape meshing settings

to make the shape calculation independent of GUI settings in FreeCAD preferences function Shape.optimalBoundingBox() - which does not rely on tessellation. this could worst case be a lot slower than Shape.BoundBox, which uses the tessellated GUI mesh to calculate an approximate boundingbox

@AIRCAP
Copy link
Contributor Author

AIRCAP commented Nov 19, 2024

to be exact, the right call to give the same values seems to be
optimalBoundingBox(False,False)

@AIRCAP
Copy link
Contributor Author

AIRCAP commented Nov 19, 2024

actually its not that easy. I just had a SubShapeBinder to a sketch that for the Z boundingbox reports +- epsilon even with (False,False) with optimalBoundingBox() (or optimalBoundingBox(True) it gets over a millimeter in (nonexisting length)

that means for the calculation whether a boundingbox is "flat" in a dimension which CurvedArray does all the time, the Shape's tolerance has to be taken into account (epsilon has to be set to 2* tolerance - not Precision:Confusion() )

@AIRCAP
Copy link
Contributor Author

AIRCAP commented Nov 19, 2024

I take it back, even a 2D part with high tolernace optimalBVoundingBox(False,False) doesn't seem to ever get thicker than 2e-7 - so increasing epsilon by factor 4 should be sufficient

@AIRCAP
Copy link
Contributor Author

AIRCAP commented Nov 19, 2024

let's do factor 10 just to be on the safe side

@AIRCAP AIRCAP linked a pull request Nov 19, 2024 that will close this issue
@AIRCAP
Copy link
Contributor Author

AIRCAP commented Nov 19, 2024

#53 should be a good workaround for this i hope

@AIRCAP AIRCAP mentioned this issue Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant