class SolidRuby::Assemblies::Washer

Public Class Methods

new(size, args = {}) click to toggle source
Calls superclass method SolidRuby::Assemblies::Assembly::new
# File lib/solidruby/assemblies/washer.rb, line 18
def initialize(size, args = {})
  @args = args
  @size = size
  @args[:type] ||= '125'
  @args[:material] ||= 'steel 8.8'
  @args[:surface] ||= 'zinc plated'

  @chart_din125 = {
    3.2 => { outer_diameter: 7, height: 0.5 },
    3.7 => { outer_diameter: 8, height: 0.5 },
    4.3 => { outer_diameter: 9, height: 0.8 },
    5.3 => { outer_diameter: 10, height: 1.0 },
    6.4 => { outer_diameter: 12, height: 1.6 },
    8.4 => { outer_diameter: 16, height: 1.6 },
    10.5 => { outer_diameter: 20, height: 2.0 },
    13.0 => { outer_diameter: 24, height: 2.5 }
  }
  if @chart_din125[@size].nil?
    @chart_din125.map { |k, _v| k }.sort.reverse.map { |s| s > @size ? size = s : nil }
    @size = size
  end
  @height = @chart_din125[@size][:height]

  @transformations ||= []
  super(args)
end

Public Instance Methods

description() click to toggle source
# File lib/solidruby/assemblies/washer.rb, line 45
def description
  "Washer #{@args[:size]}, Material #{@args[:material]} #{@args[:surface]}"
end
show() click to toggle source
# File lib/solidruby/assemblies/washer.rb, line 49
def show
  add_to_bom
  washer = cylinder(d: @chart_din125[@size][:outer_diameter].to_f, h: @chart_din125[@size][:height].to_f)
  washer -= cylinder(d: @size, h: @chart_din125[@size][:outer_diameter].to_f + 0.2).translate(z: -0.1)
  washer.color('Gainsboro')
  transform(washer)
end