 # Coding a Bevel for an Edgeloop

#1

Hello,
I’d like to procedurally bevel an edge loop for a polygon object plugin that I am making. I am seeking help in coding an algorithm that does this using Python.

So far in my research, it appears to be a matter of mathematically generating a circle tangent to two points [V2, V3] based on their distance from a third angular point [V1] and a radius. With that circle, I would then get a section of the arc (Arc B) between the tangent points.

I have been able to find points A, B, & C from the above image with the following code:

``````    r = 106 #radius
V1 = Vector(50, 100, 0)
V2 = Vector(100, 300, 0)
V3 = Vector(350, 350, 0)
a = V2-V1
b = V2-V3
a.Normalize()
b.Normalize()
halfang = math.acos((a.Dot(b)))/2
ab = (a+b)/2
ab.Normalize()
A = V2 - r/math.tan(halfang)*a
B = V2 - r/math.tan(halfang)*b
C = V2 - r/math.sin(halfang)*ab
``````

Can anyone provide guidance for generating the positions of a specified number of points for the arc labeled Arc B please? Thank you!