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

Draft: Extruded Draft Facebinders should be able to close their corners #13816

Closed
2 tasks done
furgo16 opened this issue May 3, 2024 · 7 comments · Fixed by #18901
Closed
2 tasks done

Draft: Extruded Draft Facebinders should be able to close their corners #13816

furgo16 opened this issue May 3, 2024 · 7 comments · Fixed by #18901
Labels
Mod: Draft Related to the Draft Workbench Type: Feature FR for improvements or new features

Comments

@furgo16
Copy link
Contributor

furgo16 commented May 3, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Problem description

The Draft_Facebinder documentation states:

It can be used to create an extrusion from a collection of faces. This extrusion can for example represent a wall finish in architectural design.

I've found that not to be the case: when extruded using the Extrusion property, the resulting Facebinder does not join its corners. Expected: extruded facebinder has joined corners, or provides a property to join corners.

Facebinder extruded

Full version info

OS: Ubuntu Core 22 (ubuntu:GNOME/ubuntu)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.37085 (Git) Snap 1005
Build type: Release
Branch: main
Hash: c7c07f28c639e82a6d2c58f4aaef5b42cddcc83c
Python 3.10.12, Qt 5.15.10, Coin 4.0.0, Vtk 7.1.1, OCC 7.7.1
Installed mods: 
  * OpenTheme 2024.4.20
  * BIM 2021.12.0
  * Curves 0.6.35
  * ezydxf
  * ExplodedAssembly
  * BillOfMaterials 0.0.8.2
  * Ondsel-Lens 2024.4.16.01
  * Assembly4 0.50.12

Subproject(s) affected?

Draft

Anything else?

Code of Conduct

  • I agree to follow this project's Code of Conduct
@maxwxyz maxwxyz added Mod: Draft Related to the Draft Workbench Type: Feature FR for improvements or new features labels May 3, 2024
@yorikvanhavre
Copy link
Member

It's indeed the case. Faces are extruded individually. Of course this is not good, and faces should be united first then extruded as a whole.

I'm honestly not sure how to approach this, however. There are different extrusion directions, and a lot of corner cases... Is there some other tool of FreeCAD that would do a correct extrusion, that we could reuse here?

@Roy-043
Copy link
Contributor

Roy-043 commented May 6, 2024

You can use sewShape to create shells from faces. This is already done in the code, but before extruding the faces. However, extruding shells has some issues.
See: https://forum.freecad.org/viewtopic.php?t=87393

@yorikvanhavre
Copy link
Member

The Part 3D offset is able to do this. Maybe we should use that instead? Like, remove the ability to extrude from the Facebinder and orient people to use that tool?

Or maybe its functionality could be used from python, but it'll need some extra bindings..

@Roy-043
Copy link
Contributor

Roy-043 commented May 8, 2024

Part 3D offset has the same issues. Internally it uses the same code as makeOffsetShape.

@Roy-043
Copy link
Contributor

Roy-043 commented May 8, 2024

Related forum topic: https://forum.freecad.org/viewtopic.php?t=87468
Part 3D offset also has an issue with a pyramidal shell.

@furgo16
Copy link
Contributor Author

furgo16 commented May 8, 2024

https://wiki.freecad.org/Part_JoinConnect worked for the particular example in the forum (pyramidal roof), but it does not seem to work with Facebinder and the example file on this issue (external wall insulation). Trying to use Connect on the Facebinder here makes it disappear.

@luzpaz luzpaz changed the title Extruded Draft Facebinders should be able to close their corners Draft: Extruded Draft Facebinders should be able to close their corners Aug 18, 2024
Roy-043 added a commit to Roy-043/FreeCAD that referenced this issue Jan 6, 2025
Fixes FreeCAD#13816.

The `makeOffsetShape` method that creates the extruded shape is quite picky. For example, it will work for a pyramidal shell (4 triangles) with a square floorplan, but not if the floorplan is slightly rectangular. To get closed corners the `Sew` property of the Facebinder must be set to `True`. If extruding does not work properly, the code will retry with `Sew` disabled.

There is also some code that tries to convert flat B-spline faces created between the main offset faces into planar faces. In some cases that code will fail (the results of `makeOffsetShape` can already contain errors). If that is the case the original shape created by `makeOffsetShape` is used.
@furgo16
Copy link
Contributor Author

furgo16 commented Jan 8, 2025

This works really well, thanks! For future reference, to make the extruded facebinder (Facebinder003) join in a miter, its Sew property needs to be set to True

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mod: Draft Related to the Draft Workbench Type: Feature FR for improvements or new features
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants