-
-
Notifications
You must be signed in to change notification settings - Fork 4k
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
[PD] Support for point sections in loft #5170
Conversation
What is the status of this PR? Concerning the feature, it should support to use vertices of 3D objects as well as sketches just consisting of a point object but not datum points. However, I could not resist to merge already the 2 typos you corrected in the PR. |
I answered some questions in #5168 (comment). In summary, we can use vertices of the solid object as the last section for a loft, and I'm working on trying to support solid vertices for start and later sketch vertices.
If anything this support forces us to address supporting vertex-only sketches, or only vertices from sketches, because for loft (and pipe) vertices and circles mean different things.
That's perfectly fine :) |
Started a forum thread to keep the PR thread clean: https://forum.freecadweb.org/viewtopic.php?f=19&t=63697. @donovaly @adrianinsaval perhaps we should move the discussion there. |
dbf4220
to
88af98d
Compare
@donovaly @adrianinsaval there are a few things remaining to be done, but overall I would call this ready for review. |
0383c66
to
08e6c44
Compare
08e6c44
to
557193c
Compare
c34b682
to
5d1e4d9
Compare
58c4a62
to
f9a50d8
Compare
9a5cf9b
to
f9a50d8
Compare
f9a50d8
to
e185ef3
Compare
Adding back the "do not merge" tag, because after rebasing with PR #5176 merged, the "front" face is not built. |
e185ef3
to
4c8ba1a
Compare
This bug should now be fixed. |
This is a combination of 4 commits. Original commit messages follow. [PD] Initial support for point sections in loft This commit allows the last section in a loft to be a single vertex of a solid. Currently single vertices of sketches or datum points are NOT supported. [PD] Allow loft "profiles" to be points Most reliably done in dialog-based workflow. [PD] Allow loft last section to be sketch point [PD] Refactor `Loft::execute` Makes it easier to support adding a single-vertex sketch in profile or sections field when selecting the sketch in tree (i.e. without selecting subelements). [PD] Refactoring after PR FreeCAD#5176 is merged
4c8ba1a
to
f8da88c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent work.
I stress-tested the feature and it works nicely. I have only minor comments/clarifications.
Many thanks for this PR. This improves the loft feature a lot since pyramids are not that rare (own experience). Please have a look at my very minor comments. I will merge it then and then you can continue to bring Sweep/Pipe to the same functionality ;-) (By the way, after sweep/pipe can handle vertices as well, I propose to make a PR to uniform the naming. At the moment the tern "sweep" is mixed with "pipe" in the code. We should only use one term and "pipe" is for non-native speakers like me even misleading.) |
I now found a test case that fails: Here is the test file: So the loft is nicely created but then not visible. Maybe this is because a body cannot contain of several volume shapes and in my test case they form one but the most thin point is a vertex? |
That is probably exactly what's happening. Could you try deleting the box and using a sketch instead? |
Try one of the vertices on the left face. There should be some 2D (at least) intersection with the solid, or so I would imagine. |
Suggestions by @donovaly.
Merging now, since the comments and wording changes are in. The issue I mentioned in #5170 (comment) |
Similar to PR FreeCAD#5170 for loft. This commit squashes the following commits. [PD] Refactor `Pipe::execute` and support point sections [PD] Allow point profile in selection-based pipe workflow [PD] Only add sketch subs if it is vertex [PD] Make both end faces of pipe regardless of point sections Earlier we were checking if these faces correspond to point sections, but apparently the end faces are independent of the order in which the sections are added, so the "front" may be the face closest to the last added section, rather than the "profile". Creating null faces and adding them for sewing together into a solid does not appear to have side-effects so far.
Similar to PR FreeCAD#5170 for loft. This commit squashes the following commits. [PD] Refactor `Pipe::execute` and support point sections [PD] Allow point profile in selection-based pipe workflow [PD] Only add sketch subs if it is vertex [PD] Make both end faces of pipe regardless of point sections Earlier we were checking if these faces correspond to point sections, but apparently the end faces are independent of the order in which the sections are added, so the "front" may be the face closest to the last added section, rather than the "profile". Creating null faces and adding them for sewing together into a solid does not appear to have side-effects so far.
Similar to PR FreeCAD#5170 for loft. This commit squashes the following commits. [PD] Refactor `Pipe::execute` and support point sections [PD] Allow point profile in selection-based pipe workflow [PD] Only add sketch subs if it is vertex [PD] Make both end faces of pipe regardless of point sections Earlier we were checking if these faces correspond to point sections, but apparently the end faces are independent of the order in which the sections are added, so the "front" may be the face closest to the last added section, rather than the "profile". Creating null faces and adding them for sewing together into a solid does not appear to have side-effects so far.
Similar to PR #5170 for loft. This commit squashes the following commits. [PD] Refactor `Pipe::execute` and support point sections [PD] Allow point profile in selection-based pipe workflow [PD] Only add sketch subs if it is vertex [PD] Make both end faces of pipe regardless of point sections Earlier we were checking if these faces correspond to point sections, but apparently the end faces are independent of the order in which the sections are added, so the "front" may be the face closest to the last added section, rather than the "profile". Creating null faces and adding them for sewing together into a solid does not appear to have side-effects so far.
The
BRepOffsetAPI_ThruSections
method that forms the crux of loft supports the first and the last sections to be vertices instead of wires.Addresses issue#4607.