Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 22/06/2015 at 03:59, xxxxxxxx wrote:
Hello, I would like to set axis to center of an object. And as I will use it in xpresso-python node, it should only fire for once. Position will be 0,0,0. I tried script below, please help.
import c4d from c4d import Vector as v
def setAxis(obj) :
size = obj.GetRad() position = obj.GetMp() + obj.GetAbsPos() if obj is None or not obj.CheckType(c4d.Opoint) : return False oldm = obj.GetMg() points = obj.GetAllPoints() pcount = obj.GetPointCount() doc.StartUndo() doc.AddUndo(c4d.UNDOTYPE_CHANGE, obj) obj.SetAbsRot(v(0)) obj.SetAbsPos(v(0)) obj.Message(c4d.MSG_UPDATE) newm = obj.GetMg() newm.off = position-size/2 newm.v1 = newm.v1.GetNormalized() newm.v2 = newm.v2.GetNormalized() newm.v3 = newm.v3.GetNormalized() for p in xrange(pcount) : obj.SetPoint(p,newm*oldm*points ) c4d.EventAdd() obj.Message(c4d.MSG_UPDATE) c4d.EventAdd() doc.EndUndo()
def main() : global Source if Source.CheckType(c4d.Opoint) : setAxis(Source)
On 29/06/2015 at 02:38, xxxxxxxx wrote:
Hello,
is this thread on the same topic as in your other thread?
If you want to execute a python script only once you can edit and execute a script from the Script Manager. This allows you to run scripts that can edit the scene and it's objects as desired.
A Python Xpresso Node should only be used for logic operations etc. and not to edit the current scene since the node will be executed many times.
Best wishes, Sebastian
On 03/07/2015 at 09:40, xxxxxxxx wrote:
Hello grasycho,
was your question answered?