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

[Problem] PartDesign: Incorrect error thrown on some PartDesign Pad taper of circles #8160

Open
2 tasks done
berkakinci opened this issue Jan 10, 2023 · 13 comments
Open
2 tasks done
Labels
Bug This issue or PR is related to a bug WB Part Design Related to the Part Design Workbench

Comments

@berkakinci
Copy link

Is there an existing issue for this?

  • I have searched the existing issues

Forums discussion

https://forum.freecadweb.org/viewtopic.php?f=3&t=75158

Version

0.21 (Development)

Full version info

Reproduced on:
OS: macOS 10.16
Word size of FreeCAD: 64-bit
Version: 0.21.0.31513 (Git)
Build type: Release
Branch: master
Hash: b2ab8edba4bfd71681e639f8c3f1105066bed4c7
Python 3.10.8, Qt 5.15.4, Coin 4.0.0, Vtk 9.1.0, OCC 7.6.3
Locale: C/Default (C)

Observed in "the wild" at:
OS: macOS 10.16
Word size of FreeCAD: 64-bit
Version: 0.20.2.29603 (Git)
Build type: Release
Branch: (HEAD detached at 0.20.2)
Hash: 930dd9a76203a3260b1e6256c70c1c3cad8c5cb8
Python 3.10.8, Qt 5.15.4, Coin 4.0.0, Vtk 9.1.0, OCC 7.6.3
Locale: C/Default (C)

Subproject(s) affected?

PartDesign

Issue description

[Note this redundant info; mostly a copy of original post in forum]

I use PartDesign Pads and Pockets with taper angles for injection moldability. So taper angles are small (~5deg). I've had annoying failures when using taper angles. I think it's specific to circles/arcs. The error is:

Extrusion: end face of tapered against extrusion is empty
This means most probably that the against taper angle is too large or small.

However this error is not correct. No faces are disappearing. I will show this in the attached model. It also seems very very specific to a 2mm sketch dimension; that makes me think some "magic" non-zero value may be in a check.

I finally got around to reproducing in a simple file and reproducing on the latest weekly.

To reproduce:

  • Open attached file.
  • Navigate in Model view to Part->Body->Pad->Sketch
  • In Data pane, change Constraints->Constraint2 from 2.01mm to 1.99mm

Expected:
Tapered cylinder updates

Observed:
The error message in report view:

08:33:12  Extrusion: end face of tapered against extrusion is empty
This means most probably that the against taper angle is too large or small.
08:33:12  Recompute failed! Please check report view.

Changing back to 2.01mm (or even 2.00001mm for me) works; 1.99mm or 2.00mm throws error. You can clearly see the face is nowhere close to disappearing.

I observed this originally on 0.20.1, then on 0.20.2. I reproduced it also on the weekly dev builds. See full version info for details.

Anything else?

Screenshot showing taper with 2.01mm circle sketch
Screenshot 2023-01-10 at 08 35 34

To reproduce, use:
Taper_for_2mm.FCStd.zip

This is a workaround demo:
Taper_for_2mm_2arc_workaround.FCStd.zip

Code of Conduct

  • I agree to follow this project's Code of Conduct
@berkakinci berkakinci changed the title [Issue] [Issue] Incorrect error thrown on some PartDesign Pad taper of circles Jan 10, 2023
@berkakinci
Copy link
Author

I should add the same happens for tapered pockets as well. To reproduce:

  • Open attached file (Taper_for_2mm_Pocket.FCStd)
  • Navigate in Model view to Part->Body->Pocket->Sketch
  • In Data pane, change Constraints->Constraint2 from 2.01mm to 1.99mm

Taper_for_2mm_Pocket.FCStd.zip

@GeneGH
Copy link
Contributor

GeneGH commented Jan 11, 2023

As pointed out in the forum discussion the problem appears to be related to the use of a circle. Other shapes appear to work correctly.

@luzpaz luzpaz added Bug This issue or PR is related to a bug WB Part Design Related to the Part Design Workbench labels Jan 14, 2023
@tbMaker1
Copy link

Hello, in the case of injection molding, maybe you should use PartDesign_draft where it fits, instead of pad/taper.

@berkakinci
Copy link
Author

Hello, in the case of injection molding, maybe you should use PartDesign_draft where it fits, instead of pad/taper.

Thanks for the recommendation. I do use drafts too. However, I prefer to use the taper at the feature generation when possible. I find it a lot more robust. With drafts, as any other dress up feature, changes after-the-fact often break the design. That requires a lot of error prone cleanup operations late in the project.

