mersh 0.0.1 → 0.0.2
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.
- data/lib/mersh.rb +7 -7
- data/test/capitalized_ascii.stl +86 -0
- data/test/test_mersh.rb +7 -0
- metadata +4 -3
data/lib/mersh.rb
CHANGED
@@ -21,7 +21,7 @@ require 'json'
|
|
21
21
|
require 'digest/md5'
|
22
22
|
|
23
23
|
class Mersh
|
24
|
-
VERSION = "0.0.
|
24
|
+
VERSION = "0.0.2"
|
25
25
|
attr_accessor :vertices, :faces, :normals
|
26
26
|
|
27
27
|
def initialize(file)
|
@@ -102,12 +102,12 @@ class Mersh
|
|
102
102
|
|
103
103
|
stl_data = @file.read
|
104
104
|
|
105
|
-
stl_data.gsub!(/^\s*solid
|
106
|
-
stl_data.gsub!(/^\s*facet normal
|
107
|
-
stl_data.gsub!(/^\s*vertex
|
108
|
-
stl_data.gsub!(/^\s*endloop
|
109
|
-
stl_data.gsub!(/^\s*endsolid
|
110
|
-
stl_data.gsub!(/^\s*$\n
|
105
|
+
stl_data.gsub!(/^\s*solid.*$/i, '')
|
106
|
+
stl_data.gsub!(/^\s*facet normal /i, '').gsub!(/^\s*outer loop.*$/i, '')
|
107
|
+
stl_data.gsub!(/^\s*vertex /i, '')
|
108
|
+
stl_data.gsub!(/^\s*endloop.*$/i, '').gsub!(/^\s*endfacet.*$/i, '')
|
109
|
+
stl_data.gsub!(/^\s*endsolid.*$/i, '')
|
110
|
+
stl_data.gsub!(/^\s*$\n/i, '')
|
111
111
|
|
112
112
|
stl_data.split("\n").each do |line|
|
113
113
|
line_pos = 1 if line_pos > 4
|
@@ -0,0 +1,86 @@
|
|
1
|
+
SOLID Untitled1
|
2
|
+
FACET NORMAL 0.00000000E+00 0.00000000E+00 1.00000000E+00
|
3
|
+
OUTER LOOP
|
4
|
+
VERTEX -1.96850394E+00 1.96850394E+00 1.96850394E+00
|
5
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
6
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
7
|
+
ENDLOOP
|
8
|
+
ENDFACET
|
9
|
+
FACET NORMAL 0.00000000E+00 -0.00000000E+00 1.00000000E+00
|
10
|
+
OUTER LOOP
|
11
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
12
|
+
VERTEX 1.96850394E+00 1.96850394E+00 1.96850394E+00
|
13
|
+
VERTEX -1.96850394E+00 1.96850394E+00 1.96850394E+00
|
14
|
+
ENDLOOP
|
15
|
+
ENDFACET
|
16
|
+
FACET NORMAL 0.00000000E+00 -0.00000000E+00 -1.00000000E+00
|
17
|
+
OUTER LOOP
|
18
|
+
VERTEX 1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
19
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
20
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
21
|
+
ENDLOOP
|
22
|
+
ENDFACET
|
23
|
+
FACET NORMAL 0.00000000E+00 0.00000000E+00 -1.00000000E+00
|
24
|
+
OUTER LOOP
|
25
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
26
|
+
VERTEX -1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
27
|
+
VERTEX 1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
28
|
+
ENDLOOP
|
29
|
+
ENDFACET
|
30
|
+
FACET NORMAL -1.00000000E+00 0.00000000E+00 0.00000000E+00
|
31
|
+
OUTER LOOP
|
32
|
+
VERTEX -1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
33
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
34
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
35
|
+
ENDLOOP
|
36
|
+
ENDFACET
|
37
|
+
FACET NORMAL -1.00000000E+00 0.00000000E+00 0.00000000E+00
|
38
|
+
OUTER LOOP
|
39
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
40
|
+
VERTEX -1.96850394E+00 1.96850394E+00 1.96850394E+00
|
41
|
+
VERTEX -1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
42
|
+
ENDLOOP
|
43
|
+
ENDFACET
|
44
|
+
FACET NORMAL 1.00000000E+00 0.00000000E+00 0.00000000E+00
|
45
|
+
OUTER LOOP
|
46
|
+
VERTEX 1.96850394E+00 1.96850394E+00 1.96850394E+00
|
47
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
48
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
49
|
+
ENDLOOP
|
50
|
+
ENDFACET
|
51
|
+
FACET NORMAL 1.00000000E+00 0.00000000E+00 0.00000000E+00
|
52
|
+
OUTER LOOP
|
53
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
54
|
+
VERTEX 1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
55
|
+
VERTEX 1.96850394E+00 1.96850394E+00 1.96850394E+00
|
56
|
+
ENDLOOP
|
57
|
+
ENDFACET
|
58
|
+
FACET NORMAL 0.00000000E+00 -1.00000000E+00 0.00000000E+00
|
59
|
+
OUTER LOOP
|
60
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
61
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
62
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
63
|
+
ENDLOOP
|
64
|
+
ENDFACET
|
65
|
+
FACET NORMAL 0.00000000E+00 -1.00000000E+00 0.00000000E+00
|
66
|
+
OUTER LOOP
|
67
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 -1.96850394E+00
|
68
|
+
VERTEX 1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
69
|
+
VERTEX -1.96850394E+00 -1.96850394E+00 1.96850394E+00
|
70
|
+
ENDLOOP
|
71
|
+
ENDFACET
|
72
|
+
FACET NORMAL 0.00000000E+00 1.00000000E+00 0.00000000E+00
|
73
|
+
OUTER LOOP
|
74
|
+
VERTEX -1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
75
|
+
VERTEX -1.96850394E+00 1.96850394E+00 1.96850394E+00
|
76
|
+
VERTEX 1.96850394E+00 1.96850394E+00 1.96850394E+00
|
77
|
+
ENDLOOP
|
78
|
+
ENDFACET
|
79
|
+
FACET NORMAL 0.00000000E+00 1.00000000E+00 0.00000000E+00
|
80
|
+
OUTER LOOP
|
81
|
+
VERTEX 1.96850394E+00 1.96850394E+00 1.96850394E+00
|
82
|
+
VERTEX 1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
83
|
+
VERTEX -1.96850394E+00 1.96850394E+00 -1.96850394E+00
|
84
|
+
ENDLOOP
|
85
|
+
ENDFACET
|
86
|
+
ENDSOLID Untitled1
|
data/test/test_mersh.rb
CHANGED
@@ -8,6 +8,7 @@ class MershTest < Test::Unit::TestCase
|
|
8
8
|
@binary_stl = @current_dir + "/box_binary.stl"
|
9
9
|
@threejs_json = @current_dir + "/box_threejs.json"
|
10
10
|
@plain_json = @current_dir + "/box_plain.json"
|
11
|
+
@capitalized_ascii_stl = @current_dir + "/capitalized_ascii.stl"
|
11
12
|
end
|
12
13
|
|
13
14
|
def test_ascii_stl
|
@@ -48,4 +49,10 @@ class MershTest < Test::Unit::TestCase
|
|
48
49
|
assert_equal 12, box.faces.size
|
49
50
|
assert_equal 12, box.normals.size
|
50
51
|
end
|
52
|
+
|
53
|
+
def test_capitalized_ascii_stl
|
54
|
+
stl = Mersh.new(@capitalized_ascii_stl)
|
55
|
+
|
56
|
+
assert stl.vertices.size > 0
|
57
|
+
end
|
51
58
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mersh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tony Buser
|
@@ -46,6 +46,7 @@ files:
|
|
46
46
|
- test/box_binary.stl
|
47
47
|
- test/box_plain.json
|
48
48
|
- test/box_threejs.json
|
49
|
+
- test/capitalized_ascii.stl
|
49
50
|
- test/test_mersh.rb
|
50
51
|
- LICENSE
|
51
52
|
- README.rdoc
|