crystalscad 0.6.5 → 0.6.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/crystalscad.gemspec +3 -3
- data/examples/pipe_bug.rb +1 -1
- data/examples/text.rb +11 -0
- data/lib/crystalscad/CrystalScad.rb +22 -1
- data/lib/crystalscad/Hardware.rb +13 -13
- data/lib/crystalscad/version.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acc0be6258406fcd9ce18f27bcdfa1f7d3b58878
|
4
|
+
data.tar.gz: 7f6fe119c519dc95483a5dad60c72aca8fcbaf86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a044145935cb14d98890d87833a350a24009c288ea0bf36dbce2676e070d46433fcf3bcaedf661a5225315247670546fd9b5e7e7fdb70b319579baf16270428
|
7
|
+
data.tar.gz: c4c87cddd1ddae6809b49e6e5fb8121609ce20340200148062bc6c61779a441bdc741195d1e225731f7491e1de1704ec595830703ff1b6f86e95e58eae73a9c8
|
data/crystalscad.gemspec
CHANGED
@@ -7,9 +7,9 @@ require "crystalscad/version"
|
|
7
7
|
Gem::Specification.new do |gem|
|
8
8
|
gem.name = "crystalscad"
|
9
9
|
gem.version = CrystalScad::VERSION
|
10
|
-
gem.authors = ["
|
11
|
-
gem.email = ["
|
12
|
-
gem.homepage = "http://github.com/
|
10
|
+
gem.authors = ["Jennifer Glauche"]
|
11
|
+
gem.email = ["mail@crystalscad.jglauche.de"]
|
12
|
+
gem.homepage = "http://github.com/jglauche/CrystalScad"
|
13
13
|
gem.summary = %q{CrystalScad is a framework for programming OpenScad models in Ruby}
|
14
14
|
gem.description = %q{Inspired by SolidPython, based on RubyScad}
|
15
15
|
|
data/examples/pipe_bug.rb
CHANGED
data/examples/text.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/ruby1.9.3
|
2
|
+
require "rubygems"
|
3
|
+
require "crystalscad"
|
4
|
+
include CrystalScad
|
5
|
+
|
6
|
+
string = "CrystalScad!"
|
7
|
+
|
8
|
+
res = text(text: string)
|
9
|
+
res += text(text: string, size: 3).translate(y: 10)
|
10
|
+
res += text(text: string, spacing: 0.75).translate(y: 20)
|
11
|
+
res.save("text.scad")
|
@@ -256,8 +256,28 @@ module CrystalScad
|
|
256
256
|
class AdvancedPrimitive < Primitive
|
257
257
|
|
258
258
|
|
259
|
+
NUMERIC_ATTRIBUTES = []
|
260
|
+
|
261
|
+
def self.numeric_attributes(*attribute_names)
|
262
|
+
Array(attribute_names).flatten.each do |attrbute_name|
|
263
|
+
NUMERIC_ATTRIBUTES << attrbute_name.to_sym
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
class <<self
|
268
|
+
alias_method :numeric_attribute, :numeric_attributes
|
269
|
+
end
|
270
|
+
|
259
271
|
def initialize(attributes)
|
260
|
-
|
272
|
+
@attr = attributes.collect { |k, v|
|
273
|
+
value_output = if NUMERIC_ATTRIBUTES.include?(k.to_sym)
|
274
|
+
v.to_f
|
275
|
+
else
|
276
|
+
"\"#{v}\""
|
277
|
+
end
|
278
|
+
|
279
|
+
"#{k} = #{value_output}"
|
280
|
+
}.join(', ')
|
261
281
|
super
|
262
282
|
end
|
263
283
|
|
@@ -269,6 +289,7 @@ module CrystalScad
|
|
269
289
|
|
270
290
|
|
271
291
|
class Text < AdvancedPrimitive
|
292
|
+
numeric_attributes :size, :spacing
|
272
293
|
def initialize(attributes)
|
273
294
|
@operation = "text"
|
274
295
|
super(attributes)
|
data/lib/crystalscad/Hardware.rb
CHANGED
@@ -54,11 +54,11 @@ module CrystalScad::Hardware
|
|
54
54
|
add_to_bom
|
55
55
|
case @args[:type].to_s
|
56
56
|
when "912"
|
57
|
-
res = bolt_912(@args[:additional_length], @args[:additional_diameter])
|
57
|
+
res = bolt_912(@args[:additional_length], @args[:additional_diameter], @args[:head_margin])
|
58
58
|
when "933"
|
59
59
|
res = bolt_933(@args[:additional_length], @args[:additional_diameter], @args[:head_margin])
|
60
60
|
when "7380"
|
61
|
-
res = bolt_7380(@args[:additional_length], @args[:additional_diameter])
|
61
|
+
res = bolt_7380(@args[:additional_length], @args[:additional_diameter], @args[:head_margin])
|
62
62
|
else
|
63
63
|
raise "unkown type #{args[:type]} for Bolt!"
|
64
64
|
end
|
@@ -89,8 +89,11 @@ module CrystalScad::Hardware
|
|
89
89
|
end
|
90
90
|
|
91
91
|
# ISO 7380
|
92
|
-
def bolt_7380(additional_length=0, addtional_diameter=0)
|
93
|
-
|
92
|
+
def bolt_7380(additional_length=0, addtional_diameter=0, head_margin=0)
|
93
|
+
if head_margin.to_f != 0
|
94
|
+
puts "[warning] :head_margin is not implemented for 7380 bolts"
|
95
|
+
end
|
96
|
+
chart_iso7380 = {
|
94
97
|
3 => {head_dia:5.7,head_length:1.65},
|
95
98
|
4 => {head_dia:7.6,head_length:2.2},
|
96
99
|
5 => {head_dia:9.5,head_length:2.75},
|
@@ -107,9 +110,8 @@ module CrystalScad::Hardware
|
|
107
110
|
end
|
108
111
|
|
109
112
|
# DIN 912
|
110
|
-
def bolt_912(additional_length=0, addtional_diameter=0)
|
113
|
+
def bolt_912(additional_length=0, addtional_diameter=0, head_margin=0)
|
111
114
|
|
112
|
-
|
113
115
|
chart_din912 = {2 => {head_dia:3.8,head_length:2,thread_length:16},
|
114
116
|
2.5=> {head_dia:4.5,head_length:2.5,thread_length:17},
|
115
117
|
3 => {head_dia:5.5,head_length:3,thread_length:18},
|
@@ -131,8 +133,7 @@ module CrystalScad::Hardware
|
|
131
133
|
|
132
134
|
}
|
133
135
|
|
134
|
-
res = cylinder(d:chart_din912[@size][:head_dia],h:chart_din912[@size][:head_length]).translate(z:-chart_din912[@size][:head_length]).color("Gainsboro")
|
135
|
-
|
136
|
+
res = cylinder(d:chart_din912[@size][:head_dia]+head_margin,h:chart_din912[@size][:head_length]).translate(z:-chart_din912[@size][:head_length]).color("Gainsboro")
|
136
137
|
total_length = @length + additional_length
|
137
138
|
thread_length=chart_din912[@size][:thread_length]
|
138
139
|
if total_length.to_f <= thread_length
|
@@ -343,9 +344,9 @@ module CrystalScad::Hardware
|
|
343
344
|
end
|
344
345
|
|
345
346
|
def nut_934(show=true,margin=0,height_margin=0)
|
346
|
-
@s
|
347
|
+
size = @s + margin
|
347
348
|
|
348
|
-
res = cylinder(d:(
|
349
|
+
res = cylinder(d:(size/Math.sqrt(3))*2,h:@height+height_margin,fn:6)
|
349
350
|
res -= cylinder(d:@size,h:@height) if show == true
|
350
351
|
if @support
|
351
352
|
res -= add_support
|
@@ -357,9 +358,8 @@ module CrystalScad::Hardware
|
|
357
358
|
|
358
359
|
|
359
360
|
class TSlot < CrystalScad::Assembly
|
360
|
-
# the code in this class is based on code by
|
361
|
-
#
|
362
|
-
# Ported to CrystalScad by Joachim Glauche
|
361
|
+
# the code in this class is based on code by edef1c
|
362
|
+
# Ported to CrystalScad by Jennifer Glauche
|
363
363
|
# License: GPLv3
|
364
364
|
attr_accessor :args
|
365
365
|
def initialize(args={})
|
data/lib/crystalscad/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crystalscad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Jennifer Glauche
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyscad
|
@@ -68,7 +68,7 @@ dependencies:
|
|
68
68
|
version: 1.0.5
|
69
69
|
description: Inspired by SolidPython, based on RubyScad
|
70
70
|
email:
|
71
|
-
-
|
71
|
+
- mail@crystalscad.jglauche.de
|
72
72
|
executables:
|
73
73
|
- crystalgen
|
74
74
|
extensions: []
|
@@ -95,6 +95,7 @@ files:
|
|
95
95
|
- examples/printed_thread.rb
|
96
96
|
- examples/printed_thread2.rb
|
97
97
|
- examples/stack.rb
|
98
|
+
- examples/text.rb
|
98
99
|
- examples/threads.rb
|
99
100
|
- examples/threads2.rb
|
100
101
|
- examples/threads3.rb
|
@@ -119,7 +120,7 @@ files:
|
|
119
120
|
- skeleton_project/skeleton.rb
|
120
121
|
- static/logo.png
|
121
122
|
- static/logo_small.png
|
122
|
-
homepage: http://github.com/
|
123
|
+
homepage: http://github.com/jglauche/CrystalScad
|
123
124
|
licenses:
|
124
125
|
- GPL-3
|
125
126
|
metadata: {}
|
@@ -139,8 +140,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
140
|
version: '0'
|
140
141
|
requirements: []
|
141
142
|
rubyforge_project:
|
142
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.6.13
|
143
144
|
signing_key:
|
144
145
|
specification_version: 4
|
145
146
|
summary: CrystalScad is a framework for programming OpenScad models in Ruby
|
146
147
|
test_files: []
|
148
|
+
has_rdoc:
|