Angle precision plugin

plugin
precision
protractor

#1

Is there a plugin that gives angles the same decimal precision as linear measurements?
If there is, I’d like a link, because I really need high precision angles in making mechanical linkages.


#2

You can already get angle precision to 3 places beyond the decimal. How much more do you need?


#3

I need at least 6 -9 decimal places. 9 is optimal but 6 will do.


#4

You should probably be using a different program, then. 6 places is the max for linear dimensions.


#5

I am already satisfied with the linear measurements being 6 decimal places. I’m just kind of wondering that if the developers set the linear precision to 6 places, why won’t they do the same with the angle measurement precision.


#6

Because SketchUp mainly was planned as a tool for architects and they don’t ever need this precision…


#7

internally, SU uses radians and a much higher precision, I think it’s sixteen places…

model = Sketchup.active_model
defs = model.definitions
ents = model.active_entities
edges = ents.grep(Sketchup::Edge) 
pts = []
edges.each{|e| pts << e.start.position; pts << e.end.position}

vec1 = pts[1].vector_to pts[0]
vec2 = pts[0].vector_to pts[3]
angle = vec1.angle_between vec2

# show result in radians used internally
p angle                                  #=>  2.8099799560831342

#  convert the radians to degrees
p angle.radians                          #=> 160.99999199992

# show what the user sees
Sketchup.format_angle(angle) + '°'       #=> ~ 161.000°

john


#8

If they don’t ever plan on increasing the precision of angular measurements in the next version, then I hope someone can make an extension that does the job. It’s really a necessity for me when I make linkages that only strictly work in scrutinously accurate angles.


#9

Maybe using rectangles would give you more accurate angles? For example, if you needed 12.3456789 degrees you could make a rectangle that is 100,000 by 21,887.055364. Its diagonal would be at 12.3456789 degrees.


#10

Double precision gives you 15 to 17 significant digits depending upon whether the number is very small or very large. Double precision uses 8 bytes to store numbers.

That being said what you are interested in is how SU displays numbers and degrees.

I created a rectangle and then used the rotate tool and typed in 20.999999999 then I created a line to extend the one edge of the rectangle back to axis. That line happened to measure 359.514001

I used a copy of the rectangle (not yet rotated) and then the rotate tool. This time I typed in 20.9999 then I created a line the same way. This time the line measured 359.512126

What this tells me is you have all the precision you need - you just don’t have something to display degrees to more decimals.


#11

rectangle method is certainly effective and accurate but it’s kind of a hassle that I have to group my entities for them to not get caught by my rectangle lines. :expressionless:


#12

SU is quite capable of creating and using high precision…

if I change two lines of code in @slbaumgartner extension code, it will show the full value I used with Rotate Tool…

john


#13

I am not certain whether the OP’s goal is to create angles with high precision or to display existing angle values to greater precision (or both?).

When @john_mcclenahan and I developed Angular Dimension 2, we followed the units setting from the model info. We had, as I recall, three things in mind: consistency with how the user has told the rest of SketchUp to display angles (e.g. protractor); avoiding making our already complex settings dialog even messier; and concern about how adding more digits might wreck the placement of the text in certain cases (John McC tore out a lot of hair getting it to work reasonably well!).

But, as @john_drivenupthewall has shown, that’s all a matter of formatting the angle’s value for display; the internal representation is quite precise. Our extension’s Ruby code is not encrypted. If someone wants to tweak it for their own use, that’s fine with me.


#14

And with me.


#15

If if you can dimension an angle to 9 decimal places or more, how are you going to measure that in the real world? What are you drawing that needs precision in linear dimensions that is a fraction of the thickness of a hairr?


#16

my issue is not with the precision of linear measurements but with the angular measurements. I am actually fine with the linear measurements being at least two decimal places. What I need is the angular precision, which can give a few millimeters of error given if it isn’t precise enough especially when you’re making structures that are around 10 feet tall.


#17

and I also need it for really really really tight fit of joints and surfaces. I don’t want my small designs to wobble even by a hair’s width.


#18

What materials are you using and what are you measuring/cutting them with?


#19

I mainly use acrylic, vinyl, and wood and I cut them with laser cutters with laser beam width of 0.2 mm and wood mills with a minimum drill size of 1 mm. My designs range from a height of 30 cm to a height of 8 feet.

One of my laser cutters has a beam alignment problem, and the laser beam is bent to a specific angle. (which means that I’ll have to do the math and compensate for the mishap)

My problem with SU is that their linear measurements are so precise that when I make a very irregular triangle and I record the angles based on the displayed precision and try to recreate it with the protractor using the recorded data, the lines will never connect with each other and a plane is never formed. I had to use external tools that convert sides to angles.


#20

Both my linear and angle units are set to 0.0. I have every confidence in this precision with timber. I don’t really understand your last paragraph, but I have a feeling there could be something about the way you are drawing or your units setup. Many people have great success with SU with real world designs. If you are having these faces missing, maybe you could post a new topic showing this problem and you may get some solutions in that way.?