• Getting UV coordinates from a plane

    Cinema 4D SDK python r21
    9
    1
    0 Votes
    9 Posts
    2k Views
    ferdinandF
    Hey @rui_mac, no, they do not match the uvw coordinates. They are weights, please have look at the example I have linked to above, it likely does everything you need. GetPolyPointST expects a value in local object coordinates and returns weights for the polygon UVW coordinates. You get then your final coordinate by the bilinear interpolation of the UVW quad over the s,t weights. You can of course technically replicate all the math yourself, but as Ilia has pointed out this would be out of scope of support. Cheers, Ferdinand
  • Set Tangnet of Spline

    Cinema 4D SDK python
    3
    1
    0 Votes
    3 Posts
    789 Views
    gheyretG
    Hi @ferdinand ! Sorry for late reply, and thank you very much for your detailed and thorough explanation, and for taking the time to explain the relationship between linear algebra and trigonometry in the context of computer graphics and transformations. As a beginner, all I want to do here is to practice as much as I can with the knowledge I've learned, and I apologize if I didn't explain clearly. Yes, in the code I want to implement is placing two tangent handle relative to the two input objects a and c. Compared to calculating with trigonometric functions, your suggestion seems more straightforward and clear, and I never would have thought to use vectors to achieve this, I need to keep practicing. I will take the time to review the thread you mentioned. Thank you again for your support and guidance. Thank you very much for your insights!
  • 0 Votes
    3 Posts
    719 Views
    jochemdkJ
    OK, clear, thx!
  • Create Radio Button in User Data

    Cinema 4D SDK python
    5
    1
    0 Votes
    5 Posts
    1k Views
    D
    @i_mazlov Thanks a lot for your time. You answered my question brilliantly.
  • 2025.0.0 SDK Release

    News & Information cinema 4d news c++ python sdk
    8
    3 Votes
    8 Posts
    15k Views
    H
    Thank you
  • 0 Votes
    5 Posts
    1k Views
    R
    Thanks Ferdinand and that does seem very plausible given that I am very new to type hinting in my code, and I have actually caught myself swapping the colon for the equals sign already. Learning from you guys every day though! I'm off to break some more sh!t! Thanks so much for your time, will let you know when I get stuck...
  • 0 Votes
    3 Posts
    1k Views
    ferdinandF
    Hello, Thank you for reaching out to us. @Dunhou is right, the Picture Viewer is sealed, which means that you can put images into it (with c4d.bitmaps.ShowBitmap or c4d.documents.LoadFile) but you cannot get images or information out of it. This generally applies to all UIs, we do not expose UIs, but the data structures behind them. So, there is for example no Object or Material Manager API interface, their functionalities are exposed via the scene graph. For the Picture Viewer there is no data structure exposed. Cheers, Ferdinand
  • 0 Votes
    3 Posts
    769 Views
    D
    @i_mazlov Thanks! makes sens. seems i only used the forgiving commands until now. the code is run in a python generator. so by returning the object, it will be inserted into the scene.
  • How do I sort the plug-in menu?

    Cinema 4D SDK python
    8
    2
    0 Votes
    8 Posts
    2k Views
    treezwT
    @ferdinand Thank you very much for your help, I have solved the problem!
  • use thicken generator inside a python generator

    Moved Bugs windows 2024 python
    4
    1
    0 Votes
    4 Posts
    2k Views
    D
    hi @i_mazlov, ok, good to know. i also tried to insert the thicken generator into a temp_doc, activating the selections and executing passes. but that didn't work either.
  • Use buttons in tags. Rope tag.

    Cinema 4D SDK windows python 2024
    3
    1
    0 Votes
    3 Posts
    820 Views
    S
    @i_mazlov Thank you for your reply. That was very helpful!
  • 0 Votes
    5 Posts
    1k Views
    ferdinandF
    Good to hear that you found your solution!
  • 0 Votes
    7 Posts
    2k Views
    justintaylor-devJ
    @ferdinand Great thanks!
  • 0 Votes
    4 Posts
    2k Views
    M
    Hi just to let you know that the bug has been fixed, this will be available in one of the next releases. I will post on this topic once the fix is available. Cheers, Maxime.
  • 0 Votes
    3 Posts
    822 Views
    B
    @ferdinand Gotcha. Thanks for the response. c4d.CallButton(op, c4d.ID_BASEOBJECT_FROZEN_RESET) works as expected.
  • 0 Votes
    3 Posts
    672 Views
    lakpoL
    Hi Ferdinand, I just wanted to thank you for your invaluable help! Thanks to your guidance, I was able to solve my issue with toggling the default gravity in Cinema 4D. Honestly, I didn't think it would be this complicated! For anyone who might encounter a similar problem, here's the script I used, based on your code. It allows access to the global default simulation scene in the simulation hook and toggles the gravity value between 0 and -981: import c4d doc: c4d.documents.BaseDocument # The currently active document. op: c4d.BaseObject | None # The primary selected object in the document. Can be None. c4d.SHsimulation: int = 1057220 # The ID of the simulation hook. def main() -> None: """Called by Cinema 4D when the script is executed.""" # Get the simulation hook of the active document simulationHook: c4d.BaseList2D | None = doc.FindSceneHook(c4d.SHsimulation) if not simulationHook: raise RuntimeError("Cannot find the simulation hook.") # Retrieve the object branch from the simulation hook branches: list[dict] = simulationHook.GetBranchInfo() data: dict | None = next(n for n in branches if n["id"] == c4d.Obase) # We're looking for the object branch. if not data: raise RuntimeError("Malformed simulation hook with missing object branch.") # Get the simulation scene simulationScene: c4d.BaseObject | None = data["head"].GetFirst() if not simulationScene: raise RuntimeError("Malformed simulation hook with missing object branch children.") # Toggle gravity between 0 and -981 if simulationScene[c4d.PBDSCENE_DEFAULTGRAVITY] == 0: simulationScene[c4d.PBDSCENE_DEFAULTGRAVITY] = -981 else: simulationScene[c4d.PBDSCENE_DEFAULTGRAVITY] = 0 c4d.EventAdd() if __name__ == '__main__': main() This script toggles the default gravity of the simulation scene between 0 and -981 depending on its current value. Thanks again for your help! I hope this can be useful to others who might face the same issue.
  • 0 Votes
    4 Posts
    1k Views
    C
    Thank you for this write up, I started writing something similar, but this is a huge help understanding how to get and set the data for BaseLink. I'll need to add FieldList and InExcludeData as you mentioned, knowing the getting and adding the new object is a little more involved than just setting the property id directly. I'll reach out here again if I have any followups.
  • Visual Selector and Script

    Cinema 4D SDK python 2024
    2
    0 Votes
    2 Posts
    597 Views
    i_mazlovI
    Hi @Pitchi, Welcome to the Maxon developers forum and its community, it is great to have you with us! Getting Started Before creating your next postings, we would recommend making yourself accustomed with our forum and support procedures. You did not do anything wrong, we point all new users to these rules. Forum Overview: Provides a broad overview of the fundamental structure and rules of this forum, such as the purpose of the different sub-forums or the fact that we will ban users who engage in hate speech or harassment. Support Procedures: Provides a more in detail overview of how we provide technical support for APIs here. This topic will tell you how to ask good questions and limits of our technical support. Forum Features: Provides an overview of the technical features of this forum, such as Markdown markup or file uploads. It is strongly recommended to read the first two topics carefully, especially the section Support Procedures: Asking Questions. About your First Question I'm struggling to understand what exactly you're trying to achieve, namely what do you mean by saying "a way to switch to anyone blocks"? Do you want it to be selected in the attribute manager, or framed in the viewport, or something else? Please also note, that according to our Support Procedures: We cannot provide support on learning C++, Python, or one of their popular third-party libraries We provide code examples but we do not provide full solutions or design applications. This technically means that here we provide support on public APIs of Maxon products and development support for third party developers, but we cannot write solutions instead of you. For the end-user support requests, please use our Support Center. In case you're looking for someone to create a working solution for you, please use our General Talk forum category instead. Cheers, Ilia
  • Embed Video into GUI - Python API

    Cinema 4D SDK python windows
    6
    0 Votes
    6 Posts
    1k Views
    ferdinandF
    Hey, okay, good to know. I just wanted to make clear that BaseBitmap does not support audio playback or sampling audio information. Except for the SoundEffectorCustomGui, there is in fact no sound support at all in the Python API. The C++ API offers more support with the MEDIASESSION namespace, but also this is mostly geared towards writing such information. Cheers, Ferdinand