Click here to Skip to main content
Click here to Skip to main content

StL Data File Viewer

By , 5 Mar 2003
 

Sample Image - StLViewer.jpg

Introduction

StereoLithography(StL) is something that is widely used in CAD/CAM, RapidPrototyping etc. The concept is that any surface or solid is exported to StL format by data exchange packages after they are modeled in commercial CAD packages. This data consists of triangulated facets that approximate the surface of the solid. No topological or geometric information is exported. The surface is subdivided into small triangles. The approximation uses chordal deflection for curved surfaces to smoothen the surface. More the smoothening required, more number of smaller triangles are generated by subdivision resulting in larger size of data file. Now, along with triangles, their facet normals are also generated. The data is written both in ASCII and binary formats. The data in ASCII is written like this:

facet normal  0.000000e+000 -1.000000e+000  0.000000e+000
   outer loop
     vertex -1.499999e+002 -1.000000e+002  0.000000e+000
     vertex -1.500000e+002 -1.000000e+002  0.000000e+000
     vertex -1.500000e+002 -1.000000e+002 -5.000000e+001
   endloop
 endfacet

The facet normal tells the three components of the facet normal followed by three vertices of one triangle, enclosed by the statements.

facet normal  0.000000e+000 -1.000000e+000  0.000000e+000

and

endfacet

Thus all the triangles are written one after the other. This data can be then used as input for generating Rapid Prototype models as well as for NC toolpath generation. The Normal data helps to compute tool offsets etc.

Here, for displaying the data in the OpenGL viewer, I have written the code for reading the data and displaying each triangle using glBegin(GL_TRIANGLES) and the normals for lighting. The viewer and geometry coding is same as my earlier project CadSurf. You can read as many StL (ASCII only) files into the viewer zoom, pan, rotate the views, select the objects, change attributes like color and material. The viewer provides object oriented context menus. I.e., when you click the right mouse button in the view with no active selection, you get a context menu for setting the viewer attributes, whereas with StL object selected, you get menu for the object attributes. Some sample StL data is also provided in the Data folder of the project.

Please let me know your comments. Thank you.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)

About the Author

Sharjith
Engineer Tata Technologies Inc
United States United States
Member
Sharjith is a Mechanical Engineer with strong passion for Automobiles, Aircrafts and Software development.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionVS 2010 build fails for me with missing iostream.hmembercodegrunt2 Jun '12 - 17:37 
AnswerRe: VS 2010 build fails for me with missing iostream.hmemberSharjith3 Jun '12 - 3:51 
GeneralRe: VS 2010 build fails for me with missing iostream.hmemberMember 39089022 Oct '12 - 6:58 
QuestionUnable to view the viewer after running the applicationmembersidhu_ind23 May '12 - 21:47 
AnswerRe: Unable to view the viewer after running the applicationmemberSharjith24 May '12 - 0:37 
GeneralMy vote of 5memberVolynsky Alex23 May '12 - 3:42 
QuestionSlicingmemberederson.nivel124 Apr '12 - 9:34 
QuestionSelection window on window 7 machine got distorted.membersingh96323 Apr '12 - 5:00 
Questionflash screen appear while resizing windowmembersingh96323 Apr '12 - 4:54 
QuestionRun-Time Check Failure #2 - Stack around the variable 'str' was corrupted.memberwaterharbin1 Mar '12 - 2:33 
AnswerRe: Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted.memberSharjith1 Mar '12 - 11:59 
GeneralSTL Viewermembercjellwood13 Feb '11 - 4:02 
GeneralRe: STL ViewermemberSharjith13 Feb '11 - 5:54 
GeneralError [modified]membersangar202023 Sep '10 - 18:21 
GeneralRe: ErrormemberSharjith24 Sep '10 - 7:28 
GeneralTell the pathmembersangar202023 Sep '10 - 0:54 
GeneralRe: Tell the pathmemberSharjith23 Sep '10 - 4:42 
GeneralFatel errormembersangar202022 Sep '10 - 23:48 
Questionfollowing message display in .net 2008?membersangar202022 Sep '10 - 18:12 
AnswerRe: following message display in .net 2008?memberSharjith22 Sep '10 - 18:38 
GeneralDuplicated points removalmemberM.Siyamalan3 May '10 - 18:56 
GeneralRe: Duplicated points removalmemberSharjith3 May '10 - 19:40 
QuestionHow to calculate angle between trianglesmembernsivabalan202031 Mar '10 - 20:50 
Hi Friends!!
my name is siva.i have few doubts.
 
