Angular Dimensions

I just saw this thread and think it should become a feature request:

So, please include the ability to dimension angles (using the standard method of showing an arc with arrows pointing to both legs of the measured angle). This feature should be provided in SketchUp as well as Layout.

Edit: the above link is mistyped
Use this one:

I was not able to see the thread, see the below screen shot when I clicked the link. I anyone else experiencing this?


Try this link instead:

Somehow, my previous post had a busted link.

Thank @Shep that worked.

There is a workaround and Extensions that can complete the task. I have made our development and engineering team aware of it.

Thank you,

I would be fascinated to hear their views on the matter.


Whatever workarounds and extensions there are to dimension angles at the moment, non of them are associated to the angle they measure. Change the geometry and you’ll need to delete stuff and measure again. Far from what is needed in SketchUp.

1 Like

I agree. That’s why I think this needs to become a feature of the native SU software. One should not be forced to resort to add ons for such an integral function of design as the stipulation of angular units of measurement

I’m the author of one of the plugins cited, and I also agree. I found Didier Bur’s extension and reworked it to shake out some kinks, but both of us did it only because such a thing was mysteriously missing from SketchUp. And, yes, I could not figure out any way to associate it to the geometry, which is a serious shortcoming. There are multiple flavors one could imagine - angle between two Edges that meet at a Vertex, angle of an Arc, angle between two construction lines, etc. Each will need its own notions of how to associate. The point being, angular dimensions are messier than linear or radial.

I do agree.
But at least let us have have a tool that works for intersecting edges. To then be used on the common endpoint and both their midpoints. That’s not too messie, is it?
I’m not assuming that this should be done with a plugin, if possible at all. (I doubt it)
It should be built in the program as a native tool.


I think there are aspects of people’s expectations about Dimensions that make it impossible to implement the desired Angular Dimensions via the Ruby extension API, even sticking just to the case of two intersecting Edges. These make it mandatory for the Trimble team to step up to the plate, either by implementing AngularDimensions in SketchUp or by providing the API methods we would need to do it ourselves!

Below are my thoughts. Comment or correct them as you see fit…

  1. There is no mechanism in the API to make text track the dimension during zoom, orbit, and pan the way the LinearDimension and RadialDimension text does. The nearest thing (as done in my extension) is text with a leader line, but that technique has some issues and, as Gully notes in the other topic linked earlier, isn’t the standard way to dimension angles anyhow.
  2. A Dimension contains lines, end markers, and text. The only structures in the API for multi-entity objects are Groups and Components, both of which are ordinary DrawingEntities that can be opened for uncontrolled edit by the user. That’s very different from LinearDimension and RadialDimension, which are closed objects that can only be edited in tightly-controlled ways.
  3. The only mechanism that could even attempt to implement association is an EntityObserver, but that mechanism would be very tricky to get right (even assuming the EntityObserver system is stable, which is an open question…the API docs warn of crashes if you alter the model during an EO callback). In addition, the onChangeEntity callback does not fire when the Entity is moved - which is one way that changes the associated angles!
1 Like

Thanks for that. I now better appreciate what you and Didier were up against, and as @TIG has pointed out, your plugins are the only game in town and better than a sharp stick in the eye (a paraphrase).

Personally, I could dispense with associativity if a somewhat proper angular dimension could even be created at all, especially (but not necessarily) if it were possible to edit the dimension manually so it wouldn’t have to be deleted and recreated when the design changes.

Actually, there is (in ASME Y14.5) a form of angular dimension (used for limited-space applications) wherein the dimension itself is on a leader that comes off the midpoint of an angular dimension line (arc with arrowheads), although it would be pretty creepy if that were the only form of “legal” angular dimension available. Not as creepy, of course, as the present situation.


I pondered adding arrowheads to my plugin and found another issue that can’t be solved via the Ruby API: the end markers (e.g. arrowheads) for Dimensions have a fixed size in display coordinates, not model coordinates! In other words, as you zoom, the markers don’t get bigger or smaller with the model. But they do stay in the plane of the Dimension as you orbit! There is nothing you can draw onto the view that behaves this way and persists after a Tool is deactivated!

To me (not a programmer, sorry) it seems that when dimension text size is set to Height, the end markers also get a fixed size in model units. But I don’t know if it can be accessed in Ruby.


In the attached animation, you can see that the end markers for linear dimensions do not zoom in or out with the model, which means that their size is not scaled along with the model. This sort of behavior is not accessible from the Ruby API.

[quote=“slbaumgartner, post:15, topic:8093”]
n the attached animation, you can see that the end markers for linear dimensions do not zoom in or out with the model, …[/quote]
But these dimensions have fixed heights on screen (points), not height related to the model. Isn’t that what you are after?

That’s the point I was making. In the animation you see two things: 1) the end markers are at a fixed screen point size instead of scaling with the model as you zoom, and 2) the markers are attached to the model geometry so that they move with it in the view. I don’t think there is any way to create general contents through the API that behaves like that (by general, I mean independent of the existing dimension classes). So, there is no way to make an Angular Dimension plugin that behaves like the built-in dimensions.

I see your point. You can only create geometry to mimic the dimension lines and arrows instead of what the dimension lines should look like in a model.