• Toggle knife cut planes

    Moved r21 python
    4
    0 Votes
    4 Posts
    675 Views
    ManuelM
    i forgot to mention: For your next threads, please help us keeping things organised and clean. I know it's not your priority but it really simplify our work here. Q&A New Functionality. How to Post Questions especially the tagging part. I've added the tags and marked this thread as a question so when you considered it as solved, please change the state Cheers, Manuel
  • Trouble with GetAndCheckHierarchyClone

    8
    2
    0 Votes
    8 Posts
    1k Views
    matniedobaM
    Amazing! Thank you Manuel! It works with multiple objects, Cloners etc. Without your help I would not make it
  • How to find back a specific BaseTag assigned to a BaseObject

    r19 r20 r21 c++
    6
    0 Votes
    6 Posts
    657 Views
    r_giganteR
    Hi @C4DS , maybe I wasn't enough clear. you end up with a single merged object, which has 2 selection tags, and both still have the specific name ... but none have the added unique ID. Surely you start to think something is really wrong. Actually you end up in a new mesh with new selection tags which beside having the data copied from the two source selection tags, they are NEW and hence the UniqueID is not supposed to be kept. The names are kept for convenience but I don't see any reason to have also the UniqueID being kept considering that - in the end - they are indeed new instances and have nothing to do with the source selection tags. Cheers, R
  • Merge Tags

    r19 r20 r21 c++
    9
    0 Votes
    9 Posts
    1k Views
    r_giganteR
    Hi @C4DS, thanks for following up. One note that it's worthy to share: the outcomes of this thread are valid as long as you need to stick to Classic API. In Maxon API (R20 and higher) you can make very good use of the CustomDataTag (see also GitHub example) whose data merging is managed directly by the modeling kernel. Last but not least, as usual, if the discussion has come to an end, please don't forget to mark the question as SOLVED. Cheers, R
  • 0 Votes
    4 Posts
    910 Views
    ManuelM
    hi, thanks a lot for sharing your code Don't forget to change the state of this thread to solved. (if it is) cheers, Manuel
  • detect the selection of an object

    Moved python
    13
    0 Votes
    13 Posts
    3k Views
    Passion3DP
    @C4DS Although a solution has not been given (as I wish to do), explanations have been provided. I have therefore considered it resolved. For IRL reasons, I could not do so. I will be able to get back to it, and if I find THE solution, I will post it
  • Drag & Drop to Reorder in GUI

    python
    14
    0 Votes
    14 Posts
    2k Views
    ?
    @m_adam Terrific work, Maxime! This is very helpful to me and I'm sure the many others who want to learn about dragging in Cinema 4D's UI. Excellent job!
  • This topic is deleted!

    7
    1
    0 Votes
    7 Posts
    122 Views
  • AddEditNumberArrows Stops Working on Keyed objects

    r21 python
    12
    0 Votes
    12 Posts
    2k Views
    ManuelM
    hi, no trouble at all, you are here to ask questions, we are here to answer. Cheers, Manuel.
  • R21 Notarization Testing on Mac Catalina

    r21 c++ macos
    3
    0 Votes
    3 Posts
    357 Views
    D
    Thank you! That does it exactly!
  • Keyframing UserData with Value Tracks

    python sdk
    5
    3
    0 Votes
    5 Posts
    595 Views
    ?
    @m_adam You are a genius! Thank you, Maxime
  • Welding point for a polygon

    2
    0 Votes
    2 Posts
    500 Views
    r_giganteR
    Hi Kantronin, thanks for reaching out us and welcome to PluginCafé. To make Cinema 4D programatically executing modeling commands, you can make use of SendModelingCommand which properly satisfy your scope. Aside from the example shown in the documentation you can also have a look at this post from @maxime and this other post about Optimize command. Last but not least be aware that the modeling command settings are specified in the BaseContainer passed to the SendModelingCommand and whose parameters can be found in the MCOMMAND page. Finally please remind to use Tags and Ask as a question for any future support entries
  • BaseShader global vs local filename

    c++ r19 r20 r21
    6
    0 Votes
    6 Posts
    662 Views
    kbarK
    @C4DS That was the most normal happy smiling glad you solved your issue emoji I could find. Any of the others could definitely have been interpreted in many ways. Hope that one came across alright
  • Trigger on BaseShader change

    r19 r20 r21 c++
    4
    0 Votes
    4 Posts
    559 Views
    C4DSC
    @m_magalhaes Thanks for reminding me of the GeDialog::CoreMessage. I totally overlooked that.
  • Changing font size.

    python r20
    4
    0 Votes
    4 Posts
    572 Views
    P
    Great example, thank you. -Pim
  • FieldList.GetCount Bug

    Moved r21 r20 r19 python
    2
    0 Votes
    2 Posts
    586 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
    348 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
    941 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.