Sprocket wheel: cylindrical grooves on a disk​
​By Sándor Kabai​
​
Cylindrical grooves are prepared on the perimeter of a disk to imitate the geometry of a sprocket wheel. Compare it with the published demonstration: https://demonstrations.wolfram.com/TubesInACylinder/​
where the used procedures are the same.
In[]:=
Manipulate[Module[{},​​n=50;d=2Pi/m/3;​​frame=Table[{Sin[i2Pi/n],Cos[i2Pi/n],0},{i,n}];​​t1=Table[{dSin[i2Pi/n]+1,dCos[i2Pi/n],0},{i,n}];​​hole=Table[RotationTransform[i2Pi/m+2Pi/m+Pi,{0,0,1}][t1],{i,m}];​​rim1=Polygon[framehole];​​rim2=Translate[rim1,{0,0,length}];​​per=ParametricPlot3D[{Sin[x],Cos[x],v},{x,-Pi/m/3-Pi/2+Pi/m,Pi/m/3-Pi/2+Pi/m},{v,0,length},MeshNone][[1]];​​pera=Table[Rotate[per,i2Pi/m,{0,0,1}],{i,m}];​​gr=ParametricPlot3D[{dSin[x]+1,dCos[x],v},{x,Pi+Pi/m/3,2Pi-Pi/m/3},{v,0,length},MeshNone,PlotStyleGreen][[1]];​​groove=Table[Rotate[gr,i2Pi/m+2Pi/m+Pi,{0,0,1}],{i,m}];​​shaft=Cylinder[{{0,0,-0.2},{0,0,length+0.2}},0.3];​​pin=Cylinder[{{-1,0,-0.1},{-1,0,length+0.1}},0.98d];​​pins=Table[Rotate[pin,i2Pi/m+2Pi/m,{0,0,1}],{i,m/2}];​​​​Graphics3D[{pera,rim1,rim2,groove,Yellow,shaft,RGBColor[0,1,1],If[spins,pins,{}]},BoxedFalse,SphericalRegionTrue,ImageSize340]],​​{{m,10,"number of grooves"},5,17,1},​​{{length,0.3,"width"},0.2,1},​​{{spins,False,"pins"},{True,False},ControlPlacementLeft,ImageSizeTiny},​​TrackedSymbols{m,length,spins},SaveDefinitions->True]
Out[]=
In[]:=
Graphics3D[{pera,rim1,rim2,groove}]
Out[]=
In[]:=
Graphics3D[{pera,rim1,rim2}]
Out[]=
In[]:=
Graphics3D[{pera,rim1}]
Out[]=
In[]:=
Graphics3D[{pera}]
Out[]=