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.
  • GlProgramFactory not documented

    c++ r20 sdk
    3
    0 Votes
    3 Posts
    754 Views
    a_blockA
    Hi Frank, actually I think, all the examples on GLProgramFactory have been there for quite I while. I just checked and they were already available in Cinema 4D R13, maybe even earlier (there are actually quite a few, see GitHub). Unfortunately that is all we have on this topic, chances are pretty bad, we can shed any additional light on this topic. I turned this thread into a question. Cheers, Andreas
  • Sampling the falloff of a mograph effector? (python/R19)

    4
    0 Votes
    4 Posts
    2k Views
    jenandesignJ
    @m_adam Wow, this is truly great. What a fantastically written response, I really appreciate it! Learning a bunch from this example, way more than I asked for. Thanks again Jenny P.S. if only the py4d documentation had examples like this, we would all be better programmers
  • Invert normals only for selected polygons

    r20 python
    4
    1
    0 Votes
    4 Posts
    3k Views
    J
    Thank you for the kind help! @m_adam: The plug-in you have linked is very useful. I could fix some problems with the "Select polygons by normal direction" function. Working with badly constructed meshes is no fun job either way. Kind regards, Julien.
  • string format

    Moved
    4
    0 Votes
    4 Posts
    1k Views
    M
    Hi @Jvos, First of all, (no worry at all) I would like to remind you to read How to Post Questions especially the part about categories. Since your topic is related to Cinema 4D please next time create a topic within cinema 4d development. (I've moved it). Regarding your issue, pretty much all parameters in Cinema 4D are stored in a BaseContainer. A BaseContainer is a dictionary which links an ID (Int) to a Data. When you are doing Object[Something] you access the value within this BaseContainer. If you write in the console c4d.REDSHIFT_LIGHT_PHYSICAL_INTENSITY, it will print you the ID of this parameter. Then to get the value of a parameter which is stored in the object's BaseContainer, you don't have to pass a string, but the ID, which is registered with a SYMBOL NAME because it's easier to remember than an arbitrary number (In some case there is no SYMBOL equivalent for an ID). So as @mikeudin suggested the eval function is the right way to go, or you can directly store the ID in your list. attributes = [c4d.REDSHIFT_LIGHT_PHYSICAL_INTENSITY, c4d.REDSHIFT_LIGHT_PHYSICAL_EXPOSURE] Finally, there is no official C4D slack/discord or chat. Cheers, Maxime.
  • Rotate selected polygons

    r20 python windows
    3
    0 Votes
    3 Posts
    817 Views
    P
    Hi Andreas, Ok, so I have to rotate the points to rotate a polygon. I thought so. That is why I assumed that when I can rotate points, I can rotate polygons. Thanks. Regards, Pim
  • get lamp attributes?

    Moved
    7
    0 Votes
    7 Posts
    2k Views
    a_blockA
    Hi, @Jvos it looks like your question got answered. Afterwards you deleted this thread. I'd like to ask you not to do so. This forum is all about sharing knowledge. There are no stupid questions and nothing to be ashamed about. Every answered question might help a future developer. I have moved this thread into the Cinema 4D Development category. Cheers, Andreas
  • Mosplines - Iterate Width

    Moved python
    14
    0 Votes
    14 Posts
    3k Views
    a_blockA
    Hi, I'm sorry for getting back so late. My examples should be easily adapted to random values. Our Python SDK does not directly provide means for random numbers, but Python's random module should do the trick just fine. Cheers, Andreas
  • Get rotation of animated object with python

    python windows
    2
    0 Votes
    2 Posts
    663 Views
    a_blockA
    Hi, don't be surprised, I have turned your thread into a question. The problem is, that the document will actually not be animated (or lets rather say, it will not be evaluated or executed) when calling SetTime(). Additionally you need to call ExecutePasses(). The BaseDocument manual in our C++ SDK documentation contains some extra information on this topic in the sections Time and Animate. Cheers, Andreas
  • Crash in class SetUsedFrameworks

    c++ macos
    5
    0 Votes
    5 Posts
    1k Views
    fwilleke80F
    Hi Ricardo, I can't do that, unfortunately. There are several reasons why I cannot update my machine to a later OSX version than El Capitan, at the moment. I did not encounter any problems so far that could be tracked down to the XCode version. Btw, I solved the problem. For some reason, after running the Project Tool again in a fuzzy "F*** it, it has has to work!" moment, things started working. I am stumped, as I don't know the reason, but anyway, the problem's gone. Cheers, Frank
  • Scaling Vector attributes

    c++
    4
    0 Votes
    4 Posts
    1k Views
    a_blockA
    Hi Roger, with respect to the Scale tool, yes, it is impossible to have individual parameters of a custom object scaled non-uniformly. Of course (but I'm sure you are aware, just mentioning for completeness here) such parameters can be scaled non-uniformly via the Attribute manager. Also you could implement handles for such, so the user can access these via the viewport. And the last option could be to implement your own scale tool. I'm sorry, I know, none of these options is very convenient, but unfortunately I have nothing better to offer. Cheers, Andreas
  • Get type name by Id

    c++
    5
    0 Votes
    5 Posts
    1k Views
    rsodreR
    @s_bach I've tried GetPlugin but even returning the BasePlugin pointer, GetName() was always empty for my custom baseObjects. Edit: GetName() works, GetTypeName() don't. But GetObjectName() is perfect for me, thanks!
  • What message or Id do I get when the user select a tab in my dialog?

    3
    0 Votes
    3 Posts
    915 Views
    P
    Thank you! In future I will set the tags.
  • Setting texture paths with plugin on startup

    r20 python
    9
    0 Votes
    9 Posts
    3k Views
    B
    Omg! I had an old version of the plugin defined in the Plugins list in prefs that set the paths to []. Blush Deluxe! Sorry for wasting your time. Works perfectly fine. Regards Bonsak
  • Drag-n-drop

    r19 c++
    3
    0 Votes
    3 Posts
    778 Views
    C4DSC
    @s_bach Yes the BasePlugin I already obtained and got its ID, as well as its name. Was just wondering what the 9 represented, in order to use the appropriate defined keyword instead of the value. Thanks for the "PLUGINTYPE::TOOL"
  • SetPixel() for 32 bit float images

    python r20 sdk
    3
    0 Votes
    3 Posts
    905 Views
    O
    Thanks so much this is exactly what I was looking for.
  • ReferenceError?

    Moved python
    6
    0 Votes
    6 Posts
    2k Views
    a_blockA
    Hi, first of all thanks to @Cairyn for nice explanations and helping in solving this. I'd just like to add a link to one of our examples, pretty much demonstrating this workflow: mengersponge.py (plus the scene file). @Jvos : I hope you don't mind, may I ask you to please open a new topic for unrelated topics/questions. I have also moved this thread into the Cinema 4D Development category, added some tags and turned the thread into a question. Cheers, Andreas
  • C4D GUI Python Callback

    python
    4
    0 Votes
    4 Posts
    1k Views
    Y
    Hi, A string with format "PLUGIN_CMD_123456" is meant to be used with MENURESOURCE_COMMAND, not RegisterCommandPlugin(). It tells Cinema the command ID and name for the menu item to be added. Note the sub-IDs returned from GetSubContainer() are specific to a command and aren't global to Cinema. Maybe CommandData isn't what you really need. Scripts from the user folder are automatically loaded and can be added to any menu using Customize Menus dialog.
  • Get userdata Button state on object in Python tag

    python r20
    7
    0 Votes
    7 Posts
    3k Views
    B
    Ah! So event_data['msg_data']['id'] is the id of the userdata. Didnt read your code comments Thanks alot! Regards Bonsak
  • Getting MoData in GVO of a ObjectData Plugin

    c++ windows macos
    13
    0 Votes
    13 Posts
    4k Views
    codysorgenfreyC
    @m_adam thanks so much for all your help on this!
  • No fbx exporter in python library?

    r20 python
    2
    0 Votes
    2 Posts
    1k Views
    Y
    Hi Rage, Unfortunately several importers and exporters do not have a constant for their ID. This is the case for FBX. The ID for the FBX exporter is 1026370. To find the ID of a specific exporter you can use the following code: import c4d saverPlugs = c4d.plugins.FilterPluginList(c4d.PLUGINTYPE_SCENESAVER, True) for plug in saverPlugs: print('{} : {}'.format(plug.GetName(), plug.GetID())) I turned the topic into a Q&A. Please remind to use this feature of the forum.