def generate_bezier_patch(degree, vertices): patch = Part.BezierSurface() patch.increase(degree,degree) for i in range(degree+1): for j in range(degree+1): k = i+j*(degree+1) v = vertices[k] control_point = FreeCAD.Vector(v[0],v[1],v[2]) patch.setPole(i+1,j+1,control_point) #Part.show(Part.Vertex(control_point)) Part.show(patch.toShape())