Let’s make the upper part of the lamp. New cylinder is 10 mm tall with 46 mm diameter.
Next cylinder goes inside of the first one. This will be used just for boolean operation, so the height of this object is not important. Diameter is 44 mm.
Use Boolean difference to create a hole in the first cylinder.
Fillet outer edges using the radius of 0.5 mm.
2 new cylinders:
1st one – Length 29 mm, diameter 4 mm.
2nd one – length 6 mm, diameter 5 mm.
Boolean them together and for the outer edge use FilletEdge command with the radius of 1 mm.
Let’s make the shader. Use the Tube primitive.
Outer diameter – 100 mm, height 100 mm, wall thickness 2 mm.
Fillet edges of the top of this tube. Outer edge – fillet 1 mm, Inner edge – fillet 0.5 mm.
Fillet lower edges – outer edge by 1 mm, inner edge by 0.5 mm.
Let’s create another tube. Diameter is slightly bigger than shader’s diameter – 102 mm. Inner diameter – 94 mm.
Duplicate the shader and hide the copied one. Use it to boolean out the inner part of the last created ring. (use boolean difference to do so)