View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003142 | PartDesign | Bug | public | 2017-07-27 09:11 | 2021-12-29 03:50 |
Reporter | Sam | Assigned To | chennes | ||
Priority | high | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | intel i7 laptop | OS | ubuntu | OS Version | 16.04.2 |
Product Version | 0.17 | ||||
Target Version | 0.20 | Fixed in Version | 0.20 | ||
Summary | 0003142: Crash creating fillets on sweep (OCC bug) | ||||
Description | Fooling around with sweeps investigating an issue with another design. The attached file is very very fragile when creating fillets. I have caused less crashes with a .1mm fillet. I also occasionally see some unexpected propagation along multiple unselected edges with a tiny fillet. But I don't know what the behaviour is actually supposed to be. | ||||
Steps To Reproduce | Select the underside corners of the sweep. Fillet003.Edge42 & Fillet003.Edge22 Click make fillet in the toolbar. Crash. | ||||
Additional Information | OS: Ubuntu 16.04.2 LTS Word size of OS: 64-bit Word size of FreeCAD: 64-bit Version: 0.17.11670 (Git) Build type: None Branch: master Hash: 7b066fe33488ddc389c4545e93647a8e59e69a2b Python version: 2.7.12 Qt version: 4.8.7 Coin version: 4.0.0a OCC version: 7.1.0 Locale: English/UnitedKingdom (en_GB) | ||||
Tags | 0.18, crash, fillet, OCC Bug, OCC NotOnRoadmap, upstream | ||||
FreeCAD Information | Tracking this via OCC bugs in the bugtracker forum thread | ||||
|
|
|
@Sam please link forum thread to ticket. thanks |
|
Are you saying this works for you? I am trying to give the project useful feedback in exchange for the help I've had on the forum. I understand that nobody wants their bug tracker littered with crummy junk from n00bs that never show up again. This is a clear and concise issue with a simple example file and step by step guide to recreate it. There is no forum thread. I do not need a discussion to confirm that a crash is a |
|
@Kunda1 I just re-read your comment, and it is very polite. It is first thing in the morning here, and apparently it takes me a while to become fully rational. I know I did not follow the very clear reporting guidelines. If this is a problem, you are welcome to close the issue. |
|
@Sam I thought i saw you post something in the Forum and someone said for you to opne a ticket about it. I was assuming that was the thread you needed to link. Is this a separate issue ? |
|
This issue stands by itself. I did discover it while I was working through simplifying another issue I have, but it is unrelated. I do have other, less well defined, issues that I am working through on the forum. |
|
Another file attached. I was experimenting with this some more, and I see some other unusual behaviour: You should be able to re-create this from scratch:
This doesn't cause a crash, but might be a clue for someone:
|
|
@normandc care to take a look ? (thanks in advance) |
|
Wow! Instant crash when trying to fillet Fillet003.Edge22 & Fillet003.Edge62 (I assume Face42 was a typo) from the original "sweep test 2.fctsd" file. Obviously this should not happen. The source of the problem is that the residual edges left by the sweep create a corner face on top and bottom of the sweep. The Fillet algorithm cannot deal with this condition and doesn't know how to extend each filleted edge to meet on this quarter round face. To confirm this, try the following which goes against my own usual advice :-P: go to Edit --> Preferences/Part Design/General and enable "Automatically refine model after sketch-based operation"; then mark the model to recompute (Right-click on the "sweep test 2" label in the Model tree) and refresh (CTRL + R). This removes the residual edges and leaves a single face. Then, when filleting the two underside edges of the sweep, the fillet succeeds. Another way to make the fillet succeed is to first fillet the vertical corner edge Fillet003.Edge37. Then the fillet propagates all around the underside. So, this bug report should be about preventing a hard crash and instead allowing the fillet feature to fail with an error. Sam, could you provide a backtrace as explained in the following wiki page? https://www.freecadweb.org/wiki/Debugging Even if you use the daily PPA package rather than compile a debug build, I think it could provide useful info. One other thing to try is to install the debug symbols package which in theory should produce the same output as a debug build. https://forum.freecadweb.org/viewtopic.php?f=4&t=20347 Tested on OS: Ubuntu 16.04.2 LTS Word size of OS: 64-bit Word size of FreeCAD: 64-bit Version: 0.17.11670 (Git) Build type: None Branch: master Hash: 7b066fe33488ddc389c4545e93647a8e59e69a2b Python version: 2.7.12 Qt version: 4.8.7 Coin version: 4.0.0a OCC version: 7.1.0 Locale: French/Canada (fr_CA) |
|
BTW this is a clear case where a refine shape, either manual or automatic is necessary before applying fillets/chamfers. Which validates my 0002683 feature request. |
|
I can't reproduce. BTW you should attach your box to the origin. In the Primitive parameters (task panel), the first button is automatically active and shows "Selecting...", awaiting a selection. Select the XY_Plane for example. Your sketch contains a square, not an oblong...? Same issue as original description, same culprit: the residual edge at the corner. (Same solution too) Not having this issue. This may be graphics related, and not relevant to the current report. |
|
A fillet will always propagate along a chain of edges that are contiguous and tangent. |
|
@kkremitzki since this is PDN, care to have a look ? |
|
http://paste.ubuntu.com/25202716/ |
|
Since this is a hard crash I'm targetting it for 0.17 |
|
Opened forum thread: https://forum.freecadweb.org/viewtopic.php?f=8&t=23998 for further discussion. |
|
Here the stack trace starting from the PD fillet feature: opencascade::handle<TopLoc_SListNodeOfItemLocation>::handle<TopLoc_SListNodeOfItemLocation> Standard_Handle.hxx 68 TopLoc_SListOfItemLocation::TopLoc_SListOfItemLocation TopLoc_SListOfItemLocation.lxx 32 TopLoc_Location::TopLoc_Location TKMathd TopLoc_Location::Multiplied TopLoc_Location.cxx 108 TopLoc_Location::operator * TopLoc_Location.hxx 101 BRep_Tool::Surface BRep_Tool.cxx 88 BRep_Tool::Parameters BRep_Tool.cxx 1454 ChFi3d_IsInFront ChFi3d_Builder_0.cxx 891 ChFi3d_FilBuilder::PerformTwoCorner ChFi3d_FilBuilder_C2.cxx 244 ChFi3d_Builder::PerformFilletOnVertex ChFi3d_Builder.cxx 769 ChFi3d_Builder::Compute ChFi3d_Builder.cxx 303 BRepFilletAPI_MakeFillet::Build BRepFilletAPI_MakeFillet.cxx 534 PartDesign::Fillet::execute FeatureFillet.cpp 101 The actual bug is inside the function ChFi3d_IsInFront where it is tried to get the (u,v) parameter of a vertex on a face. However the face is a null shape which isn't checked beforehand. This is clearly an OCC bug. |
|
@wmayer what version of OCC did you test with ? |
|
OCC 7.0.0 |
|
@wmayer what about OCC 7.1 or 7.2 ? |
|
sweep test 2.fcstd still crashes with FC 0.18 and OCCT 7.3.0. OS: Ubuntu 18.04.1 LTS Word size of OS: 64-bit Word size of FreeCAD: 64-bit Version: 0.18.14727 (Git) Build type: Release Branch: master Hash: c6df59969bfb3ae2027e2b47ddd559852f6e9a4e Python version: 2.7.15rc1 Qt version: 4.8.7 Coin version: 4.0.0a OCC version: 7.3.0 Locale: French/Canada (fr_CA) |
|
Tracking this via OCC bugs in the bugtracker forum thread |
|
@chennes has created a downstream patch that fixes the crash. It is slowly being integrated in to downstream packages (ATM libpack is the only one but more will follow). This issue is therefore being marked as resolved. It will be closed once all packages are patched or when (if) upstream merges. |
|
This patch has been merged into OpenCASCADE 7.6, and the patch for earlier OCCT versions has been incorporated into all packages of FreeCAD 0.19.3 that I am aware of. |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-07-27 09:11 | Sam | New Issue | |
2017-07-27 09:11 | Sam | File Added: sweep test 2.fcstd | |
2017-07-27 17:04 | Kunda1 | Note Added: 0009838 | |
2017-07-27 19:20 | Sam | Note Added: 0009841 | |
2017-07-27 19:40 | Sam | Note Added: 0009844 | |
2017-07-27 20:15 | Kunda1 | Note Added: 0009845 | |
2017-07-27 20:31 | Sam | Note Added: 0009846 | |
2017-07-27 20:58 | Sam | File Added: sweep test 4.fcstd | |
2017-07-27 20:58 | Sam | Note Added: 0009847 | |
2017-07-28 01:19 | Kunda1 | Note Added: 0009848 | |
2017-07-28 01:49 | normandc | Note Added: 0009850 | |
2017-07-28 01:49 | normandc | Note Edited: 0009850 | |
2017-07-28 01:55 | normandc | Note Added: 0009851 | |
2017-07-28 02:11 | normandc | Note Added: 0009852 | |
2017-07-28 02:14 | normandc | Note Added: 0009853 | |
2017-07-28 10:46 | Kunda1 | Note Added: 0009854 | |
2017-07-28 10:46 | Kunda1 | Status | new => confirmed |
2017-07-30 03:27 | Sam | Note Added: 0009858 | |
2017-08-14 14:52 | Kunda1 | Target Version | => 0.17 |
2017-08-14 14:52 | Kunda1 | Note Added: 0009932 | |
2017-08-14 14:53 | Kunda1 | Priority | normal => high |
2017-08-21 11:11 | Kunda1 | Relationship added | related to 0002683 |
2017-08-21 11:16 | Kunda1 | Note Added: 0009978 | |
2017-10-18 19:58 | wmayer | Note Added: 0010325 | |
2017-10-18 19:58 | wmayer | Target Version | 0.17 => |
2017-10-18 20:06 | Kunda1 | Tag Attached: OCC Bug | |
2017-10-18 20:06 | Kunda1 | Tag Attached: OCC NotOnRoadmap | |
2017-10-18 20:06 | Kunda1 | Tag Attached: upstream | |
2017-10-18 20:08 | Kunda1 | Note Added: 0010326 | |
2017-10-22 18:05 | wmayer | Note Added: 0010337 | |
2017-10-22 19:32 | Kunda1 | Note Added: 0010338 | |
2017-11-03 17:13 | Kunda1 | Tag Attached: 0.18 | |
2018-09-16 15:50 | normandc | Note Added: 0011761 | |
2019-02-27 21:37 | Kunda1 | Summary | Crash creating fillets on sweep => Crash creating fillets on sweep (OCC bug) |
2020-12-31 12:51 | Kunda1 | FreeCAD Information | => Tracking this via OCC bugs in the bugtracker forum thread |
2020-12-31 12:51 | Kunda1 | Note Added: 0015190 | |
2021-02-03 16:51 | Kunda1 | Tag Attached: fillet | |
2021-02-03 16:52 | Kunda1 | Tag Attached: crash | |
2021-02-06 06:43 | abdullah | Target Version | => 0.20 |
2021-02-27 13:33 | Kunda1 | Assigned To | => chennes |
2021-02-27 13:33 | Kunda1 | Status | confirmed => resolved |
2021-02-27 13:33 | Kunda1 | Resolution | open => fixed |
2021-02-27 13:33 | Kunda1 | Fixed in Version | => 0.20 |
2021-02-27 13:33 | Kunda1 | Note Added: 0015453 | |
2021-02-27 13:33 | Kunda1 | Relationship added | duplicate of 0004543 |
2021-12-29 03:50 | chennes | Status | resolved => closed |
2021-12-29 03:50 | chennes | Note Added: 0016149 |