• 0 Votes
    7 Posts
    4k Views
    A
    Hi Riccardo, I think the issue is solved because there is no any issue. Some not good methods of software distribution just confused us. Btw, what benefits different parameters of SetPluginPriority() give to us? For example the xdll has several plugins like materials, shader, tags and renderer. Even some icons with plugin ids. What priority is better to use in this case? I see https://developers.maxon.net/docs/cpp/2023_2/page_manual_module_functions.html For example, what is C4DPL_INIT_PRIORITY_ADVANCEDRENDER: Does it give higher thread priority during some PV rendering task? Or does it just load the plugin before other renderers and give the chance to lock system resources before others?
  • 0 Votes
    3 Posts
    834 Views
    CairynC
    @m_adam Oops. Okay, GeRayCollider works only for polygon objects, as does GetPixelInfoPolygon. The idea was to provide a new selection method for arbitrary objects by just checking all hits of a scattered PickObject within a radius, and then select the nearest hit. For that, I need to be able to hit splines and parametric objects as well. Okay, I guess I can still do that in C++ then, thanks.
  • One to rule them all...

    Moved General Talk
    3
    0 Votes
    3 Posts
    1k Views
    M
    HI Andreas, no worries, this question was not exclusively targeted at Maxon, the opposite is the case. I was hoping for some information by other users here, like @kbar or even @m_adam (back in the days Maxime was not associated with Maxon. ;)) Meanwhile, I'm going to build a toolchain and see what works for me. I'll report back here if I have something to show. That may help someone else.
  • 0 Votes
    3 Posts
    760 Views
    B
    Hi Sebastian! Turns out my issues are two seperate, but equally self inflicted problems Inserting and activating works as expected, I am blocking the update with some custom UI stuff so I will have to find a solution for that. Calling EventAdd() in the closeEvent of the UI doesn't do anything. Is there another way to force Cinema to update everything? Killing the document not only doesn't update, but actually crashes Cinema, because I am trying to kill the document from within a callback that is reacting to MSG_DOCUMENTINFO_TYPE_LOAD. I am doing some more involved environment management and sometimes I have to close a document after loading. I have a workaround that will have to do for now. In the callback I change the document path to a string I can then look for in EVMSG_CHANGE. When I detect my string there, I can then kill the document. It's not very elegant and if anyone has a better solution I would be very happy, but otherwise consider this problem solved
  • Render from picture viewer programatically

    Cinema 4D SDK r20 python windows
    2
    0 Votes
    2 Posts
    635 Views
    r_giganteR
    Hi mafster, thanks for reaching out us. With regard to accessing images being available in the Picture Viewer, I'm sorry to confirm that there is no PictureViewer-related classes/functions exposed in the API. This is valid for both C++ and Python API. Best, Riccardo
  • 0 Votes
    4 Posts
    2k Views
    a_blockA
    Hi, good we got you going It is not wrong per se to use multiple plugin directories. Actually Cinema 4D R20 was specifically designed to have multiple ones. You just need to make sure not to have duplicate plugins in these directories. Cheers, Andreas
  • Registering tokens in python

    Cinema 4D SDK windows python r20
    4
    0 Votes
    4 Posts
    949 Views
    r_giganteR
    Hi line6dude, thanks for following up. With regard to registering Tokens in c++, given that it's not a complex task, requires at least a minimum background of C++, familiarity with Xcode (or VisualStudio) and understanding of our Cinema 4D tool-chain. If you feel comfortable in becoming familiar with such concepts, please open a new thread to tackle the argument. Best, Riccardo
  • 0 Votes
    9 Posts
    3k Views
    M
    This issue is now fixed in R21. Cheers, Maxime.
  • 0 Votes
    3 Posts
    554 Views
    O
    Hello @r_gigante Thank you for your time and answer. I will try the other way then. Best, Ogers
  • EditText: intercept/discard keystrokes

    Cinema 4D SDK python r20 windows
    7
    0 Votes
    7 Posts
    2k Views
    M
    Thank you Maxime. My current solution looks pretty similar to yours and works . Implementing an own gadget is of course out of scope - I don't even get paid for that.
  • Add tooltip to subcommand

    Cinema 4D SDK python windows r20
    3
    0 Votes
    3 Posts
    800 Views
    B
    Thanks for confirming my suspicion
  • Open GeDialog on second screen

    Cinema 4D SDK python windows r20
    3
    0 Votes
    3 Posts
    824 Views
    B
    Ok, thanks!
  • Drawing into Rendering

    Cinema 4D SDK r20 python windows
    7
    0 Votes
    7 Posts
    2k Views
    r_giganteR
    Hi @rownn, thanks for having provided further details. Assuming that you're aware of the limitation in terms of appearance that you might face by using the functionalities delivered by GeClipMap, the only way to go to access a bitmap which is supposed to contain a rendering of the scene in Python is to execute the rendering invoking the BaseDocument::RenderDocument() and pass the BaseBitmap you intend to manipulate via the GeClipMap. Best, Riccardo
  • GetClone() with Fields

    Cinema 4D SDK r20 python windows
    4
    3
    0 Votes
    4 Posts
    1k Views
    GianniG
    Just tried now… It seems to work perfectly! Thank you! I don't want to boring you, but, please, don't disable this super feature in python. Instead you could update the documentation specifying well how to use it.
  • Lots of "unresolved external symbol" errors

    Cinema 4D SDK c++ windows r20
    9
    0 Votes
    9 Posts
    2k Views
    a_blockA
    Hi, we are glad @rui_mac you were able to solve your problem. I'd just like to quickly recap to make this also clear for future readers. Visual Studio has two "concepts" two organize your development work. Projects, which is basically a set of files plus a bunch of configuration options and instructions for the tool chain (compiler, linker,...) to build a binary (in our case here always a plugin library). Solutions, which are collections of above projects plus some additional global configuration data and more important, information on dependencies of the contained projects. Now, our project tool can and does create both projects (for your plugins and for our frameworks) and a solution containing all of the above (actual workflow described in our docs under the links provided by Riccardo earlier on in this thread). So when you open such a solution and build your plugin project, also the frameworks it's depending on should be built.So, this is the way to go (project tool -> solution and projects -> open solution in Visual Studio). But if you instead open just one of the generated projects directly, Visual Studio will implicitly generate a solution for you, but it still lacks the framework projects and the build of the opened project will fail (error: unresolved symbols, i.e. function or class names normally provided by our frameworks and used in the plugins code can not be resolved). I hope this makes it a bit easier to understand. Cheers, Andreas
  • FormatStatement and maxon DataTypes...

    Cinema 4D SDK r20 c++ windows
    5
    0 Votes
    5 Posts
    1k Views
    M
    Ah, thank you. I didn't take a look at vec.h. Meanwhile, I already wrote a conversion unit to handle all sorts of formatting. Thought, it was possible to modify the intern string conversions somehow. But nevermind, all works pretty well. Cheers, Robert
  • Register Plugin during runtime

    Cinema 4D SDK python r20 windows
    3
    0 Votes
    3 Posts
    797 Views
    B
    Ok, thanks Riccardo! I'll register them at the start then.
  • Compatibility between R20 versions

    Cinema 4D SDK c++ windows macos r20
    2
    0 Votes
    2 Posts
    515 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.
  • Get PluginID from within CommandData plugin

    Cinema 4D SDK python r20 windows
    4
    0 Votes
    4 Posts
    1k 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__
  • Parameters for commandData Plugin

    Cinema 4D SDK python r20 windows
    3
    0 Votes
    3 Posts
    665 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