• 0 Votes
    4 Posts
    791 Views
    a_blockA
    Well, helping out is generally my business. Although I have to admit, I have some problems understanding the actual goal. If you like, contact me via job AT andreasblock DOT de
  • 3 Votes
    1 Posts
    288 Views
    No one has replied
  • Message for closed documents?

    Cinema 4D SDK python r25
    9
    0 Votes
    9 Posts
    1k Views
    fwilleke80F
    Ah, damn, I forgot that Python doesn't have SceneHookData. Sorry.
  • Selected object to selected layer

    Cinema 4D SDK python r25
    5
    1
    0 Votes
    5 Posts
    1k Views
    ferdinandF
    Hello @ROMAN, without any further questions and 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
  • 1 Votes
    3 Posts
    706 Views
    H
    Ok, thanks for the confirmation. Already fixed it manually myself.
  • 0 Votes
    7 Posts
    1k Views
    fwilleke80F
    Okay, thanks!
  • Adding Node Descriptions Pragmatically

    Cinema 4D SDK c++ r25
    9
    0 Votes
    9 Posts
    2k Views
    O
    Thank you. I was getting a unique ID indeed but had declared it as a global (I don't know how I missed it after checking couple of times) and using it like that in the lambda function was causing the issue. All good now, thank you very much. Cheers, Ogers
  • Aligning object local axis to world axis via Python

    Cinema 4D SDK python r25
    10
    0 Votes
    10 Posts
    2k Views
    ferdinandF
    Hello @Peek, without any further questions and 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
  • Object size not updated after points move

    Cinema 4D SDK python r25
    3
    0 Votes
    3 Posts
    707 Views
    P
    Well, that indeed fixed the issue, now the size gets properly updated! Thank you very much for the help
  • Mac M1 bug?

    Cinema 4D SDK r25 python
    8
    0 Votes
    8 Posts
    1k Views
    ferdinandF
    Hello @pim, without any further questions and 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
  • OpenGL in Cinema 4D

    Cinema 4D SDK python r25
    6
    0 Votes
    6 Posts
    2k Views
    gheyretG
    @fwilleke80 Yes, it's a solution. But it's can not to orbiting the scene or transforming the model. I think i need to make a desktop application, and make sure the window always on top. However, this will lead to more work for me. And thanks to your reply! cheers
  • 0 Votes
    3 Posts
    600 Views
    mikeudinM
    @cairyn Thank you!
  • Treeview Column adjust

    Cinema 4D SDK python r20 r25
    8
    2
    0 Votes
    8 Posts
    2k Views
    ferdinandF
    Hey @mogh, Thank you for the kind words and I am happy that this solved your problem. While I sometimes channel here my inner librarian and press for a formal order for new topics, so that the SDK Team can answer them effectively, I want to make clear that all Cinema 4D programming questions are welcome on Plugin Café. Just remember to open a new topic for new questions and to place them in the General Talk forum when they are general programming questions not directly related to our APIs. We will treat them then with a lower priority and rigor, but we usually also answer there. Cheers, Ferdinand
  • MSG_MENUPREPARE not sent to BaseShaders

    Cinema 4D SDK c++ r25
    6
    0 Votes
    6 Posts
    948 Views
    fwilleke80F
    I've changed this back to "Normal topic". It was a question, and it was answered, but since there's no solution, I didn't want to mark it as "solved.
  • 0 Votes
    3 Posts
    704 Views
    D
    Thank you ferdidand, Sorry for not giving more contextual code... Yeah "potential ports" is what I would be interested in. Thanks for confirming that there is nothing in the API that would help me though!
  • ShowBitmap() from website URL

    Cinema 4D SDK python r25
    3
    2
    0 Votes
    3 Posts
    412 Views
    gheyretG
    @ferdinand Wow! you perfectly solved my problem! Thank you!
  • Keyframe Texture Tag with no material

    Cinema 4D SDK python r25
    6
    0 Votes
    6 Posts
    901 Views
    a_blockA
    Sorry, for causing extra work
  • 0 Votes
    6 Posts
    824 Views
    ManuelM
    hi, if I'm correct, you are trying to implement a NodeData plugin right? On this node, you are doing some action based on files that you store inside your own structure and not any baselink? Those files must be considered as assets. When you start a teamrender render, MSG_GETALLASSETS will broadcast to retrieve all the assets. You must react to the message so your assets will be collected. See this manual for more information. While collecting those assets, it can happen that assets have to be renamed if those assets share the same name but are in different directories. This will be done using MSG_RENAMETEXTURES. In that case, RenameTextureMessage will be sent as data and you will have to update the assets filename of your NodeData, either the baselink or your structure. Once collected, all the assets will be in the same directory as the .c4d file. Now the client will open the project and will try to retrieve the asset, it could happen that the message MSG_RENAMETEXTURES will be triggered again. Your code should work if the filename you retrieve from the hyperfile is updated. Cheers, Manuel
  • 0 Votes
    3 Posts
    987 Views
    ferdinandF
    Hello @davidweidemann, Thank you for reaching out to us and solving your own question :). To give a bit of background information, parameters can be composed in Cinema 4D. The simplest example is a parameter of type c4d.Vector. You can access the relative position of an object like this: >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION] Vector(0, 0, 0) But as users might want to access and animate the components of that vector individually, the vector is dealt with and represented as a parameter actually as a set of sub-channels, one for each of its components. >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X] 0.0 >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y] 0.0 >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z] 0.0 >>> This is why DescId are composed out of up to three DescLevel. To access the component of a vector you need two DescLevel, e.g., c4d.ID_BASEOBJECT_REL_POSITION and c4d.VECTOR_X. And while you might not be able to deal with the enclosing parameter, you might be able to deal with its subchannels. The input and output ports of an RSColorAbs Redshift node are of type RsColorAlpha, a parameter type that is composed of a Vector and a float, so it is effectively a four-component vector. This parameter type is not exposed to the Python API, so the API has no clue what to do with it. But it can deal with the subchannels. # Python has no clue about that parameter type at REDSHIFT_SHADER_RSMATHABSCOLOR_INPUT. >>> RSColorAbs[c4d.REDSHIFT_SHADER_RSMATHABSCOLOR_INPUT] Traceback (most recent call last): File "console", line 1, in <module> AttributeError: Parameter value not accessible (object unknown in Python) # But we can access the subchannels which are standard types. This is a two DescLevel access >>> RSColorAbs[c4d.REDSHIFT_SHADER_RSMATHABSCOLOR_INPUT,c4d.REDSHIFT_COLORALPHA_COLOR] Vector(0, 0, 0) # We can even reach into the subchannels of a subchannel, here for example to access the red # component of the RGBA vector tuple that is represented by the type RsColorAlpha. >>> RSColorAbs[c4d.REDSHIFT_SHADER_RSMATHABSCOLOR_INPUT,c4d.REDSHIFT_COLORALPHA_COLOR, c4d.VECTOR_X] 0.0 Cheers, Ferdinand
  • 0 Votes
    4 Posts
    634 Views
    ferdinandF
    Hello @till-niese, I did not say or want to imply that this is expected, I will have to test it myself. In the meantime, you can use maxon::Url as shown above to normalize paths if that is of importance for you. I will report back here when I have tried replicating your findings. When there is a bug, we will have to decide if we will fix it. The classic API is a dormant API and the bug, if it is there, does not seem to critical. I cannot tell you right away "that is a bug, and we will fix it (or not)", as this involves multiple operating systems and serialization of paths, which both can be tricky subjects. Cheers, Ferdinand