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

Bad openings #210

Open
ghost opened this issue May 5, 2021 · 7 comments
Open

Bad openings #210

ghost opened this issue May 5, 2021 · 7 comments

Comments

@ghost
Copy link

ghost commented May 5, 2021

Hello,

I have a problem with some openings in walls as you can see in this capture done in a build of SimpleViewerExampleQt using the last ifc++ source ( 2021 - 05 - 05 ).

NewViewer

The problem does not appear in the build version of the viewer available to download on the website :

OlderViewer

Even if there's another problem on the window on the right of the image.

Here is the same wall viewed in BimVision :

BimVision

And here is the IFC file containing this wall.

buggy.zip

Thanks for the good job !

Stéphane

@ifcquery
Copy link
Owner

Carve is the library here used for boolean operations: https://github.com/folded/carve
Probably the issue above has to do with the epsilon value used by carve to determine whether a point is in a plane or not.
You can change this value like this: GeometryConverter::setCsgEps(double eps)

@ghost
Copy link
Author

ghost commented May 12, 2021

Thanks for your answer, I've tried different values from 1.5e-1

image

to 1.5e-15

image

but, unfortunately, it does not fix the problem.

@ifcquery
Copy link
Owner

CSG operations are a field of its own, that's why it is an external library.
There are possible ways to improve this:

  • improve the carve library
  • fix and re-triangulate the complete mesh before each subtraction of an opening
    Let me know if you find an improvement :)

@ghost
Copy link
Author

ghost commented May 17, 2021

Thank you for your answer. With your clues, one of our developer fixed the issue inserting this line :

CSG_Adapter::retriangulateMeshSet( product_meshset );

in RepresentationConverter.h , line 1083, just before

CSG_Adapter::computeCSG( product_meshset, opening_meshset, carve::csg::CSG::A_MINUS_B, result, this, ifc_element );

Perhaps it should be a good idea to propose it as an option in GeometrySettings ?

@ifcquery
Copy link
Owner

"as an option in GeometrySettings". Good idea, I will put that in the next update soon

@cesss
Copy link

cesss commented Jul 2, 2021

I'm interested in this 😃

@ifcquery
Copy link
Owner

Should be improved with latest update. Yet not perfect...

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

No branches or pull requests

2 participants