Rescue3dmFile

Toolbar Menu

Diagnostics

Tools

Utilities

Tools

File Utilities >

Rescue .3DM File

The Rescue3dmFile command recovers geometry objects that can be read from a damaged Rhino 3dm file.

Steps

  1. Select a file.
  2. 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:
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
====== FINISHED:

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.

RescueBlockOrphans

Toolbar Menu

Not on toolbars.

Not on menus.

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.

See also

Work with files

 

 

 

Rhinoceros 6 © 2010-2020 Robert McNeel & Associates. 11-Nov-2020