Tue, Oct 1, 5:08 PM CDT

Renderosity Forums / Blender



Welcome to the Blender Forum

Forum Moderators: Lobo3433 Forum Coordinators: LuxXeon

Blender F.A.Q (Last Updated: 2024 Sep 29 9:06 pm)

Welcome to the Blender Forum!


   Your place to learn about Blender, ask questions,
   exchange ideas, and interact with the other Blender users!


   Gallery | Freestuff | Tutorials

 

Visit the Renderosity MarketPlace. Your source for digital art content!

 





Subject: Length or distance of curve object?


pauljs75 ( ) posted Sat, 12 October 2013 at 7:17 PM · edited Sat, 21 September 2024 at 11:23 AM

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.)


Barbequed Pixels?

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

file_498820.txt

 I've found a link to a thread at Blenderartitsts.org that discusses this problem and possible solutions:

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.


Barbequed Pixels?

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.


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.