• The second "call command" cannot be executed

    Cinema 4D SDK python s24
    6
    0 Votes
    6 Posts
    993 Views
    ferdinandF
    Hello @mari, without any further activity before Wednesday, the 16.03.2022, we will consider this topic as solved and remove the "unsolved" state from this topic. Thank you for your understanding, Ferdinand
  • 0 Votes
    3 Posts
    711 Views
    D
    @m_magalhaes said in Copying Take Overrides from an object to another via Python not working properly: adding the backupvalue You are master! thanks my friend, it's working!
  • 0 Votes
    10 Posts
    2k Views
    ferdinandF
    Hello @del, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand
  • Toggle Only select Visible element.

    Moved Cinema 4D SDK s24
    3
    0 Votes
    3 Posts
    878 Views
    r_giganteR
    Hi @akramFex , I apologize for the long silence on our side. Unfortunately the thread fell through the cracks of the Xmas period and we lost track of it. I'm glad you were able to find the solution and I'm grateful you wanted to share it with the rest of the community. Cheers, R
  • How to pass a value from GeDialog to another class

    Cinema 4D SDK
    5
    0 Votes
    5 Posts
    916 Views
    D
    @ferdinand Thank you for your awesome explanation! I will keep this post as a reference for my studies as your approach seems a bit complicated for my understanding at the moment. I'm learning a lot with your contribution in this forum, and in this case here it's not gonna be different. Cheers
  • Multi-line Tabs

    Cinema 4D SDK r20 r21 r23 r25 s22 s24 c++
    3
    1
    0 Votes
    3 Posts
    843 Views
    ManuelM
    Hi, Without more question we will consider this thread as solved and close it. Cheers, Manuel
  • 0 Votes
    4 Posts
    1k Views
    ferdinandF
    Hello @wuzelwazel, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand
  • The oldest SDK for Cinema 4D 19-25

    Cinema 4D SDK sdk r19 r20 r21 r25 r23 s22 s24
    7
    0 Votes
    7 Posts
    2k Views
    ferdinandF
    Hello @jeremyliu1989, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand
  • RS Reference Node in Python

    Cinema 4D SDK s24 python windows
    3
    0 Votes
    3 Posts
    500 Views
    ferdinandF
    Hello @kverhaar, without any further questions or postings, we will consider this thread as solved by Friday the 4th, February 2022. Thank you for your understanding, Ferdinand
  • Remove settings from Render Settings

    Cinema 4D SDK r23 s24 r25 c++
    2
    1
    0 Votes
    2 Posts
    412 Views
    ManuelM
    Hi, you must overload the RenderEngineCheck function and return false if the passed ID are those settings. The documentation has some example. Cheers, Manuel
  • How to traverse a GeListNode tree

    Cinema 4D SDK python r25 r23 s24 windows macos
    5
    0 Votes
    5 Posts
    1k Views
    ferdinandF
    Hello @WDP, without any further questions we will consider this topic as solved by Friday, December the 17th. Thank you for your understanding, Ferdinand
  • 0 Votes
    4 Posts
    1k Views
    ferdinandF
    Hello @yaya, without any further questions we will consider this topic as solved by Friday, December the 17th. Thank you for your understanding, Ferdinand
  • How to Rotate an Object

    Cinema 4D SDK r25 s24 r23 python macos windows
    7
    0 Votes
    7 Posts
    2k Views
    ferdinandF
    Hello @WDP, this question would technically also be a new topic, please follow these rules. There is no formal notion of an object axis in the sense of a moveable entity in the API. Objects have their matrices (the global and the local one), which are effectively their own coordinate system opposed to the world coordinate system (or transform or frame when you prefer these terms over coordinate system). So, when you want to reproduce what is possible in the app, and move, rotate, or scale the axes of an object, without moving the geomtery of the object itself, then you will have to transform the vertices of that object. So, when the object has the world offset (0, 0, 0) and you want to move the axes to (100, 0, 0), you must first set the global object matrix to an offset of (100, 0, 0) and then apply the inverse of a transform that translates by (100, 0, 0) to all its vertices. I would recommend reading the matrix manual I did post in my first answer here. This will however only be possible for editable point objects, e.g., a c4d.PolygonObject. You are showing a generator object, i.e., a c4d.BaseObject with some cached geometry in your screenshot. You cannot move the axes for these objects, neither in the SDK nor in the app itself. We had recently this topic which dealt with moving the axes of a polygon object. Cheers, Ferdinand
  • 1 Votes
    8 Posts
    3k Views
    A
    @ferdinand Wow,thank you so much ferdinand!
  • R24.111: shiboken2 fails to load (Win10)

    General Talk python s24
    3
    1 Votes
    3 Posts
    907 Views
    ferdinandF
    Hello @jcooper, thank you for reaching out to us. First of all, I must point out that what you are trying to do is out of scope of support. We cannot support third party libraries as stated in our Forum Guidelines and we especially cannot support third party GUIs. The little help I can give you here is to say: There is currently a bug in R25 which will cause faulty installations when using pip and having a vanilla CPython installation of the same version on the system. The installation itself will work fine, but the import paths of both Pythons will become entangled in this case due CPython having some hardcoded import paths in its code pointing to the user directories. We have fixed this problem and the fix will be delivered with an upcoming release. You can check this easily by checking the installation paths of modules with the ```fileattribute of the module. When you are encountering the problem, it will be pointing towards yourCPython`` site-packages and not the one from Cinema. There is not much what you can do to fix this yourself (aside from monkey-patching our Python yourself). There is more than sys.path in Python, there is also sys.meta_path and relative imports, so just being able to import other packages in the same path is no guarantee that everything is fine. I cannot say much more with the given little information, and we can unfortunately also not support third party libraries. You should check if indeed is everything installed in the correct location. The problem you have could be related to what I describe under 1., but that bug did exist for quite some time, so it should have failed before. Cheers, Ferdinand
  • Ensuring only 1 specific pyTag in a document?

    Cinema 4D SDK python r20 s24
    9
    0 Votes
    9 Posts
    1k Views
    ferdinandF
    Okay, thanks for the heads up
  • 0 Votes
    7 Posts
    1k Views
    A
    Hi, I stumbled upon the same problem. The script from bonsak didn't solve the problem for me. But thanks to a tip I found a working solution. It is possible to make a parent-child setup. But you have to change the values in the parent settings after creating the child settings. import c4d from c4d import gui import redshift def main(): #Create main render setting rd = c4d.documents.RenderData() rd.SetName('render_group') rd[c4d.RDATA_RENDERENGINE] = redshift.VPrsrenderer rd_red = redshift.FindAddVideoPost(rd, redshift.VPrsrenderer) doc.InsertRenderData(rd) #Create child render setting child_setting = c4d.documents.RenderData() child_setting.SetName('child setting') child_setting[c4d.RDATA_RENDERENGINE] = redshift.VPrsrenderer doc.InsertRenderData(child_setting , rd) redshift.FindAddVideoPost(child_setting, redshift.VPrsrenderer) doc.InsertRenderData(child_setting , rd) #Change main render settings rd[c4d.RDATA_XRES] = 1920.0 rd[c4d.RDATA_YRES] = 1080.0 rd[c4d.RDATA_FRAMERATE] = 25.0 rd[c4d.RDATA_FORMAT] = 1023671 #PNG rd[c4d.RDATA_FORMATDEPTH] = 1 #depth 16bit #Change Redshift post effect rd_red[c4d.REDSHIFT_RENDERER_ENABLE_AUTOMATIC_SAMPLING] = 0 rd_red[c4d.REDSHIFT_RENDERER_UNIFIED_MIN_SAMPLES] = 32 rd_red[c4d.REDSHIFT_RENDERER_UNIFIED_MAX_SAMPLES] = 256 rd_red[c4d.REDSHIFT_RENDERER_MOTION_BLUR_ENABLED] = 1 rd_red[c4d.REDSHIFT_RENDERER_COLOR_MANAGEMENT_OCIO_VIEW] = 'Un-tone-mapped' if __name__=='__main__': main()
  • How to Access the Values of GeDialog Gadgets

    Cinema 4D SDK s24 r25 python
    2
    0 Votes
    2 Posts
    439 Views
    ferdinandF
    Hello @mocoloco, thank you for reaching out to us. I have forked your question from How to Highlight a Button since it is a new question which does constitute a new topic. I am also currently on vacation which means that you will have to address the rest of the team to get support in a timely fashion (addressing just me and hiding your question in an older topic was probably what got your question being overlooked). About your question(s): You can find out more about dialog resources, i.e., defining a dialog in a file and not programmatically, in Resource Files Manual and Dialog Resource. Both manuals are part of our C++ documentation but do translate quite directly to Python since resource files are mostly a language agnostic topic. It also remains unclear to me if you actually want to define a dialog or a node since *"using .RES" does not distinguish the two. In either case the resource snippet I did post in the other thread could be used as a template for both cases. I am also not quite sure how the second part of your question is meant. You usually do react to dialog input events in GeDialog.Command. In a node you would have to indeed listen in NodeData.Message() as pointed out by yourself. In a dialog the value would be then attached to the dialog and in case of a node to the node. I.e., in the case of the muscle object thingy polling the quicktab gadget could look like this: Message(self, node, mid, mdata): """Polls a quicktab gadget for the hypothetical muscle object case. Args: node (c4d.BaseList2D): The node to which the message has been sent. mid (int): The message id. mdata (any): The message data. In case of description messages usually a `dict` in Python. """ # The conditioning to a specific message/event type is optional, but # should be in your case probably MSG_DESCRIPTION_POSTSETPARAMETER. if mid == c4d.MSG_DESCRIPTION_POSTSETPARAMETER: # Unpack from which element the message has been sent. eid = mdata["descid"][0].id # This has been sent by the quicktab gadget. if eid == c4d.ID_CA_MUSCLE_OBJECT_STATE: # Get the node state of the parameter which has that quicktab GUI # and do different things based on the state. state = node[c4d.ID_CA_MUSCLE_OBJECT_STATE] if state == c4d.ID_CA_MUSCLE_OBJECT_STATE_RELAX: # ... elif state == c4d.ID_CA_MUSCLE_OBJECT_STATE_COMPRESSED: # ... # ... return True For a more precise answer you should post code or a more precise description of what you are trying to do. And you should also address the rest of the team since I am still going to be on vacation for a few days. Cheers, Ferdinand
  • Save node created from resource editor as .json file

    Cinema 4D SDK s24 sdk c++
    3
    0 Votes
    3 Posts
    541 Views
    O
    That's what I was looking for, thanks a lot!
  • c4d.BFH_LEFT is not work in menu line?

    Cinema 4D SDK s24 python
    3
    1
    0 Votes
    3 Posts
    346 Views
    gheyretG
    @ferdinand Thanks to your replay, Some of the features I wanted seemed to be addressed in the R25! Let's rock and roll for R25! Cheers!