• How can I control a Python Tag's execution?

    Cinema 4D SDK python
    4
    0 Votes
    4 Posts
    651 Views
    ferdinandF
    Hi, without further feedback, we will consider this thread as solved by Monday and flag it accordingly. Cheers, Ferdinand
  • HOW TO BIND KEYBOARD SHORTCUT TO PLUGIN

    Cinema 4D SDK python r21
    3
    0 Votes
    3 Posts
    417 Views
    gheyretG
    @m_magalhaes Now i know how to solve my problem! Thank you for your reply. Cheers!
  • Dialog button hangs C4D

    Cinema 4D SDK python
    6
    0 Votes
    6 Posts
    1k Views
    ferdinandF
    Hi, without further feedback, we will consider this thread as solved by Monday and flag it accordingly. Cheers, Ferdinand
  • PYTHON - INPUT DELAI

    Cinema 4D SDK python r21 macos
    7
    0 Votes
    7 Posts
    1k Views
    ferdinandF
    Hi, without further feedback, we will consider this thread as solved by Monday and flag it accordingly. Cheers, Ferdinand
  • PYSIDE FOR C4D PROBLEMS

    Cinema 4D SDK python r21
    7
    0 Votes
    7 Posts
    952 Views
    gheyretG
    @zipit I just read this(Connect C4D with Tkinter) post,It does seem to help me Thank you again!
  • Detect closing of Document

    Cinema 4D SDK
    7
    0 Votes
    7 Posts
    1k Views
    ferdinandF
    Hi @lasselauch, we talked about your problem this morning. There are two ways of looking at your question: You are interested in the event of a closing document (i.e. present progressive) and you want to react to that event by making some changes before this process is finalized (i.e. the document closed). As already stated yesterday by me, there is currently no way to do that in a GeDialog. You will need some kind of node for that. It is also noteworthy that currently CommandData is bugged in this regard in Python. As @mp5gosu already pointed out, MessageData is a really good way to go, unless you do not have already something like TagData plugin where you could squeeze in that functionality. You are interested in the state of the loaded documents list, i.e. if a document has closed (past tense), but not exactly when it happens. This is possible in a dialog. You already provided your own answer here (thanks for making it visible to everyone). The basic idea is just to build some hashmap/list to compare against what Cinema considers to be loaded documents. As an added note, you might want to look at GeDialog.Timer, which will let you execute things in fixed intervals, in order to get closer to the point of when something happened. This won't be to much of a performance strain if implemented carefully. Cheers, Ferdinand
  • Drag and Drop "Command" from Treeview

    Cinema 4D SDK
    6
    0 Votes
    6 Posts
    1k Views
    ferdinandF
    Hi, I understand that this thread has not yet come to a final conclusion, but without further feedback, we will consider this thread as solved by Monday and flag it accordingly. Cheers, Ferdinand
  • 0 Votes
    3 Posts
    394 Views
    mikeudinM
    Thank you @m_magalhaes !
  • Plugin is evaluated for all frames

    Cinema 4D SDK r21 s22 r23 r20 python
    2
    0 Votes
    2 Posts
    451 Views
    ferdinandF
    Hi @pyr, thank you for reaching out to us. I am afraid we will need a little bit more than that, as otherwise it will be very hard to answer your question What kind of plugin do you implement? What does it do or what would you consider as running? On a very abstract level you cannot really prevent plugins from running other than not registering them at the start of the application. But you can of course modify their output depending on basically everything, including render events and at what time offset some given document is. Cheers, Ferdinand
  • Snap settings issues in R21/R23?

    Cinema 4D SDK r21 r23 python
    12
    0 Votes
    12 Posts
    2k Views
    CairynC
    @zipit Thanks, I thought so... but you never know whether some functionality has a hidden internal purpose. Deprecating it will probably be the best solution.
  • PYTHON GENERATOR ISSUES

    Cinema 4D SDK r20 python
    3
    0 Votes
    3 Posts
    414 Views
    gheyretG
    @Cairyn Thank you for your reply. The "odd result" it's means the scene is empty , no objects were generated. According to your explanation, I have solved the problem. And it's just an exercise code. Thank you again !
  • 1 Votes
    2 Posts
    640 Views
    ferdinandF
    Hi @jenandesign, thank you for sharing your little setup. I think your suggestion is great, but the problem is: We cannot handle feature requests in the SDK-team which are not directly concerned with one of the APIs. And although Cinema's old node editor is kind of "coding-related", it is in the end not directly related to one of Cinema's SDKs, which is the ground we do cover here. So I would have to ask you kindly to bring up your suggestion with Maxon's end user support, as they do handle these kind of requests. Cheers and thank you for your understanding, Ferdinand
  • Wrong random clone displayed issue

    Cinema 4D SDK python r23 s22
    11
    1
    0 Votes
    11 Posts
    2k Views
    ferdinandF
    Hi @jochemdk, without further questions or feedback, we will consider this thread as solved by Monday and flag it accordingly. Cheers, Ferdinand
  • Rename object by filename

    Moved Cinema 4D SDK python
    10
    0 Votes
    10 Posts
    2k Views
    J
    @zipit @lasselauch thank you both for your time and knowledge!
  • Plugin not loaded in R23 on macOS

    Cinema 4D SDK
    14
    1 Votes
    14 Posts
    3k Views
    kbarK
    Python plugins do not work reliably in R23 on OSX 10.13.6. The C4D minimum spec is for 10.14.6 as Riccardo mentioned. And even if you try to debug a plugin on 10.13.6 what you will notice is that many calls (such as print) don't even work on this OS. So you can't even write anything out to the console to see what the problem might be. No amount of re-installing C4D will help you at all. You just have to let your customers know that the minimum spec for R23 is 10.14.6 and not guarantee any support for anything below that spec.
  • Does QUANTIZE_GRID actually do anything?

    Cinema 4D SDK r23 python
    3
    0 Votes
    3 Posts
    512 Views
    CairynC
    Thanks for the confirmation. (Follow-up questions moved to a separate post)
  • Python Effector not working with Fields

    Cinema 4D SDK r23 python
    6
    0 Votes
    6 Posts
    1k Views
    ferdinandF
    Hi, without further feedback, we will consider this thread as solved by Monday and flag it accordingly. Cheers, Ferdinand
  • Vertex Maps on Generators

    Cinema 4D SDK r23 python
    5
    0 Votes
    5 Posts
    1k Views
    K
    Apologies, I thought my mention of the Voronoi Fracture's ability to generate vertex map tags (itself being a generator that deals with variable geometry) would be clear enough, but I suppose a casual mention doesn't suffice for an app this complex, haha! Yeah, it's really all about overcoming that immutable nature of the vertex map tag. I'm generating them on parametric objects and I need them to be able to adapt to changing point counts. Just like they're able to do on editable polygon objects. Which means I have to create a new tag each time the host object's geometry changes and update anywhere else it's linked. That's where TransferGoal() comes in. Where my function was failing was a result of TransferGoal() not only updating the BaseLinks, but also the variables within my code. So in my function, once TransferGoal()is called, both vmap and replacement_tag variables end up referencing the same tag (the new one), leaving me without a variable filled with the old tag to delete. Passing True as the second argument left my variables alone and only updated the links, essentially making it work perfectly. So passing True or False to TransferGoal() didn't make any difference as far as the BaseLinks were concerned. Those always updated correctly. If I had to guess I would say it has to do with the memory addresses of the objects being transferred... which is just more reason to avoid ignoring that little instruction in the sdk;) I'll trust the devs on matters of memory handling lol. Turns out it's quite easy to work around. Since I insert the new tag directly after the old tag I can simply use GetPred() to find the old tag and successfully delete it. As far as your question as to whether I would consider this desirable or expected behavior, I would say no. I would much prefer that my in-code variables remain as they were before calling TransferGoal, because as it currently is I'm left with two distinct variables that hold the same object. In other words, I'm left with redundancy and it ends up preventing me from doing more to the old BaseList2D object. In my case, it happens to be relatively easy to re-find and re-reference that BaseList2D object, but that might not always be the case. But yeah, now I have a working skeleton function (that doesn't break the rules lol). Just gotta bulk it up with appropriate checks and I should be good to go! Thanks for your help @zipit! Cheers! Kevin
  • ZeroAxis R23 help

    Moved Cinema 4D SDK python r23
    11
    0 Votes
    11 Posts
    2k Views
    P
    That are great news, but sadly I am not a Phyton User
  • 0 Votes
    9 Posts
    1k Views
    ?
    @zipit Hi, thank you for the message. Yes, I believe I already understood everything you explained and I do appreciate your efforts. I knew I wasn't doing anything with the descid in my code, I was just confused as to why when I change one attribute, I was getting MSG_DESCRIPTION_POSTSETPARAMETER messages from all of the attributes as opposed to just the one attribute. Perhaps it is something else in my code that is sending those. Regardless, it isn't hugely important, I was trying to be as efficient as possible. Thank you.