Blender Caliper for 2.6x

Hi everyone!

I’m excited to announce that the Blender Caliper measurement tool is ready for some intensive testing! Thanks everyone for your donations and help!

Please go to the page linked here to download the script and read a bit about how to use it!

The current version has been tested for Blender 2.63

If you have any questions/ideas/requests, please post here!

this is great news. leeching

Glad to hear about the progress. I’ve always thought that Blender needed something like this.

Thanks a lot. Glad to see it back. Just played a bit with it and found a very easy trick to have all the texts aligned: select the text, and in the constraint panel, change the track to constraint so that it points toward the camera.

coooool! it seems it is working alright, but in my opinion, to have a nice workflow, Caliper MUST:

  • snap to mouse coursor
  • rotate the dimension to different views: top, left, or whatever. Seems the Empty freezes the arrow and the dimension text

IMHO, it’s tedious to always specify the objects between caliper needs to work, specially when there are a lot of them. so, there should be 2 empties at the end of the dimension line, so i could snap it to different elements (like vertices, edges, not just object origins). So, for now, caliper is not so user friendly as it could be :slight_smile:

Hi guys!

Viralata, yeah that is exactly what I had in mind as well! Perhaps should make that a part of the final “help” page.

AlexDS, What do you mean by “snap to mouse cursor”? Do you mean “snap to 3d cursor (the white and red one)”? If so… yes I want to add that as a feature/function! And yes, there are already 2 empties at the ends, but I chose to hide them so it looks a bit more as if the Caliper is 1 special object, in stead of a group of objects… Maybe I should unhide them by default? That would also mean I can take a lot of the controls away (setting location of start and end would just mean moving those empties).

Thanks for the useful feedback! And keep it coming!

For me, the two empties are ok as you can snap, but the use ouf vertex group with object, though not user friendly is very powerfull, as you can have the caliper updated.
What is really missing for me:
-an easy way to offset the arrows and the text (I can edit the arrows and change the offset of the text, but it’s very tedious), in most of the cases I don’t want the arrows to be on the geomety.
-constraint the dimensions in some axis

But it’s already really great

I did a video tutorial about it, I was so happy you released it :), there is one in english and one in french, hoping I understood the way it works as you intended it too:
in french:

in english :

Thanks Macouno for your great script, I have a problem though when I have the caliper in a scene I can’t use cycles viewport rendering mode.I tried to move it in a second layer but problem remains.
I also tried in a new fresh scene, the same.I use blender 2.64, anyone else can confirm this?

And viralata thank you also for your great tutorial.

I LOVE THIS PLUG-IN and have using it since 2.49 but for some reason I can’t get it to work in Blender 2.64 on the Mac. Is anyone else experiencing this problem? Can anyone tell me how to resolve this problem? Oh by the way I’m using mac Pro 2x2ghz Dual-Core intel Xeon with Mac OSX 10.7.5

Never mind my post user error :slight_smile:

I had hoped I could use it in architectual visualisations. But the problem seems to be that a single calliper object drains my performance substantially.
What I tried was to enable the calliper script and add a single calliper.
My framerate then immediatly dropped to 10/ fps ( or something similar ).
Removing the object didn’t help, neither did disabling the calliper addon.
I got my normal framerate back after I restarted blender.

The scene I tested this in has about 1450 objects and my fps usually starts to get strained when i’m around 2k objects or 2M faces.
I use the default blender 2.64a build.

Hi Everyone,

Thanks for all the feedback and testing, this is all really usefull.

I’ll make time to look into this stuff soon. Definitely cycles render should work, and I’ll make it so there’s two empties at the end for ease of use.

McBuff: ouch… yes I did not test it witch such a large scene. I will look into performance as well!

Hey, I really loved your code so I decided to build off it! (7.29 KB)

This is my first project with blender and python, so sorry if anything is annoying to you. The code attached does a fairly simple thing, if you are selecting two objects it will automatically link them upon creation of the caliper. Future updates will do the following

New Feature Breakdown:

  • automatically link selected objects with a caliper (done)
  • group caliper variables under a single variable of CaliperProps (almost done, not implemented)
  • create button to automatically link their selected vertexes (done)
  • Automatically scale caliper with length, reduce default width/height (not yet started)
  • Create drawing objects that display the distance of their linked object, not themselves – this allows you to create CAD drawings and resize the objects without impacting the distances the caliper displays. (started, have managed to create the linked objects by assigning unique ids to them, then just need to switch up caliber’s link method to use the linked object data instead. Work in progress. I still don’t understand quite how you keep the caliper start and end points even when you change the start and end objects names. If you know how to do this, I would love for your input)
  • allow for caliper to be moved in parallel with base length, with arrows pointing perpendicularly down (as standard cad software is able to do with calipers, like text image below) (not yet started)

How a caliper should look:
(note, the ’ marks are because this forum wouldn’t accept spaces for some odd reason)

^ ’ ’ ’ ’ ’ ’ ’ ^
| ’ ’ ’ ’ ’ ’ ’ ’ '|
| ’ ’ ’ ’ ’ ’ ’ ’ '|
’ ’ ’ '6.2m


  • Then work on button interface to give user option of linking object centers / object selected vertexes
  • Implement the drawing sheet functionality (linked dimensioning), to help user with creating CAD Drawings
  • Finish up other features and bug test

Edits to your code:

  • The only thing I added was a “return caliper” to your CaliperCreation function. Everything else is mine

Anyway, I’d be interested in working with you on these if you wanted to set up a repository or something. I might be quitting my job soon to work on making Blender as good as any full fledged CAD software (only half joking…)

On this note I noticed a fairly large performance sink in your CaliperCheck code. There are two things, and they both have to do with how you used “in”. First of all, you can significantly reduce your process time by cutting down the values you are checking for (what “cal_objects” does), and second of all you can reduce the time further by creating a dictionary (dictionaries use hash tables, which have very fast lookup speed)

It may seem minor when you only have a few objects, but the lookup time for using the “in” operator could be large if the scene contains thousands of objects AND you are traversing all of them (think about it, every search has to a linear search through every object. Hash tables, on the other hand… do magic through hashing). Additionally you are refreshing this function every time the screen updates so… that would be a big performance lag.

I haven’t done any performance tests (other than make sure it still runs). McBuff: could you check to see if this makes it better? (524 Bytes)

Hi cloudform: That’s pretty cool! And a lot of stuff! And a lot to respond to as well… eh… If you want to contribute that’s great, but I have very little time right now. Perhaps it is best if you e-mail me (address is on my site) with a single added bit of functionality to the script so I can have a look at that.

BTW: your cleanup does work, but I think it can be faster still… it’s the next thing I’m looking into.

THANK YOU for making this wonderful script :slight_smile:

Hi everyone.

I just now published an update to the caliper:

Now there are two empties at the ends of the caliper when created, which makes it much easier to manipulate.

Also. The caliper now works with the Cycles rendered view!!

I will have a look at preformance next!

And all the improvements and extensions of cloudform still work, isn’t it? Or do we have to add the return statement?
I’m just considering merging both …
It’s really great and that it’s no longer cycling cycles is cool also - this always creates a huge delay for me. And could it be useful to add the track to constraint automatically to every text object? So that it’s always visible - oh, I realise, this would be very CPU heavy inverse kinematics, not? Then sorry for proposing that …

Thank you for your work! (how didn’t I know of it until today …)