• 0 Votes
    3 Posts
    711 Views
    B
    @i_mazlov Ah yes, my pose morph names are standardized so there should be no duplicated/redundant names. And yea, thanks for mentioning the dictionary route. Totally overlooked that. That could indeed be an easier way to set/get some values. Thanks!
  • Boundary Edges to Spline in Python

    Cinema 4D SDK s26 python 2024 2023
    3
    0 Votes
    3 Posts
    914 Views
    F
    Dear Ilia, I greatly appreciate your assistance; it was precisely what I needed. Thank you for your guidance and I wish you a wonderful day. Best regards, Tomasz
  • 0 Votes
    9 Posts
    3k Views
    i_mazlovI
    Hi Christophe, Please note our Support Procedures, namely: We cannot provide support for third party libraries "It doesn't work" is not a support request and we cannot debug your code for you, but instead provide answers to specific problems. From my personal point of view, you need to reduce your setup as far as possible while still being able to reproduce the bug: Determine which one of your 2 tag plugins causes the issue Cut off unrelated functionality of your plugin that has nothing to do with the issue Figure out the specific function or line that causes the issue Search the forum if this issue was already discussed If not, create an example code snippet that highlights your issue Post your specific question and the example code snippet in a separate thread with a meaningful title Cheers, Ilia
  • 0 Votes
    2 Posts
    490 Views
    ferdinandF
    Hello @Christian-0, Thank you for reaching out to us. I am a bit confused by your question. A soft body simulation is characterized by the fact that it gives up the idea of a geometry transform with governs a geometry as usually applied in computer graphics. In the end this means that the transform of the object (BaseObject.GetMg) will not change but the points will and with it the bounding box of an object. Below you see a soft body cylinder falling. Its transform, the axis, never changes, but the bound box does. Animated are here the points, not the object, hence the term soft body. bbox.mp4 In the API you can get the bounding box values with BaseObject.GetMp and BaseObject.GetRad. When you want a transform, a matrix for that, you would have to compute that yourself. The matrix manual dissects how to construct matrices. Cheers, Ferdinand
  • VC_FLAGS

    Cinema 4D SDK 2024 python 2023
    2
    0 Votes
    2 Posts
    387 Views
    M
    Hi @baca VC_SAFETY has been removed in 2023.1, you do not need it anymore, since the message can't fail anymore. You should keep it for old code but for new code, just leave the vc_flags empty will be enough. Cheers, Maxime.
  • Access to the coordinate manager.

    Cinema 4D SDK 2023 python windows
    3
    1
    0 Votes
    3 Posts
    677 Views
    S
    @ferdinand Thank you very much for the expanded object.
  • HtmlViewerCustomGui issue

    Cinema 4D SDK 2023 python
    3
    0 Votes
    3 Posts
    544 Views
    PoliigonP
    Bummer. But thanks, Maxime, for the quick reply.
  • Which DisplayFilter affects ToolData.draw

    Cinema 4D SDK 2023 2024 s26 python
    3
    0 Votes
    3 Posts
    550 Views
    gheyretG
    Hi @ferdinand , I'm sorry that my title and description may be a little confused, maybe I misunderstood something and thought a little complicated. And thank you very much for your answer, you always help me when my thinking is confused. Cheers! Gheyret
  • 0 Votes
    3 Posts
    842 Views
    G
    This is an excellent explanation , thank you.
  • 0 Votes
    2 Posts
    615 Views
    ferdinandF
    Hello @Aeoll-0, Thank you for reaching out to us. You should be a bit more specific about the circumstances and which you are using the command. As declared in our Support Guidelines, you should always post executable code, as we are otherwise are guessing what you are doing. The self.filedir implies that this happens in a method, which in turn could mean that you are trying to do this off-main-thread. This is not allowed. I also gave it a spin myself, and for me it works. Note that after the operation, the opened file is not the old file anymore. So, when you had a \data\a\myfile.c4d and saved to backup\a\, the opened file will be backup\a\myfile.c4d and not \data\a\myfile.c4d. Because of that, such newly "exported" documents will also induce thumbnail rendering. When you are trying to save many documents at once in this manner, the thumbnail rendering could make Cinema unresponsive. The path into which you want to dump things must also exist, Cinema 4D cannot create it for you. I have tested this in 2023.2.2 and 2024.1.0 and found no problems in both versions. Cheers, Ferdinand Result: [image: 1699977932661-34f18c02-cc1d-42ef-94ac-d50f2ad57195-image.png] Successfully saved project to: 'e:\projects\foo\', exporting the assets: [{'filename': 'e:\\projects\\foo\\myfile.c4d', 'assetname': 'myfile.c4d', 'channelId': 0, 'netRequestOnDemand': False}, {'filename': 'e:\\projects\\foo\\tex\\Maxon-Computer-Logo.jpg', 'assetname': 'E:\\temp\\Maxon-Computer-Logo.jpg', 'channelId': 0, 'netRequestOnDemand': True}]. Code: import c4d import os doc: c4d.documents.BaseDocument # The active document def main() -> None: """ """ # Cinema 4D cannot create the directory path for us, we must ensure that #path does exist. path: str = "e:\\projects\\foo\\" if not os.path.exists(path): os.makedirs(path) # Your settings. flags: int = (c4d.SAVEPROJECT_ASSETS | c4d.SAVEPROJECT_SCENEFILE | c4d.SAVEPROJECT_USEDOCUMENTNAMEASFILENAME) data: list = [doc, flags, path, [], []] # Invoke the command and raise errors on failure or missing assets. if not c4d.documents.SaveProject(*data): raise IOError(f"Could not save project to: '{path}'.") if data[4]: raise IOError(f"Failed to export the following assets: {data[4]}") # Success :) print (f"Successfully saved project to: '{path}', exporting the assets: {data[3]}.") if __name__ == '__main__': main()
  • Frame All command on Spline User Data

    Cinema 4D SDK python 2023
    8
    1
    0 Votes
    8 Posts
    2k Views
    i_mazlovI
    Hi Gabriel, Sorry for the delay in this thread. Unfortunately you cannot control this folding GUI functionality as it is sealed to the non-public GUI implementation. That would not be the case when using custom GUI implementations. Cheers, Ilia
  • Failed to Connect to Cinema 4D, with port: 7788

    Cinema 4D SDK python 2023 2024
    3
    0 Votes
    3 Posts
    761 Views
    RenatoTR
    ah! Thanks a lot!
  • How to draw a primitive object in BaseDraw

    Cinema 4D SDK python 2023 2024 s26
    3
    0 Votes
    3 Posts
    637 Views
    gheyretG
    Hi @ferdinand Thank you for your reply and guidance. I'll get around to it. Cheers Gheyret
  • Running commanline application with Python

    Moved General Talk 2023 python macos windows
    15
    0 Votes
    15 Posts
    4k Views
    ferdinandF
    One last thing: Have you tried using LICENSEMODEL::MAXONAPP as an alternative login method? ::MAXONACCOUNT is being deprecated as I said, and I do not quite remember why we chose it here nonetheless. User support surely can help you with the details here.
  • 0 Votes
    5 Posts
    993 Views
    i_mazlovI
    Yes, you found the thread about point selection just right!
  • How to set options when saving TIF file

    Cinema 4D SDK 2023 c++
    2
    1
    0 Votes
    2 Posts
    429 Views
    ferdinandF
    Hello @kbar, Thank you for reaching out to us. You cannot do what you want to do from the classic API. When we use the classic API interface BaseBitmap::Save internally, we always pass nullptr or the empty container when saving a FILTER_TIF. There is unfortunately no classic API translation layer anymore for this aspect of TIFF saving. But you can get the underlying ImageRef with BaseBitmap::GetImageRef and then use the Image API directly to save things as you want them to be saved: Saving an ImageRef to Disk maxon::MEDIASESSION::TIFF::EXPORT Namespace Note that other than in the classic API, image data is expressed by more than one type in the maxon API. To save a plain ImageRef, you will have first to insert it into a ImageTextureRef via ::AddChildren, as only it has the ::Save method. Cheers, Ferdinand
  • 0 Votes
    3 Posts
    556 Views
    M
    Hi @ll2pakll, I am glad that you solved your issue. Message(c4d.MSG_UPDATE) is indeed required to finalize your spline editing. If you want a complete example on spline editing please take a look at geometry_splineobject.py example. Cheers, Maxime.
  • 0 Votes
    5 Posts
    900 Views
    G
    I want to mirror a polygon selection along specified modeling axis, but i'm kinda stuck since i can't apply the dedicated Mirror Tool, the basic Scale Tool also doesn't allow to set the tool settings...
  • Problem with MessageData plugin

    Cinema 4D SDK 2023 windows python
    5
    0 Votes
    5 Posts
    989 Views
    gheyretG
    Hi @ferdinand Thank you so much for your explain, i understand what's happen now. Cheers
  • 0 Votes
    3 Posts
    659 Views
    B
    In the past I have refrained from CallCommands and CallButtons because they used to add to the undo queue or did. But I suppose in this instance I can just do it for thise purpose.