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
    • Recent
    • Tags
    • Users
    • Login

    tool()# Operator

    Scheduled Pinned Locked Moved SDK Help
    3 Posts 0 Posters 298 Views
    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 Offline
      Helper
      last edited by

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

      On 28/04/2009 at 16:10, xxxxxxxx wrote:

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

      ---------
      I've been trying to find documentation on the tool() command. When I select tool parameters in the Attributes Manager, right click, and choose "Create Script", it will generate a script that looks like this:

      > \> tool()#MDATA_EXTRUDEINNER_ANGLE=3.142; \> tool()#MDATA_EXTRUDEINNER_OFFSET=50; \>

      Executing this script with the Extrude Inner tool selected will update the Angle and Offset settings.

      The following code should select the Extrude Inner tool, update the settings, and execute it. But it doesn't. What happens is the tool gets selected, the settings updated correctly, but the command is performed with the default settings not the updated ones.

      > \> main(doc,op) \> { \>      //Activate the extrude tool \>      CallCommand(450000004); \>      EventAdd(); \> \>      //Set the preferences for the active tool \>      tool()#MDATA_EXTRUDEINNER_ANGLE=3.142; \>      tool()#MDATA_EXTRUDEINNER_OFFSET=50; \>      EventAdd(); \> \>      //Store updated settings in container. \>      var bc = doc->GetActiveTool()->GetContainer(); \> \>      //Use the ExtrudeInner tool with the new settings. \>      SendModelingCommand(450000004, doc, op, bc, MODIFY_POLYGONSELECTION); \> } \>

      My guess is that for some reason GetContainer() isn't retrieving my updated tool settings, but I don't know why it isn't.

      Any thoughts?

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

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

        On 28/04/2009 at 17:33, xxxxxxxx wrote:

        One or the other. Either 'emulate' the tool operation or use SendModelingCommand(). They are not intermixable afaik. If you've been following the thread about "Get Active Tool" by Shawni, you need to emulate the button clicks as well if going that direction. In order to use SendModelingCommand(), you must fill in the BaseContainer with the values as described in the C++ SDK documentation or from the description header mentioned.

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

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

          On 29/04/2009 at 01:09, xxxxxxxx wrote:

          tool() just gives you the active tool. There are two approaches to run a tool. One is to set all the necessary parameters of the tool with tool()#THE_TOOL_ID and then call CallButton() with the ID of the Apply button or whatever button it needs to execute the tool. The other way is to fill a BaseContainer and use it with SendModelingCommand(). You should not mix both methods.

          cheers,
          Matthias

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