crystalscad 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 287d067c580abbd3c12857eaf2d24f4b2c0c3195
4
+ data.tar.gz: d1b32c216e29a883f4f76ddf7ce4434735305e5d
5
+ SHA512:
6
+ metadata.gz: 18f560c3ed30377de9236824876ab974ae54f4ddb386527152c975a81830e24fd43845b25d47c4c3504c85b04121fa154b5cc1ee639416addd5a0f302afbdcf8
7
+ data.tar.gz: 4ea021b28a6b058881c763649e0cf8b147823032db76b94ea2dca66d3d03faa54b4e1344434227fdd79ccc9d4d42455e5b8d9e95c72fe8b423030df156752f7a
data/README.md CHANGED
@@ -10,14 +10,12 @@ Installation:
10
10
 
11
11
  Dependencies:
12
12
 
13
- - Ruby 1.9.3
13
+ - ruby 2 or higher
14
14
  - rubygems
15
15
 
16
16
  Install via gem:
17
17
  ### \# gem install crystalscad
18
18
 
19
- if you have multiple ruby versions, you likely need to use gem1.9.3 instead of gem.
20
-
21
19
  Install via git:
22
20
 
23
21
  - clone repository
data/bin/crystalgen CHANGED
@@ -13,7 +13,7 @@ class CrystalGen < Thor
13
13
  def new(name)
14
14
 
15
15
  create_file("#{name}/#{name}.rb") do
16
- "#!/usr/bin/ruby1.9.3
16
+ "#!/usr/bin/env ruby
17
17
  require \"rubygems\"
18
18
  require \"crystalscad\"
19
19
  require \"require_all\"
@@ -33,7 +33,8 @@ require_all \"lib/**/*.rb\"
33
33
  # Scans every file in lib/**/*.rb for classes and saves them in the output/ directory
34
34
  save!
35
35
 
