The Maxon SDK Team is currently short staffed due to the winter holidays. No forum support is being provided between 15/12/2025 and 5/1/2026. For details see Maxon SDK 2025 Winter Holidays.
  • This topic is deleted!

    1
    1
    0 Votes
    1 Posts
    6 Views
    No one has replied
  • How it works new CalcGradientPixel?

    python 2024
    3
    0 Votes
    3 Posts
    789 Views
    lleallooL
    I am kind of surprised there isn't an easier way to sample a Gradient by a normalized 0-1 position Anyway, thanks @mikeudin for the snippet and @m_adam for the fix
  • Xref object Make it Editable

    2024 python
    3
    2
    0 Votes
    3 Posts
    767 Views
    chuanzhenC
    @ferdinand Thanks for your reply!
  • Character Defenition Tag - maxon.Id?

    2024 python
    3
    0 Votes
    3 Posts
    710 Views
    jochemdkJ
    Thx Maxim, so I'll have to wait until the next version..
  • How to properly load async data into C++ generator plugin?

    c++
    15
    0 Votes
    15 Posts
    3k Views
    H
    Thanks again, Ferdinand! I have been conditioned by other programming to fear and loathe anything that blocks the UI thread. However, the files that will be downloaded by users of my plugin would typically be in the 250-1000 bytes range, as long as the network isn't extremely slow I guess it should not be a huge problem. I will do the blocking behavior for now, and then maybe start looking into Jobs or something if needed.
  • Reset Tool in Interaction Tag

    2024 python
    4
    2
    0 Votes
    4 Posts
    843 Views
    ferdinandF
    Hey @CJtheTiger, just as a clarification, it is obvious that you have put quite a bit of effort in your posting. So, that was not meant in the sense of "what a terrible posting". But especially for postings which contain a lot of detail, it is important to put the question at the very beginning so that it is clear what is the question. Regarding the axis behavior thing, I now understand how you mean that. The Interaction Tag (and Tooling) is not owned by the SDK group, so we would not be responsible for this case either, we only own all the "pure" Python stuff. What I thought was your request before, changing the general default value, had probably almost zero changes of being implemented. This request of yours sounds logical (I am not a big expert on the interaction tag) but given how niche that case is, and that it would require customization in tools just for that case, I do not see a high chance that this will ever be implemented either. But if you truly desire that feature, you should still submit the wish, because a lot of user requests for the same thing are something we cannot and will not ignore. Cheers, Ferdinand
  • 0 Votes
    9 Posts
    2k Views
    fwilleke80F
    Hi Ferdinand, thank you for the clarification!
  • Boole Object causes version 2024 to freeze

    r23 2023 2024 python windows
    3
    0 Votes
    3 Posts
    2k Views
    ThomasBT
    @ferdinand Hello Ferdinand, Thank you very much first of all. yes, you're right, I worked extremely sloppily with the SMC method, of course I'll take the threading into account and also work with a Temp Document. Regarding the problem itself, I can only say that reinstalling CINEMA 4D solved our problem. Cheers
  • VolumeBuilder Cache and AddDependence()

    2024 c++
    9
    0 Votes
    9 Posts
    2k Views
    D
    Hi Illia, I haven't been able to properly stress test the new code, but by the first look it seems to be working. Thanks! Dan
  • SetMousePointer() will not "stick" in GeDialog

    c++ 2024
    2
    0 Votes
    2 Posts
    560 Views
    i_mazlovI
    Hello @justinleduc, Sorry for the delayed answer. You have a point that the discussion on some abstract questions doesn't require any code. However, you have a very specific question, namely you're struggling from your cursor constantly flickering between cursor states. This is your exact code that produces this undesirable result, so this is not an abstract question. According to my observations there's no issues with flickering cursor in GeUserArea in C4D 2024.2. You can find some good examples in our C++ repository. for example you can start with C++ SDK - Example Dialog. Please also make sure you familiarized yourself with the following manual pages: GUI and Interaction Messages Manual GeDialog Manual GeUserArea Manual Especially the GeUserArea::Message() would be something of your interest. If you're still observing the issue please provide a minimal code snippet that gives context to our discussion. Cheers, Ilia
  • 0 Votes
    6 Posts
    1k Views
    ferdinandF
    Hey @ThomasB, That has nothing to do with the highlighting but with the fact that Maxime used incorrect links. developers.maxon.net/docs/ links will only work from outside of the forum. Inside the forum you currently have to use dvelopers.maxon.net/assets/docs/ as otherwise nodebb is trying to take over the routing. I am working on fixing that issue. I have fixed both links of Maxime. Cheers, Ferdinand
  • Python plugin in costum C4D-Layout

    2024 python windows
    3
    0 Votes
    3 Posts
    639 Views
    M
    @ferdinand thank you for your welcoming words, for your help and edits. Since I am no trained developer I was simply copy and pasting my first lines of code including the RegisterCommand function from the maxon python example github and thought it would fit my application since I thought the description in the sdk seemedlike a match to me ["Command can be dragged into an icon bar and delivers its own dialogs instead of icons." (- maybe I got that wrong)]. Also scince I have little developing experience the term "smallnode" is nothing I can make sense of and an accurate description seems to be missing. Nevertheless I tried your suggestion and it works like a charm. Thanks a lot Marc
  • How to get screen space

    2024 python
    3
    1
    0 Votes
    3 Posts
    648 Views
    chuanzhenC
    @m_adam Thanks!
  • 0 Votes
    6 Posts
    1k Views
    D
    Thanks a lot for the clarification! It would be nice to include more usecase examples of GetAccessedObjects(..) implementation in the SDK examples in the future. I will try your suggestion once 2024.4 becomes available.
  • How to group nodes in a Scaffold using Python

    2024 python
    3
    0 Votes
    3 Posts
    720 Views
    D
    Hey @m_adam , Thanks for your help. It works now. However, I'm wondering how I would have known that I needed to set the scaffold ID to the node. The documentation doesn't seem to explicitly mention this step. I might be wrong, but for someone without strong knowledge of the API, I'd never thought that way. I would rather added the selected nodes to a group, as this is what a scaffol is. Does that make sense? As a side note, after adding the nodes to the scaffold group, they appear messy, actually the nodes are nicely arranged inside the group, but the scaffold is overlapping other nodes. This is likely related to the bug we discussed here: https://developers.maxon.net/forum/post/73446. Am I right? Cheers
  • Force VertexMap display

    python
    18
    0 Votes
    18 Posts
    3k Views
    ymoonY
    @ferdinand, Is it possible to VertexColor, WeightMap(character rig) in the same way? Some games use VertexColor, so marking can always be useful. I tried to convert your code to VertexColor, but I lack knowledge. Please help us.
  • Output multiple file types from one render.

    2024 python macos windows
    4
    1
    0 Votes
    4 Posts
    995 Views
    G
    The API does appear to have movie saving features. https://developers.maxon.net/docs/py/2023_2/modules/c4d.bitmaps/MovieSaver/index.html
  • The cloner is calculated before the Python tag

    2023 python
    2
    0 Votes
    2 Posts
    573 Views
    i_mazlovI
    Hi @ll2pakll , Please excuse the delay, your topic somehow slipped from my list. I can only speculate here, as you haven't attached a sample scene that highlights your issue. The way you describe the problem it looks like a priority issue of the python tag. Please have a look at how the priority works in our documentation: https://help.maxon.net/c4d/2023/en-us/Default.htm#html/TPYTHON-OBASELIST.html#EXPRESSION_PRIORITY Also note that it's forbidden to call c4d.EventAdd() (or in reality is just skipped) from the python tag due to multithreading restrictions (c4d.EventAdd() is executed on main thread whilst python tag is executed in a parallel thread): [image: 1704368550401-9ddbfeab-53dd-49e1-8ded-0a6c3dddba94-image.png] Cheers, Ilia
  • How to create python plugin in 2024?

    2024
    6
    0 Votes
    6 Posts
    1k Views
    B
    @ThomasB said in How to create python plugin in 2024?: Yes, download the SDK and study the examples. I wrote my own software that allows me to simply select the type of plugin I want to create, enter the plugin ID and the plugin name. The program then creates the folder structure, all files with the correct content and the correct name automatically...that was the first thing I did because it is always extremely tedious. This then takes 10 seconds and I have a finished blueprint. Then I can start programming straight away. I usually make the Gui first using UserData to roughly create the design and then I write it down in the resfile in no time at all. It's relatively quick and even fun and you gradually grow into it, it emerges little by little..... Basically it wouldn't be a problem to write a script that writes the UserData interface into a Res, header and string file, I already have an idea for that... That would actually be easy to do. I'll get to it when I'm done with my update... and then maybe make it available to the community... However, a similar one is already there, but I can't remember where. Greetings Tom Yeah, that sounds cool. The ui stuff you're mentioning was very similar to how the old ResEdit plugin worked. the source code is on gitHub, but I don't know how to compile C++ plugins. But I guess there is nothing there. This stems from me copying one of the examples from the Python SDK and trying to make it my own. It hasn't been very intuitive for me, which is why I asked because I figured I must have been missing something, but it seems I am not.
  • Controlling drag&drop using MSG_DESCRIPTION_CHECKDRAGANDDROP

    2024 python
    5
    0 Votes
    5 Posts
    1k Views
    CJtheTigerC
    Hi @m_adam, thanks a lot, that did the trick. To close this topic off here's a snippet to allow other objects but not the current object to be dropped in there: def Message(self, node: GeListNode, type: int, data: object) -> bool: if type == c4d.MSG_DESCRIPTION_CHECKDRAGANDDROP: relevant_id = c4d.DescID(c4d.YOUR_PARAM) # Use the ID of the parameter of your object that you want to check. current_id: c4d.DescID = data['id'] if relevant_id.IsPartOf(current_id)[0]: dragged_element = data["element"] is_same_object = node == dragged_element data['result'] = not is_same_object return True return True Cheers, Daniel