• Object Generator Plugin With Dynamic Objects

    python
    3
    0 Votes
    3 Posts
    724 Views
    S
    Hello, GetVirtualObjects() is called when the scene is updated. ExecutePasses() updates the scene. So you want to update the scene while the scene is updated. That's bad. Also, you create a virtual cube and add a tag to that cube. But you do not add the cube to any document. So updating any document would have no effect on that cube. Typically, one does not add a simulation tag to a virtual object. Such a tag is typically added to the generator that create the virtual objects e.g. you add a simulation tag to a MoGraph cloner to animate it virtual child objects. best wishes, Sebastian
  • Change Hair preferences with Python API

    python r20
    3
    0 Votes
    3 Posts
    881 Views
    merkvilsonM
    @mikeudin We all have to learn C++
  • Bug: Constantly updating coordinates

    python
    2
    0 Votes
    2 Posts
    505 Views
    M
    Hi @merkvilson, Actually, the issue came from inserting the matrix as a child of the cached spline. The cached spline gets a rotation of X then you apply again the rotation of the generator, which make X+X rotation. In order to avoid that, return one null with both object. def GetVirtualObjects(self, op, hh): if not op.GetDown(): return None gch = op.GetAndCheckHierarchyClone(hh, op.GetDown(), c4d.HIERARCHYCLONEFLAGS_ASIS, False) output = gch["clone"] gchDirty = gch["dirty"] if not gchDirty: return output null = c4d.BaseObject(c4d.Onull) indexView = c4d.BaseObject(1018545) output.InsertUnder(null) indexView.InsertUnder(null) indexView[c4d.ID_MG_MOTIONGENERATOR_MODE] = 0 indexView[c4d.MG_OBJECT_LINK] = output return null If you have any questions, please let me know. Cheers, Maxime
  • Time Limit for MSG_DESCRIPTION_CHECKUPDATE

    python
    5
    0 Votes
    5 Posts
    960 Views
    S
    Hello, the message MSG_DESCRIPTION_USERINTERACTION_END has no data. You could store the old value of the parameter in question and check if that value has changed. best wishes, Sebastian
  • Register Plugin during runtime

    python r20 windows
    3
    0 Votes
    3 Posts
    725 Views
    B
    Ok, thanks Riccardo! I'll register them at the start then.
  • Prevent Editable Command

    python
    2
    0 Votes
    2 Posts
    528 Views
    r_giganteR
    Hi merkvilson, thanks for reaching us. With regard to your question, current Cinema 4D API doesn't deliver the desired behavior. Best, Riccardo
  • MSG_UPDATE is sent after pressing button in Material Data

    c++ r20
    3
    0 Votes
    3 Posts
    783 Views
    P
    Hello. Thank you very much for your clarification on this. I have a button in MaterialData that saves the material in a specific format in the disk. I doesn't change anything in the material but the MSG_UPDATE is sent anyway. So, since I don't want to run the MSG_UPDATE handler, I have to set a flag to true in order to skip it. Thank you.
  • Global to Local pos

    python
    9
    0 Votes
    9 Posts
    2k Views
    Passion3DP
    Thank you @mp5gosu This is exactly what I was looking for. In fact, C4D does the calculations itself. I thought I had to do the matrix multiplication, and I didn't understand how to do it. Finally it's very simple
  • Bitmap Button

    python
    14
    1
    0 Votes
    14 Posts
    3k Views
    merkvilsonM
    This goes off topic so I'll make a new post. The main issue is already solved, thanks to Sebastian!
  • Enable/Disable drop down (LONG) elements

    r20 c++ sdk
    3
    0 Votes
    3 Posts
    622 Views
    O
    Hi @a_block Thank you for your answer.
  • Setting window

    python
    7
    0 Votes
    7 Posts
    1k Views
    Passion3DP
    Thanks @Andreas I watched Py-LiquidPainter, but I did not really understand That said, for the parameters, I understood how to do
  • Changing hierarchy draw order / priority

    c++ r20
    4
    0 Votes
    4 Posts
    750 Views
    M
    Hi @rsodre, thanks for your feedback, and glad you solved your issue. Regarding the DisplayControl I let you read this topic: SceneHook and DisplayControl. Manuals, for scenehooks is definitely something we consider. Cheers, Maxime.
  • Issues using GL Vertex Buffers

    r20 c++
    5
    1
    0 Votes
    5 Posts
    1k Views
    a_blockA
    Hi Roger, I'm glad you were able to identify the issue and made some progress. And thanks for taking the time to share your findings with the forum. Much appreciated! Cheers, Andreas
  • Compatibility between R20 versions

    c++ windows macos r20
    2
    0 Votes
    2 Posts
    480 Views
    M
    Hi Franck, backward and upward compatibility for the current major release is something we really consider and try our best to not break. Unfortunately, for R20 plugins, they need to be recompiled to make them compatible with R20 SP1. See C++ Index or either in the R20.026 changelog. You may encounter an issue with plugin compiled with R20.011 (see the R20.026 changelog) since you may override maxon dedicated IDs which will break for sure some C4D/plugin stuff. Cheers, Maxime.
  • CUSTOMGUI_TREEVIEW in GetDDescription()

    c++ r20
    4
    0 Votes
    4 Posts
    999 Views
    K
    Sebastian, Added tags. Not really a question but a request. I thought that I had read about people adding a TreeView to the AM using GetDDescription() but maybe it wasn't as well fleshed out as they (or I) suspected. I will look into the custom data type and GUI for it. Please mark as Solved. Thanks! Robert
  • Optimize Collision Detection

    c++ r20 sdk
    4
    0 Votes
    4 Posts
    1k Views
    J
    Hello, Thanks for the responses. I thought that this might be the case and just wanted to clarify it before moving forward. John Thomas
  • PluginID / ModuleID

    7
    0 Votes
    7 Posts
    1k Views
    B
    Thanks Riccardo, I will look into that.
  • Get PluginID from within CommandData plugin

    python r20 windows
    4
    0 Votes
    4 Posts
    976 Views
    B
    I am trying to register multiple plugins that are instances of the same class, but do slightly different stuff (in this case construct different menus). I am getting some external data that I would like to put in a dictionary with the plugin ID as keys. I could then get the correct data set for each plugin by comparing the pluginID from e.g. within execute with the pluginIDs in the dictionary. But for that I would need a way to retrieve the pluginID of the class instance whose execute function was called. Edit: I figured out a way. I can pass the pluginID when initializing the plugin in the register function and save it as a class member in __init__
  • Python: Selection tag

    python
    5
    0 Votes
    5 Posts
    1k Views
    a_blockA
    Hi, while I'm glad, this was already solved, I just wanted to add a link to an old thread in the archive, which might be helpful for future readers due the contained code snippet: Select polygons from Selection Tag. Cheers, Andreas
  • Parameters for commandData Plugin

    python r20 windows
    3
    0 Votes
    3 Posts
    596 Views
    B
    Hi Sebastian! Thanks for your answer. I was looking for something a little more flexible than registering multiple plugins, but I guess GetSubContainer will have to do