On 14/12/2016 at 08:23, xxxxxxxx wrote:
Hey,
I hope it´s a noobish question. I´d like to get the splineobject with tangents of a primitiv, for example circle.
This is what I already tried:
import os
import math
import sys
import c4d
from c4d import plugins, utils, bitmaps, gui
PLUGIN_ID = 123455589
class TEST(plugins.ObjectData) :
def Init(self, node) :
return True
def GetVirtualObjects(self, op, hierarchyhelp) :
child = op.GetDown()
if not child: return None
print child.GetCache()
res = c4d.utils.SendModelingCommand(
command = c4d.MCOMMAND_MAKEEDITABLE,
list = [child.GetClone()],
mode = c4d.MODELINGCOMMANDMODE_ALL,
bc = c4d.BaseContainer(),
doc = op.GetMain())[0]
print res
res = c4d.utils.SendModelingCommand(
command = c4d.MCOMMAND_CURRENTSTATETOOBJECT,
list = [child.GetClone()],
mode = c4d.MODELINGCOMMANDMODE_ALL,
bc = c4d.BaseContainer(),
doc = op.GetMain())[0]
print res, res.GetPointCount()
print op.GetAndCheckHierarchyClone(hierarchyhelp,child,c4d.HIERARCHYCLONEFLAGS_ASSPLINE,False)["clone"]
return None
if __name__ == "__main__":
dir, file = os.path.split(__file__)
icon = bitmaps.BaseBitmap()
icon.InitWith(os.path.join(dir, "res", "TEST.tif"))
plugins.RegisterObjectPlugin(id=PLUGIN_ID, str="TEST2",
g=TEST,
description="TEST2",
info=c4d.OBJECT_GENERATOR,
icon=icon)
But
print child.GetCache()
(first print) returns <c4d.LineObject object called 'Circle' with ID 5137 at 0x0000000012661C70>,
print res
(second print) returns <dead c4d.SplineObject object at 0x0000000012661DB0>
print res
(third print) returns <c4d.SplineObject object called 'Circle/Spline' with ID 5101 at 0x0000000012661DF0> 68 (68 points means that all the intermediate points became points)
print op.GetAndCheckHierarchyClone(hierarchyhelp,child,c4d.HIERARCHYCLONEFLAGS_ASSPLINE,False)["clone"]
(last print) returns <c4d.BaseObject object called 'Circle/Circle' with ID 5181 at 0x0000000010B1E1F0>.
Any other ideas or THE solution?
Thx and greetings
rownn