• Priority: PriorityData and PriorityList

    5
    0 Votes
    5 Posts
    1k Views
    ymoonY
    @rownn said in Priority: PriorityData and PriorityList: Hi m_adam, thank you very much for the enlightenment on priorities, it helps alot, and sorry for my late reply. Greetings and thx again rownn PS: I´ll keep the pointed way of posting in mind. Hello @rownn This is another question. I am writing here because there is no way to contact you. You are the developer of "Rounded Corner (c4dnetwork)". Would you make it run on R25?
  • Call plugin by python script with arguments

    r25 python
    3
    0 Votes
    3 Posts
    601 Views
    kosmos3dK
    @m_magalhaes Thank you very much for your reply. Target was to let user run my plugin in pyton script without open its gui, but set options by some command. Meanwhile I came to solution by implementing ExecuteOptionID method. In this way user first sets options in gui and after can CallCommand anywhere he wants in scripts. Again thank you for your time.
  • Possible to send KeyPress Commands to the Commandline async

    python r21
    3
    0 Votes
    3 Posts
    473 Views
    FSSF
    Thank you for the swift reply though
  • Accessing the World Grid Options in R25+?

    r25 python
    3
    1
    0 Votes
    3 Posts
    654 Views
    ManuelM
    hi, i confirm this is the right way of doing it. Be aware that the legacy mode has been removed now from the UI but is still accessible from python. If you define the legacy mode, the user will not be able to get back to normal mode. Cheers, Manuel
  • How to add a multi _line string UserData

    python s26
    3
    0 Votes
    3 Posts
    387 Views
    chuanzhenC
    @m_adam Thanks for help!
  • MoData's GetFalloffs() returns only 0 while rendering

    python r23
    7
    1
    0 Votes
    7 Posts
    1k Views
    CairynC
    Aaaand of course I forgot a crucial point: After modifying the clone positions in marr, you need to write them back to the MoData, but the last parameter apply_strength must be False: moData.SetArray(c4d.MODATA_MATRIX, marr, False) This is at first glance unintuitive since we want the strength to be present but when looking closely, you can fathom that the function will internally multiply with the falloff strength that it calculated itself, and that probably comes from GetFalloffs() again, so it's 0 and nothing is won. We do not want SetArray to do that at all, because we have already applied the falloffs that we calculated ourselves, and SetArray should keep its buggy hands off it!
  • GeDialog Update

    r20 c++ sdk
    4
    0 Votes
    4 Posts
    910 Views
    fwilleke80F
    I would recommend against changing anything in the scene from within GetVirtualObjects(). Rather do it in Execute(). Cheers, Frank
  • List all attributes in C4D related to Redshift?

    r21 r23 python
    2
    0 Votes
    2 Posts
    302 Views
    B
    Kindly ignore. Adrian from Redshift forum answered it. You can look into the rslight.h from Plugins\C4D\R26\Redshift\res\description, all the parms are there
  • UV Peeler - accessible?

    python
    3
    0 Votes
    3 Posts
    503 Views
    .
    HI - Thanks for the response! I'm going to go with the sendModelingCommand method. I never would have thought to put the CallCommand value in there. This is really going to help me finish this script. I appreciate your help. thank you, .del
  • ShowInFinder function in Cinema 4D S26

    python
    7
    0 Votes
    7 Posts
    977 Views
    ManuelM
    @a_block said in ShowInFinder function in Cinema 4D S26: I tend to use GeExecuteFile() to open directories in Explorer/Finder. This seems to work for me regardless of OS. Are there any advantages of using ShowInFinder() instead? Or any disadvantages of using GeExecuteFile(). Absolutely None, except that the name of the function makes more sense if you just want to show the directory. Thanks for pointing that out, i overlooked that line. Bool ShowInFinder(const Filename& path, Bool open) { if (open) return GeExecuteFile(path); Cheers, Manuel
  • How to add Button User Data with a Button GUI in python script?

    s24 python
    3
    0 Votes
    3 Posts
    1k Views
    eZioPanE
    It works like a charm! Thanks a lot!
  • Python SDK Examples: Tiny request

    python s26
    1
    0 Votes
    1 Posts
    304 Views
    No one has replied
  • Collapse/Fold groups by default in nodegraph UI

    s24 c++
    4
    1
    0 Votes
    4 Posts
    938 Views
    ManuelM
    This is already fixed now, but i can't say when the update will be available to public.
  • Cinema 4D R23 / macOS - pip install broken

    python r23 macos
    7
    0 Votes
    7 Posts
    2k Views
    a_blockA
    Hi, sorry, for bumping this thread. With the new S26 I have again problems installing pip in C4D's python on MacOS (Big Sur, x86). Funnily so, it works in c4dpy, but then the modules are only available in c4dpy, not inside C4D (probably expected). But when trying to do the same with C4D's python, regardless, if I try to use get-pip.py or .../python --ensure-pip -default-pip I end up with "Defaulting to user installation because normal site-packages is not writeable" as the main error and then in the following something along the lines "User base directory is not specified". The latter sounds a bit like, I could maybe simply specify a user base directory somehow? In R25 for example it worked nicely. Sorry, if this a stupid question. Pretty sure, I overlooked something in the docs somewhere. Cheers and thanks for any help in advance, Andreas
  • Create custom menu category for nodes?

    s24 c++
    2
    1
    0 Votes
    2 Posts
    644 Views
    ManuelM
    Hi, Categories are also assets. You can use the CategoryAssetInterface to create a category asset. and you can "parent" this category to another category using SetAssetCategory. maxon::Result<maxon::AssetDescription> CreateCategoryAsset( const maxon::AssetRepositoryRef& repository, const maxon::String& name, const maxon::Id& category) { iferr_scope; if (name.IsEmpty()) return maxon::IllegalArgumentError(MAXON_SOURCE_LOCATION, "Invalid category name."_s); // Create and store a new category asset. maxon::CategoryAsset categoryAsset = maxon::CategoryAssetInterface::Create() iferr_return; maxon::Id categoryId = maxon::AssetInterface::MakeUuid("category", false) iferr_return; maxon::AssetDescription assetDescription = repository.StoreAsset( categoryId, categoryAsset) iferr_return; // Set the category name. maxon::LanguageRef language = maxon::Resource::GetCurrentLanguage(); assetDescription.StoreMetaString(maxon::OBJECT::BASE::NAME, name, language) iferr_return; // Set the category of the asset when the category is not the empty id. if (!category.IsEmpty()) { maxon::CategoryAssetInterface::SetAssetCategory(assetDescription, category) iferr_return; } ApplicationOutput("Created category asset with the id: '@'", assetDescription.GetId()); return assetDescription; } Cheers, Manuel
  • How to get Redshift material assignments

    python
    4
    1
    0 Votes
    4 Posts
    816 Views
    ManuelM
    hi, I got some feedback from the devs. The function ObjectFromIndex have a parameter to define the document. That mean the list can contain material tags from a different document. The "problem" is that ObjectFromIndex return the number of tags in the list, and not only the number of tags in the list that are present in the current document. Old Redshift materials have a mechanism to optimized and avoid rendering the preview thumbnail on the attribut manager when it is not necessary. That mechanism renders the material on a different document. That is why the entry on the list is "None" because the tag is not present in the document passed to the function ObjectFromIndex. Cheers, Manuel
  • Add values for enum data type (node graph)

    c++ r25
    9
    0 Votes
    9 Posts
    1k Views
    O
    Hello, Thanks for the code. Regarding the second one, I have tried it and also mentioned in the first message that the data does not get added and the array size still stays 0. I had forgotten to put iferr_return and now with your example, I am getting a critical error when trying to append those data. RefMemberType<S> CritStop() { CriticalOutput(static_cast<const typename S::ReferenceClass*>(this)->ToString()); return this->PrivateGetRefMember(); }
  • Unique ID for maxon::nodes::Node

    c++ s24
    3
    1
    0 Votes
    3 Posts
    618 Views
    O
    Hello, When translating the nodes in our system we need each of them to have a unique ID or name. That's how we identify each node, e.g if I have two or more texture nodes (with the same ID) used on different materials and assigned to different objects, it would only show one texture rendered to all objects as all textures are assigned one similar ID. For now, I solved this by finding a uniqueID for the corresponding material and concatenating it with the node's ID. As for the error message it only says Error and nothing more. I will send the text via email. Thank you.
  • 0 Votes
    3 Posts
    640 Views
    W
    Hi! One more question, why does it process the command gui.MessageDialog('Hide Object[s]') first, is it pretty much last in the order of commands?? How do I have to install the command so that the program runs according to the order in which it was entered? Thank you very much!
  • Joint Orientation Math Challenge

    r21 python
    9
    2
    0 Votes
    9 Posts
    2k Views
    ManuelM
    hi, ho, sorry, so yes that is the correct way to combine matrix. ps : I marked my thread as the right answer. Cheers, Manuel