Announcement

Collapse
No announcement yet.

STL File Format

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    STL File Format

    Working with 3D printing really starts with learning about the STL file format, since it is the most popular of 3D formats used in 3D printing.


    STL was designed by 3D Systems the pioneer in 3D printing. They have been around for a long time, but primarily catered to business 3D printers (very expensive). The file format is very simple and easy to read, perfect for WIN32 programmers.

    Here are the primary specs I used in writing my own 3D engine for STL: http://www.fabbers.com/tech/STL_Format

    You will notice the info is not on a programming web site, but a "Fabbers" (short for Fabricators or Fast Prototyping). This is where it all started, but now 3D printing is coming to the masses.

    As a demonstration of this, 3D Printing will soon go beyond the hobby (and business) market to the home. Mattel announced recently their "Thing Maker" which targets the toy market but is actually a real 3D printer.

    Hewlett Packard is working on a technology based on ink jet printing (they will target business first) so 3D printing can print as fast as a normal printer (multiple dots at a time like an ink jet) and as this eventually comes to market 3D printing should speed up significantly (in performance).

    Microsoft current uses 3D printers in their R&D departments (ie. designing Surface tablets).

    This forum is where I can progessively share information about this exciting market, as well as share info to help PB'ers tap into it.
    Chris Boss
    Computer Workshop
    Developer of "EZGUI"
    http://cwsof.com
    http://twitter.com/EZGUIProGuy

    #2
    While I can't share my proprietary code used in some of my products, I will try to share the basic knowledge behind it.

    STL is where I have started. The key to displaying STL 3D images quickly is OpenGL. DirectX is a bit more difficult to work with using PowerBasic, but OpenGL is perfect. It is a flat API (DLL's), easy to impliment and can be used for multiple child 3D windows at the same time, unlike DirectX which is one window only (either full screen or one primary window). DirectX is geared towards gaming, while OpenGL is better suited IMO for building 3D business style apps.


    In EZGUI 5.0 I use OpenGL for my 3D engine and support the STL file format. Why STL ?

    STL is a primary format for 3D Printing, but I also like it because it is so easy to work with. No texture mapping and stuff. Just simple triangles and OpenGL does all the hard stuff like shading.

    The key to OpenGL and STL is working with an array of vertexes (triangles). Now OpenGL supports vertex arrays which speed up display significantly, but you would be surprised at how fast it is (using PowerBasic) just drawing one triangle at a time. In my 3D engine it can load STL models with 2 million polygons (triangles) and display the image in just a few seconds. It was all written using PowerBasic.

    I have downloaded some freeware STL viewers on the web and most take a few minutes to load a file that large. The point is, PowerBasic (and well written code of course) is a perfect tool for writing OpenGl based 3D software.


    Here is my freeware 3D Model viewer you can download: http://cwsof.com/download/ezmodvw11.zip

    It can load and display STL 3D Models.
    Chris Boss
    Computer Workshop
    Developer of "EZGUI"
    http://cwsof.com
    http://twitter.com/EZGUIProGuy

    Comment


      #3
      While I can't provide proprietary code here, I will make available my version of the OpenGL (1.0/2.0) header file. The translation is not complete, but it is complete in all the calls you will require to impliment basic OpenGL and do everything my 3D engine can do (meaning all the OpenGL calls I use). The include file is simple and not complex.

      Attached Files
      Chris Boss
      Computer Workshop
      Developer of "EZGUI"
      http://cwsof.com
      http://twitter.com/EZGUIProGuy

      Comment

      Working...
      X
      😀
      🥰
      🤢
      😎
      😡
      👍
      👎