View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003697||File formats||Bug||public||2018-11-17 01:10||2019-08-14 19:30|
|Reporter||Dale Mahalko||Assigned To|
|Platform||Windows 10 64-bit||OS||Windows 10|
|Summary||0003697: Opening huge 147 MB STEP file leads to "Not responding"|
|Description||I am not a regular user of FreeCAD, I only just installed it before trying to do this and seeing this problem.|
I am only trying to use FreeCAD to convert a complete STEP model of the Ultimaker 3 Extended, into a mesh for use in non-CAD 3D modeling software.
The problem is not that FreeCAD has crashed but that it is working so hard on reading the STEP file, that it stops responding to Windows, which to the end user may appear to be a crash or freeze.
FreeCAD needs to:
|Steps To Reproduce||This is all I have done with FreeCAD, so far:|
|Additional Information||OS: Windows 10|
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13541 (Git)
Build type: Release
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: English/UnitedStates (en_US)
|Tags||No tags attached.|
I have committed a PR to the git repo that attempts to fix this issue (I think the progressbar in the statusbar did work at some time in the past for loading STEP files).
It still has some few issues:
The loader is still performed in the MainThread, and some of the calls into OCCT library are heavy:
* The initial file load function does not support feedback, causing the initial pause, before anything happens at all.
* Transferring of the STEP model into the internal format of OCCT the heavy task, and does give us Progress feedback, but some of the internal steps are very big at the end, still causing long pauses.
* I think the OCCT library supports cancellation to be sent during the transfer, but we do not show that in the StatusBar
FreeCAD: master 06ef43c7
Committer: wmayer Details Diff
We need to initialize progressTime for given number of step-operations too,
else the filter that checks for X ms between each refresh update will always
fail, due to time-difference being way out of range.
Also, 10 updates per second is not a lot, since we also filter out the
QT event loop for long operations performed in the main thread.
|mod - src/Gui/ProgressBar.cpp||Diff File|
|2018-11-17 01:10||Dale Mahalko||New Issue|
|2018-11-17 08:51||chrisb||Note Added: 0012203|
|2018-11-17 08:52||chrisb||Severity||minor => feature|
|2018-12-30 23:27||mywave82||Note Added: 0012348|
|2019-01-01 21:04||wmayer||Status||new => closed|
|2019-01-01 21:04||wmayer||Resolution||open => fixed|
|2019-01-01 21:04||wmayer||Note Added: 0012361|
|2019-01-01 21:05||wmayer||Note Edited: 0012361||View Revisions|
|2019-08-14 19:30||Kunda1||Changeset attached||=> FreeCAD master 06ef43c7|