Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware 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
    • Register
    • Login
    1. Home
    2. JohnThomas
    J
    • Profile
    • Following 0
    • Followers 0
    • Topics 19
    • Posts 61
    • Best 0
    • Controversial 0
    • Groups 0

    JohnThomas

    @JohnThomas

    0
    Reputation
    108
    Profile views
    61
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    JohnThomas Unfollow Follow

    Latest posts made by JohnThomas

    • RE: Cache Proxy Tag

      @ferdinand
      Thanks for the detailed response, unfortunately what I'm trying to do doesn't seem viable.

      John Thomas

      posted in Cinema 4D SDK
      J
      JohnThomas
    • RE: Cache Proxy Tag

      Thanks for the response.

      For clarification what I am trying to do is have my modifer inside of ModifyObject change the points of the modified object. For simplicity sake it takes in the four points and moves them inwards so the Rectangle spline is smaller. The idea with the selection tag is to mimic the behavior of the things like the Selections in the Text object, so I could create a selection tag that would have some amount of the points from the Rectange spline selected, these points would be set in the Selection tag inside of ModifyObject. The selection tag would ideally be able to now be dragged into something like the Plain effector where it can effect the selected points, without the parent Spline object being made editable.

      When it comes to Selection tags is it possible, via code, to create the Tcacheproxytagpointselection style selection tags or is that purely limited to things like the Selections in a Text object?

      John Thomas

      posted in Cinema 4D SDK
      J
      JohnThomas
    • Cache Proxy Tag

      Hello,

      I have a question when it comes to the Selection tags such as "Tcacheproxytagpointselection". In the SDK they are listed as private for generators and not referenced again.

      Is there a method available to utilize them or an equivalent method. Specifically I'm trying to achieve the behavior shown in this clip, where the Text object is able to be changed by the Plain effector without being made editable due to its selection tag, while the Rectangle spline has to be made editable to be changed.

      Any help would be greatly appreciated.

      John Thomas

      posted in Cinema 4D SDK 2025 c++ windows
      J
      JohnThomas
    • RE: Order Of Hierarchy Updates For Fieldobjects

      @ferdinand Thanks for the response.

      That's what I was afraid the situation would be, I believe I have a work around that will be able to fulfill what I need it to do.

      John Thomas

      posted in Cinema 4D SDK
      J
      JohnThomas
    • Order Of Hierarchy Updates For Fieldobjects

      Hello,

      I am working on a FieldObject plugin that I am registering with RegisterFieldPlugin. My FieldObject is meant to be getting data from a linked object in its UI and then using the passed data to calculate the values for Sample.

      My issue is coming in that when I make a change to the linked object it is not being reflected in the FieldObject. This issue seems to stem from the fact that the FieldObject is running its code prior to the change in the linked object being reflected. So instead of the FieldObject having fresh values it referencing the previous data.

      Visualized this is what seems to be happening.
      FieldObject runs its Sample
      Linked Object updates its data

      and I am looking to have the reverse order happen. This happens regardless of the order of the objects in the Object Manager.

      Is it possible to have an object in the scene update before the FieldObject is called? In the sdk is there an example of the order in which Cinema will call things to be updated in the hierarchy.

      Any help would be greatly appreciated.

      John Thomas

      posted in Cinema 4D SDK 2025 c++
      J
      JohnThomas
    • RE: Tags Under Cloners

      @ferdinand

      Thanks for the response.

      That's what I was afraid of. 😦

      John Thomas

      posted in Cinema 4D SDK
      J
      JohnThomas
    • Tags Under Cloners

      Hello,

      I'm working on a tag plugin that is using positional data of an object to drive parameters. This is simple and straightforward so it is working properly using the code below inside of the Execute function to drive the Radius value of a sphere object.

      EXECUTIONRESULT TagParamRun::Execute(BaseTag* tag, BaseDocument* doc, BaseObject* op, BaseThread* bt, Int32 priority, EXECUTIONFLAGS flags)
      {
      	
      	if (tag->GetObject())
      	{
      		BaseObject* parentObj = tag->GetObject();
      		if (parentObj->GetType() == Osphere)
      		{
      			ApplicationOutput("Parent object " + parentObj->GetName());
      			Matrix sphereMat = parentObj->GetMg();
      			Vector spherePos = sphereMat.off;
      			Vector centerPos = Vector(0);
      			Float distance = sqrt(pow(spherePos.x - centerPos.x, 2) + pow(spherePos.y - centerPos.y, 2) + pow(spherePos.z - centerPos.z, 2));
      			GeData setData;
      			distance = distance / 2;
      			if (distance > 50)
      				distance = 50;
      			setData.SetFloat(100 - distance);
      			parentObj->SetParameter(ConstDescID(DescLevel(PRIM_SPHERE_RAD)), setData, DESCFLAGS_SET::NONE);
      		}
      		
      	}
      
      	return EXECUTIONRESULT::OK;
      }
      

      My issue comes in when I have the object with my tag under a Cloner. As I drag the tag's object around the scene all of the cloned spheres are changing their radius based on that single object instead of their cloned positions. Shown below.

      Broken Case.png

      If I make the cloner edititable then the setup is working as I would expect.

      Working Case.png

      Is there a way to make it so that my tag is running after the Cloner has run? In this case 9 separate spheres with attached tags running on their own positions.

      Any help would be greatly appreciated.

      John Thomas

      posted in Cinema 4D SDK 2024 c++ windows
      J
      JohnThomas
    • RE: BitmapButton in Resource file

      @i_mazlov Thanks for the response.

      I tried utilizing the code and I am not getting any response when I try running it.

      John Thomas

      posted in Cinema 4D SDK
      J
      JohnThomas
    • RE: BitmapButton in Resource file

      Any ideas, my GetDParameter is defined with this code.

      Bool ExampleFieldLayer::GetDParameter(const GeListNode* node, const DescID& id, GeData& t_data, DESCFLAGS_GET& flags) const 
      {
      	Int32 ID = id[0].id;
      	if (ID == 1006)
      	{
      		Int32 dirty = 0;
      		maxon::WeakRawPtr<const GeListNode> weakPtr(node);
      		if (weakPtr.Get())
      		{
      			GeListNode* convert = MAXON_REMOVE_CONST(weakPtr.Get());
      			BaseList2D* convertObject = static_cast<BaseList2D*>(convert);
      			BitmapButtonStruct bbs(convertObject, id, dirty);
      			t_data = GeData(bbs, CUSTOMDATATYPE_BITMAPBUTTON);
      			flags |= DESCFLAGS_GET::PARAM_GET;
      		}
      	}
      	return SUPER::GetDParameter(node, id, t_data, flags);
      }
      
      posted in Cinema 4D SDK
      J
      JohnThomas
    • RE: Python: Detect Plugins

      Thanks for the response. I'll see if this does what I need it to

      John Thomas

      posted in Cinema 4D SDK
      J
      JohnThomas