I have had to work around issues like these by alternate approaches. Unfortunately, in some of those cases I find the alternate approaches have related failures. I can’t remember if I tried draft here.

@tbMaker1
Copy link

I am looking into this issue as part also of #8587, #8949 and #8950.

@Stokestack
Copy link

Stokestack commented May 7, 2023

I encountered this on a pretty simple shape from an imported SVG that has no circle, so not sure it's circle-dependent. I'm on Mac OS 13.3.1 on Apple Silicon.

@berkakinci
Copy link
Author

I encountered this on a pretty simple shape from an imported SVG that has no circle, so not sure it's circle-dependent. I'm on Mac OS 13.3.1 on Apple Silicon.

I imagine a lot of different possibilities for errors with geometry not created in FreeCAD. Still, you should upload an example file.

@Stokestack
Copy link

Here you go. I've attached the FreeCAD file right before the extrude step that will fail, and the original SVG I imported.

One of the shapes in the SVG works, but the other doesn't. I don't know why they'd be different. Here's a video of how to reproduce it.

extrudeFail.zip

@ghost
Copy link

ghost commented Jul 4, 2023

When i enter <= 2mm, it crashes.

Err: Program received signal SIGSEGV, Segmentation fault.
Err: #0  /lib/x86_64-linux-gnu/libc.so.6(+0x38d60) [0x7fc5133fcd60]
Err: #1  0x7fc3da6ca4c9 in MAT_ListOfBisector::Current() const from /usr/local/lib/libTKTopAlgo.so.7.7+0x9
Err: #2  0x7fc3da6e03f7 in MAT2d_Mat2d::CreateMat(MAT2d_Tool2d&) from /usr/local/lib/libTKTopAlgo.so.7.7+0x36e7
Err: #3  0x7fc3da708050 in BRepMAT2d_BisectingLocus::Compute(BRepMAT2d_Explorer&, int, MAT_Side, GeomAbs_JoinType, bool) from /usr/local/lib/libTKTopAlgo.so.7.7+0xa80
Err: #4  0x7fc3db229c6a in BRepFill_OffsetWire::Init(TopoDS_Face const&, GeomAbs_JoinType, bool) from /usr/local/lib/libTKBool.so.7.7+0x19a
Err: #5  0x7fc3db22a1a0 in BRepFill_OffsetWire::BRepFill_OffsetWire(TopoDS_Face const&, GeomAbs_JoinType, bool) from /usr/local/lib/libTKBool.so.7.7+0x1a0
Err: #6  /usr/local/lib/libTKOffset.so.7.7(+0x97a8e) [0x7fc3dc5f2a8e]
Err: #7  0x7fc3dc5f3d93 in BRepOffsetAPI_MakeOffset::Perform(double, double) from /usr/local/lib/libTKOffset.so.7.7+0xbc3
Err: #8  0x7fc3dcf5fa7d in Part::ExtrusionHelper::createTaperedPrismOffset(TopoDS_Wire, gp_Vec const&, double, bool, TopoDS_Wire&) from /home/user/Programs/FreeCADmaster/build/Mod/Part/Part.so+0x21d
Err: #9  0x7fc3dcf61257 in Part::ExtrusionHelper::makeDraft(TopoDS_Shape const&, gp_Dir const&, double, double, double, double, bool, std::__cxx11::list<TopoDS_Shape, std::allocator<TopoDS_Shape> >&, bool) from /home/user/Programs/FreeCADmaster/build/Mod/Part/Part.so+0x1407
Err: #10  0x7fc3d86e47b4 in PartDesign::FeatureExtrude::generateTaperedPrism(TopoDS_Shape&, TopoDS_Shape const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gp_Dir const&, double, double, double, double, bool) from /home/user/Programs/FreeCADmaster/build/Mod/PartDesign/_PartDesign.so+0x144
Err: #11  0x7fc3d86f22ed in PartDesign::Pad::execute() from /home/user/Programs/FreeCADmaster/build/Mod/PartDesign/_PartDesign.so+0x165d
Err: #12  0x7fc5154ff17a in App::DocumentObject::recompute() from /home/user/Programs/FreeCADmaster/build/lib/libFreeCADApp.so+0xba
Err: #13  0x7fc3dcde3369 in Part::Feature::recompute() from /home/user/Programs/FreeCADmaster/build/Mod/Part/Part.so+0x9
Err: #14  0x7fc5154ac3ed in App::Document::_recomputeFeature(App::DocumentObject*) from /home/user/Programs/FreeCADmaster/build/lib/libFreeCADApp.so+0x29d
Err: #15  0x7fc5154b38ae in App::Document::recompute(std::vector<App::DocumentObject*, std::allocator<App::DocumentObject*> > const&, bool, bool*, int) from /home/user/Programs/FreeCADmaster/build/lib/libFreeCADApp.so+0x56e
Err: #16  0x7fc516099328 in Gui::PropertyEditor::PropertyEditor::recomputeDocument(App::Document*) from /home/user/Programs/FreeCADmaster/build/lib/libFreeCADGui.so+0x68
Err: #17  0x7fc5160993d0 in Gui::PropertyEditor::PropertyEditor::closeTransaction() from /home/user/Programs/FreeCADmaster/build/lib/libFreeCADGui.so+0x70
Err: #18  0x7fc51609c9e9 in Gui::PropertyEditor::PropertyEditor::closeEditor(QWidget*, QAbstractItemDelegate::EndEditHint) from /home/user/Programs/FreeCADmaster/build/lib/libFreeCADGui.so+0x39
Err: #19  /lib/x86_64-linux-gnu/libQt5Core.so.5(+0x2e45e0) [0x7fc513a635e0]
Err: #20  0x7fc5147658c0 in QAbstractItemDelegate::closeEditor(QWidget*, QAbstractItemDelegate::EndEditHint) from /lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x50
Err: #21  0x7fc513a58ff1 in QObject::event(QEvent*) from /lib/x86_64-linux-gnu/libQt5Core.so.5+0x291
Err: #22  0x7fc5144ef15f in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x7f
Err: #23  0x7fc515e1f618 in Gui::GUIApplication::notify(QObject*, QEvent*) from /home/user/Programs/FreeCADmaster/build/lib/libFreeCADGui.so+0x68
Err: #24  0x7fc513a2cfca in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /lib/x86_64-linux-gnu/libQt5Core.so.5+0x12a
Err: #25  0x7fc513a2fa01 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) from /lib/x86_64-linux-gnu/libQt5Core.so.5+0x171
Err: #26  /lib/x86_64-linux-gnu/libQt5Core.so.5(+0x305e93) [0x7fc513a84e93]
Err: #27  /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x25b) [0x7fc5117c9e6b]
Err: #28  /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x52118) [0x7fc5117ca118]
Err: #29  /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2f) [0x7fc5117ca1cf]
Err: #30  0x7fc513a8451f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /lib/x86_64-linux-gnu/libQt5Core.so.5+0x5f
Err: #31  0x7fc513a2b98b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /lib/x86_64-linux-gnu/libQt5Core.so.5+0x12b
Err: #32  0x7fc513a33c00 in QCoreApplication::exec() from /lib/x86_64-linux-gnu/libQt5Core.so.5+0x90
Err: #33  0x7fc515d88148 in Gui::Application::runApplication() from /home/user/Programs/FreeCADmaster/build/lib/libFreeCADGui.so+0x2498
Err: #34  /home/user/Programs/FreeCADmaster/build/bin/FreeCAD(+0x98ac) [0x5564fbf788ac]
Err: #35  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7fc5133e7d0a]
Err: #36  /home/user/Programs/FreeCADmaster/build/bin/FreeCAD(+0x9b5a) [0x5564fbf78b5a]
OS: Debian GNU/Linux 11 (bullseye) (X-Cinnamon/lightdm-xsession)
Word size of FreeCAD: 64-bit
Version: 0.21.0.33487 (Git)
Build type: Release
Branch: master
Hash: 3cb5bdcbe4266b933b3c7a53055cc4212cd3cfa1
Python 3.9.2, Qt 5.15.2, Coin 4.0.0, Vtk 9.0.1, OCC 7.7.1
Locale: English/United States (en_US)
Installed mods: 
  * QuickMeasure 2022.10.28
  * Assembly4 0.12.6
  * CurvedShapes 1.0.4
  * Curves 0.6.8

@berkakinci
Copy link
Author

berkakinci commented Jul 4, 2023 via email

@ghost
Copy link

ghost commented Jul 4, 2023

There are some weird cone and draft issues atm, example #5649, unexplainable.

@luzpaz
Copy link
Contributor

luzpaz commented Nov 1, 2023

@FlachyJoe have you encountered this issue ?

@FlachyJoe
Copy link
Contributor

I didn't use taper pad yet, I'll take a look.

@luzpaz luzpaz changed the title [Issue] Incorrect error thrown on some PartDesign Pad taper of circles [Problem] PartDesign: Incorrect error thrown on some PartDesign Pad taper of circles Nov 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug This issue or PR is related to a bug WB Part Design Related to the Part Design Workbench
Projects
None yet
Development

No branches or pull requests

6 participants