mirror of https://github.com/vitalif/openscad
Clifford Wolf:
Added support for importing binary STL files git-svn-id: http://svn.clifford.at/openscad/trunk@103 b57f626f-c46c-0410-a088-ec61d464b74cstl_dim
parent
6a12327e2a
commit
beaf3351ee
|
@ -0,0 +1,12 @@
|
|||
|
||||
// example012.stl is Mblock.stl, (c) 2009 Will Langford
|
||||
// licensed under the Creative Commons - GNU GPL license.
|
||||
// http://www.thingiverse.com/thing:753
|
||||
|
||||
difference()
|
||||
{
|
||||
sphere(20);
|
||||
|
||||
translate([ -2.92 0.5 +20 ]) rotate([180 0 180])
|
||||
import_stl("example012.stl", convexity = 5);
|
||||
}
|
|
@ -0,0 +1,450 @@
|
|||
solid ascii
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 3.422440e+000 -1.067730e+001 5.000000e+000
|
||||
vertex 6.347434e+000 -1.067730e+001 5.000000e+000
|
||||
vertex 3.422440e+000 8.281660e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 3.422440e+000 8.281660e+000 5.000000e+000
|
||||
vertex 6.347434e+000 -1.067730e+001 5.000000e+000
|
||||
vertex 6.347434e+000 1.133150e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 2.280978e+000 1.133150e+001 5.000000e+000
|
||||
vertex 3.422440e+000 8.281660e+000 5.000000e+000
|
||||
vertex 6.347434e+000 1.133150e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 2.280978e+000 1.133150e+001 5.000000e+000
|
||||
vertex -3.033951e+000 -9.213713e-001 5.000000e+000
|
||||
vertex 3.422440e+000 8.281660e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 3.422440e+000 8.281660e+000 5.000000e+000
|
||||
vertex -3.033951e+000 -9.213713e-001 5.000000e+000
|
||||
vertex -2.320538e+000 -4.613285e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -2.320538e+000 -4.613285e+000 5.000000e+000
|
||||
vertex -3.033951e+000 -9.213713e-001 5.000000e+000
|
||||
vertex -4.104071e+000 -4.613285e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -4.104071e+000 -4.613285e+000 5.000000e+000
|
||||
vertex -3.033951e+000 -9.213713e-001 5.000000e+000
|
||||
vertex -9.793542e+000 8.281660e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -9.793542e+000 8.281660e+000 5.000000e+000
|
||||
vertex -3.033951e+000 -9.213713e-001 5.000000e+000
|
||||
vertex -8.527233e+000 1.133150e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -1.252235e+001 1.133150e+001 5.000000e+000
|
||||
vertex -9.793542e+000 8.281660e+000 5.000000e+000
|
||||
vertex -8.527233e+000 1.133150e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -1.252235e+001 1.133150e+001 5.000000e+000
|
||||
vertex -1.252235e+001 -1.067730e+001 5.000000e+000
|
||||
vertex -9.793542e+000 8.281660e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -9.793542e+000 8.281660e+000 5.000000e+000
|
||||
vertex -1.252235e+001 -1.067730e+001 5.000000e+000
|
||||
vertex -9.793542e+000 -1.067730e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -1.252235e+001 1.133150e+001 1.500000e+001
|
||||
vertex -1.252235e+001 1.133150e+001 5.000000e+000
|
||||
vertex -8.527233e+000 1.133150e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -1.000000e+000 -0.000000e+000
|
||||
outer loop
|
||||
vertex -8.527233e+000 1.133150e+001 1.500000e+001
|
||||
vertex -1.252235e+001 1.133150e+001 5.000000e+000
|
||||
vertex -8.527233e+000 1.133150e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -9.124922e-001 -4.090940e-001 -0.000000e+000
|
||||
outer loop
|
||||
vertex -8.527233e+000 1.133150e+001 1.500000e+001
|
||||
vertex -8.527233e+000 1.133150e+001 5.000000e+000
|
||||
vertex -3.033951e+000 -9.213713e-001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -9.124922e-001 -4.090940e-001 0.000000e+000
|
||||
outer loop
|
||||
vertex -3.033951e+000 -9.213713e-001 1.500000e+001
|
||||
vertex -8.527233e+000 1.133150e+001 5.000000e+000
|
||||
vertex -3.033951e+000 -9.213713e-001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 9.174094e-001 -3.979447e-001 0.000000e+000
|
||||
outer loop
|
||||
vertex -3.033951e+000 -9.213713e-001 1.500000e+001
|
||||
vertex -3.033951e+000 -9.213713e-001 5.000000e+000
|
||||
vertex 2.280978e+000 1.133150e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 9.174094e-001 -3.979447e-001 0.000000e+000
|
||||
outer loop
|
||||
vertex 2.280978e+000 1.133150e+001 1.500000e+001
|
||||
vertex -3.033951e+000 -9.213713e-001 5.000000e+000
|
||||
vertex 2.280978e+000 1.133150e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 2.280978e+000 1.133150e+001 1.500000e+001
|
||||
vertex 2.280978e+000 1.133150e+001 5.000000e+000
|
||||
vertex 6.347434e+000 1.133150e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -1.000000e+000 -0.000000e+000
|
||||
outer loop
|
||||
vertex 6.347434e+000 1.133150e+001 1.500000e+001
|
||||
vertex 2.280978e+000 1.133150e+001 5.000000e+000
|
||||
vertex 6.347434e+000 1.133150e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000e+000 -0.000000e+000 -0.000000e+000
|
||||
outer loop
|
||||
vertex 6.347434e+000 1.133150e+001 1.500000e+001
|
||||
vertex 6.347434e+000 1.133150e+001 5.000000e+000
|
||||
vertex 6.347434e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000e+000 -0.000000e+000 -0.000000e+000
|
||||
outer loop
|
||||
vertex 6.347434e+000 -1.067730e+001 1.500000e+001
|
||||
vertex 6.347434e+000 1.133150e+001 5.000000e+000
|
||||
vertex 6.347434e+000 -1.067730e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 6.347434e+000 -1.067730e+001 1.500000e+001
|
||||
vertex 6.347434e+000 -1.067730e+001 5.000000e+000
|
||||
vertex 3.422440e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 3.422440e+000 -1.067730e+001 1.500000e+001
|
||||
vertex 6.347434e+000 -1.067730e+001 5.000000e+000
|
||||
vertex 3.422440e+000 -1.067730e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000e+000 -0.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 3.422440e+000 -1.067730e+001 1.500000e+001
|
||||
vertex 3.422440e+000 -1.067730e+001 5.000000e+000
|
||||
vertex 3.422440e+000 8.281660e+000 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000e+000 -0.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 3.422440e+000 8.281660e+000 1.500000e+001
|
||||
vertex 3.422440e+000 -1.067730e+001 5.000000e+000
|
||||
vertex 3.422440e+000 8.281660e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -9.134987e-001 4.068417e-001 0.000000e+000
|
||||
outer loop
|
||||
vertex 3.422440e+000 8.281660e+000 1.500000e+001
|
||||
vertex 3.422440e+000 8.281660e+000 5.000000e+000
|
||||
vertex -2.320538e+000 -4.613285e+000 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -9.134987e-001 4.068417e-001 0.000000e+000
|
||||
outer loop
|
||||
vertex -2.320538e+000 -4.613285e+000 1.500000e+001
|
||||
vertex 3.422440e+000 8.281660e+000 5.000000e+000
|
||||
vertex -2.320538e+000 -4.613285e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -4.979881e-016 1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -2.320538e+000 -4.613285e+000 1.500000e+001
|
||||
vertex -2.320538e+000 -4.613285e+000 5.000000e+000
|
||||
vertex -4.104071e+000 -4.613285e+000 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -4.979881e-016 1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -4.104071e+000 -4.613285e+000 1.500000e+001
|
||||
vertex -2.320538e+000 -4.613285e+000 5.000000e+000
|
||||
vertex -4.104071e+000 -4.613285e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 9.149041e-001 4.036714e-001 0.000000e+000
|
||||
outer loop
|
||||
vertex -4.104071e+000 -4.613285e+000 1.500000e+001
|
||||
vertex -4.104071e+000 -4.613285e+000 5.000000e+000
|
||||
vertex -9.793542e+000 8.281660e+000 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 9.149041e-001 4.036714e-001 0.000000e+000
|
||||
outer loop
|
||||
vertex -9.793542e+000 8.281660e+000 1.500000e+001
|
||||
vertex -4.104071e+000 -4.613285e+000 5.000000e+000
|
||||
vertex -9.793542e+000 8.281660e+000 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000e+000 -0.000000e+000 -0.000000e+000
|
||||
outer loop
|
||||
vertex -9.793542e+000 8.281660e+000 1.500000e+001
|
||||
vertex -9.793542e+000 8.281660e+000 5.000000e+000
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000e+000 -0.000000e+000 -0.000000e+000
|
||||
outer loop
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
vertex -9.793542e+000 8.281660e+000 5.000000e+000
|
||||
vertex -9.793542e+000 -1.067730e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
vertex -9.793542e+000 -1.067730e+001 5.000000e+000
|
||||
vertex -1.252235e+001 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -1.252235e+001 -1.067730e+001 1.500000e+001
|
||||
vertex -9.793542e+000 -1.067730e+001 5.000000e+000
|
||||
vertex -1.252235e+001 -1.067730e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000e+000 -0.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -1.252235e+001 -1.067730e+001 1.500000e+001
|
||||
vertex -1.252235e+001 -1.067730e+001 5.000000e+000
|
||||
vertex -1.252235e+001 1.133150e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000e+000 -0.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -1.252235e+001 1.133150e+001 1.500000e+001
|
||||
vertex -1.252235e+001 -1.067730e+001 5.000000e+000
|
||||
vertex -1.252235e+001 1.133150e+001 5.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000e+000 -0.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 1.156780e+001 -1.469280e+001 1.500000e+001
|
||||
vertex 1.156780e+001 -1.469280e+001 0.000000e+000
|
||||
vertex 1.156780e+001 1.530720e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000e+000 -0.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 1.156780e+001 1.530720e+001 1.500000e+001
|
||||
vertex 1.156780e+001 -1.469280e+001 0.000000e+000
|
||||
vertex 1.156780e+001 1.530720e+001 0.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.184238e-016 -1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 -1.469280e+001 1.500000e+001
|
||||
vertex -1.843220e+001 -1.469280e+001 0.000000e+000
|
||||
vertex 1.156780e+001 -1.469280e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.184238e-016 -1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 1.156780e+001 -1.469280e+001 1.500000e+001
|
||||
vertex -1.843220e+001 -1.469280e+001 0.000000e+000
|
||||
vertex 1.156780e+001 -1.469280e+001 0.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000e+000 -1.184238e-016 -0.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 1.530720e+001 1.500000e+001
|
||||
vertex -1.843220e+001 1.530720e+001 0.000000e+000
|
||||
vertex -1.843220e+001 -1.469280e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000e+000 -1.184238e-016 0.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 -1.469280e+001 1.500000e+001
|
||||
vertex -1.843220e+001 1.530720e+001 0.000000e+000
|
||||
vertex -1.843220e+001 -1.469280e+001 0.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex 1.156780e+001 1.530720e+001 1.500000e+001
|
||||
vertex 1.156780e+001 1.530720e+001 0.000000e+000
|
||||
vertex -1.843220e+001 1.530720e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 1.000000e+000 0.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 1.530720e+001 1.500000e+001
|
||||
vertex 1.156780e+001 1.530720e+001 0.000000e+000
|
||||
vertex -1.843220e+001 1.530720e+001 0.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -1.252235e+001 -1.067730e+001 1.500000e+001
|
||||
vertex -1.252235e+001 1.133150e+001 1.500000e+001
|
||||
vertex -1.843220e+001 1.530720e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 -1.469280e+001 1.500000e+001
|
||||
vertex -1.252235e+001 -1.067730e+001 1.500000e+001
|
||||
vertex -1.843220e+001 1.530720e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 -1.469280e+001 1.500000e+001
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
vertex -1.252235e+001 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 -1.469280e+001 1.500000e+001
|
||||
vertex 1.156780e+001 -1.469280e+001 1.500000e+001
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
vertex 1.156780e+001 -1.469280e+001 1.500000e+001
|
||||
vertex 3.422440e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -2.320538e+000 -4.613285e+000 1.500000e+001
|
||||
vertex 3.422440e+000 -1.067730e+001 1.500000e+001
|
||||
vertex 3.422440e+000 8.281660e+000 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -2.320538e+000 -4.613285e+000 1.500000e+001
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
vertex 3.422440e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -2.320538e+000 -4.613285e+000 1.500000e+001
|
||||
vertex -4.104071e+000 -4.613285e+000 1.500000e+001
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -9.793542e+000 -1.067730e+001 1.500000e+001
|
||||
vertex -4.104071e+000 -4.613285e+000 1.500000e+001
|
||||
vertex -9.793542e+000 8.281660e+000 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -3.033951e+000 -9.213713e-001 1.500000e+001
|
||||
vertex 2.280978e+000 1.133150e+001 1.500000e+001
|
||||
vertex -8.527233e+000 1.133150e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -8.527233e+000 1.133150e+001 1.500000e+001
|
||||
vertex 2.280978e+000 1.133150e+001 1.500000e+001
|
||||
vertex 1.156780e+001 1.530720e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 1.530720e+001 1.500000e+001
|
||||
vertex -8.527233e+000 1.133150e+001 1.500000e+001
|
||||
vertex 1.156780e+001 1.530720e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 1.530720e+001 1.500000e+001
|
||||
vertex -1.252235e+001 1.133150e+001 1.500000e+001
|
||||
vertex -8.527233e+000 1.133150e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 2.280978e+000 1.133150e+001 1.500000e+001
|
||||
vertex 6.347434e+000 1.133150e+001 1.500000e+001
|
||||
vertex 1.156780e+001 1.530720e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 1.156780e+001 1.530720e+001 1.500000e+001
|
||||
vertex 6.347434e+000 1.133150e+001 1.500000e+001
|
||||
vertex 6.347434e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 1.156780e+001 -1.469280e+001 1.500000e+001
|
||||
vertex 6.347434e+000 -1.067730e+001 1.500000e+001
|
||||
vertex 3.422440e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 1.000000e+000
|
||||
outer loop
|
||||
vertex 1.156780e+001 -1.469280e+001 1.500000e+001
|
||||
vertex 1.156780e+001 1.530720e+001 1.500000e+001
|
||||
vertex 6.347434e+000 -1.067730e+001 1.500000e+001
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 -0.000000e+000 -1.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 1.530720e+001 0.000000e+000
|
||||
vertex 1.156780e+001 1.530720e+001 0.000000e+000
|
||||
vertex -1.843220e+001 -1.469280e+001 0.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+000 0.000000e+000 -1.000000e+000
|
||||
outer loop
|
||||
vertex -1.843220e+001 -1.469280e+001 0.000000e+000
|
||||
vertex 1.156780e+001 1.530720e+001 0.000000e+000
|
||||
vertex 1.156780e+001 -1.469280e+001 0.000000e+000
|
||||
endloop
|
||||
endfacet
|
||||
endsolid
|
90
import.cc
90
import.cc
|
@ -75,43 +75,67 @@ PolySet *ImportNode::render_polyset(render_mode_e) const
|
|||
PolySet *p = new PolySet();
|
||||
p->convexity = convexity;
|
||||
|
||||
QFile f(filename);
|
||||
if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
PRINTF("WARNING: Can't open import file `%s'.", filename.toAscii().data());
|
||||
return p;
|
||||
}
|
||||
|
||||
if (type == TYPE_STL)
|
||||
{
|
||||
int i = 0;
|
||||
double vdata[3][3];
|
||||
QRegExp splitre = QRegExp("\\s*(vertex)?\\s+");
|
||||
while (!f.atEnd())
|
||||
QFile f(filename);
|
||||
if (!f.open(QIODevice::ReadOnly)) {
|
||||
PRINTF("WARNING: Can't open import file `%s'.", filename.toAscii().data());
|
||||
return p;
|
||||
}
|
||||
|
||||
QByteArray data = f.read(5);
|
||||
if (data.size() == 5 && QString(data) == QString("solid"))
|
||||
{
|
||||
QString line = QString(f.readLine()).remove("\n");
|
||||
if (line.contains("solid") || line.contains("facet") || line.contains("endloop"))
|
||||
continue;
|
||||
if (line.contains("outer loop")) {
|
||||
i = 0;
|
||||
continue;
|
||||
int i = 0;
|
||||
double vdata[3][3];
|
||||
QRegExp splitre = QRegExp("\\s*(vertex)?\\s+");
|
||||
f.readLine();
|
||||
while (!f.atEnd())
|
||||
{
|
||||
QString line = QString(f.readLine()).remove("\n").remove("\r");
|
||||
if (line.contains("solid") || line.contains("facet") || line.contains("endloop"))
|
||||
continue;
|
||||
if (line.contains("outer loop")) {
|
||||
i = 0;
|
||||
continue;
|
||||
}
|
||||
if (line.contains("vertex")) {
|
||||
QStringList tokens = line.split(splitre);
|
||||
bool ok[3] = { false, false, false };
|
||||
if (tokens.size() == 4) {
|
||||
vdata[i][0] = tokens[1].toDouble(&ok[0]);
|
||||
vdata[i][1] = tokens[2].toDouble(&ok[1]);
|
||||
vdata[i][2] = tokens[3].toDouble(&ok[2]);
|
||||
}
|
||||
if (!ok[0] || !ok[1] || !ok[2]) {
|
||||
PRINTF("WARNING: Can't parse vertex line `%s'.", line.toAscii().data());
|
||||
i = 10;
|
||||
} else if (++i == 3) {
|
||||
p->append_poly();
|
||||
p->append_vertex(vdata[0][0], vdata[0][1], vdata[0][2]);
|
||||
p->append_vertex(vdata[1][0], vdata[1][1], vdata[1][2]);
|
||||
p->append_vertex(vdata[2][0], vdata[2][1], vdata[2][2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (line.contains("vertex")) {
|
||||
QStringList tokens = line.split(splitre);
|
||||
bool ok[3] = { false, false, false };
|
||||
if (tokens.size() == 4) {
|
||||
vdata[i][0] = tokens[1].toDouble(&ok[0]);
|
||||
vdata[i][1] = tokens[2].toDouble(&ok[1]);
|
||||
vdata[i][2] = tokens[3].toDouble(&ok[2]);
|
||||
}
|
||||
if (!ok[0] || !ok[1] || !ok[2]) {
|
||||
PRINTF("WARNING: Can't parse vertex line `%s'.", line.toAscii().data());
|
||||
i = 10;
|
||||
} else if (++i == 3) {
|
||||
p->append_poly();
|
||||
p->append_vertex(vdata[0][0], vdata[0][1], vdata[0][2]);
|
||||
p->append_vertex(vdata[1][0], vdata[1][1], vdata[1][2]);
|
||||
p->append_vertex(vdata[2][0], vdata[2][1], vdata[2][2]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
f.read(80-4+4);
|
||||
while (1) {
|
||||
struct {
|
||||
float i, j, k;
|
||||
float x1, y1, z1;
|
||||
float x2, y2, z2;
|
||||
float x3, y3, z3;
|
||||
unsigned short acount;
|
||||
} __attribute__ ((packed)) data;
|
||||
if (f.read((char*)&data, sizeof(data)) != sizeof(data))
|
||||
break;
|
||||
p->append_poly();
|
||||
p->append_vertex(data.x1, data.y1, data.z1);
|
||||
p->append_vertex(data.x2, data.y2, data.z2);
|
||||
p->append_vertex(data.x3, data.y3, data.z3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue