PyObject* CylinderPy::uIso(PyObject * args)
{
    double v;
    if (!PyArg_ParseTuple(args, "d", &v))
        return 0;

    try {
        Handle_Geom_CylindricalSurface cyl = Handle_Geom_CylindricalSurface::DownCast
            (getGeomCylinderPtr()->handle());
        Handle_Geom_Curve c = cyl->UIso(v);
        if (!Handle_Geom_Line::DownCast(c).IsNull()) {
            GeomLine* line = new GeomLine();
            Handle_Geom_Line this_curv = Handle_Geom_Line::DownCast
                (line->handle());
            this_curv->SetLin(Handle_Geom_Line::DownCast(c)->Lin());
            return new LinePy(line);
        }

        PyErr_SetString(PyExc_NotImplementedError, "this type of conical curve is not implemented");
        return 0;
    }
    catch (Standard_Failure) {
        Handle_Standard_Failure e = Standard_Failure::Caught();
        PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
        return 0;
    }
}