1. HOW TO CALCULATE INTERIOR ANGLE OF A TRIANGLE? (I Have x,y,z coordinate points as vertices)

2. HOW TO CALCULATE ANGLE BETWEEN UNIT NORMALS OF TWO ADJUSTANT TRIANGLE? (I Have known normal value for each triangle)
 
3. HOW TO CALCULATE ANGLE BETWEEN UNIT NORMALS OF TWO ADJUSTANT TRIANGULAR FACETS? (I Have known normal value for each triangle in a surface)
 

Please if anybody knows regarding these question..
mail me.. atleast refer website links which having solved answer...
 
SIVABALAN
 
vigisiva@gmail.com
india.
AnswerRe: How to calculate angle between trianglesmemberSharjith1 Apr '10 - 7:17 
GeneralUnable to open other stl filememberMember 460375414 Feb '10 - 20:12 
GeneralStereolithography file (STL) editmembernsivabalan202030 Nov '09 - 19:25 
GeneralWat knowledge should i must have to handle this taskmemberDevelopmentNoob21 Apr '09 - 17:58 
GeneralIs there component out there that can recognize the demension of stl and iges filesmemberMember 14020139 Apr '09 - 5:56 
AnswerRe: Is there component out there that can recognize the demension of stl and iges filesmemberSharjith9 Apr '09 - 7:21 
Questionhow to convert CL data file to G codes/machine languagememberdixitava8 Feb '09 - 23:37 
AnswerRe: how to convert CL data file to G codes/machine languagememberSharjith9 Feb '09 - 2:29 
GeneralRe: how to convert CL data file to G codes/machine languagememberdixitava9 Feb '09 - 19:06 
GeneralRe: how to convert CL data file to G codes/machine languagememberdixitava11 Feb '09 - 18:07 
GeneralRe: for which controllermemberdixitava11 Feb '09 - 18:09 
QuestionHow can I contact you?memberjemmyell12 Dec '08 - 7:13 
AnswerRe: How can I contact you?memberSharjith15 Dec '08 - 4:47 
General[Message Deleted]memberavajja17 Oct '08 - 19:02 
GeneralRe: How to View STL file in BINARY formatmemberSharjith23 Oct '08 - 6:34 
Questionthanks in advancemembergaryzhg18 Jul '08 - 23:44 
QuestionGenport I/O initialitazion failurememberVinod_code25 Sep '07 - 0:03 
Generaldimension of stlmembersaisp22 Jul '07 - 21:42 
QuestionRe: dimension of stlmemberSharjith23 Jul '07 - 6:51 
AnswerRe: dimension of stl [modified]-pls i need ur helpmembersaisp24 Jul '07 - 17:28 
QuestionProblem Buildingmemberdspantha29 Jan '07 - 15:54 
GeneralNOT ABLE TO DISPLAY OTHER STLmembervickys24 Jan '07 - 12:42 
GeneralNOT ABLE TO DISPLAY OTHER STL files!membervickys24 Jan '07 - 12:42 
AnswerRe: NOT ABLE TO DISPLAY OTHER STL files!membertulip.sun7 Feb '07 - 22:45 
Questiontrouble buildingmembermea3616 Jan '07 - 7:31 
QuestionI am very interested in the topological relation of triangles [modified]memberhyzhujc4 Dec '06 - 20:38 
AnswerRe: I am very interested in the topological relation of trianglesmemberSharjith18 Dec '06 - 4:15 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130516.1 | Last Updated 6 Mar 2003
Article Copyright 2003 by Sharjith
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid