Enneper with 2 handles

<<Own`Mesh`

Weierstrass Data

phi1[z_]:=(z^2-1)/((Sqrt[z])(Sqrt[(z^2-1)])(Sqrt[(z^2-a^2)]));
phi2[z_]:=z(z^2-a^2)/((Sqrt[z])(Sqrt[(z^2-1)])(Sqrt[(z^2-a^2)]));

a=1.7126826390981942`;

rho=Sqrt[NIntegrate[ phi2[z],{z,0,1}]/NIntegrate[phi1[z],{z,0,1}]]

G[z_]:=rho(z^2-1)/((Sqrt[z])(Sqrt[(z^2-1)])(Sqrt[(z^2-a^2)]));

eps=0.0000001;

om2[z_]:=(1/2) I (rho phi1[z]+((phi2[z])/rho));
om1[z_]:=(1/2) (rho phi1[z]-((phi2[z])/rho));
om3[z_]:=1;

f0[w_]:=Re[NIntegrate[{om1[z],om2[z],om3[z]},{z,I,w}]]

fdiff=f0[0]

f[w_]:=f0[w]-fdiff

n[w_]:=StereographicProjection[1/G[w]]

Surface Parametrization

ϵ=0.0000001;

n1=4;
n2=4;
n3=8;
ny=8;
rmax=4;

dm=PolarDomain[Union[NRange[ϵ,1,n1],NRange[1,a,n2],
NRange[a,rmax,n3],SameTest->AlmostEqual],NRange[ϵ,Pi/2-ϵ,ny]];

p1=MeshPlot3D[{f[x+I y],n[x+I y]},{x,y},dm];

p2=MeshJoin[p1,MeshRotate[p1,StraightLine[{0,0,0},{1,-1,0}]]];

p3=MeshJoin[p2,MeshReflect[p2,Plane[{0,1,0},0]]];

p4=MeshJoin[p3,MeshReflect[p3,Plane[{1,0,0},0]]];

Show[gr=Mesh3DToGraphics3D[p4]]