The Rescue3dmFile command recovers data from damaged Rhino files.
|●||The Open, Import, and Insert commands will not read all the data from a damaged file.|
|●||Files can be damaged if they are stored on flawed media (such as a hard disk with a bad sector) or information is garbled in transmission (such as a noisy ftp transfer or a bad USB port).|
|●||The Rescue3dmFile command can be used on good files to see how it works.|
|1.||Select a file.|
A detailed description of the file’s contents. Search for the word ERROR in this section to see where the file is broken.
====== FILENAME: C:/RhinoFiles/BadFile.3dm
====== VERSION: 3
====== COMMENT BLOCK:
108272: 10000013 TCODE_OBJECT_TABLE: length = 103075 bytes
211347: FFFFFFFF TCODE_ENDOFTABLE: value = 0 (00000000)
211355: 10000017 TCODE_USER_TABLE: length = 55 bytes
214045: 00007FFF TCODE_ENDOFFILE: length = 4 bytes
current position = 214057 stored size = 214057
Lists all of the openNURBS objects in the file that might be recoverable. If an object is not listed, there is no hope for recovery.
Object 16722 bytes at offset 125176. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep)
Object 257 bytes at offset 142052. class id CF33BE2A-09B4-11d4-BFFB-0010830122F0 (ON_ArcCurve)
Object 257 bytes at offset 142463. class id CF33BE2A-09B4-11d4-BFFB-0010830122F0 (ON_ArcCurve)
Object 333 bytes at offset 142874. class id 5EAF1119-0B51-11d4-BFFE-0010830122F0 (TL_NurbsCurve)
Object 569 bytes at offset 144079. class id 4ED7D4E6-E947-11d3-BFE5-0010830122F0 (ON_PolylineCurve)
Object 15828 bytes at offset 145161. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep)
Object 16775 bytes at offset 161143. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep)
If the file is damaged, the word "ERROR" will appear something like
** ERROR near offset 78931 ** Rogue chunk in openNURBS class record.
To find damaged parts of the file, search for the word "ERROR" in the list.
Generally, there will be several "ERROR" lines because the reader tries to get past the error so it can analyze the remainder of the file.
Attempts to automatically recover all available objects in the file. Only the basic geometry is recovered. All attribute information, including layers, render materials, names, and so on is not recovered.
The Recover option acts like the Import command, in that it adds the objects from the file being rescued and preserves objects in the current session.
Reads items one at a time.
Specifies the number of items to read.
If ReadAll fails, then print the file created by the List option and use the Read option to read in items one at a time. After each successful read save the result in a new 3dm file with a different name (so you do not destroy the file you are working on). When you run into an object that cannot be read, mark that object on your printed list and start over. The next time you get to that object use the Skip option to skip it and move on to the next.
Skips objects that cannot be read.
Specifies the number of items to skip.
Ends the command.
Cyclic redundancy check (CRC) error means the file has been damaged since it was written.
A CRC is a number calculated on a chunk of data by running all of its byte values through a formula. The formula is designed so that if a byte value changes, there is a high probability that the number generated by the CRC formula will change.
Rhino uses CRCs to validate data integrity in files. When a file is written, the CRC of each object's data is calculated and stored in the file. When the file is read, the CRC is calculated again and compared with the CRC value saved in the file. If the two CRC values match, then it is almost certain that the information written to the file is exactly the same as the information read from the file. If the CRC values are different, then it is absolutely certain that the information written to the file is not the same as the information read. In short, if the CRC values are different, then at least one byte in the file has changed since it was saved.
Common causes of file damage are mechanical failure in the disk platter, mechanical failure in the head armature, head wear, external magnetic fields corrupting the orientating of the iron atoms on the hard disk, and garbled transmission (happens when files are copied to removable media like floppies, CDs, jumpdrives, downloaded over noisy lines, etc.).
If corrupt files are constantly being generated, a bad disk or a malicious virus should be suspected. If the problem regularly happens on more than one computer, a large magnetic field; perhaps from a large unshielded electric motor (elevator, industrial vacuum, air conditioner compressor, damaged industrial sized microwave) should be suspected.
So, what should be done? The fact the CRC error was reported means that the information read from the disk is not the same as the information that was saved. If the file still reads in, inspect the model and see if everything looks the way it should. If so, the damage was probably to some portion of the file that does not matter or the reader was able to automatically detect the problem and repair the damage during the reading process.
If the file will no longer read in, try using the Rescue3DMFile command to recover as much of the data as possible.
In the emergency save (out of memory) situation, Rhino is supposed to save your current model under a different name automatically and prevent you from saving over your last .3dm file. Search your hard disk for files named RHINO_EMERGENCY_SAVE.3dm.
Work with files
Rhinoceros 5 © 2010-2015 Robert McNeel & Associates. 17-Sep-2015
Open topic with navigation