VectorPosition on Spline?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/06/2011 at 02:41, xxxxxxxx wrote:
Does any kind soul know how to get the vector position for a spline using Py?
I have spent all night without any luck and cannot for the life of me
manage to get it.
In coffee I do as shown but whatever I try in Python can't get past
the init part as I don't understand what class does what.var splineobject = object(); // a selected splineobject var realspline = splineobject->GetRealSpline(); // the realspline var sldata = new(SplineLengthData); // the data to use sldata->Init(realspline,0); // the init spline first segment var pos = realspline->GetSplinePoint(0.5,0); // The vector position in space at 50% of segment
Cheers
Lennart -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/06/2011 at 02:59, xxxxxxxx wrote:
I don't see the difference between a SplineObject and a LineObject, but they can both be used with the c4d.utils.SplineHelp class.
Try this:import c4d from c4d.utils import SplineHelp def main() : if op is None: print "No object selected." return if not op.CheckType(c4d.Ospline) : print "No splineobject. Retrieving Cache ..." globals()["op"] = op.GetCache() if not op.CheckType(c4d.Oline) and not op.CheckType(c4d.Ospline) : print "Cache is not a line- or splineobject." return shelp = SplineHelp() shelp.InitSpline(op) _range = 20 _range = float(_range) for i in xrange(int(_range) + 1) : i = i / _range pos = shelp.GetPosition(i) print str(i).ljust(5), ":", pos main()
Cheers,
Niklas -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/06/2011 at 03:04, xxxxxxxx wrote:
Thanks Niklas, will look into it right away.
(Also many thanks for the Cyclebutton example earlier,
now I get attributes to work instead of using Userdata!)Cheers
Lennart -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/06/2011 at 04:05, xxxxxxxx wrote:
Oh, I got it (Needed some sleep )
I didn't realize that I needed to import SplineLengthData from c4d.utils.Niklas, I think what you wonder is within SplineLengthData()
as it gets whatever spline is thrown at it.Now it works the same as my coffee example.
import c4d from c4d import utils from c4d.utils import SplineHelp, SplineLengthData def main() : obj = op.GetObject() rs = obj.GetRealSpline() if rs is False: print 'No' return False sdata = SplineLengthData() sdata.Init(rs,0) pos = rs.GetSplinePoint(0.5,0) sdata.Free() print pos
Cheers
Lennart -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/06/2011 at 04:09, xxxxxxxx wrote:
Corrected code for checking if spline object, should be "None", not False.
import c4d from c4d import utils from c4d.utils import SplineHelp, SplineLengthData def main() : obj = op.GetObject() rs = obj.GetRealSpline() if rs is None: print 'Not a Spline' return False sdata = SplineLengthData() sdata.Init(rs,0) pos = rs.GetSplinePoint(0.5,0) sdata.Free() print pos
Cheers
Lennart