code: def epicyclic_gear(module, sun_teeth, planet_teeth):
      plot = figure(
          x_range=(-150, 150),
          y_range=(-150, 150),
          x_axis_type=None,
          y_axis_type=None,
          width=800,
          height=800,
          tools=tools,
      )
  
      annulus_teeth = sun_teeth + 2 * planet_teeth
  
      glyph = Gear(
          x=0,
          y=0,
          module=module,
          teeth=annulus_teeth,
          angle=0,
          fill_color=fill_color[0],
          line_color=line_color,
          internal=True,
      )
      plot.add_glyph(glyph)
  
      glyph = Gear(
          x=0,
          y=0,
          module=module,
          teeth=sun_teeth,
          angle=0,
          fill_color=fill_color[2],
          line_color=line_color,
      )
      plot.add_glyph(glyph)
  
      sun_radius = pitch_radius(module, sun_teeth)
      planet_radius = pitch_radius(module, planet_teeth)
  
      radius = sun_radius + planet_radius
      angle = half_tooth(planet_teeth)
  
      for i, j in [(+1, 0), (0, +1), (-1, 0), (0, -1)]:
          glyph = Gear(
              x=radius * i,
              y=radius * j,
              module=module,
              teeth=planet_teeth,
              angle=angle,
              fill_color=fill_color[1],
              line_color=line_color,
          )
          plot.add_glyph(glyph)
  
      return plot
  
file_path: bokeh/examples/advanced/extensions/gears/gears.py
imports: from math import pi
  from bokeh.io import show
  from bokeh.layouts import column
  from bokeh.plotting import figure
  from gear import Gear
label_desc: Use image node_id 5 for calling a global function with example usage: epicyclic_gear(module, sun_teeth, planet_teeth) and returns: plot