ISSUE SOLVED
Issue caused by a mess in the normals, yes my little knowledge in 3D makes me forget
objects are not only vertex and polygons also normals.
Check sdk_support(at)maxon(dot)net
Thanks Maxon
ISSUE SOLVED
Issue caused by a mess in the normals, yes my little knowledge in 3D makes me forget
objects are not only vertex and polygons also normals.
Check sdk_support(at)maxon(dot)net
Thanks Maxon
I have testesd both option you mention with out solving the issue, I even tried c4d.MSG_CHANGE, soon I submit a sample code.
Also I'll try a different approach with WELD command, i will search the forum on how to use it since the help doc on this command is not clear.
Again: soon I submit a sample code.
Thanks
More evidence at sdk support email
Thanks and take all the time you need i move on
DrawView update ISSUE
I am developing a kind of, simple, "tweak tech" as follows:
The second selected "tweak point" coordinates are used to place the first selected "tweak point" so
both points result at the same coordinate, then the modeling command c4d.MCOMMAND_OPTIMIZE is called,
sometimes "artifacts" lines appears, I noted such lines always point to "wolrd axis".
when zoomming (finger mouse wheel) such lines desappear as shown in the .gif file,
I have tried the following with little effect:
c4d.DrawViews(c4d.DRAWFLAGS_FORCEFULLREDRAW, bd)
c4d.EventAdd(c4d.EVENT_FORCEREDRAW)
Is the an effective way for updating the view?
thanks in advance.
# The call secuence as follows:
def MouseInput(self, doc, data, bd, win, msg):
...
def ExecuteTweak(self, bd):
...
self.DataDict[TP_Object].SetPoint(...) # setting the point at the second point coordinate
self.DataDict[TP_Object].Message(c4d.MSG_UPDATE)
...
self.Optimize() # OptimizeSettings[c4d.MDATA_OPTIMIZE_UNUSEDPOINTS] = False
c4d.DrawViews(c4d.DRAWFLAGS_FORCEFULLREDRAW, bd)
c4d.EventAdd(c4d.EVENT_FORCEREDRAW)
image at sdk_support(at)maxon(dot)net
def IsDownALT(self):
# the user hold down ALT key
BC = c4d.BaseContainer()
if c4d.gui.GetInputState(c4d.BFM_INPUT_KEYBOARD, c4d.BFM_INPUT_CHANNEL, BC):
return BC[c4d.BFM_INPUT_QUALIFIER] == c4d.QUALIFIER_ALT
return False
this might help
def IsDownCTRL(self):
# the user hold down CTRL key
BC = c4d.BaseContainer()
if c4d.gui.GetInputState(c4d.BFM_INPUT_KEYBOARD, c4d.BFM_INPUT_CHANNEL, BC):
return BC[c4d.BFM_INPUT_QUALIFIER] == c4d.QUALIFIER_CTRL
return False
def IsDownSHIFT(self):
# the user hold down SHIFT key
BC = c4d.BaseContainer()
if c4d.gui.GetInputState(c4d.BFM_INPUT_KEYBOARD, c4d.BFM_INPUT_CHANNEL, BC):
return BC[c4d.BFM_INPUT_QUALIFIER] == c4d.QUALIFIER_SHIFT
return False
def IsDownALT(self):
# the user hold down ALT key
BC = c4d.BaseContainer()
if c4d.gui.GetInputState(c4d.BFM_INPUT_KEYBOARD, c4d.BFM_INPUT_CHANNEL, BC):
return BC[c4d.BFM_INPUT] == c4d.QUALIFIER_ALT
return False