Commit 23150219 authored by sumpfralle's avatar sumpfralle

fixed the order of vertices when exporting a model to an STL file

disabled code for adding comments to the STL files
fixed two sample STL files with wrong order of vertices


git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@718 bbaffbd6-741e-11dd-a85d-61de82d9cad9
parent 9db130d8
solid "model"; Produced by pycam, 2010-09-23
;PYCAM-META-DATA: Filename: samples/Box2.stl
;PYCAM-META-DATA: Timestamp: 2010-09-23 20:22:11.660612
;PYCAM-META-DATA: Version: 0.3
solid "model"; Produced by pycam (v0.3), 2010-10-03
facet normal 0.707143 -0.408041 0.577452
outer loop
vertex 2.563112 -5.599983 2.267282
vertex 2.562797 -2.393577 4.533387
vertex 5.339321 -3.997340 0.000022
vertex 2.562797 -2.393577 4.533387
vertex 2.563112 -5.599983 2.267282
endloop
endfacet
facet normal 0.707143 -0.408041 0.577452
outer loop
vertex 5.339321 -3.997340 0.000022
vertex 2.562797 -2.393577 4.533387
vertex 5.339006 -0.790934 2.266127
vertex 2.562797 -2.393577 4.533387
vertex 5.339321 -3.997340 0.000022
endloop
endfacet
facet normal -0.707143 0.408041 -0.577452
outer loop
vertex -0.213384 -3.997869 0.000000
vertex 2.562824 -2.395226 -2.267260
vertex -0.213699 -0.791464 2.266105
vertex 2.562824 -2.395226 -2.267260
vertex -0.213384 -3.997869 0.000000
endloop
endfacet
facet normal -0.707143 0.408041 -0.577452
outer loop
vertex -0.213699 -0.791464 2.266105
vertex 2.562824 -2.395226 -2.267260
vertex 2.562510 0.811179 -0.001155
vertex 2.562824 -2.395226 -2.267260
vertex -0.213699 -0.791464 2.266105
endloop
endfacet
facet normal 0.707070 0.408176 -0.577446
outer loop
vertex 5.339006 -0.790934 2.266127
vertex 2.562510 0.811179 -0.001155
vertex 2.562824 -2.395226 -2.267260
vertex 2.562510 0.811179 -0.001155
vertex 5.339006 -0.790934 2.266127
endloop
endfacet
facet normal 0.707070 0.408176 -0.577446
outer loop
vertex 5.339006 -0.790934 2.266127
vertex 2.562824 -2.395226 -2.267260
vertex 5.339321 -3.997340 0.000022
vertex 2.562824 -2.395226 -2.267260
vertex 5.339006 -0.790934 2.266127
endloop
endfacet
facet normal -0.707070 -0.408176 0.577446
outer loop
vertex -0.213384 -3.997869 0.000000
vertex -0.213699 -0.791464 2.266105
vertex 2.562797 -2.393577 4.533387
vertex -0.213699 -0.791464 2.266105
vertex -0.213384 -3.997869 0.000000
endloop
endfacet
facet normal -0.707070 -0.408176 0.577446
outer loop
vertex -0.213384 -3.997869 0.000000
vertex 2.562797 -2.393577 4.533387
vertex 2.563112 -5.599983 2.267282
vertex 2.562797 -2.393577 4.533387
vertex -0.213384 -3.997869 0.000000
endloop
endfacet
facet normal -0.000080 0.816637 0.577152
outer loop
vertex -0.213699 -0.791464 2.266105
vertex 2.562510 0.811179 -0.001155
vertex 5.339006 -0.790934 2.266127
vertex 2.562510 0.811179 -0.001155
vertex -0.213699 -0.791464 2.266105
endloop
endfacet
facet normal -0.000080 0.816637 0.577152
outer loop
vertex -0.213699 -0.791464 2.266105
vertex 5.339006 -0.790934 2.266127
vertex 2.562797 -2.393577 4.533387
vertex 5.339006 -0.790934 2.266127
vertex -0.213699 -0.791464 2.266105
endloop
endfacet
facet normal 0.000080 -0.816637 -0.577152
outer loop
vertex -0.213384 -3.997869 0.000000
vertex 2.563112 -5.599983 2.267282
vertex 5.339321 -3.997340 0.000022
vertex 2.563112 -5.599983 2.267282
vertex -0.213384 -3.997869 0.000000
endloop
endfacet
facet normal 0.000080 -0.816637 -0.577152
outer loop
vertex -0.213384 -3.997869 0.000000
vertex 5.339321 -3.997340 0.000022
vertex 2.562824 -2.395226 -2.267260
vertex 5.339321 -3.997340 0.000022
vertex -0.213384 -3.997869 0.000000
endloop
endfacet
endsolid
solid "model"; Produced by pycam, 2010-06-14
solid "model"; Produced by pycam (v0.3), 2010-10-03
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 76.279070 16.205128
vertex 47.906977 76.279070 17.230769
vertex 47.906977 65.813953 14.769231
vertex 47.906977 76.279070 17.230769
vertex 30.465116 76.279070 16.205128
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 76.279070 16.205128
vertex 47.906977 65.813953 14.769231
vertex 30.465116 65.813953 13.743590
vertex 47.906977 65.813953 14.769231
vertex 30.465116 76.279070 16.205128
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 47.906977 76.279070 17.230769
vertex 58.372093 65.813953 15.384615
vertex 47.906977 55.348837 12.307692
vertex 58.372093 65.813953 15.384615
vertex 47.906977 76.279070 17.230769
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 58.372093 65.813953 15.384615
vertex 58.372093 50.116279 11.692308
vertex 47.906977 55.348837 12.307692
vertex 58.372093 50.116279 11.692308
vertex 58.372093 65.813953 15.384615
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 47.906977 55.348837 12.307692
vertex 58.372093 50.116279 11.692308
vertex 44.418605 41.395349 8.820513
vertex 58.372093 50.116279 11.692308
vertex 47.906977 55.348837 12.307692
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 51.860465 10.461538
vertex 46.860465 51.860465 11.425641
vertex 44.418605 41.395349 8.820513
vertex 46.860465 51.860465 11.425641
vertex 30.465116 51.860465 10.461538
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 51.860465 10.461538
vertex 44.418605 41.395349 8.820513
vertex 30.465116 41.395349 8.000000
vertex 44.418605 41.395349 8.820513
vertex 30.465116 51.860465 10.461538
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 76.279070 16.205128
vertex 20.000000 65.813953 13.128205
vertex 20.000000 76.279070 15.589744
vertex 20.000000 65.813953 13.128205
vertex 30.465116 76.279070 16.205128
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 76.279070 16.205128
vertex 30.465116 58.837209 12.102564
vertex 20.000000 65.813953 13.128205
vertex 30.465116 58.837209 12.102564
vertex 30.465116 76.279070 16.205128
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 20.000000 65.813953 13.128205
vertex 30.465116 58.837209 12.102564
vertex 20.000000 51.860465 9.846154
vertex 30.465116 58.837209 12.102564
vertex 20.000000 65.813953 13.128205
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 58.837209 12.102564
vertex 30.465116 41.395349 8.000000
vertex 20.000000 51.860465 9.846154
vertex 30.465116 41.395349 8.000000
vertex 30.465116 58.837209 12.102564
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 41.395349 8.000000
vertex 20.000000 10.000000 0.000000
vertex 20.000000 51.860465 9.846154
vertex 20.000000 10.000000 0.000000
vertex 30.465116 41.395349 8.000000
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 30.465116 41.395349 8.000000
vertex 30.465116 10.000000 0.615385
vertex 20.000000 10.000000 0.000000
vertex 30.465116 10.000000 0.615385
vertex 30.465116 41.395349 8.000000
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 63.604651 58.837209 14.051282
vertex 70.581395 58.837209 14.461538
vertex 70.581395 39.651163 9.948718
vertex 70.581395 58.837209 14.461538
vertex 63.604651 58.837209 14.051282
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 70.581395 58.837209 14.461538
vertex 74.069767 46.627907 11.794872
vertex 70.581395 39.651163 9.948718
vertex 74.069767 46.627907 11.794872
vertex 70.581395 58.837209 14.461538
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 81.046512 46.627907 12.205128
vertex 89.767442 58.837209 15.589744
vertex 82.790698 36.162791 9.846154
vertex 89.767442 58.837209 15.589744
vertex 81.046512 46.627907 12.205128
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 77.558140 39.651163 10.358974
vertex 77.558140 10.000000 3.384615
vertex 70.581395 10.000000 2.974359
vertex 77.558140 10.000000 3.384615
vertex 77.558140 39.651163 10.358974
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 77.558140 39.651163 10.358974
vertex 82.790698 36.162791 9.846154
vertex 77.558140 10.000000 3.384615
vertex 82.790698 36.162791 9.846154
vertex 77.558140 39.651163 10.358974
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 82.790698 58.837209 15.179487
vertex 89.767442 58.837209 15.589744
vertex 81.046512 46.627907 12.205128
vertex 89.767442 58.837209 15.589744
vertex 82.790698 58.837209 15.179487
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 74.069767 46.627907 11.794872
vertex 77.558140 39.651163 10.358974
vertex 70.581395 39.651163 9.948718
vertex 77.558140 39.651163 10.358974
vertex 74.069767 46.627907 11.794872
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 74.069767 46.627907 11.794872
vertex 81.046512 46.627907 12.205128
vertex 77.558140 39.651163 10.358974
vertex 81.046512 46.627907 12.205128
vertex 74.069767 46.627907 11.794872
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 77.558140 39.651163 10.358974
vertex 81.046512 46.627907 12.205128
vertex 82.790698 36.162791 9.846154
vertex 81.046512 46.627907 12.205128
vertex 77.558140 39.651163 10.358974
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 96.744186 58.837209 16.000000
vertex 96.744186 48.372093 13.538462
vertex 91.511628 48.372093 13.230769
vertex 96.744186 48.372093 13.538462
vertex 96.744186 58.837209 16.000000
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 91.511628 48.372093 13.230769
vertex 96.744186 48.372093 13.538462
vertex 96.744186 37.906977 11.076923
vertex 96.744186 48.372093 13.538462
vertex 91.511628 48.372093 13.230769
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 96.744186 58.837209 16.000000
vertex 110.697674 58.837209 16.820513
vertex 96.744186 51.860465 14.358974
vertex 110.697674 58.837209 16.820513
vertex 96.744186 58.837209 16.000000
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 103.720930 55.348837 15.589744
vertex 110.697674 58.837209 16.820513
vertex 108.953488 51.860465 15.076923
vertex 110.697674 58.837209 16.820513
vertex 103.720930 55.348837 15.589744
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 96.744186 37.906977 11.076923
vertex 96.744186 44.883721 12.717949
vertex 110.697674 37.906977 11.897436
vertex 96.744186 44.883721 12.717949
vertex 96.744186 37.906977 11.076923
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 103.720930 41.395349 12.307692
vertex 108.953488 44.883721 13.435897
vertex 110.697674 37.906977 11.897436
vertex 108.953488 44.883721 13.435897
vertex 103.720930 41.395349 12.307692
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 117.674419 58.837206 17.230769
vertex 117.674419 48.372090 14.769231
vertex 112.441860 48.372090 14.461538
vertex 117.674419 48.372090 14.769231
vertex 117.674419 58.837206 17.230769
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 112.441860 48.372090 14.461538
vertex 117.674419 48.372090 14.769231
vertex 117.674419 37.906973 12.307692
vertex 117.674419 48.372090 14.769231
vertex 112.441860 48.372090 14.461538
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 117.674419 44.883721 13.948718
vertex 128.139535 39.651163 13.333333
vertex 117.674419 37.906973 12.307692
vertex 128.139535 39.651163 13.333333
vertex 117.674419 44.883721 13.948718
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 124.651163 41.395349 13.538462
vertex 131.627907 44.883721 14.769231
vertex 131.627907 37.906977 13.128205
vertex 131.627907 44.883721 14.769231
vertex 124.651163 41.395349 13.538462
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 117.674419 58.837206 17.230769
vertex 128.139535 57.093023 17.435897
vertex 117.674419 51.860465 15.589744
vertex 128.139535 57.093023 17.435897
vertex 117.674419 58.837206 17.230769
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 124.651163 55.348837 16.820513
vertex 131.627907 58.837209 18.051282
vertex 131.627907 50.116279 16.000000
vertex 131.627907 58.837209 18.051282
vertex 124.651163 55.348837 16.820513
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 131.627907 58.837209 18.051282
vertex 135.116279 37.906977 13.333333
vertex 131.627907 37.906977 13.128205
vertex 135.116279 37.906977 13.333333
vertex 131.627907 58.837209 18.051282
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 131.627907 58.837209 18.051282
vertex 135.116279 58.837209 18.256410
vertex 135.116279 37.906977 13.333333
vertex 135.116279 58.837209 18.256410
vertex 131.627907 58.837209 18.051282
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 140.348837 58.837209 18.564103
vertex 145.581395 37.906977 13.948718
vertex 140.348837 37.906977 13.641026
vertex 145.581395 37.906977 13.948718
vertex 140.348837 58.837209 18.564103
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 140.348837 58.837209 18.564103
vertex 145.581395 58.837209 18.871795
vertex 145.581395 37.906977 13.948718
vertex 145.581395 58.837209 18.871795
vertex 140.348837 58.837209 18.564103
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 145.581395 57.093023 18.461538
vertex 152.558140 58.837209 19.282051
vertex 145.581395 51.860465 17.230769
vertex 152.558140 58.837209 19.282051
vertex 145.581395 57.093023 18.461538
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 149.069767 55.348837 18.256410
vertex 152.558140 58.837209 19.282051
vertex 152.558140 51.860465 17.641026
vertex 152.558140 58.837209 19.282051
vertex 149.069767 55.348837 18.256410
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 152.558140 58.837209 19.282051
vertex 157.790698 37.906977 14.666667
vertex 152.558140 37.906977 14.358974
vertex 157.790698 37.906977 14.666667
vertex 152.558140 58.837209 19.282051
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 152.558140 58.837209 19.282051
vertex 157.790698 57.093023 19.179487
vertex 157.790698 37.906977 14.666667
vertex 157.790698 57.093023 19.179487
vertex 152.558140 58.837209 19.282051
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 157.790698 51.860465 17.948718
vertex 157.790698 57.093023 19.179487
vertex 164.767442 58.837209 20.000000
vertex 157.790698 57.093023 19.179487
vertex 157.790698 51.860465 17.948718
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 161.279070 55.348837 18.974359
vertex 164.767442 58.837209 20.000000
vertex 164.767442 51.860465 18.358974
vertex 164.767442 58.837209 20.000000
vertex 161.279070 55.348837 18.974359
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 164.767442 58.837209 20.000000
vertex 170.000000 37.906977 15.384615
vertex 164.767442 37.906977 15.076923
vertex 170.000000 37.906977 15.384615
vertex 164.767442 58.837209 20.000000
endloop
endfacet
facet normal -0.057148 -0.228591 0.971844
outer loop
vertex 164.767442 58.837209 20.000000
vertex 170.000000 57.093023 19.897436
vertex 170.000000 37.906977 15.384615
vertex 170.000000 57.093023 19.897436
vertex 164.767442 58.837209 20.000000
endloop
endfacet
endsolid
......@@ -21,6 +21,7 @@ You should have received a copy of the GNU General Public License
along with PyCAM. If not, see <http://www.gnu.org/licenses/>.
"""
from pycam import VERSION
import datetime
import os
......@@ -46,15 +47,21 @@ class STLExporter:
def get_output_lines(self):
date = datetime.date.today().isoformat()
yield """solid "%s"; Produced by %s, %s""" % (self.name, self.created_by, date)
yield """solid "%s"; Produced by %s (v%s), %s""" \
% (self.name, self.created_by, VERSION, date)
# sadly STL does not seem to support comments
"""
if self.comment:
for line in self.comment.split(self.linesep):
yield(";%s" % line)
"""
for tr in self.model.triangles():
norm = tr.normal.normalized()
yield "facet normal %f %f %f" % (norm.x, norm.y, norm.z)
yield " outer loop"
for p in (tr.p1, tr.p2, tr.p3):
# Triangle vertices are stored in clockwise order - thus we need
# to reverse the order (STL expects counter-clockwise orientation).
for p in (tr.p3, tr.p2, tr.p1):
yield " vertex %f %f %f" % (p.x, p.y, p.z)
yield " endloop"
yield "endfacet"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment