Формат файла
$ head -15 test1.stl
solid Created by Gmsh
facet normal 0 -0 -1
outer loop
vertex -2.74257 -1.88725 0
vertex -1 -3.8 0
vertex -3 -4.4 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -5 -5.55112e-12 0
vertex -2.74257 -1.88725 0
vertex -5 -2.5 0
endloop
endfacet
...
$ cat stl2raw.py
#!/usr/bin/python
from pyparsing import *
d=Word(nums+".-")
rec="facet normal"+d+d+d+"outer loop"+"vertex"+d+d+d+"vertex"+d+d+d+"vertex"+d+d+d+"end loop"+"endfacet"
print "* TEST"
print rec.parseString("facet normal 1 0 0 outer loop vertex 11.2 2.1. -1.1 vertex 11.1 0.0 -1.1 vertex -1 -1 -1 end loop endfacet")
print "* end TEST"
datafile=OneOrMore(Group(rec))
infile=open('test1.stl','r')
datafile.parseString(infile)
$ ./stl2raw.py
* TEST
['facet normal', '1', '0', '0', 'outer loop', 'vertex', '11.2', '2.1.', '-1.1', 'vertex', '11.1', '0.0', '-1.1', 'vertex', '-1', '-1', '-1', 'end loop', 'endfacet']
* end TEST
Traceback (most recent call last):
File "./stl2raw.py", line 12, in <module>
datafile.parseString(infile)
File "/usr/lib/pymodules/python2.7/pyparsing.py", line 1068, in parseString
instring = instring.expandtabs()
AttributeError: 'file' object has no attribute 'expandtabs'