Example #1
0
    // Returns: True if .3dm file was successfully read into a File3dmModel class.
    static bool ReadFileHelper(string filename, bool verboseTextDump, bool chunkDump, Rhino.FileIO.TextLog dump)
    {
      if (chunkDump)
        return Dump3dmFileHelper(filename, dump);

      dump.Print("\nOpenNURBS Archive File:  {0}\n", filename);

      // open file containing opennurbs archive
      Rhino.FileIO.File3dm model = Rhino.FileIO.File3dm.Read(filename);
      if (model == null)
      {
        dump.Print("  Unable to open file.\n");
        return false;
      }

      dump.PopIndent(); dump.PopIndent(); dump.PopIndent(); dump.PopIndent(); dump.PopIndent(); dump.PopIndent(); dump.PopIndent();

      dump.PushIndent();

      // print diagnostic
      dump.Print("Successfully read.\n");

      // see if everything is in good shape
      if( model.IsValid(dump) )
        dump.Print("Model is valid.\n");
      else
        dump.Print("Model is not valid.\n");

      // create a text dump of the model
      if (verboseTextDump)
      {
        dump.PushIndent();
        model.DumpToTextLog(dump);
        dump.PopIndent();
      }

      // destroy this model
      model.Dispose();

      dump.PopIndent();
      return true;
    }  
Example #2
0
    /// <summary>
    /// </summary>
    /// <param name="filename">full name of file</param>
    /// <param name="dump"></param>
    /// <returns></returns>
    static bool Dump3dmFileHelper(string filename, Rhino.FileIO.TextLog dump)
    {
      dump.Print("====== FILENAME: {0}\n", filename);

      using (Rhino.FileIO.BinaryArchiveFile file = new Rhino.FileIO.BinaryArchiveFile(filename, Rhino.FileIO.BinaryArchiveMode.Read3dm))
      {
        if (!file.Open())
        {
          dump.Print("**ERROR** Unable to open file.\n");
          return false;
        }

        int version;
        string comment_block;
        if (!file.Reader.Read3dmStartSection(out version, out comment_block))
        {
          dump.Print("**ERROR** Read3dmStartSection() failed\n");
          return false;
        }
        
        dump.Print("====== VERSION: {0}\n",version );
        dump.Print("====== COMMENT BLOCK:\n");
        dump.Print(comment_block);
        dump.Print("====== CHUNKS:\n");
        
        while ( !file.Reader.AtEnd() )
        {
          uint typecode = file.Reader.Dump3dmChunk(dump);
          if( typecode==0 )
            break;
          if ( typecode == Rhino.FileIO.File3dmTypeCodes.TCODE_ENDOFFILE )
            break;
        }
        dump.Print("====== FINISHED: {0}\n",filename);
        file.Close();
        return true;
      }
    }