The Maxon SDK Team is currently short staffed due to the winter holidays. No forum support is being provided between 15/12/2025 and 5/1/2026. For details see Maxon SDK 2025 Winter Holidays.
  • NBIT xHIDE visibility flags - THIDE deprecated?

    c++ python r21
    7
    0 Votes
    7 Posts
    724 Views
    CairynC
    Thanks, it's good to know that there are internal functionalities actually using these flags!
  • 0 Votes
    5 Posts
    855 Views
    P
    Thank you so much! This helps me a lot with the understanding of what was going on. I am digging back into my work on this today and will follow up with your advice.
  • 0 Votes
    6 Posts
    1k Views
    mfersaouiM
    @zipit Hi, Thank you so much.
  • List of all Cinema 4D IDs?

    r21 sdk python
    5
    0 Votes
    5 Posts
    676 Views
    ?
    @m_adam Thank you for the clarification and the code example, Maxime!
  • GetSplinePointSegment Offset

    r20 c++ sdk
    8
    0 Votes
    8 Posts
    1k Views
    r_giganteR
    Hi @JohnThomas thanks for the follow-up. I see the point, but when you're dealing with uniform splines you've also to consider the number of intermediate points you're using to approximate the natural spline. With a natural parametrization even with a low number of points the vertexes position returned from SplineHelp::GetPosition() are accurate, whilst with a uniform parametrization you get higher accuracy as long as you increase the number of points. See the data below, where first coordinate is the position returned by the SplineHelp::GetPosition and the second coordinate is returned by quering the points vector PointsObject::GetPointR() Natural_4 [4, 2123.461, BEZIER, 1] 0 [0/0], 0.000[0.000] --> (200.000,0.000,0.000) -- (200.000,0.000,0.000) 1 [17/0], 0.250[530.865] --> (0.000,700.000,0.000) -- (0.000,700.000,0.000) 2 [34/0], 0.500[1061.731] --> (-200.000,0.000,0.000) -- (-200.000,0.000,0.000) 3 [51/0], 0.750[1592.596] --> (0.000,-200.000,0.000) -- (0.000,-200.000,0.000) Uniform_4 [4, 2107.332, BEZIER, 2] 0 [0/0], 0.000[0.000] --> (200.000,0.000,0.000) -- (200.000,0.000,0.000) 1 [7/0], 0.350[737.566] --> (4.370,699.695,0.000) --> (0.000,700.000,0.000) 2 [14/0], 0.700[1475.132] --> (-199.849,8.692,0.000) -- (-200.000,0.000,0.000) 3 [17/0], 0.850[1791.232] --> (-4.394,-199.953,0.000) -- (0.000,-200.000,0.000) Uniform_16 [4, 2107.332, BEZIER, 2] 0 [0/0], 0.000[0.000] --> (200.000,0.000,0.000) -- (200.000,0.000,0.000) 1 [7/0], 0.350[737.566] --> (4.370,699.695,0.000) -- (0.000,700.000,0.000) 2 [14/0], 0.700[1475.132] --> (-199.849,8.692,0.000) -- (-200.000,0.000,0.000) 3 [17/0], 0.850[1791.232] --> (-4.394,-199.953,0.000) -- (0.000,-200.000,0.000) Uniform_128 [4, 2124.555, BEZIER, 2] 0 [0/0], 0.000[0.000] --> (200.000,0.000,0.000) -- (200.000,0.000,0.000) 1 [182/0], 0.353[749.359] --> (-1.373,699.970,0.000) -- (0.000,700.000,0.000) 2 [363/0], 0.703[1494.600] --> (-199.996,1.279,0.000) -- (-200.000,0.000,0.000) 3 [440/0], 0.853[1811.636] --> (1.380,-199.995,0.000) -- (0.000,-200.000,0.000) If no further help is needed please don't forget to set the thread as Solved. Cheers, R
  • I cannot get multiple polygons from GetNearestPolygon

    r20 c++
    6
    0 Votes
    6 Posts
    635 Views
    ManuelM
    hello, I've lookied into the live selection tool and internally it's using GetPixelInfoPolygon, or the equivalent for point and edges. You also have Get<xxx>PixelBuffer where <xxx> is Point, Edge or Polygon. That return the internal buffer constructed inside the Init function of the ViewportSelect Class. pixelBuffer[ width*y + x] will give you the right pixel on that buffer. Sorry to have missed those functions. Cheers, Manuel
  • C++ -> Python of DOCUMENTSETTINGS_GENERAL & DOCUMENT_STATEX

    4
    0 Votes
    4 Posts
    439 Views
    M
    thanks to all of you, got it working with axisstate.x = int(doc.GetData(c4d.DOCUMENTSETTINGS_GENERAL).GetBool(c4d.DOCUMENT_STATEX)) kind regards mogh
  • Draw a point in View,how to select it?

    r21 c++
    10
    0 Votes
    10 Posts
    1k Views
    chuanzhenC
    @m_magalhaes ok,It's a bit complicated
  • Making Houdini Engine visible to C4D via Python

    r21 python
    4
    0 Votes
    4 Posts
    941 Views
    jcooperJ
    @r_gigante Perfect! Worked like a charm. Thank you.
  • ParallelFor vs. ParallelImage

    c++ r20 sdk macos
    6
    0 Votes
    6 Posts
    648 Views
    fwilleke80F
    Thanks a lot! That helps Cheers, Frank
  • Object Links in GeDialog

    sdk python
    1
    1
    0 Votes
    1 Posts
    178 Views
    No one has replied
  • Listing All Renderers

    python
    5
    1
    0 Votes
    5 Posts
    555 Views
    ?
    @m_adam You are a genius - I am in awe! Thank you everyone for the help!
  • How to setup c4d.utils.ViewportSelect() and GetNearestPoint to work

    python
    9
    0 Votes
    9 Posts
    2k Views
    M
    @m_magalhaes This morning: uff more learning and work. This Afternoon lets try this code ... mind blown ... thank you ! I'll mark this as solved hence I think ist a good way to close a thread with a working prototype for others to learn. Thank You again, @zipit & @m_magalhaes mogh
  • Hiding GeDialog elements

    c++ r21
    7
    2
    0 Votes
    7 Posts
    721 Views
    fwilleke80F
    Thanks, Maxime! That answers all my questions I'll mark this solved now.
  • GeUserArea Tool Tips

    python
    5
    1
    0 Votes
    5 Posts
    610 Views
    ?
    @m_adam & @PluginStudent Thank you both! This was exactly what I needed. This forum is so so helpful.
  • Recalculate Plugin Object Cache

    python
    6
    0 Votes
    6 Posts
    921 Views
    mfersaouiM
    Hi @r_gigante, @zipit, I'm creating something like the following code. I tried to use the GetAndCheckHierarchyClone, this works but the cloner object became to slow to calculate. For this reason I used the following solution: def __init__(self): pass #self.SetOptimizeCache(True) def GetVirtualObjects(self, op, hh): instance = op.GetDown() if instance is None: return c4d.BaseObject(c4d.Onull) dirty = op.CheckCache(hh) or op.IsDirty(c4d.DIRTY_DATA) instance_dirty = instance.IsDirty(c4d.DIRTY_DATA) dirty |= instance_dirty if not dirty: return op.GetCache(hh) cloner = c4d.BaseObject(c4d.Onull) count = 3 n = 0 while n < count: instance.GetCache().GetClone().InsertUnder(cloner) n += 1 cloner.Message(c4d.MSG_UPDATE) return cloner So, by just deactivating the SetOptimizeCache and cloning only the cache of the instance object the cloner object calculate is become to fast. The unique problem now is the cloner object is return the cache of previous modification on the instance object. This is perceptible only with bool parameters. Example: When I check a bool parameter of the instance object, the cloner return the result of the previous state of the bool parameter. but if I mouseover the cloner in the Viewport or I select it object manager this update the cloner object. Thanks
  • R21 CommandData with option - not working on macOS

    11
    0 Votes
    11 Posts
    2k Views
    P
    Ok, thanks @r_gigante... I'll keeping going with the workaround.
  • Generator object not drawn if origin outside of view

    r20 c++ macos
    4
    0 Votes
    4 Posts
    509 Views
    fwilleke80F
    Oh man, it really was the missing message. Never thought it would have such weird consequences to forget that. Thanks guys!
  • The console does not correctly recognize object properties

    r21 c++
    7
    1
    0 Votes
    7 Posts
    1k Views
    S
    @zipit This plug-in has a twin plug-in that has some properties with the same name, and I suspect that the properties with the same name cause conflicts (even if the ids are different).I made the modification and it is normal now. Thank you for your reply Cheers
  • Setting the width of a treeview column

    r20 python
    3
    1
    0 Votes
    3 Posts
    506 Views
    ManuelM
    hello, that's because you set the width of your columns to more that what it show. But you can simply passed that argument when you add your customGUI settings.SetBool(c4d.TREEVIEW_RESIZE_HEADER, False) In the c++ doc you have that page and in python this one Cheers, Manuel