• DrawHUDText returns a white box instead of a text?

    r20 python
    19
    0 Votes
    19 Posts
    3k Views
    M
    Regarding the Z setting of DrawHUDText (I'm not sure about which one to be honest since there is no Z param for this method) previously the fact that HUD was behind poly object was a limitation regarding how our draw call was done by the viewport, but this is addressed in S22 and its the expected result that a HUD text is not overridden by any other objects but act as a HUD and to be draw in front of everything. Cheers, Maxime.
  • 0 Votes
    3 Posts
    592 Views
    oli_dO
    Merci Maxime ! It's work perfectly !
  • Question about BIT_CONTROLOBJECT

    c++ r21
    10
    0 Votes
    10 Posts
    1k Views
    F
    Thanks for confirming that this approach looks correct! "never use NULL to check your pointers against to or to assign it to your pointers: rather prefer using nullptr cause while the first comes from a define the second is a built-in pointer type." -Thanks, noted! "with regard to the last implementation, why not using:" -Because we only want to check the next object (obj=obj->GetNext()) if "inCache" is true. Otherwise, the function would not only check the object passed to the function and its cache, but also all subsequent objects on the same level of the hierarchy.
  • Exclude Objects from Environment

    3
    0 Votes
    3 Posts
    923 Views
    ManuelM
    Hello, this is a programming forum, if you want to ask question related to "how to use cinema4D" there are more appropriate forum out there. (in different languages) Cheers, Manuel
  • Draw Methods doesn't work on GeUserArea

    r21 python
    5
    0 Votes
    5 Posts
    417 Views
    B
    @zipit Thanks for pointing it out. It now works as expected.
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    1 Views
    No one has replied
  • Transparency channel - Color update

    3
    0 Votes
    3 Posts
    714 Views
    KantroninK
    I found the solution (I already had this problem but I couldn't remember the right code) mat [c4d.MATERIAL_TRANSPARENCY_COLOR] = c4d.Vector (1.0, 1.0, 1.0) #color white mat.Update (True, True)
  • Cinema 4D S22 availability

    Locked
    1
    0 Votes
    1 Posts
    606 Views
    No one has replied
  • BaseDraw known issues in S22

    Locked windows macos c++ python
    1
    1 Votes
    1 Posts
    540 Views
    No one has replied
  • GeUserArea ActivateFading and AdjustColor

    c++ r19 r20 r21
    6
    0 Votes
    6 Posts
    673 Views
    C4DSC
    @PluginStudent Yup ... it's official, I need glasses on top of my glasses. Thanks for pointing it out.
  • animation disregarded after toolplugin

    python r20
    8
    0 Votes
    8 Posts
    1k Views
    D
    But I appreciate that you where trying to make things more streamlined
  • Generators, Materials, Undo's, Oh My!

    python
    12
    0 Votes
    12 Posts
    2k Views
    ManuelM
    the whole thread is the answer anyway
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    7 Views
    No one has replied
  • SendModelingCommand() in R20 and R21

    Moved r20 r21 c++
    8
    0 Votes
    8 Posts
    1k Views
    Danchyg1337D
    @m_adam MODELINGCOMMANDFLAGS::NONE works! Thanks again for helping me out!
  • About plugin ids

    14
    0 Votes
    14 Posts
    3k Views
    r_giganteR
    Hi @tokai , nice to see you on the "new" PluginCafé With regard to your first question: Had to reregister (why?) We simply could not take the credentials straight from the old forum to the new one: to say one to dismiss all the sleeping accounts that grew up over the years but also to be sure that our new users were accepting the GDPR. With regard to your second question: OK, so I enter my label as "org.binaryriot.foo.bar" (because org.binaryriot.* would be my domain space) and I'll end up with "orgbinaryriotfoobar". Why? You don't have to enter it in the Label field of the Plugin ID Generation page. As you can see there are two sections: MAXON API suggested domain space: this is a suggested reverse-domain string that should be used by developers to be sure that the strings used for anything connected to MAXON API developement and for the ModuleId used in the projectdefinition.txt of their plugin is UNIQUE to them. This string is created by looking at the Plugincafé member's information and by default it's created by assembling use.yourdomain.<username> to invite members to use non-conflicting names. But if you go into your profile settings and change the website to www.binaryriot.org you'll see that getting back to the Plugin ID generation page the suggested domain will exactly be org.binaryriot.* Plugin ID generation: this is were you're supposed to enter, as in the old plugincafe, an arbitrary label for the plugin your creating - e.g. My Awesome Object Generator* that on pressing the "Get Plugin ID" will provide you with [image: 1588588698361-c8d5188a-21d7-4aa4-8c4d-710a0ac09bc1-image.png] Best and, once more, welcome back.
  • Incorrect File structure

    3
    0 Votes
    3 Posts
    523 Views
    r_giganteR
    Hi @Sadiik , thanks for reaching out us. As already pointed out by @zipit , please refer to Maxon Support to pose questions not development-related. Best, R
  • Tag Copying an Object Along With iT

    4
    0 Votes
    4 Posts
    500 Views
    D
    @zipit Thank you for the info! @m_magalhaes Sorry about that, Manuel. I'll make sure I do that in the future. Dan
  • Solo Toggle

    Moved
    7
    0 Votes
    7 Posts
    1k Views
    M
    Hi the CallCommand is the correct way to go. And @Cairyn it's in the Snap module because it uses some logic that is already implemented in the snap module such as the enabling state or other internal parameters storage logic. So using the CallCommand make sure everything is setup correctly. Note that in the end the solo things are only setting/clearing the NBIT_EHIDE of objects. Cheers, Maxime.
  • Primitive Sketch

    7
    0 Votes
    7 Posts
    1k Views
    M
    Thank you all for your comments and clarification! With all of this extra time at home, I will be going down the path of Python. I found this in c4d.BaseObject in the documentation: import c4d obj = c4d.BaseObject(c4d.Ocube) # Create new cube obj.SetRelPos(c4d.Vector(20)) # Set position of cube doc.InsertObject(obj) # Insert object in document c4d.EventAdd() # Send global event message Now to convert 2D mouse coordinates to 3D and input those (on click) to the obj.SetRelPos(c4d.Vector(x))... I know this is an x,y,z vector, as this code generates the cube at 20,20,20. And it looks like the code works with centimetres, not inches, even if my units are in inches. I may need to do some conversion down the road...
  • Hide a tab group of a resource-based GeDialog

    r20 r21 c++
    8
    0 Votes
    8 Posts
    1k Views
    M
    Hi Frank sorry for the delay needed for this issue, I get the time to look at it, and this is the thing I should have checked first, but either in a GeDialog with a Layout created in a script, I'm not able to hide a tab. Since you said it was working previously, could you confirm you don't want to hide only the content (in your case the 3 StaticText) but also the tab in the tab entry, isn't? If yes could you provide a code sample because I would say even in a normal case I'm not able to reproduce. import c4d class Dlg(c4d.gui.GeDialog): def CreateLayout(self): if self.TabGroupBegin(10001, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, tabtype=c4d.TAB_TABS): if self.GroupBegin(10010, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, 0, title="First Tab"): self.AddStaticText(10011, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, name="Text01") self.GroupEnd() if self.GroupBegin(10020, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, 0, title="Second Tab"): self.AddStaticText(10021, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, name="Text02") self.GroupEnd() self.GroupEnd() self.AddButton(10030, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, name="Remove First Tab") return True def Command(self, id, msg): if id == 10030: print self.HideElement(10010, True) print self.LayoutChanged(10001) return True def main(): global dlg dlg = Dlg() dlg.Open(c4d.DLG_TYPE_ASYNC) # Execute main() if __name__=='__main__': main() To me, the only way to remove a tab is to flush the complete group master of the TabGroup and re-add tabs except for the one you don't want. Cheers, Maxime.