• FieldList.GetCount Bug

    Moved r21 r20 r19 python
    2
    0 Votes
    2 Posts
    573 Views
    M
    Hi @pyr, I've just reached the development team about it. So for them, this is not a bug since FieldList store only baseLink. In Python, we don't have BaseLink, but if you are not aware of what it is, please read BaseLink Manual. But since there is no BaseLink in Python, if a link points to a destructed object (like in your case, Python simply returns None) So I guess your workaround is ok. Cheers, Maxime
  • BaseBitmap.ScaleIt() IS NOT WORKING

    r21 python
    3
    1
    0 Votes
    3 Posts
    347 Views
    gheyretG
    @C4DS Thank you for your help! It works! Cheers~
  • Adding a icon to a treeview field.

    r20 r21 python
    9
    1
    0 Votes
    9 Posts
    2k Views
    P
    Yes, that solved it. Thanks.
  • Commiting Xrefs to the scene

    r21
    3
    0 Votes
    3 Posts
    930 Views
    ManuelM
    hello, the xref will import the material unless it's on Generator mode. You can maybe juste merge de target document with your current document. This work with a simple scene of course but can go really more complicated. def main(): if op is None: raise ValueError("you have to select at least one object") if not op.IsInstanceOf(c4d.Oxref): raise ValueError("selected object must be a xref") # Starts Undo doc.StartUndo() # if the xref is in generator mode, we need to import the material from the target document. if op[c4d.ID_CA_XREF_GENERATOR]: targetDoc = op[c4d.ID_CA_XREF_FILE] c4d.documents.MergeDocument(doc, targetDoc, c4d.SCENEFILTER_MATERIALS | c4d.SCENEFILTER_OBJECTS, None) else: result = c4d.utils.SendModelingCommand(command = c4d.MCOMMAND_CURRENTSTATETOOBJECT, list = [op] , doc=doc) if result: doc.InsertObject(result[0]) doc.AddUndo(c4d.UNDOTYPE_NEW, result[0]) else: raise ValueError("couldn't retrieves the CSTO of the xref") #remove the existing xref doc.AddUndo(c4d.UNDOTYPE_CHANGE, op) op.Remove() doc.EndUndo() c4d.EventAdd() Cheers, Manuel
  • c4dpy.exe and VS Code on Windows?

    python windows r21
    9
    1 Votes
    9 Posts
    3k Views
    M
    @rossc1 Thanks for the inputs, I will for sure add a note in the documentation regarding this issue. Just as a follow-up from the current status, it is confirmed and while there is a behavior change in our side due to the new licensing mechanism, the issue also comes from Visual Studio Code, reading directly raw string to detect a valid interpreter, and fail if something is not formated as it wants. However, we received the official confirmation from Visual Studio Code that they will not change their implementation, and not support custom interpreters. But we are still on it. Regarding your needs for an IDE, you can use Pycharm, the only pre-requires is to rename c4dpy to python, unfortunately, we can't officially recommend doing such things since newer OS (Catalina) prevent user changing content of an application package but @dskeith explained everything cleary in How to use c4dpy for Cinema4D R20 SP1. Cheers, Maxime.
  • SetData() with FindCustomGui / CUSTOMGUI_BITMAPBUTTON

    4
    0 Votes
    4 Posts
    751 Views
    ManuelM
    @lasselauch said in SetData() with FindCustomGui / CUSTOMGUI_BITMAPBUTTON: there's no way to flush a single Element and insert at that position, right? It has to be a group For what I know, correct. Cheers, Manuel
  • Example of ObjectData in Maxon API only?

    c++ r21
    2
    0 Votes
    2 Posts
    574 Views
    S
    Hello, this is not possible. ObjectData is a class of the "classic" API. The Maxon API has no equivalent counterpart. You get an overview over plugin types here: Plugin Types. best wishes, Sebastian
  • A strange error

    3
    0 Votes
    3 Posts
    715 Views
    A
    Ah, ok. Somehow missed that line. I thought defining the legacy framework in the api list was sufficient. Cheers!
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    19 Views
    No one has replied
  • Changing the syntax from "SetString" to "Brackets" type

    r20 python
    9
    0 Votes
    9 Posts
    2k Views
    B
    @Cairyn Thanks for the code. It works as expected. @s_bach Thanks for the reference. Reading it at the moment and the whole base container is much more complicated than I thought it would be.
  • Dragging of Parameters to Viewport

    r20 python
    6
    0 Votes
    6 Posts
    747 Views
    B
    @m_adam Gotcha. Thanks for the confirmation.
  • maxon::LoggerTypes::File()

    r21 c++ sdk
    3
    0 Votes
    3 Posts
    520 Views
    kbarK
    Thanks Manuel.Adding that lambda did the trick. Working fine now.
  • Best Practices for Reporting Errors to Users?

    python
    4
    0 Votes
    4 Posts
    1k Views
    dskeithbuckD
    @s_bach & @zipit - Thank you both for the thoughtful replies! I think I'll opt for the status bar for most user-facing feedback, and console logging for anything bigger. Watching the "What could possibly go wrong?" talk now.
  • Copy shader from one material to another

    3
    0 Votes
    3 Posts
    718 Views
    M
    Thanks Bach! I knew it was going to be something simple like that.
  • Selecting the text in a GeDialog MultiLineEditText

    python
    3
    1 Votes
    3 Posts
    413 Views
    ?
    @m_adam You know so much! Thank you for the example code. You have helped me so much, Maxime, particularly on my current project. I am very grateful!
  • New subdivision algorithm as a plugin

    c++ r21
    3
    0 Votes
    3 Posts
    648 Views
    ManuelM
    hello, since r17, some part have change but other remain the same. I would suggest you to first compile the SDK. For that you will need some steps: use the right version of visual studio or xcode, you can find information here[URL-REMOVED] use our project tool to build the solution files. compile a debug versions and a release version. Those should just compile out of the box with no errors. We have a General Plugin Information Manual After that you have to choose a plugin type that fit your need. For your project as @PluginStudent said, an ObjectData (generator) should be the right one. You will find tons of information in our manual for example about the Generator In our sdk (you compiled in first step) there are some example that will help you. You have to register your plugin with RegisterObjectPlugin where you can specify a flag so the generator will pick the child object as an input. About the slider for your parameter you will find information in this page and that manual Of course if you need help we have this forum where you can find a lot of example, information and help. And you can open a new thread for each question you have, we will try to answer them as fast as possible. Cheers, Manuel. [URL-REMOVED] @maxon: This section contained a non-resolving link which has been removed.
  • Remove observer from ObservableFinished

    4
    0 Votes
    4 Posts
    638 Views
    ManuelM
    i'll set that thread as solved.
  • Hide Layers

    Moved
    2
    0 Votes
    2 Posts
    656 Views
    r_giganteR
    Hi @myosis, thanks for reaching out us. With regard to your question, I'm not aware of any mean to hide a layer from the LayerManager nor any function in Cinema that has been designed to achieve this functionality. Cheers, R
  • Switch layout issue in R21.115

    r21
    7
    0 Votes
    7 Posts
    766 Views
    r_giganteR
    Hi Daniel, the reason why it worked "as expected" on older revision was by pure chance - as much as it was for the Redraw thread. Cheers,
  • Setting UA vertical size

    r21 python r20
    3
    1
    0 Votes
    3 Posts
    369 Views
    P
    Ok, something to think about. Never considered using GeuserArea.LayoutChanged when changing the UA size. I will give it a try.