CallCommand to an object



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

    On 02/12/2009 at 11:51, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R11 
    Platform:   Windows  ;   
    Language(s) :   C.O.F.F.E.E  ;

    ---------
    Hello,

    I looking for a syntax to do something like that:

      
    main(doc,op)   
    {   
    var obj=doc->FindObject("Cube");   
    obj=CallCommand(12233);   
    }   
    

    How can I use a command at an object? In my syntax only the selected one in the object-manager get edit.



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

    On 02/12/2009 at 12:35, xxxxxxxx wrote:

    Most likely, the command will work on selected objects.  Therefore, once you find the object,  you will want to select it.  Selection is done using:

    obj->SetBit(BIT_AOBJ);

    Since other objects may be selected in the document, you may also want to deselect them so that the command only affects that object.

    ***

    There is already a way to do this in COFFEE though.

    SendModelingCommand(MCOMMAND_CURRENTSTATETOOBJECT);

    A bit more fiddly, but then you set the object to affect directly instead of needing to activate the object and deactivate everything else (which, under certain circumstances, could be a long recursive list).



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

    On 02/12/2009 at 13:06, xxxxxxxx wrote:

    Thank you,

    I will try it tomorrow.



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

    On 05/12/2009 at 02:09, xxxxxxxx wrote:

    Thank you, obj->SetBit(BIT_AOBJ); works well.

    When I use that command to create an Instance-Object, how can I decide where the new instance put in (hierarchy)?



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

    On 05/12/2009 at 04:13, xxxxxxxx wrote:

    What do I wrong?
    CallCommands() in if-functions does not work.

    main(doc,op)   
    {   
    var Strebe=doc->FindObject("1Strebescbhk");   
    var cStrebe=op#ID_USERDATA:1;   
    if (cStrebe==1)   
         {   
         println("activated");   
         CallCommand(12113);        //deselect all   
         Strebe->SetBit(BIT_AOBJ);   
         CallCommand(5160);          //Instance-Object   
         op#ID_USERDATA:1 = 0;   
         }   
    }
    

    It print activated, it Select the Strebe-Object. CallCommands() get ignored?



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

    On 07/12/2009 at 05:39, xxxxxxxx wrote:

    It's probably better to allocate objects and insert them into the document manually. This way you can specify a hierarchy insertion point.

    little example:

      
    var cube = doc->FindObject("Cube");  
      
    var instance = AllocObject(Oinstance); //allocates an object  
    doc->InsertObject(instance,cube,NULL); //insert the allocted object under the 'cube' object  
      
    instance#INSTANCEOBJECT_LINK = cube; //set the instance link  
    

    Btw. it looks like you are calling your code from an expression. It is forbidden to make scene changes, like inserting objects, from within an expression. It can crash CINEMA 4D.

    cheers,
    Matthias



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

    On 07/12/2009 at 10:51, xxxxxxxx wrote:

    Hey,

    Thank you for your answer, it works well.
    What do you mean with expression?
    Maybe you can explain it? (in German )



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

    On 07/12/2009 at 12:19, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    What do you mean with expression?
    Maybe you can explain it? (in German )

    Ich meine damit Tags, z.B. das COFFEE Tag oder COFFEE XPresso Node.

    Gruss,
    Matthias


Log in to reply