How to Draw an ellipse: half is continuous, half is dashed
import bpy
import bmesh

op = bpy.ops
me = op.mesh

op.object.mode_set(mode='EDIT')
me.select_all()
me.subdivide(number_cuts=2)

d = bpy.context.object.data
verts = bmesh.from_edit_mesh(d).verts

for v in verts:
    if v.co.x &gt; 0: v.select = True
    else:          v.select = False
bmesh.update_edit_mesh(d)

me.select_nth(nth=4, offset=-2)
me.delete(type='VERT')


You can do nth=3 if you want smaller dashes.