crystalscad 0.5.8 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/bin/crystalgen +77 -14
- data/examples/openscad_examples/example002.rb +0 -1
- data/examples/pipe.rb +7 -5
- data/examples/printed_gear.rb +4 -4
- data/lib/crystalscad.rb +1 -1
- data/lib/crystalscad/Assembly.rb +70 -17
- data/lib/crystalscad/CrystalScad.rb +25 -10
- data/lib/crystalscad/Hardware.rb +22 -20
- data/lib/crystalscad/Primitive.rb +6 -1
- data/lib/crystalscad/version.rb +1 -1
- metadata +69 -96
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
N2M3M2I5ZDA0NTgwMGQ2NmMxMTE1OTc5YmU5NDEwNGIzODdhY2UyZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MTVmNWNiOWY0NjdjY2NhZjM4MTVlNTgwMGE2ODk0OTJkYjU4MTU5MQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YmYxNTI2YWI2YWNlMDMxNDkzZTRiMmMzOTU5YjliNTM3NjMzZTZhYzQzZmRi
|
10
|
+
NWUyNzcxYWQ3ZjQyYWNiMDEwOTRjNDJiZTU3NjY4ZThlNzY4OWI1ZmZlNmUz
|
11
|
+
YWY1ODRjMzcwN2EwZTM3ZWM3NmM4YWE2YjRiNDJmNzhlNzhkMDY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ODcyMWM5ZmUzYzMxYzNhN2NlNjkzOWUwODliNTQwM2FiM2U3ZjNlMmJhYTI2
|
14
|
+
ZTRiMmM1MTU4ZDdmZWY4ZjgwNDIxYWJiNWY2ZDNlZWJlNjBjNDUwNTRlZmVk
|
15
|
+
ZWM3ZTM2OTc3YjZhMWIyYzIyNjM4ODA3MGEwMDFjZmY1MmZjYWU=
|
data/bin/crystalgen
CHANGED
@@ -8,9 +8,9 @@ require "thor/actions"
|
|
8
8
|
class CrystalGen < Thor
|
9
9
|
include Thor::Actions
|
10
10
|
|
11
|
-
desc "
|
11
|
+
desc "new APP_NAME", "creates a new project stub"
|
12
12
|
|
13
|
-
def
|
13
|
+
def new(name)
|
14
14
|
|
15
15
|
create_file("#{name}/#{name}.rb") do
|
16
16
|
"#!/usr/bin/ruby1.9.3
|
@@ -30,10 +30,8 @@ require_all \"lib/**/*.rb\"
|
|
30
30
|
# Design -> Automatic Reload and Compile
|
31
31
|
# activated.
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
res.save(\"#{name}.scad\",\"$fn=64;\")
|
33
|
+
# Scans every file in lib/**/*.rb for classes and saves them in the output/ directory
|
34
|
+
save!
|
37
35
|
|
38
36
|
@@bom.save(\"bom.txt\")
|
39
37
|
|
@@ -50,9 +48,30 @@ res.save(\"#{name}.scad\",\"$fn=64;\")
|
|
50
48
|
|
51
49
|
create_file("#{name}/lib/assemblies/#{name}_assembly.rb") do
|
52
50
|
"class #{name.capitalize}Assembly < CrystalScad::Assembly
|
51
|
+
|
52
|
+
# Assemblies are used to show how different parts interact on your design.
|
53
|
+
|
54
|
+
# Skip generation of the 'output' method for this assembly.
|
55
|
+
# (will still generate 'show')
|
56
|
+
skip :output
|
53
57
|
|
54
58
|
def part(show)
|
55
|
-
|
59
|
+
# Create a test cube
|
60
|
+
cube = TestCube.new
|
61
|
+
|
62
|
+
# And another one, but translate this one next to the cube and change the color
|
63
|
+
# You can use any transformation on the class itself.
|
64
|
+
another_cube = TestCube.new.translate(z:cube.z).color(\"MediumTurquoise\")
|
65
|
+
|
66
|
+
# We're calling the show method on both cubes
|
67
|
+
res = cube.show
|
68
|
+
res += another_cube.show
|
69
|
+
|
70
|
+
# There's a bolt going through the cubes and a nut on the bottom. Let's show it
|
71
|
+
res += cube.show_hardware
|
72
|
+
|
73
|
+
# always make sure the lowest statement always returns the object that you're working on
|
74
|
+
res
|
56
75
|
end
|
57
76
|
|
58
77
|
end
|
@@ -62,11 +81,59 @@ end
|
|
62
81
|
create_file("#{name}/lib/printed/testcube.rb") do
|
63
82
|
"class TestCube < CrystalScad::Printed
|
64
83
|
def initialize()
|
65
|
-
|
84
|
+
# Here is a good place to define instance variables that make your part parametric.
|
85
|
+
# These variables are acessable from outside:
|
86
|
+
@x = 25
|
87
|
+
@y = 25
|
88
|
+
@z = 20
|
89
|
+
@hardware = []
|
90
|
+
@color = \"BurlyWood\"
|
91
|
+
|
92
|
+
# The variable below is not accessable from the outside unless you specify so with attr_accessable
|
93
|
+
@diameter = 10
|
66
94
|
end
|
67
|
-
|
95
|
+
|
68
96
|
def part(show)
|
69
|
-
cube
|
97
|
+
# We start with a cube and center it in x and y direction. The cube starts at z = 0 with this.
|
98
|
+
res = cube(@x,@y,@z).center_xy
|
99
|
+
|
100
|
+
# We want a bolt to go through it. It will be facing upwards however, so we will need to mirror it.
|
101
|
+
# Also translating it to twice the height, as we want to stack two of these cubes together in the assembly.
|
102
|
+
bolt = Bolt.new(4,40).mirror(z:1).translate(z:@z*2)
|
103
|
+
@hardware << bolt
|
104
|
+
|
105
|
+
# We also want a nut. And since the printing direction is from the bottom, we decide to add support to it.
|
106
|
+
nut = Nut.new(4,support:true,support_layer_height:0.3)
|
107
|
+
@hardware << nut
|
108
|
+
|
109
|
+
# substracting the @hardware array will call the .output method on each hardware item automatically
|
110
|
+
res -= @hardware
|
111
|
+
|
112
|
+
# colorize is a convenience thing to colorize your part differently in assemblies.
|
113
|
+
# You can specify @color in initalize (as default color), or set a different color in the assembly this way.
|
114
|
+
res = colorize(res)
|
115
|
+
|
116
|
+
# Note: Make sure you do this before adding parts (i.e. hardware) that have their own color and that
|
117
|
+
# you do not want to colorize.
|
118
|
+
|
119
|
+
# You can go ahead and show the hardware when the part produces its 'show' output file by uncommenting this:
|
120
|
+
# res += @hardware if show
|
121
|
+
# However, in this example, the Assembly file calls show_hardware in order to not show it twice.
|
122
|
+
|
123
|
+
# always make sure the lowest statement always returns the object that you're working on
|
124
|
+
res
|
125
|
+
end
|
126
|
+
|
127
|
+
# with view you can define more outputs of a file.
|
128
|
+
# This is useful when you are designing subassemblies of an object.
|
129
|
+
view :my_subassembly
|
130
|
+
|
131
|
+
def my_subassembly
|
132
|
+
res = hull(
|
133
|
+
cylinder(d:@diameter,h:@z),
|
134
|
+
cube(@x,@y,@z)
|
135
|
+
)
|
136
|
+
res
|
70
137
|
end
|
71
138
|
|
72
139
|
end
|
@@ -80,10 +147,6 @@ watch( \'#{name}.rb' ) {|md|
|
|
80
147
|
system(\"./#{name}.rb\")
|
81
148
|
}
|
82
149
|
|
83
|
-
watch( 'lib/(.*)\.rb' ) {|md|
|
84
|
-
system(\"./#{name}.rb\")
|
85
|
-
}
|
86
|
-
|
87
150
|
watch( 'lib/*/(.*)\.rb' ) {|md|
|
88
151
|
system(\"./#{name}.rb\")
|
89
152
|
}
|
data/examples/pipe.rb
CHANGED
@@ -28,11 +28,13 @@ pipe.ccw(30,160,"blue")
|
|
28
28
|
pipe.ccw(30,60,"pink")
|
29
29
|
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
pipe.cw(30,60,"blue")
|
32
|
+
pipe.cw(20,60,"green")
|
33
|
+
|
34
|
+
pipe.cw(10,60,"black")
|
35
|
+
pipe.line(33)
|
36
|
+
pipe.ccw(30,60,"pink")
|
37
|
+
pipe.cw(30,90,"white")
|
36
38
|
#pipe.cw(15,95,"silver")
|
37
39
|
#pipe.line(10,"pink")
|
38
40
|
res = pipe.pipe
|
data/examples/printed_gear.rb
CHANGED
@@ -4,11 +4,11 @@ require "crystalscad"
|
|
4
4
|
include CrystalScad
|
5
5
|
|
6
6
|
|
7
|
-
g1 = PrintedGear.new(module:2.0,teeth:40,bore:
|
7
|
+
g1 = PrintedGear.new(module:2.0,teeth:40,bore:8,height:4)
|
8
8
|
g2 = PrintedGear.new(module:2.0,teeth:20,bore:5,height:4,rotation:0.5) # rotation in number of teeth
|
9
9
|
|
10
|
-
res = g1.show.color("red")
|
11
|
-
res += g2.show.
|
10
|
+
res = g1.show.color("red")
|
11
|
+
res += g2.show.translate(x:g1.distance_to(g2))
|
12
12
|
|
13
|
-
res.save("printed_gear.scad")
|
13
|
+
res.save("printed_gear.scad","$fn=64;")
|
14
14
|
|
data/lib/crystalscad.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'crystalscad/version'
|
2
2
|
require 'crystalscad/BillOfMaterial'
|
3
3
|
require 'crystalscad/CrystalScadObject'
|
4
|
-
require 'crystalscad/Assembly'
|
5
4
|
require 'crystalscad/Primitive'
|
5
|
+
require 'crystalscad/Assembly'
|
6
6
|
require 'crystalscad/Hardware'
|
7
7
|
|
8
8
|
require 'crystalscad/LinearBearing'
|
data/lib/crystalscad/Assembly.rb
CHANGED
@@ -14,12 +14,21 @@
|
|
14
14
|
# along with CrystalScad. If not, see <http://www.gnu.org/licenses/>.
|
15
15
|
|
16
16
|
module CrystalScad
|
17
|
-
class Assembly
|
18
|
-
attr_accessor :height,:x,:y,:z
|
17
|
+
class Assembly < CrystalScad::Primitive
|
18
|
+
attr_accessor :height,:x,:y,:z,:skip,:color,:hardware,:transformations
|
19
|
+
|
20
|
+
def transform(obj)
|
21
|
+
return obj if @transformations == nil
|
22
|
+
@transformations.each do |t|
|
23
|
+
obj.transformations << t
|
24
|
+
end
|
25
|
+
|
26
|
+
return obj
|
27
|
+
end
|
19
28
|
|
20
29
|
def initialize(args={})
|
21
30
|
@args = args if @args == nil
|
22
|
-
|
31
|
+
|
23
32
|
@x = args[:x]
|
24
33
|
@y = args[:y]
|
25
34
|
@z = args[:z]
|
@@ -39,11 +48,11 @@ module CrystalScad
|
|
39
48
|
end
|
40
49
|
|
41
50
|
def show
|
42
|
-
part(true)
|
51
|
+
transform(part(true))
|
43
52
|
end
|
44
53
|
|
45
54
|
def output
|
46
|
-
part(false)
|
55
|
+
transform(part(false))
|
47
56
|
end
|
48
57
|
|
49
58
|
def part(show=false)
|
@@ -65,18 +74,6 @@ module CrystalScad
|
|
65
74
|
def *(args)
|
66
75
|
return self.output*args
|
67
76
|
end
|
68
|
-
|
69
|
-
def translate(args)
|
70
|
-
return self.output.translate(args)
|
71
|
-
end
|
72
|
-
|
73
|
-
def mirror(args)
|
74
|
-
return self.output.mirror(args)
|
75
|
-
end
|
76
|
-
|
77
|
-
def rotate(args)
|
78
|
-
return self.output.rotate(args)
|
79
|
-
end
|
80
77
|
|
81
78
|
def scad_output()
|
82
79
|
return self.output.scad_output
|
@@ -100,6 +97,62 @@ module CrystalScad
|
|
100
97
|
return a
|
101
98
|
end
|
102
99
|
|
100
|
+
# Makes the save_all method in CrystalScad skip the specified method(s)
|
101
|
+
def self.skip(args)
|
102
|
+
@skip = [] if @skip == nil
|
103
|
+
if args.kind_of? Array
|
104
|
+
args.each do |arg|
|
105
|
+
skip(arg)
|
106
|
+
end
|
107
|
+
return
|
108
|
+
end
|
109
|
+
|
110
|
+
@skip << args.to_s
|
111
|
+
return
|
112
|
+
end
|
113
|
+
|
114
|
+
def self.get_skip
|
115
|
+
@skip
|
116
|
+
end
|
117
|
+
|
118
|
+
|
119
|
+
def self.view(args)
|
120
|
+
@added_views = [] if @added_views == nil
|
121
|
+
if args.kind_of? Array
|
122
|
+
args.each do |arg|
|
123
|
+
view(arg)
|
124
|
+
end
|
125
|
+
return
|
126
|
+
end
|
127
|
+
|
128
|
+
@added_views << args.to_s
|
129
|
+
return
|
130
|
+
end
|
131
|
+
|
132
|
+
def self.get_views
|
133
|
+
@added_views || []
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
def color(args)
|
138
|
+
@color = args
|
139
|
+
return self
|
140
|
+
end
|
141
|
+
|
142
|
+
def colorize(res)
|
143
|
+
return res if @color == nil
|
144
|
+
return res.color(@color)
|
145
|
+
end
|
146
|
+
|
147
|
+
def show_hardware
|
148
|
+
return nil if @hardware == nil or @hardware == []
|
149
|
+
res = nil
|
150
|
+
@hardware.each do |part|
|
151
|
+
res += part.show
|
152
|
+
end
|
153
|
+
transform(res)
|
154
|
+
end
|
155
|
+
|
103
156
|
end
|
104
157
|
|
105
158
|
class Printed < Assembly
|
@@ -105,7 +105,7 @@ module CrystalScad
|
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
|
-
def cube(args={})
|
108
|
+
def cube(args={},y=nil,z=nil)
|
109
109
|
if args.kind_of? Array
|
110
110
|
args = {size:args}
|
111
111
|
elsif args.kind_of? Hash
|
@@ -113,6 +113,9 @@ module CrystalScad
|
|
113
113
|
args[:y] ||= 0
|
114
114
|
args[:z] ||= 0
|
115
115
|
args = {size:[args[:x],args[:y],args[:z]]}
|
116
|
+
elsif args.kind_of? Numeric
|
117
|
+
x = args
|
118
|
+
args = {size:[x,y,z]}
|
116
119
|
end
|
117
120
|
Cube.new(args)
|
118
121
|
end
|
@@ -322,11 +325,11 @@ module CrystalScad
|
|
322
325
|
if args.kind_of? Array
|
323
326
|
r = self
|
324
327
|
args.each do |a|
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
+
# if a.respond_to? :show
|
329
|
+
# r = Union.new(r,a.show)
|
330
|
+
# else
|
328
331
|
r = Union.new(r,a)
|
329
|
-
|
332
|
+
# end
|
330
333
|
end
|
331
334
|
r
|
332
335
|
else
|
@@ -339,11 +342,11 @@ module CrystalScad
|
|
339
342
|
if args.kind_of? Array
|
340
343
|
r = self
|
341
344
|
args.each do |a|
|
342
|
-
if a.respond_to? :output
|
343
|
-
|
344
|
-
else
|
345
|
+
#if a.respond_to? :output
|
346
|
+
# r = Difference.new(r,a.output)
|
347
|
+
#else
|
345
348
|
r = Difference.new(r,a)
|
346
|
-
end
|
349
|
+
#end
|
347
350
|
end
|
348
351
|
r
|
349
352
|
else
|
@@ -573,6 +576,10 @@ module CrystalScad
|
|
573
576
|
end
|
574
577
|
|
575
578
|
|
579
|
+
def save!
|
580
|
+
Dir.glob("lib/**/*.rb").map{|l| get_classes_from_file(l)}.flatten.map{|l| save_all(l)}
|
581
|
+
end
|
582
|
+
|
576
583
|
# Saves all files generated of a CrystalScad file
|
577
584
|
# Saves outputs of
|
578
585
|
# - show
|
@@ -581,8 +588,16 @@ module CrystalScad
|
|
581
588
|
def save_all(class_name,fn=$fn)
|
582
589
|
|
583
590
|
res = class_name.send :new
|
591
|
+
|
592
|
+
# skip defined classes
|
593
|
+
skip = class_name.send :get_skip
|
594
|
+
skip = [] if skip == nil
|
595
|
+
skip << "show_hardware"
|
596
|
+
added_views = class_name.send :get_views
|
597
|
+
|
584
598
|
# regexp for output* view* show*
|
585
|
-
res.methods.grep(Regexp.union(/^output/,/^view/,/^show/)).each do |i|
|
599
|
+
(res.methods.grep(Regexp.union(/^output/,/^view/,/^show/)) + added_views).each do |i|
|
600
|
+
next if skip.include? i.to_s
|
586
601
|
output = nil
|
587
602
|
|
588
603
|
res.send :initialize # ensure default values are loaded at each interation
|
data/lib/crystalscad/Hardware.rb
CHANGED
@@ -15,8 +15,10 @@
|
|
15
15
|
|
16
16
|
module CrystalScad::Hardware
|
17
17
|
|
18
|
-
class
|
19
|
-
|
18
|
+
class Hardware < CrystalScad::Assembly
|
19
|
+
end
|
20
|
+
|
21
|
+
class Bolt < Hardware
|
20
22
|
|
21
23
|
def initialize(size,length,args={})
|
22
24
|
@args = args
|
@@ -86,14 +88,6 @@ module CrystalScad::Hardware
|
|
86
88
|
transform(res)
|
87
89
|
end
|
88
90
|
|
89
|
-
def transform(obj)
|
90
|
-
@transformations.each do |t|
|
91
|
-
obj.transformations << t
|
92
|
-
end
|
93
|
-
|
94
|
-
return obj
|
95
|
-
end
|
96
|
-
|
97
91
|
# ISO 7380
|
98
92
|
def bolt_7380(additional_length=0, addtional_diameter=0)
|
99
93
|
chart_iso7380 = {
|
@@ -173,7 +167,7 @@ module CrystalScad::Hardware
|
|
173
167
|
|
174
168
|
end
|
175
169
|
|
176
|
-
class Washer <
|
170
|
+
class Washer < Hardware
|
177
171
|
def initialize(size,args={})
|
178
172
|
@args=args
|
179
173
|
@size = size
|
@@ -197,7 +191,7 @@ module CrystalScad::Hardware
|
|
197
191
|
end
|
198
192
|
@height = @chart_din125[@size][:height]
|
199
193
|
|
200
|
-
|
194
|
+
@transformations ||= []
|
201
195
|
end
|
202
196
|
|
203
197
|
def description
|
@@ -209,20 +203,26 @@ module CrystalScad::Hardware
|
|
209
203
|
washer = cylinder(d:@chart_din125[@size][:outer_diameter].to_f,h:@chart_din125[@size][:height].to_f)
|
210
204
|
washer-= cylinder(d:@size,h:@chart_din125[@size][:outer_diameter].to_f+0.2).translate(z:-0.1)
|
211
205
|
washer.color("Gainsboro")
|
206
|
+
transform(washer)
|
212
207
|
end
|
213
208
|
|
214
209
|
end
|
215
210
|
|
216
|
-
class Nut <
|
211
|
+
class Nut < Hardware
|
217
212
|
attr_accessor :height
|
218
213
|
def initialize(size,args={})
|
219
214
|
@size = size
|
220
215
|
@type = args[:type] ||= "934"
|
221
216
|
@material = args[:material] ||= "8.8"
|
222
217
|
@surface = args[:surface] ||= "zinc plated"
|
218
|
+
@support = args[:support] ||= false
|
219
|
+
@support_layer_height = args[:support_layer_height] ||= 0.2
|
220
|
+
|
223
221
|
|
222
|
+
@transformations ||= []
|
224
223
|
@args = args
|
225
224
|
prepare_data
|
225
|
+
@height = args[:height] || @height
|
226
226
|
end
|
227
227
|
|
228
228
|
def description
|
@@ -251,14 +251,13 @@ module CrystalScad::Hardware
|
|
251
251
|
@s = chart_934[@size][:side_to_side]
|
252
252
|
@height = chart_934[@size][:height]
|
253
253
|
@support_diameter = chart_934[@size][:support_diameter]
|
254
|
-
|
255
254
|
if @type == "985"
|
256
255
|
@height = chart_985[@size][:height]
|
257
256
|
end
|
258
257
|
|
259
258
|
end
|
260
259
|
|
261
|
-
def add_support(layer_height
|
260
|
+
def add_support(layer_height=@support_layer_height)
|
262
261
|
res = cylinder(d:@support_diameter,h:@height-layer_height)
|
263
262
|
# on very small nuts, add a support base of one layer height, so the support won't fall over
|
264
263
|
if @size < 6
|
@@ -269,19 +268,22 @@ module CrystalScad::Hardware
|
|
269
268
|
|
270
269
|
def output(margin=0.3)
|
271
270
|
add_to_bom
|
272
|
-
return nut_934(false,margin)
|
271
|
+
return transform(nut_934(false,margin))
|
273
272
|
end
|
274
273
|
|
275
274
|
def show
|
276
275
|
add_to_bom
|
277
|
-
return nut_934
|
276
|
+
return transform(nut_934)
|
278
277
|
end
|
279
278
|
|
280
279
|
def nut_934(show=true,margin=0)
|
281
280
|
@s += margin
|
282
|
-
|
283
|
-
|
284
|
-
|
281
|
+
res = cylinder(d:(@s/Math.sqrt(3))*2,h:@height,fn:6)
|
282
|
+
res -= cylinder(d:@size,h:@height) if show == true
|
283
|
+
if @support
|
284
|
+
res -= add_support
|
285
|
+
end
|
286
|
+
res.color("Gainsboro")
|
285
287
|
end
|
286
288
|
|
287
289
|
end
|
@@ -8,6 +8,7 @@ module CrystalScad
|
|
8
8
|
if args[:z] == nil
|
9
9
|
args[:z] = 0
|
10
10
|
end
|
11
|
+
@transformations ||= []
|
11
12
|
@transformations << Rotate.new(args)
|
12
13
|
self
|
13
14
|
end
|
@@ -18,16 +19,19 @@ module CrystalScad
|
|
18
19
|
end
|
19
20
|
|
20
21
|
def translate(args)
|
22
|
+
@transformations ||= []
|
21
23
|
@transformations << Translate.new(args)
|
22
|
-
self
|
24
|
+
self
|
23
25
|
end
|
24
26
|
|
25
27
|
def union(args)
|
28
|
+
@transformations ||= []
|
26
29
|
@transformations << Union.new(args)
|
27
30
|
self
|
28
31
|
end
|
29
32
|
|
30
33
|
def mirror(args)
|
34
|
+
@transformations ||= []
|
31
35
|
@transformations << Mirror.new(args)
|
32
36
|
self
|
33
37
|
end
|
@@ -36,6 +40,7 @@ module CrystalScad
|
|
36
40
|
if args.kind_of? Numeric or args.kind_of? Array
|
37
41
|
args = {v:args}
|
38
42
|
end
|
43
|
+
@transformations ||= []
|
39
44
|
@transformations << Scale.new(args)
|
40
45
|
self
|
41
46
|
end
|
data/lib/crystalscad/version.rb
CHANGED
metadata
CHANGED
@@ -1,94 +1,79 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: crystalscad
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
- 8
|
10
|
-
version: 0.5.8
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Joachim Glauche
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2015-05-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: rubyscad
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 15
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
version: "1.0"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
33
20
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: require_all
|
37
21
|
prerelease: false
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: require_all
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
48
34
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: wijet-thor
|
52
35
|
prerelease: false
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: wijet-thor
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
63
47
|
version: 0.14.10
|
64
48
|
type: :runtime
|
65
|
-
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: observr
|
68
49
|
prerelease: false
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.14.10
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: observr
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
79
61
|
version: 1.0.5
|
80
62
|
type: :runtime
|
81
|
-
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.0.5
|
82
69
|
description: Inspired by SolidPython, based on RubyScad
|
83
|
-
email:
|
70
|
+
email:
|
84
71
|
- webmaster@joaz.de
|
85
|
-
executables:
|
72
|
+
executables:
|
86
73
|
- crystalgen
|
87
74
|
extensions: []
|
88
|
-
|
89
75
|
extra_rdoc_files: []
|
90
|
-
|
91
|
-
files:
|
76
|
+
files:
|
92
77
|
- COPYING
|
93
78
|
- Gemfile
|
94
79
|
- README.md
|
@@ -132,39 +117,27 @@ files:
|
|
132
117
|
- static/logo.png
|
133
118
|
- static/logo_small.png
|
134
119
|
homepage: http://github.com/Joaz/CrystalScad
|
135
|
-
licenses:
|
120
|
+
licenses:
|
136
121
|
- GPL-3
|
122
|
+
metadata: {}
|
137
123
|
post_install_message:
|
138
124
|
rdoc_options: []
|
139
|
-
|
140
|
-
require_paths:
|
125
|
+
require_paths:
|
141
126
|
- lib
|
142
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
- !ruby/object:Gem::Version
|
147
|
-
hash: 53
|
148
|
-
segments:
|
149
|
-
- 1
|
150
|
-
- 9
|
151
|
-
- 3
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
152
131
|
version: 1.9.3
|
153
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
hash: 3
|
159
|
-
segments:
|
160
|
-
- 0
|
161
|
-
version: "0"
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
162
137
|
requirements: []
|
163
|
-
|
164
138
|
rubyforge_project:
|
165
|
-
rubygems_version:
|
139
|
+
rubygems_version: 2.2.2
|
166
140
|
signing_key:
|
167
|
-
specification_version:
|
141
|
+
specification_version: 4
|
168
142
|
summary: CrystalScad is a framework for programming OpenScad models in Ruby
|
169
143
|
test_files: []
|
170
|
-
|