View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002245||FreeCAD||Bug||public||2015-09-09 15:18||2016-08-12 11:35|
|Fixed in Version||0.16|
|Summary||0002245: BRep File cannot be written|
|Description||After editing and saving files, errors in Report View show problem with saving BRep files in the temporary directory. On reopening the file, parts are not being rendered and some are moved. Was working ok in Windows 8.1. It appears as if the data in the temp files are not being written to the saved file since it is smaller than the original. This is likely related to problem 0001211.|
|Steps To Reproduce||Open EngineBlock.FCStd in /data/examples/|
Save File or Save As File
Numerous write errors appear in Report View window, such as:
Shape of 'Crankcase Billet' cannot be written to BRep file 'C:/Users/Bruce/AppData/Local/Temp/FCTA3CE.tmp'
|Additional Information||The file, after saving, with these errors is attached. I ran FreeCAD as administrator and this didn't help. The FreeCAD_xxxx.lock file appears in the temp directory so there shouldn't be a problem with write access.|
|Tags||No tags attached.|
There are many problems in that files that create problematic shapes... I guess some shapes cannot be written because their data is wrong...
Deleting the wrong objects (those marked with a red ! in the tree view) makes the file valid and, probably, savable again. I can't confirm because here I'm able to save your original file, even containing the errors.
I guess the problems are related to your HDD. When writing the project file then the shapes are tmp. stored in an extra file and then read back to be written to the zip file. And sometimes files are rather small and must be written and read very quickly.
In the API there is also a way to write/read everything directly. But the reason for the more complicated way is that there is no guarantee that the cad kernel is compiled with the same compiler version as FreeCAD. If this is not given the application will crash.
In the attached changeset there is now a way implemented to directly write to/read from the zip stream. In order to activate this go to the parameter editor and create under "BaseApp/Preferences/Mod/Part/General" the boolean key "DirectAccess" and set it to true.
|2015-09-09 15:18||tarrow||New Issue|
|2015-09-09 15:18||tarrow||File Added: EngineBlock.FCStd|
|2015-09-09 22:04||yorik||Note Added: 0006376|
|2015-09-09 22:04||yorik||Status||new => feedback|
|2015-10-17 13:43||wmayer||Relationship added||duplicate of 0001211|
|2015-10-17 15:14||wmayer||Changeset attached||=> FreeCAD Master master ad96714f|
|2015-10-17 15:22||wmayer||Note Added: 0006500|
|2015-10-17 15:22||wmayer||Status||feedback => closed|
|2015-10-17 15:22||wmayer||Assigned To||=> wmayer|
|2015-10-17 15:22||wmayer||Resolution||open => fixed|
|2015-10-17 15:22||wmayer||Fixed in Version||=> 0.16|
|2015-10-17 15:23||wmayer||Note Edited: 0006500|
|2015-12-25 10:04||wmayer||Relationship added||has duplicate 0002376|
|2016-08-12 11:35||wmayer||Relationship added||has duplicate 0002666|