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
    • Register
    • Login
    1. Maxon Developers Forum
    2. Dunhou
    3. Topics
    Offline
    • Profile
    • Following 2
    • Followers 4
    • Topics 62
    • Posts 287
    • Groups 0

    Topics

    • DunhouD

      How to draw svg to bitmaps?

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2026
      1
      0 Votes
      1 Posts
      11 Views
      No one has replied
    • DunhouD

      Can we draw alpha image in viewport

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2026
      4
      0 Votes
      4 Posts
      51 Views
      ferdinandF
      I do not think that DRAW_ALPHA_FROM_IMAGE should not work. I just picked DRAW_ALPHA_NORMAL because it is the "most default one" out of the DRAW_ALPHA flags. I will have a look later. But you can for now probably just use DRAW_ALPHA_NORMAL.
    • DunhouD

      How to add tabs to tool plugins.

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2026
      6
      0 Votes
      6 Posts
      74 Views
      ferdinandF
      You very likely have not unpacked your resources. The resource folder found in an installation only contains a part of the application resources (we are doing this since release 2023 if I remember correctly). A good portion of the resources sits inside resource.zip for performance reasons and is unpacked on demand. You can just unpack the resource.zip into you resource folder without an performance or stability issues. [image: 1779175199591-b8e8db94-ae20-42b4-9a5d-e92ac928e89d-image.png] You as an MRD can also look at the Bugslife client, as it is probably the better example, as it uses more features of the quick tab GUI. But my answer above was targeted at a general audience who can see the resources for Bugslife but not Bugslife itself, and it therefore is not a good example for them. Just grep the resource folder as I did in my screen for files that match the path dialogs/*.res (i.e., are res files for dialogs) and contain the word QUICKTAB. Cheers, Ferdinand
    • DunhouD

      How to start a new line in plugin help with localization?

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2026
      6
      0 Votes
      6 Posts
      192 Views
      AnlvA
      Another small tip: you can simply use a single <br> for line breaks — there’s no need to use <b> or </b>. Also, just like in the script example, scripts can support localized language strings as well: """ Name-US:Example Name-CN:示例 Description-US:Example line 1.<br>Example line 2.<br>Example line 3. Description-CN:示例第 1 行。<br>示例第 2 行。<br>示例第 3 行。 """
    • DunhouD

      We can update the Python API to align with the C++API

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python
      2
      0 Votes
      2 Posts
      310 Views
      ferdinandF
      Hey @Dunhou, Thank you for reaching out to us. We agree that this would be desirable. These methods are actually already wrapped but we hide them for now in the Python SDK. Find the reasons below. ExecuteJavascript: I just did remove the bindings of the Python API for that method in the current beta and also switched the C++ method to internal. The reason for that decision was is that we have security concerns about attackers being able to execute arbitrary JS in a web browser opened in Cinema 4D. SetWebMessageCallback: This is intended solution, i.e., the JS you want to execute must be already embedded into the HTML which is running in the HtmlView. On Windows/WebView2 it uses web messages, on MacOS/WebKit a custom solution emulating them. And SetURLCallback is then the way to get data back from the JS VM. For 2026.1 I already wrote examples for these methods, but on the last meters we discovered that something not only broke the Python bindings but the whole "execute JS" in the WebView2/WebKit bindings. My last info is that something broke there due to a project update, and that the two devs involved in it will have a look. I'll give them another bump and report here if there are any updates. Cheers, Ferdinand
    • DunhouD

      set GvNode value via python

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2026
      4
      1
      0 Votes
      4 Posts
      486 Views
      DunhouD
      Thanks for @ferdinand awesome answer! I found DescLevel and DescId always confused to me, but them do can access more than simple set item, time to dive deeper to the DescLevel part Cheers~ DunHou
    • DunhouD

      Can I get keyboard input mode?

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python c++ 2025
      4
      1
      0 Votes
      4 Posts
      611 Views
      ferdinandF
      Hey @Dunhou, I have edited your posting. It is fine to mention the beta forum, but we would rather not see its name written here. When you are talking about 'C++', I assume you are talking here about the Windows SDK/API, as for example GetGUIThreadInfo. I would doubt that you get very far with that here. Cinema 4D is very OS agnostic and we have our whole GUI decoupled from the OS. The little rename window in our tree view control is not an OS rename dialog. I am not even sure if this is something with an HWND handle which you could address so that you could intercept keyboard events to it, or if this is just a virtual window within our API. For this IMM thing to work, we would have to use the IME API in Cinema 4D, so that our text edit gadgets support it. I also do not quite understand what you are trying to do. The missing piece is here probably that our text edit gadget does not send its current content to the IME API (at a glance, via ImmSetCompositionStringW as shown here). And as a third party, you cannot really fix that. Because you (a) do not own the implementation and you (b) are not informed about an edit event, so you cannot just write a plugin which sends the object name to the IME API. Cheers, Ferdinand
    • DunhouD

      How to get explicit import node space?

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2025
      3
      1
      0 Votes
      3 Posts
      385 Views
      DunhouD
      Thanks @ferdinand for your great solution! Cheers~ DunHou
    • DunhouD

      Graph Description Explicit Connections can not work in 3rd-renderer (Arnold).

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2025
      5
      1
      0 Votes
      5 Posts
      653 Views
      DunhouD
      Hey @ferdinand , thanks for details. Cheers~ DunHou About forum, I can get notification about my own topic, And I clear all the cache, but nothing changed. After I tried to reset my account settings manually, then it worked as expected.
    • DunhouD

      Broken Push Notifications

      Watching Ignoring Scheduled Pinned Locked Moved News & Information information forum
      5
      0 Votes
      5 Posts
      1k Views
      M
      Hm, interesting, It works now, either you did something or the solution is to post a comment to trigger it. Anyway Thanks. Cheers mogh
    • DunhouD

      ImportSymbols with single file didn't return as expect.

      Watching Ignoring Scheduled Pinned Locked Moved Bugs windows python 2025
      6
      0 Votes
      6 Posts
      1k Views
      ferdinandF
      FYI: This has been fixed and will be shipped in a future version of Cinema 4D.
    • DunhouD

      Load presets args in python?

      Watching Ignoring Scheduled Pinned Locked Moved Bugs windows python 2025
      7
      1
      0 Votes
      7 Posts
      2k Views
      DunhouD
      It sounds worth a try, but there may be latency issues when it comes to changes, or data changes can be manually processed during the changes Perhaps for my needs, I can force the database to be use GetSceneRepository, anyway, it's worth a try. Thank you for your guidance
    • DunhouD

      How to simulate a drag behavior with UA?

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2025
      5
      0 Votes
      5 Posts
      1k Views
      DunhouD
      @ferdinand said in How to simulate a drag behavior with UA?: All it it does when the users starts to drag, according to Maxime, is inject the asset object into the document, make sure there is no object selected and then enable the place tool (and probably set the mouse cursor) This is my solution in my mind, definitely take a try after work.
    • DunhouD

      How to create UV of obj.

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2025
      4
      0 Votes
      4 Posts
      1k Views
      M
      I use this to Thank You Ferdinand. This is how I imagine an SDK example should look like .... a simplest version , an altered simple version and a complex touching the boundaries of the subject. I am thankful and praise your work .... ! cheers mogh
    • DunhouD

      GraphModelInterface.GetNode not worked

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK python windows 2025
      3
      0 Votes
      3 Posts
      683 Views
      DunhouD
      Hi @m_adam , Thanks for your reply, it worked well. But I still have some doubts about the usage of Node Path, such as how to calculate the port through NodePath instead of concatenating strings (which can easily lead to misoperation). There are few examples and answers for NodePath on the forum, and it seems that people rarely use it. Do you have any insights on this, or in other words, what usage scenarios do you think NodePath is more suitable for. Cheers~ DunHou
    • DunhouD

      How to compare a port value has been changed?

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2024
      8
      0 Votes
      8 Posts
      2k Views
      DunhouD
      Wow @m_adam , thanks for that, I'll check this after work!
    • DunhouD

      How does C4DAtom.GetHDirty(c4d.HDIRTYFLAGS_OBJECT_HIERARCHY) work?

      Watching Ignoring Scheduled Pinned Locked Moved Bugs windows python 2024
      4
      0 Votes
      4 Posts
      2k Views
      M
      Hi just to let you know that the bug has been fixed, this will be available in one of the next releases. I will post on this topic once the fix is available. Cheers, Maxime.
    • DunhouD

      How to simulate "Cappucino" behavior?

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2024
      5
      0 Votes
      5 Posts
      1k Views
      ferdinandF
      PS: I would test this on heavy scenes with a lot of animations, to see if you get at least one data point for each frame (or whatever value you would consider acceptable).
    • DunhouD

      Can I convert a BaseBitmap into a Image file in memory?

      Watching Ignoring Scheduled Pinned Locked Moved Cinema 4D SDK windows python 2024
      3
      0 Votes
      3 Posts
      679 Views
      DunhouD
      Hey @ferdinand , oops, I have an impression of this topic and tried to recall it, but I couldn't find any keywords in my mind at the time. I must have gone crazy. And the key is the GetData(), I have no concept of file composition and did not realize that what is returned here is the data required for an image file. Thank you very much. Cheers~ DunHou
    • DunhouD

      Cinema 4D plugin market and tons of free plugins!

      Watching Ignoring Scheduled Pinned Locked Moved General Talk plugin-information chit-chat
      4
      3 Votes
      4 Posts
      3k Views
      DunhouD
      This is current version of plugins manager and growing up plugins! [image: 1716278190972-snipaste_2024-05-20_15-54-43.png]