This happens because the surface is pretty much undefined. The only guaranteed flat surface there is is between exactly three vertices. If you have more vertices without edges, it's a guessing game for Blender, so it will come to different conclusions, depending on angle and other factors.
What you can try is using the subdivision surface modifier, simple, ...
You could think of the discs as a doughnuts with their tops and bottoms filled in..
Alt - select the midway loops of a torus, created by with the appropriate major and minor radii
V - drag rip the edges and hover-L select the inner faces
X delete them, Reselect the boundary loops
F fill the top and bottom
I added a cylinder with Depth of 0.1m
Tn edit mode tab I selected top and bottom faces.
I used bevel tool Ctrl+B to bevel (with 16 segments) for 0.05m. In the bottom left of the viewport there is a window that allows you to type values by keyboard. If you left click anywhere after beveling it will disappear!
This shows curvature of this disk compared to ...
You cannot use a bmesh element as a base type
Unfortunately as possible with many blender types, it is not possible to use bmesh elements as base types to extend the class in a "traditional way".
>>> class Foo(bmesh.types.BMEdge):
Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
Tris may or may not be problematic depending on your model :).
These are some ways to reduce two loops into one.
Including 2-level Subdivision, so you can see the resulting geometry.
In the documentation we read:
This edge property, a value between $0.0$ to $1.0$, is used by the Bevel Modifier to control the bevel intensity of the edges. This operator enters an interactive mode (a bit like transform tools), where by moving the mouse (or typing a value with the keyboard) you can set the bevel weight of selected edges. If two or more ...
You are very close
Can create the list in one fell swoop using list comprehension. (instead of edge_list.append(tuple(v.co for v in e.verts)) Used a tuple for vert coords as we really don't want to add or remove or sort or..
Python console code, notice don't need to print items as their repr is echoed.
>>> edge_list = [tuple(v.co for v in e....
The problem is not that you have an active element, but that the active element is being used as the pivot point for your transformation.
Go to the Pivot Center dropdown in the header of your 3D View, and select 'Median Point'. Then the selected elements will scale about their average location. (My shortcut is keyboard .)
There may be a snappier way, but I would:
CtrlB bevel the outer curve of the wheel-arch, Segments 2, Profile 1
CtrlX dissolve the surplus loop on the inside of the arch
Select the new edges, and GG with C Loop Slide to adjust the depth of the new loop's offset..
..depending on your previous use of the Loop Slide, you may have to hit E to get the sliding ...