hexpoints=Table[{Cos[i 2 Pi/6],Sin[i 2 Pi/6]},{i,1,6}]

HexPrismPoints[rad_, l_]:= HexPrismPoints[rad, l]=Join[Map[Append[#,0]&,rad*hexpoints],Map[Append[#,-l]&,rad*hexpoints]]

HexPrismPoints[rad_, l_,transfunc_]:= Map[transfunc[#]&,HexPrismPoints[rad,l]]

HexPrismPoints[1,3]

HexPrismPoints[1,2,RotationTransform[Pi/6,{0,1,0}]];

HexPrism[rad_,l_]:= GraphicsComplex[HexPrismPoints[rad,l] ,
Polygon[{{1,2,3,4,5,6},{12,11,10,9,8,7},{2,1,7,8},{3,2,8,9},{4,3,9,10},{5,4,10,11},{6,5,11,12},{1,6,12,7}}]]

HexPrism[rad_,l_,transfunc_]:= GraphicsComplex[HexPrismPoints[rad,l,transfunc], 
Polygon[{{1,2,3,4,5,6},{12,11,10,9,8,7},{2,1,7,8},{3,2,8,9},{4,3,9,10},{5,4,10,11},{6,5,11,12},{1,6,12,7}}] ]

Graphics3D[HexPrism[Sqrt[3]/3,5],Axes->True,ViewPoint-> Top]

temp=Graphics3D[{HexPrism[Sqrt[3]/3,5,TranslationTransform[{0,0,0}]],HexPrism[Sqrt[3]/3,5,TranslationTransform[{Cos[Pi/6],Sin[Pi/6],.4}]]}]

temp=Graphics3D[{HexPrism[Sqrt[3]/3,5,RotationTransform[3 Pi/4,{1,2,0}].TranslationTransform[{0,0,0}]],HexPrism[Sqrt[3]/3,5,RotationTransform[3 Pi/4,{1,2,0}].TranslationTransform[{Cos[Pi/6],Sin[Pi/6],.4}]],HexPrism[Sqrt[3]/3,5,RotationTransform[3 Pi/4,{1,2,0}].TranslationTransform[{Cos[3Pi/6],Sin[3Pi/6],-.5}]]}]

rhomlat= {{Cos[Pi/6],Sin[Pi/6]},{Cos[3Pi/6],Sin[3Pi/6]}}

hexlat=Tuples[Range[0,5],2].rhomlat;

Length[hexlat]

Graphics[Point[hexlat],Axes->True,PlotRange->{{0,8},{0,8}},AspectRatio->1]

therot=RotationTransform[3 Pi/4,{1,2,0}]//N;

hp[v_]:=HexPrism[Sqrt[3]/3,5,therot.TranslationTransform[v]]

Graphics3D[hp[{0,1,1}]]

Length[hexlat]

theflatpoints = Table[{hexlat[[i,1]],hexlat[[i,2]],0},{i,1,Length[hexlat]}];

theflatpoints[[1]]

Graphics3D[Map[hp[#]&,theflatpoints],Axes->True]

pts =Table[{hexlat[[i,1]],hexlat[[i,2]],2 Sin[  hexlat[[i,1]]] Cos[ hexlat[[i,2]]]},{i,1,Length[hexlat]}]

Graphics3D[Map[hp[#]&,pts]]

Plot3D[5 Sin[  x] Cos[ y],{x,-5,5},{y,-5,5}]