36
- @@bom.save(\"bom.txt\")
36
+ # Disabled by default for now since this will give a warning.
37
+ # @@bom.save(\"bom.txt\")
37
38
 
38
39
  "
39
40
  end
data/examples/knurls.rb CHANGED
@@ -6,10 +6,14 @@ include CrystalScad
6
6
 
7
7
 
8
8
 
9
- res = knurled_cube([22,10,4])
10
- #Total rendering time: 0 hours, 1 minutes, 6 seconds
9
+ res = knurled_cube([41,10,4])
10
+ #Total rendering time: 0 hours, 5 minutes, 53 seconds
11
+
12
+ #Total rendering time: 0 hours, 1 minutes, 41 seconds
13
+
14
+ #res = knurled_cylinder(d:16,h:10)
15
+
11
16
 
12
- # Total rendering time: 0 hours, 1 minutes, 1 seconds with render
13
17
 
14
18
  res.save("knurls.scad","$fn=64;")
15
19
 
data/examples/stack.rb CHANGED
@@ -3,6 +3,7 @@ require "rubygems"
3
3
  require "crystalscad"
4
4
  include CrystalScad
5
5
 
6
+ # Note that this example does not work as intended and the function is deprecated
6
7
 
7
8
  parts = [
8
9
  Washer.new(4.3),
@@ -12,11 +13,11 @@ parts = [
12
13
  ]
13
14
  bolt = Bolt.new(4,16).show
14
15
  bolt_assembly = bolt
15
- bolt_assembly += stack({method:"output"}, *parts)
16
+ bolt_assembly += stack({method:"output",spacing:0.1}, *parts)
16
17
 
17
18
  x,y,z = position(bolt)
18
19
  bolt_assembly.translate(x:x*-1,y:y*-1,z:z*-1)
19
20
 
20
- puts bolt_assembly.scad_output
21
+ bolt_assembly.save("stack.scad")
21
22
 
22
23
 
@@ -544,16 +544,23 @@ module CrystalScad
544
544
  end
545
545
 
546
546
 
547
- # Stacks parts along the Z axis
547
+ # Deprecated: Stacks parts along the Z axis
548
548
  # works on all Assemblies that have a @height definition
549
+ # TODO: Make a better functionality similar to this, that is:
550
+ # - easier to use
551
+ # - throws better error messages
552
+ # - doesn't assume that everything falls down like gravity in every case
549
553
  def stack(args={}, *parts)
550
554
  args[:method] ||= "show"
551
- args[:additional_spacing] ||= 0
555
+ args[:spacing] ||= 0
556
+ puts "CrystalScad Warning: Please note that the stack method is deprecated and will be removed or replaced in the future"
552
557
  @assembly = nil
553
558
  z = 0
554
559
  parts.each do |part|
555
- @assembly += (part.send args[:method]).translate(z:z)
556
- z+= part.height + args[:additional_spacing]
560
+ item = (part.send args[:method])
561
+ next if item == nil or !item.respond_to? "translate"
562
+ @assembly += item.translate(z:z)
563
+ z+= part.height + args[:spacing]
557
564
  end
558
565
  @assembly
559
566
  end
@@ -40,9 +40,5 @@ module CrystalScad
40
40
  file.puts scad_output
41
41
  file.close
42
42
  end
43
-
44
- def method_missing(meth, *args, &block)
45
- end
46
-
47
43
  end
48
44
  end
@@ -1,4 +1,4 @@
1
1
  module CrystalScad
2
- VERSION = "0.6.4"
2
+ VERSION = "0.6.5"
3
3
  end
4
4
 
data/manual/manual.html CHANGED
@@ -334,6 +334,33 @@ This method can produce both show and output. The show variable is set to true w
334
334
  # Small introduction to ruby
335
335
  TODO: variables, comments, class inheritance?
336
336
 
337
+ ---
338
+ # Units
339
+
340
+ All units are mm by default.
341
+
342
+ ###Note on how Ruby casts numeric values:
343
+
344
+ ```ruby
345
+ @foo = 11 # Casts as Integer
346
+ @bar = 11.0 # Casts as Decimal
347
+
348
+ ```
349
+ This is important if you devide by an Integer, for example:
350
+ ```ruby
351
+ @foo / 2 # results in 5
352
+ @bar / 2 # results in 5.5
353
+ ```
354
+ As good practice, you should divide by a Decimal, which will cast the Integer to Decimal:
355
+ ```ruby
356
+ @foo / 2.0 # results in 5.5
357
+ @bar / 2.0 # results in 5.5
358
+ ```
359
+
360
+
361
+
362
+
363
+
337
364
  ---
338
365
  # Primitives
339
366
  ## Cube
@@ -350,6 +377,32 @@ cube(x: value , y: value, z: value)
350
377
  cube(size: 1)
351
378
  ```
352
379
  ### Centering
380
+ You can put one of these methods directly after the cube method:
381
+ ```ruby
382
+ cube(size: 1).center # Center in X,Y and Z
383
+ cube(size: 1).center_x # Center in X
384
+ cube(size: 1).center_y # Center in Y
385
+ cube(size: 1).center_xy # Center in X and Y
386
+ cube(size: 1).center_z # Center Z
387
+
388
+ ```
389
+ ---
390
+ ## Cylinder
391
+ Creates a cylinder centered in X & Y
392
+ ```ruby
393
+ cylinder(d:5,h:10) # Creates a cylinder with diameter 5 and height 10
394
+ ```
395
+ parameters:
396
+ ```ruby
397
+ r: radius
398
+ d: diameter
399
+ h: height
400
+ ```
401
+
402
+
403
+
404
+ ---
405
+
353
406
 
354
407
 
355
408
 
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
- hash: 15
5
- prerelease:
6
- segments:
7
- - 0
8
- - 6
9
- - 4
10
- version: 0.6.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.5
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
- date: 2015-06-19 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2017-06-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: rubyscad
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
26
17
  - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 15
29
- segments:
30
- - 1
31
- - 0
32
- version: "1.0"
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
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
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:
41
31
  - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 9
44
- segments:
45
- - 1
46
- - 3
47
- version: "1.3"
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
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
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:
56
45
  - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 51
59
- segments:
60
- - 0
61
- - 14
62
- - 10
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
- requirement: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
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:
72
59
  - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 29
75
- segments:
76
- - 1
77
- - 0
78
- - 5
60
+ - !ruby/object:Gem::Version
79
61
  version: 1.0.5
80
62
  type: :runtime
81
- version_requirements: *id004
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
@@ -135,39 +120,27 @@ files:
135
120
  - static/logo.png
136
121
  - static/logo_small.png
137
122
  homepage: http://github.com/Joaz/CrystalScad
138
- licenses:
123
+ licenses:
139
124
  - GPL-3
125
+ metadata: {}
140
126
  post_install_message:
141
127
  rdoc_options: []
142
-
143
- require_paths:
128
+ require_paths:
144
129
  - lib
145
- required_ruby_version: !ruby/object:Gem::Requirement
146
- none: false
147
- requirements:
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ requirements:
148
132
  - - ">="
149
- - !ruby/object:Gem::Version
150
- hash: 53
151
- segments:
152
- - 1
153
- - 9
154
- - 3
133
+ - !ruby/object:Gem::Version
155
134
  version: 1.9.3
156
- required_rubygems_version: !ruby/object:Gem::Requirement
157
- none: false
158
- requirements:
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ requirements:
159
137
  - - ">="
160
- - !ruby/object:Gem::Version
161
- hash: 3
162
- segments:
163
- - 0
164
- version: "0"
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
165
140
  requirements: []
166
-
167
141
  rubyforge_project:
168
- rubygems_version: 1.8.15
142
+ rubygems_version: 2.5.1
169
143
  signing_key:
170
- specification_version: 3
144
+ specification_version: 4
171
145
  summary: CrystalScad is a framework for programming OpenScad models in Ruby
172
146
  test_files: []
173
-