Hi All

I've been playing with FreeCAD on and off for a little while and have now decided to start investigating the scripting interface.

I've started out going through the bottle example and comparing the Open Cascade notes with the FreeCAD script.

Now I'm stuck on the threaded neck of the bottle and need some advice. It looks like the Open Cascade example creates 2 cylindrical surfaces for the wires defining the thread. My sticking point is how to generate a cylindrical surface by script. The Open Cascade calls in question are:
Handle(Geom_CylindricalSurface) aCyl1 = new Geom_CylindricalSurface(neckAx2 , myNeckRadius * 0.99);
Handle(Geom_CylindricalSurface) aCyl2 = new Geom_CylindricalSurface(neckAx2 , myNeckRadius * 1.05);

How do I do this operation in FreeCAD? I took a look at the source and could only see Bezier and BSpline surfaces in src/Mod/Part/App but couldn't see a cylindrical surface anywhere. It also looked like this Geom_CylindricalSurface call is made in multiple places but doesn't look exposed.

Am I missing something? Remember I'm a real noob with the scripting part so the answer may be obvious and I'm just missing it.