Module: CrystalScad::Extras

Included in:
CrystalScad
Defined in:
lib/crystalscad/Extras.rb

Defined Under Namespace

Classes: Triangle

Instance Method Summary collapse

Instance Method Details

#knurl(y) ⇒ Object



62
63
64
65
66
67
68
69
# File 'lib/crystalscad/Extras.rb', line 62

def knurl(y)
	x = 1.5
	height = 1.5
	res = cube(([x,y,height]))
	res -= cylinder(d:0.9,h:height*1.42,fn:16).rotate(y:45).translate(x:0)
	res -= cylinder(d:0.9,h:height*1.42,fn:16).rotate(y:-45).translate(x:1.5)
	res
end

#knurled_cube(size) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/crystalscad/Extras.rb', line 72

def knurled_cube(size)
	x = size[0]
	y = size[1]
	z = size[2]
	res = nil
		
	(x / 1.5).ceil.times do |i|
		(z / 1.5).ceil.times do |f|
			res += knurl(y).translate(x:i*1.5,z:f*1.5) 			
		end
	end

	res *= cube([x,y,z])


	res
end

#knurled_cylinder(args = {}) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/crystalscad/Extras.rb', line 91

def knurled_cylinder(args={})
	res = cylinder(args)	
	height = args[:h]
	r = args[:d] / 2.0

	24.times do |i|
		(height/2).ceil.times do |f| 
			res -= cylinder(d:0.9,h:height*2).rotate(y:45).translate(y:-r,z:f*2)
			res -= cylinder(d:0.9,h:height*2).rotate(y:-45).translate(y:-r,z:f*2)
		end
		res.rotate(z:15)
	end
	res
end