• Change FBX Exporter Settings

    Cinema 4D SDK python
    3
    0 Votes
    3 Posts
    1k Views
    C
    @m_adam - Now I'm sorry for my late reply! I appreciate you writing this up for me and I think it's a really good reference. This question has been answered then! Another quick question which sort of relates (I can create a new thread if admins want) - Do you have any recommendation for up-to-date C4D Python API training? I'm coming from writing Python in Houdini and Maya, but Cinema 4D seems to have a more unique setup with how to interface with their API. Any training recommendations would be appreciated. Teach a man to fish and... something something fish. Thank you, Clayton
  • Node Materials & Python ?

    Cinema 4D SDK python
    3
    0 Votes
    3 Posts
    705 Views
    indexofrefractionI
    thanks ferdinand... something to study when this summer heat is over .-)
  • Add Field to Effector

    Cinema 4D SDK s26 python
    4
    0 Votes
    4 Posts
    857 Views
    M
    Hello @InterfaceGuy, without further questions or postings, we will consider this topic as solved by Wednesday 31/05/2023 and flag it accordingly. Thank you for your understanding, Maxime.
  • 0 Votes
    2 Posts
    540 Views
    ferdinandF
    Hello @fss, Thank you for reaching out to us. I understand your general question, but some aspects are unclear to me. What plugin interfaces/hooks are involved (CommandData, ObjectData, ...)? Your posting somewhat implies that you want to rely inside PluginStart (which is not technically part of a plugin interface) on another plugin being loaded, is that true? If you are in PluginStart(), at which boot message (the ones emmited to PluginStart) are you trying to determine if some plugin X has been registered? But i logged those out and it always seemed to be called before the commandline arguments are processed. I am not quite sure what is meant with 'logged those out' here? The quick answer is to call c4d.plugins.FindPlugin to determine if a plugin is accessible, but depending on what you are trying to do, this might not the right way. Cheers, Ferdinand
  • Can a Render Token contain Special Characters?

    Cinema 4D SDK
    7
    0 Votes
    7 Posts
    886 Views
    DunhouD
    @ferdinand A little update for this topic , my final solution for this problem is reg some tokens , and reg a plugin to analysis the project name and set token string depend on project name structure . like a project name has a version sign like _v , than the output path set a $v for render . All the tokens can set by the analysis plugin . It is a bit stupid way but work well for a quickly set render path just one click. Cheers
  • 0 Votes
    2 Posts
    504 Views
    FSSF
    We life and learn. Turns out one must select the material tag with doc.SetActiveTag(textureTag) before calling the command c4d.CallCommand(CMD.GENERATE_UV_COORDS, CMD.GENERATE_UV_COORDS) to bake the projection down, down into the ground. It now works as intended.
  • incorrect specular channel property ids

    Moved Bugs python
    3
    0 Votes
    3 Posts
    977 Views
    indexofrefractionI
    tx, i just wanted to report it...
  • Multi threading in C4D python

    Cinema 4D SDK python s24
    3
    0 Votes
    3 Posts
    1k Views
    A
    thanks Ferdinand this cleared things up for me
  • SDK docs do not reflect changes to dialog borders in S26

    Moved Bugs python s26
    2
    0 Votes
    2 Posts
    827 Views
    ferdinandF
    Hello @a_block, Thank you for reaching out to us and pointing out these flaws. We are aware of these changes but since it was for quite some time unclear if these changes were intentional or not, we postponed documenting them. The changes to the look and functionalities of GeDialog borders will be included in an upcoming documentation. But since these changes effectively demand symbols or even function arguments to be deprecated, this would be more a developer's task than a documentation task. I can of course put a note into the documentation, but this would only be a band aid. I will try to find a clean solution by poking the relevant devs. Cheers, Ferdinand
  • Files and modules organization

    Cinema 4D SDK
    3
    0 Votes
    3 Posts
    892 Views
    R
    AWESOME! Thanks @ferdinand!!!
  • CommandData plugin catch Switching documents event

    Cinema 4D SDK python r23
    3
    0 Votes
    3 Posts
    447 Views
    mikeudinM
    @ferdinand Thank you!
  • Importing RSproxies using Python

    Cinema 4D SDK s26 python
    5
    2
    0 Votes
    5 Posts
    1k Views
    UMDU
    Oh I see.. The ExecutePasses was the key ! Thank you for your answers !
  • Create Polygon Selection Tag

    Cinema 4D SDK python
    5
    0 Votes
    5 Posts
    1k Views
    D
    @ferdinand aaaa i understood, thanks for help megaman)
  • Is there a fixed Manager ID like c4d.CONSTANT?

    Cinema 4D SDK python
    2
    2
    0 Votes
    2 Posts
    351 Views
    ManuelM
    Hi, Those IDs should not change but there are not guaranties. There are no symbols to define those IDs. You can use the following code to displays all the registered Managers. import c4d from c4d import gui def main(): pluginList = c4d.plugins.FilterPluginList(c4d.PLUGINTYPE_MANAGERINFORMATION, True) for plugin in pluginList: print (plugin, plugin.GetID()) # Execute main() if __name__=='__main__': main() Cheers, Manuel
  • How to Create and Populate a Layer Shader?

    Cinema 4D SDK python
    3
    0 Votes
    3 Posts
    2k Views
    indexofrefractionI
    @ferdinand hey ferdinand , thanks for all of this information ! i also noticed that definitions are missing in the python SDK (specifically the BlendModes)
  • Copy LayerShader to a new Material

    Cinema 4D SDK python
    11
    0 Votes
    11 Posts
    3k Views
    indexofrefractionI
    tx ferdinand, and yes intertwined threads .-)
  • 0 Votes
    3 Posts
    756 Views
    ferdinandF
    Hello @cinamatic, without any further questions or other postings, we will consider this topic as solved and flag it as such by Friday, 17/06/2022. Thank you for your understanding, Ferdinand
  • What is my Clipboardowner for a script?

    Cinema 4D SDK c++ python
    4
    0 Votes
    4 Posts
    915 Views
    ferdinandF
    Hey @cairyn, yeah, you are right. @m_adam already pointed this out too. I screwed up and overwrote my clipboard when I tried this out. I have edited my initial posting, to not confuse future readers. GetC4DClipboardOwner works fine in regards to the Picture Viewer and Bodypaint, but the argument ownerid of CopyBitmapToClipboard is effectively meaningless in the public API, as it lacks the window handle context to actually cause the ownerid to be stored. The owner id will always be set to 0. And to underline the answer to your major question: It seems very unlikely that you could crash Cinema 4D with writing a made-up owner id into the clipboard (in the case the function would work properly and actually store the id). It is hard to give here absolute answers, as there is a lot of code in our code base. In the context of the clipboard alone, crashing can be excluded, but there could be other parts of Cinema 4D which make assumptions based on the owner id. Which is why I would recommend not using the predefined ones (which is rather theoretical due to said limitations of CopyBitmapToClipboard). Cheers, Ferdinand
  • Modul import

    Cinema 4D SDK r21 python
    3
    0 Votes
    3 Posts
    797 Views
    W
    Thank you very much!
  • Touch input objects withot resetting its cache

    Cinema 4D SDK python
    6
    0 Votes
    6 Posts
    1k Views
    ferdinandF
    Hey @baca, as I said, the control object structure you want is not possible. I tried and wrote the necessary code when I answered here initially, and Cinema 4D will really start to freak out. You cannot have nested hierarchies of muted caches. If you really want to do this, then you must use the approach proposed by me. If you want to also hide the objects in renderings, then you will have to also set that parameter. If you poke around long enough, you might find a solution by muting the caches, but this is out of scope of support. As I said, I did already try when I wrote my first posting, maybe you have more luck. But as also stated in my first posting, you are poking here the sleeping bear called "classic API node dependencies". Cheers, Ferdinand