> R:=3:
r:=1:
T:=plot3d([(R+r*cos(u-v))*cos(u+v),(R+r*cos(u-v))*sin(u+v),r*sin(u-v)],u=0..2*Pi,v=0..2*Pi,scaling=constrained,style=patchnogrid):
n:=15:
V:=seq(tubeplot([(R+r*cos(u-v))*cos(u+v),(R+r*cos(u-v))*sin(u+v),r*sin(u-v)],u=0..2*Pi,radius=0.1,style=patchnogrid,color=blue),v=seq(k*2*Pi/n,k=0..n-1)):
W:=seq(tubeplot([(R+r*cos(u-v))*cos(u+v),(R+r*cos(u-v))*sin(u+v),r*sin(u-v)],v=0..2*Pi,radius=0.1,style=patchnogrid,color=red),u=seq(k*2*Pi/n,k=0..n-1)):

> display([T,display(V,insequence=true),display(W,insequence=true)]);