Problem of control of the vertices

Using Edge.curve will give you unexpected results in many situations. It is better to iterate through the edges returned from Entities.add_arc and collect the unique vertices. Like so:

    mod = Sketchup.active_model # Open model
    ents = mod.entities # All entities in model

    r = 10
    c = Geom::Point3d.new(20,20,0)
    start_a = 270.degrees
    end_a = 180.degrees

    edgearray = ents.add_arc( c, X_AXIS, Z_AXIS, r, start_a, end_a, 5)

    pt2 = 10,10,0
    ents.add_face(edgearray.collect{|e|e.vertices}.flatten.uniq << pt2)

please visit this discussion