Is there an upper limit for order of 2D evaluators?

I am drawing a surface with 2D evaluators. I have an array like this:
GLdouble grid[64][64][3];

and this works:
0.0, 1.0,64*3, 30, 0.0, 1.0, 3, 30,
glMapGrid2d(20, 0.0, 1.0, 30, 0.0, 1.0);
glEvalMesh2(GL_LINE, 0, 20, 0, 30);

however, when I go to higher order, such as
0.0, 1.0,64*3, 60, 0.0, 1.0, 3, 60,
then it doesn’t work anymore --nothing is drawn. I wonder if there is a upper limit for the order, and if I can change that order. In this example, I want to use order of 64.

Haoxiang Luo
UC San Diego

ah, I just realized that the upper limit is 30 (GL_MAX_EVAL_ORDER).
Now how can I avoid this problem, such as using NURBS?