Rescue3dmFile
Toolbar | Menu |
---|---|
|
Tools File Utilities > Rescue .3DM File |
The Rescue3dmFile command recovers geometry objects that can be read from a damaged Rhino 3dm file.
- 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.
- Use the Audit3dmFile command to check 3dm files for errors.
Steps
- Select a file.
- Specify options.
Command-line options | |
---|---|
Analyze |
A detailed description of the file’s contents. Search for the word ERROR in this section to see where the file is broken. Example====== FILENAME: C:/RhinoFiles/BadFile.3dm ====== VERSION: 3 ====== COMMENT BLOCK: ... ====== CHUNKS: 211347: FFFFFFFF TCODE_ENDOFTABLE: value = 0 (00000000) 214045: 00007FFF TCODE_ENDOFFILE: length = 4 bytes |
List |
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. Example:Healthy file: ... Object[35] 16722 bytes at offset 125176. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep) Object[36] 257 bytes at offset 142052. class id CF33BE2A-09B4-11d4-BFFB-0010830122F0 (ON_ArcCurve) Object[37] 257 bytes at offset 142463. class id CF33BE2A-09B4-11d4-BFFB-0010830122F0 (ON_ArcCurve) Object[38] 333 bytes at offset 142874. class id 5EAF1119-0B51-11d4-BFFE-0010830122F0 (TL_NurbsCurve) Object[39] 569 bytes at offset 144079. class id 4ED7D4E6-E947-11d3-BFE5-0010830122F0 (ON_PolylineCurve) Object[40] 15828 bytes at offset 145161. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep) Object[41] 16775 bytes at offset 161143. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep) ... Damaged file: 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. |
Recover |
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. |
Read |
Reads items one at a time. |
ReadMultiple |
Specifies the number of items to read. |
ReadAll |
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. |
Skip |
Skips objects that cannot be read. |
SkipMultiple |
Specifies the number of items to skip. |
Quit |
Ends the command. |
CRC Error
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, jump drives, 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.
Emergency save
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.
Toolbar | Menu |
---|---|
|
|
The RescueBlockOrphans command searches for block definition geometry this is not referenced by any block definition. Such objects are called block orphans, they have no parent block, and they cannot be accessed using the Insert command.
Typically this situation arises when reading damaged files.
A 3dm file is truncated (the end of the file is missing) for unknown reasons. The file will begin reading but a warning pops up saying the geometry table is damaged and the user chooses to continue and read as much information as possible.
When the reading finishes, nothing is visible. If block definition geometry was read, the RescueBlockOrphans is a way to make copies of inaccessible block definition objects in the model.
When RescueBlockOrphans works, RescueBlockOrphans will maintain associations with layer, annotation style, hatch pattern, etc. information.
Details: When the truncation occurs in or after the location where block definition geometry is contained but before model space block references and auxiliary block definition information, there was no way to access the “orphaned” block definition geometry. If most of the file is devoted to block definition geometry and if truncation occurs, there is a good chance this situation will arise. RescueBlockOrphans searches all block definition geometry.