• Custom GUI button via resource description

    c++ r20 r21
    3
    0 Votes
    3 Posts
    643 Views
    C4DSC
    @PluginStudent You mentioning the BITMAPBUTTON and with the help of ExampleSculptGrabBrush::GetDDescription from the cinemasdk I was able to make it work. Thanks.
  • User Area and ScrollArea()

    r20 python
    4
    0 Votes
    4 Posts
    551 Views
    P
    Yes, I use the auto way. I thought that using ScrollArea() it would only display that part (no need to draw the other parts). So, fill the virtual UA once and then display parts of it using ScrollArea(). But if "you still need to draw completely the GeUserArea with all the DrawBitmap", there will be no speed benefit. I will try it under R21 and will read "Profiling Python Plugins". Thank you, Pim [image: 1586507628642-24fbc034-a80c-42f0-acb3-77deffeadaec-image.png]
  • Cannot write specific values to UVWTag

    r20 r21 c++ python
    6
    0 Votes
    6 Posts
    672 Views
    r_giganteR
    It's actually due to a lower number of bits used to store the floating value.
  • Custom FIELDLAYER_CHANNELFLAG

    r20 c++ classic api maxon api r21
    7
    1
    1 Votes
    7 Posts
    1k Views
    mikeudinM
    @m_adam @zipit @PluginStudent OK, thank you guys!
  • Set Track Data Method?

    r21 python
    4
    0 Votes
    4 Posts
    391 Views
    B
    @zipit @m_adam Apologies for the late response. Thank you for the confirmation both. I will close this for now.
  • 0 Votes
    15 Posts
    1k Views
    M
    Looking at the doc in R19: [image: 1586334998271-5fdf5fb0-1327-4589-b6b6-d68af8869c11-image.png] [image: 1586334983049-821d97fa-e103-4cca-84b1-85f0f50304f0-image.png] So I'm afraid there is no simple solution that will work on each version maxon::String being introduced in R20, you will need to adapt your code. Cheers, Maxime.
  • Need Help Debugging EXC_BAD_ACCESS error during render

    r21 macos c++
    8
    1
    0 Votes
    8 Posts
    984 Views
    r_giganteR
    Hi @JuicyJuggles , I apologize for coming late here but luckly you've been already provided in the meanwhile of some good guidance from @PluginStudent and @zipit . Rest assured that the API documentation is, by far, the best place where to look for answers although I can see that, due to huge number of covered topics, it could take time to get used to browse it effectively. Last but not least, if the issue is addressed, don't forget to mark the right post as correct answer or if it's not possible to identify a specific one, to set the whole topic as Solved Cheers, Riccardo
  • Avoid: IsActive()

    python classic api
    10
    0 Votes
    10 Posts
    1k Views
    lasselauchL
    Thanks @m_adam for the insights! Works like a charm!! Cheers, Lasse
  • Python Generator - Linking ports to xpresso node

    14
    0 Votes
    14 Posts
    3k Views
    M
    Hi sorry to jump on this topic so late, and I agree that if you could do what you want in a Python Scripting tag its preferred, the mains issue with xpresso is that its a whole system that assumes certain things and was really not designed to be embedded within a generator. So the issue about the AddNode, not working is because user data things, as an object xpresso node, is something dynamic (they will change according to the linked object) and I found no way except via the UI (by asking a UI Redraw or a whole scene execution) to refresh these data so the GvPort can be created. But since you are in a Generator you don't have access to the GUI since all GUI operation should be done in the Main thread see Threading Information. Cheers, Maxime.
  • Change Color of Hyperlink Customgui

    3
    0 Votes
    3 Posts
    620 Views
    lasselauchL
    Okay! Thanks for the info @m_adam ! Oh, and on macOS it is General - Text - Flag Edit Saved [image: 1586176239242-bildschirmfoto-2020-04-06-um-14.28.13.png] ¯_(ツ)_/¯ Cheers, Lasse
  • 0 Votes
    3 Posts
    626 Views
    M
    While the method provided by Zipit Is fine, it is not 100% reliable. here how to achieve, unfortunately, the ELEMENT_Count value is hardcoded and no way for you to retrieve it. constraintTag = doc.GetActiveTag() targetCount = constraintTag[c4d.ID_CA_CONSTRAINT_TAG_PARENT_TARGET_COUNT] for i in range(targetCount): CONSTRAINT_ELEMENT = 10 # This is hardcoded targetId = c4d.ID_CA_CONSTRAINT_TAG_PARENT_TARGET_COUNT + i * CONSTRAINT_ELEMENT + 1 print(constraintTag[targetId]) Cheers, Maxime.
  • VoxelizationInterface

    r20 sdk c++
    10
    0 Votes
    10 Posts
    1k Views
    N
    Thank you Manuel !! this is exactly what I was looking for
  • Python Generator - Adding Shaders to Deformer Objects

    python
    11
    0 Votes
    11 Posts
    2k Views
    M
    @mp5gosu Ah brilliant. Thanks for that! And apologies for being such a noob at this.
  • First time compiling of plugin with R21

    r21 c++ sdk
    5
    3
    0 Votes
    5 Posts
    895 Views
    P
    Yes, I must read the manuals more throroughly (RTFMS). Excuses: it is so much and I just wanted to compiler R20 in R21. But you are correct. BUT, adding iferr to the code worked, AND also solved the other issue. Everything is working now! Thanks!
  • ParallelFor with race conditions

    c++ windows r21 r20 maxon api
    4
    0 Votes
    4 Posts
    669 Views
    ManuelM
    hi, that really depends on what you are doing. There's different type of lock for different cases and scenario. That also depends on what you care first, speed or memory. but the manual is pretty easy to understand, just pass the lock as a reference to your lambda function and you should be good to go. Cheers, Manuel
  • How about updating ResEdit..?

    2
    0 Votes
    2 Posts
    575 Views
    M
    Hi @lasselauch there is actually no plan to update ResEdit. There is the R20 Resource Editor but for the moment it's only for Node stuff. Cheers, Maxime.
  • Modifying timeline marker's attributes

    5
    0 Votes
    5 Posts
    1k Views
    H
    Thanks for the drag'n'drop tip Maxime, that feature is extremely useful!
  • Is example ExecutePythonScript() also avialable in R19

    r19 c++ python sdk
    4
    0 Votes
    4 Posts
    497 Views
    M
    Hi Pim sorry for the late reply, this is possible by using the lib_py.h (typically this is somehow what we used before R20 to expose feature in python, but it's way elder, not everything is possible to do, you have less control than with the new python.framework, and the lib_py.h is not maintained (so don't expect any enhancement in it) Only the python.framework will be enhanced. // Init Python GePython pythonScope; pythonScope.Init(); // Acquiere the GIL GePythonGIL gil_state; pythonScope.SetNode("doc", doc); // If doc->GetFirstObject() is nullptr, op variable will not be declared in the python scope, and you cant add a None. pythonScope.SetNode("op", doc->GetFirstObject()); maxon::String pythonCode = "\ import c4d\n\ \n\ def main():\n\ print(doc, op)\n\ \n\ if __name__ == '__main__' :\n\ main()\n\ "_s; StopAllThreads(); pythonScope.Run(pythonCode); Cheers, Maxime.
  • Using Python Node to Traverse Deep Hierarchy... fail

    python
    5
    0 Votes
    5 Posts
    925 Views
    N
    Ah, you probably expect the toroids to also rotate around their own axis exactly. Thanks
  • Get Decimal/Floating Values On Current Frames Divided by FPS?

    r21 python
    7
    0 Votes
    7 Posts
    786 Views
    ManuelM
    @mp5gosu thanks for the addition. Cheers, Manuel