Difference between revisions of "3D Modeling"

From Sudo Room
Jump to navigation Jump to search
(add to 3D-printing category)
(→‎Write OpenSCAD (recommended): another openscad annoyance)
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page is about creating models for 3D-printing. It's mostly geared towards Sudoers using our [[Type_A_Machine Type-A Machine]] 3D printer.
This page is about creating models for 3D-printing. It's mostly geared towards Sudoers using our [[Type_A_Machine|Type-A Machine]] 3D printer, but models can be made by anyone anywhere, just like word documents don't have to be made on a machine attached to a 2D printer.


= OpenSCAD =
== STL Models ==


The awesomest way to create models is to write code in the OpenSCAD language, which is deterministic and flexible and very friendly to version control, but more Sudoers need to learn it.
STL files are wireframe/polygonal representations of a 3D model. There's a number of ways to get them:


= STL Files =
=== Write OpenSCAD (recommended) ===


Typically we've been creating STL files, which are wireframe/polygonal representations of a model. You can create STL files on any machine. Some popular programs are:
[http://www.openscad.org/ OpenSCAD] is a programming language for describing 3D shapes. You write code on the left, and it renders your model on the right. Then you can export an STL file. It has many benefits:
* free, open source, cross-platform
* keyboard-centric, less mouse dragging
* your models are deterministic
* you can easily track your changes with git
* the [https://en.wikibooks.org/wiki/OpenSCAD_User_Manual manual] is pretty straightforward
* there's even a [http://openjscad.org/ browser javascript version]!
 
But the software still has a long way to go. Some annoying things about OpenSCAD:
* single-threaded rendering, so complex models take a long time
* no persistent cache, so if you close it, you must render all over again
* GUI blocks on rendering, so if your render takes too long you must kill it (save often)
* volatile syntax - for example, child() is deprecated in git master, but the alternative children() is not even supported by latest stable (2013.06)
 
=== Use other modeling software ===
 
* Google Sketchup is exceptionally easy to use because they profit when you map buildings for them.
* [http://tinkercad.com Tinkercad] (in Google Chrome)
* [http://tinkercad.com Tinkercad] (in Google Chrome)
* Google sketchup (which can now [http://sketchuptips.blogspot.com/2010/03/sketchup-stl-importer-redo.html import STL files]
* [http://blender.org Blender]
* [http://blender.org Blender]


You can also find premade STL files:
=== Download them ===
 
You can find premade STL files:
* On [http://thingiverse.com/ Thingiverse]
* On [http://thingiverse.com/ Thingiverse]
* On the [smb://space/sudoroom%20public%20data/Projects/3DPrinting local file server]
* On the [smb://space/sudoroom%20public%20data/Projects/3DPrinting local file server]
* On sudoroom's [https://github.com/sudoroom github] ([https://github.com/sudoroom/sudo-magnets magnets], [https://github.com/sudoroom/sudo-blocks blocks], etc)
* On sudoroom's [https://github.com/sudoroom github] ([https://github.com/sudoroom/magnets magnets], [https://github.com/sudoroom/sudo-blocks blocks], etc)
 
== Slicing ==


= Slicing =
3D Printers don't understand OpenSCAD or STL. They understand an extension of gcode, which is a decades-old language which sends direct instructions such as "heat to 100 degrees, move here, do this, move there, do that, cool down". In order to print a model you have to turn it into a series of 2D layers or "slices", using a program called a "slicer". Slicers output gcode. They need to be configured for a particular printer, with settings such as melting tempurature, bed size, fill style, overhang compensation, etc. Examples of slicing software:
* Slic3r
* KISSlicer
* Skeinforge


3D Printers don't understand OpenSCAD or STL. They understand an extension of gcode, which is a decades-old language which sends direct instructions such as "heat to 100 degrees, move here, do this, move there, do that, cool down". In order to print a model you have to turn it into a series of 2D layers or "slices", using a program called a "slicer". Slicers output gcode. They need to be configured for a particular printer, with settings such as melting tempurature, bed size, fill style, overhang compensation, etc. Slicing for the Type-A Machine should be documented at [[Type_A_Machine|its page]].
Slicing for a particular machine such as our [[Type_A_Machine|Type-A]] should be documented at its own page.


[[Category:3DPrinting]]
[[Category:3DPrinting]]

Revision as of 15:51, 2 February 2014

This page is about creating models for 3D-printing. It's mostly geared towards Sudoers using our Type-A Machine 3D printer, but models can be made by anyone anywhere, just like word documents don't have to be made on a machine attached to a 2D printer.

STL Models

STL files are wireframe/polygonal representations of a 3D model. There's a number of ways to get them:

Write OpenSCAD (recommended)

OpenSCAD is a programming language for describing 3D shapes. You write code on the left, and it renders your model on the right. Then you can export an STL file. It has many benefits:

  • free, open source, cross-platform
  • keyboard-centric, less mouse dragging
  • your models are deterministic
  • you can easily track your changes with git
  • the manual is pretty straightforward
  • there's even a browser javascript version!

But the software still has a long way to go. Some annoying things about OpenSCAD:

  • single-threaded rendering, so complex models take a long time
  • no persistent cache, so if you close it, you must render all over again
  • GUI blocks on rendering, so if your render takes too long you must kill it (save often)
  • volatile syntax - for example, child() is deprecated in git master, but the alternative children() is not even supported by latest stable (2013.06)

Use other modeling software

  • Google Sketchup is exceptionally easy to use because they profit when you map buildings for them.
  • Tinkercad (in Google Chrome)
  • Blender

Download them

You can find premade STL files:

Slicing

3D Printers don't understand OpenSCAD or STL. They understand an extension of gcode, which is a decades-old language which sends direct instructions such as "heat to 100 degrees, move here, do this, move there, do that, cool down". In order to print a model you have to turn it into a series of 2D layers or "slices", using a program called a "slicer". Slicers output gcode. They need to be configured for a particular printer, with settings such as melting tempurature, bed size, fill style, overhang compensation, etc. Examples of slicing software:

  • Slic3r
  • KISSlicer
  • Skeinforge

Slicing for a particular machine such as our Type-A should be documented at its own page.