Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Merging a .c4d file with actual document

    SDK Help
    0
    5
    636
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 28/03/2003 at 02:21, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   8.100 
      Platform:   Windows  ;   
      Language(s) :     C++  ;

      ---------
      Hi there, I just started to code plugins. I wanted to write one which loads a .c4d-file into the actual document by pushing a button.
      First I tried to do it as an ObjectData Plugin with that code in Init() function:

          
          
            
          Bool DummyObject::Init(GeListNode *node)  
          {   
           BaseObject *op  = (BaseObject* )node;  
           BaseContainer *data = op->GetDataInstance();  
             
           Filename file = GeGetPluginPath()+ Filename("Dummy.c4D");
          
          
          
          
           BaseDocument* bdoc=LoadDocument(file,TRUE);  
           SetActiveDocument(bdoc);   
           InsertBaseDocument(bdoc);  
            
           return TRUE;  
          }  
          
      

      But so I could only open the Dummy.c4d as a new document. I tried the same using that code:

          
          
            
          Bool DummyObject::Init(GeListNode *node)  
          {   
           BaseObject *op  = (BaseObject* )node;  
           BaseContainer *data = op->GetDataInstance();  
             
           Filename file = GeGetPluginPath()+ Filename("Dummy.c4D");  
           LoadFile(file);  
           return TRUE;  
          }  
          
      

      Here Cinema broke down and I got an access violation anywhere after loading the file.
      Is there a way to do that more elegant and working?
      Thanks

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 28/03/2003 at 10:35, xxxxxxxx wrote:

        First of all it sounds like you want to use CommandData instead of ObjectData. That will make a new menu entry in the plugin menu, which you can also add as a toolbar button.
        Second, there's no automatic way to merge two documents. You'll have to copy all objects and materials manually. (Make sure to use a single AliasTrans for the whole operation.)

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 02/04/2003 at 04:51, xxxxxxxx wrote:

          I decided to use an ObjectData plugin because I want to represent the importing scene as a new object type with an own parent symbol in scene tree (like a null object does). If I do that with a CommandData plugin, there won't be created a new object symbol in scene tree, isn't it?

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 04/04/2003 at 05:59, xxxxxxxx wrote:

            That's right. However, there are some subtle issues when doing such imports in the middle of scene evaluation, so I'd really not recommend it as a first project. You should use LoadDocument() and then output the stuff you find in the GetVirtualObjects() function. See the RoundedTube.cpp example.

            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

              On 03/09/2003 at 05:24, xxxxxxxx wrote:

              After doing some other plugins I found out how to do it.
              Thanks anyway.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post