You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
2.3KB

  1. {% assign dark = page | dark %}
  2. {% assign light = page | light %}
  3. {% assign switch_width = include.width %}
  4. {% assign switch_height = include.height %}
  5. {% assign lever_position = include.position %}
  6. {% assign switch_origin_x = 0.0 | minus:switch_width | divided_by:2.0 %}
  7. {% assign switch_origin_y = 0.0 | minus:switch_height | divided_by:2.0 %}
  8. {% assign switch_stroke_width = 0.35 %}
  9. {% assign switch_inset = switch_stroke_width | divided_by:2.0 %}
  10. {% assign switch_interior_width = switch_width | minus:switch_stroke_width %}
  11. {% assign switch_interior_height = switch_height | minus:switch_stroke_width %}
  12. {% assign corner_radius = switch_inset %}
  13. {% assign view_width = switch_width | plus:switch_stroke_width %}
  14. {% assign view_height = switch_height | plus:switch_stroke_width %}
  15. {% assign view_origin_x = switch_origin_x | minus:switch_inset %}
  16. {% assign view_origin_y = switch_origin_y | minus:switch_inset %}
  17. {% assign knurl_stroke_width = 0.25 %}
  18. {% assign knurl_inset = knurl_stroke_width | times:2.0 %}
  19. {% assign knurl_length = switch_interior_width | minus:knurl_inset %}
  20. {% assign knurl_left = 0.0 | minus:knurl_length | divided_by:2.0 %}
  21. {% assign knurl_right = knurl_left | plus:knurl_length %}
  22. {% assign knurl_spacing = knurl_stroke_width | times:2.0 %}
  23. {% assign lever_height = knurl_spacing | times:4.0 | plus:knurl_stroke_width %}
  24. {% assign lever_inset = knurl_stroke_width %}
  25. {% assign lever_distance = switch_interior_height | minus:lever_height | divided_by:2.0 | minus:lever_inset %}
  26. {% assign lever_offset = lever_distance | times:lever_position | times:-1.0 %}
  27. <svg width="{{ view_width }}mm" height="{{ view_height }}mm"
  28. viewBox="{{ view_origin_x }} {{ view_origin_y }} {{ view_width }} {{ view_height }}">
  29. <g fill="{{ light }}" stroke="{{ dark }}">
  30. <rect x="{{ switch_origin_x }}" y="{{ switch_origin_y }}"
  31. width="{{ switch_width }}" height="{{ switch_height }}"
  32. rx="{{ corner_radius }}" ry="{{ corner_radius }}"
  33. stroke-width="{{ switch_stroke_width }}"/>
  34. <g stroke-width="{{ knurl_stroke_width }}" stroke-linecap="round">
  35. {% for index in (-2..2) %}
  36. {% assign y = knurl_spacing | times:index | plus:lever_offset %}
  37. <line x1="{{ knurl_left }}" x2="{{ knurl_right }}" y1="{{ y }}" y2="{{ y }}"/>
  38. {% endfor %}
  39. </g>
  40. </g>
  41. </svg>