Bisecting an angle?

This one’s got me stumped. How do you create a new edge so that it divides two existing connected edges into equal angles? Is there a simple method or python script for this?

OK, I think I figured out a workaround. Select the two connected edges, Fkey to create a face. Turn on the show edge angles to find the angle between them. Shift S the 3D cursor to the vertex connecting them, do a Spin of 2 steps, and use the angle value displayed on the 3d viewport. Then you can get the vertex that bisects the angle. You can even trisect it or divide it into any number of equiangular cuts. Works almost OK, except I found out that Spin doesn’t input decimal values, only whole numbers, so the result is still not exact. Perhaps something that can be improved? And it’s still a lot of intermediate steps.
Would be nice if there was a script that could subdivide a face (quad or tri) so that the edge angles are cut into a number of equiangular segments. It would not necessarily gets used everytime, but it’s there if you need it.

If you’re comfortable with snapping it’s pretty easy.

Make sure you are in “Pivot:Median Point” Mode.
Select the endpoints of the 2 starting edges.
Snap the Cursor to the selection.
Make the new edge. With new new endpoint selected, snap it to the cursor.

It would not work if you have different edge lengths. What you’re suggesting is basically connecting the end vertices with an edge, subdividing the edge and creating a new edge from the midpoint vertices. The original angle would not be subdivided equally except in special cases (only if the two edges are of equal length).

You’re right. My mistake.

To redeem myself I made a Python script to do it - correctly this time ;-):
Just select two edges that share a vertex and run the script from the text editor.

It works great! Thanks. Any chance of providing an input box for this and adding the proper headers so that it could be called up from the mesh scripts? An input box for the number of subidivisions of the angle perhaps? It’s a very useful function should the need come up for it.
I really have to learn this scripting thing…:smiley:

I added the headers so it will show up in the Scripts->Mesh menu:

The method I implemented is based on my flawed idea from above - I just normalize the edges before taking the midpoint in the script.
To have it generate an arbitrary number of divisions I would need to come up with a different method.