pauljs75 opened this issue on Oct 12, 2013 · 4 posts
pauljs75 posted Sat, 12 October 2013 at 7:17 PM
I was going to try asking about this at BlenderArtists (nothing against here, but thats where all the Blender traffic is these days), but for some reason I can't log into the site without it timing out or other trouble. (Maybe somebody could pass this on, if I can't get it answered here.)
Anyhow, anybody know why there isn't a curve length attribute to any of the various curves available in Blender? (bezier, circle, nurbs curve, etc.)
I googled a bit and found one script, but it doesn't seem to work with the current versions I'm using. (2.68a or 2.69 RC1)
The only workaround I know of is to use an array of tiny cubes with "fit to length" and a curve modifier. Manually drag the length out until cubes fill the path and use that value. It works, but it's slow, has limited accuracy, and a lot of overhead.
However there is math out there that seems to address this problem, I'm just not that great at figuring out scripts and that kind of stuff. Some sites I found during a search that may have a solution if anyone wants to have a go at it...
http://stackoverflow.com/questions/5443653/opengl-coordinates-from-bezier-curves
http://www.gamedev.net/topic/313018-calculating-the-length-of-a-bezier-curve/
http://steve.hollasch.net/cgindex/curves/cbezarclen.html
But the question is, why is this not a readily accessible attribute or value that I can copy-paste the data path of? (Or if curve length exists somewhere, where is it hidden? It's funny I can get the eval time along a path, but that's of limited use without the distance units for the same.)
Your friendly neighborhood Wings3D nut.
Also feel free to browse my freebies at ShareCG.
There might be something worth downloading.
Touchwood posted Sun, 13 October 2013 at 11:18 AM
http://blenderartists.org/forum/showthread.php?206790-Length-of-a-Bezier-curve-in-2-5&highlight=bezier+curve+length
On the final page someone has made an addon to do what you ask. I would suggest reading through to see whether it fits your needs. If you just want to jump in I'll attach the addon: Remove the .txt extension before use.
pauljs75 posted Thu, 17 October 2013 at 6:24 AM
Thanks! Tried it out real quick, it's a lot faster than the manual method I've been using.
Two downsides on this script though: only works in object mode, and no way to copy-paste the calculated output.
(I'd guess there's probably some edit that could be done to the script to make the value copy-able, but that's going to take some digging again.)
But it's still a lot better than dragging out an array of objects until it gets close.
And I still don't understand why something like this isn't built in to begin with. I'm sure if you compared most of the commercial apps Blender is almost ready to take on, they have this in there somewhere.
Your friendly neighborhood Wings3D nut.
Also feel free to browse my freebies at ShareCG.
There might be something worth downloading.
mariomonti posted Sat, 09 November 2013 at 5:49 AM
That's Good you information is very useful for me.