Model 2 Software

From Fab @ Home

(Redirected from Fab@Home:Software)
Jump to: navigation, search

Fab@Home Software redirects here. For software for older versions of the Fab@Home, see Model 1 Software.

The Model 2 separates print planning software from printer control software. This distinction will allow for greater flexibility moving forward. Two options are available for print planning: FabStudio is capable of converting one or more STL or AMF files into printable paths, generating a FAB file; svg2fab is a bare-bones utility that outputs a FAB file from a vectorized graphics image (SVG). FabInterpreter controls the printer and uses the information in the FAB file to print the object.

Contents

FabStudio

FabStudio is open-source software created for the Fab@Home 3D Printer project. The program manipulates STL and/or AMF data and tool configuration data to produce a FAB file. The most recent version is always available for download at its Launchpad page. The legacy version, V0, remains accessible here.

FabStudio v2.0.1

The release of FabStudio v2.0.1 is completely cross-platform, running on Windows, Mac OS and Unix-based operating systems. All code is available, open-source, under the Simplified BSD License. FabStudio was written by Karl Gluck, Nathan Lloyd, Chris Hogan, Jason Zhao, Jimmy Liu, Karina Sobhani, and Jeremy Cohen.

Usage

FabStudio automatically detects STL (in both binary and ASCII encoding) and AMF models in its program directory and makes them available for placement in the interface's workspace. Click and drag an object from the list into the workspace; once the object has been loaded, it will appear with controls for translation, scaling, and rotation.

The video tutorial for FabStudio can be found here: [1]

Edit Objects

The Edit Objects menu provides quantitative control of positioning. The options provided are absolute xyz coordinates, degrees of rotation around 3 axes, and scaling (uniform or individually in each dimension).

Materials

The final tab on the bottom right is used to assign build materials to each object. Again, click and drag a material from the list onto each object; once a material has been selected for it, an object will be color-coded so that multi-material print jobs can be easily identified.

Print Scene

Clicking "Send to printer!" in the upper menu will bring up the Print Scene dialog, from which a toolscript must be selected. The toolscript contains calibration information for the print materials. It is typically contained within an XML file specifying one or more print materials, as appropriate to the particular print job. "Modify Tool and Printer Settings (Advanced)" displays additional customizable settings, notably pathing algorithm selection: the simple crosshatch pather completely fills in objects, whereas the edge-only pather will create a hollow version of the print selection.

Final Steps

Once all paths have been computed, the completed data can be either stored in a FAB file for later/multiple use or immediately sent to the printer through FabInterpreter.

Adding Objects
Adding Objects
Edit Objects
Edit Objects
Materials
Materials
Print Scene
Print Scene

svg2fab v2.0

svg2fab GUI
svg2fab GUI

svg2fab is a lightweight alternative to FabStudio, useful for quickly producing working FAB files for primarily 2-dimensional Fab@Home toolheads such as the vinyl or foam cutters. Two input files, an SVG and a toolscript (.xml), are specified either in a simple GUI prompt or as command-line arguments, and a FAB file is written to a default or specified output path. As of svg2fab v2.0, curved paths are fully supported (with the exception of <path /> elliptic arcs), as well as transformation matrix attributes. The project is maintained by Jimmy Liu and can be accessed at its Launchpad page.

Command-line Interface

Syntax for the console version of svg2fab is simple:

svg2fab_c.exe <image.svg> <toolscript.xml> [-output <output.fab>] [-scale <scale>] [-pitch <pitch>] [-nomerge] [-noresults]

Each parameter in square brackets is optional. If no output path is specified, output will be written to svg#.fab in the application directory, where # is the least non-negative integer for which a file does not yet exist.

Generate Support Material

Current Version of Support Material
Current Version of Support Material

The current version of FabStudio supports printing with frosting as support material. Given a print scene, FabStudio checks if any of the objects contain downward pointing triangles and uses the results to determine if support material is required. The release version of FabStudio uses a simplistic algorithm that searches the print tray for the maximum and minimum (x,y,z) objects and creates a bounding box around all of the objects. The bounding box is created by iterating through all of the AMF triangles that represent each object and inverting the normal vector thus creating a cavity where the object resides. This approach is functional however requires a large amount of frosting since it covers the entire object. A new algorithm for support material is currently under development and when finished, it will use much less material to support objects and it will also work with the plastic tool. The new algorithm scans the objects on the print tray for downward facing triangles and creates a separate supporting region for each of these downward surfaces. The supporting region will then be passed to the cross hatch pather and use a low density plastic grid to support the objects.

Future Implementation of Support Material
Future Implementation of Support Material


Fab2GCode

Fab2GCode GUI
Fab2GCode GUI

Fab2GCode is a .fab file converter for users of other 3D printers, such as MakerBot, who prefer FabStudio as a way to design their printed objects. It is written in Python 2.7 and uses PyQT for the GUI interface. To use the program, you can run FabConverterGui.pyw or use the command line version, Converter.py. From there, you can take the output .gcode file to use in your printer's program, such as ReplicatorG, as if you had written the code directly in that program. Currently, only MakerBot is supported as a printer, but other printers are to be supported in the future. There are currently no guarantees whether or not this converter will create objects completely correctly since the tested printer had some issues with extrusion speed. This code can be accessed at the Launchpad page for fab2Gcode.

GUI Interface

To convert a file through the GUI, follow these steps:

  1. Load a .fab file using the Load Fab File button
  2. Select the printer whose G-Code you want the Fab file converted to
  3. Make any edits to the G-Code on the right as you deem necessary
  4. Save the file with a .gcode extension using the Save As button

Command-line Interface

Syntax for the console:

python Converter.py <printer.xml> <file.fab> <output.gcode>

The configuration for each type of printer is stored in a .xml file. For example, the configuration for MakerBot printers is stored in Makerbot.xml.

FabInterpreter

The Qt based FabInterpreter GUI
The Qt based FabInterpreter GUI

FabInterpreter uses FAB files to control the Model 2 using jrkerr motor libraries. There are currently two version of the model 2 FabInterpreter. One is written using Visual Studio, and is only Windows compatible. The other is written using the Qt framework and is compatible with Linux and OSX. You may need to edit the printer configurations manually to select the correct COM port being emulated that the control box is connected to. FTDI USB to Serial Drivers are needed from here. The software can be found on the main site software page.

Installing the FabInterpreter

  1. Switch the SnapHub into pass thru mode (switch on bottom)
  2. Turn the SnapHub on after ensuring all the needed motors are plugged into the hub.
  3. Plug the Fab@Home fabber into your computer, the needed drivers should auto install on Windows, and are built in under OSX and Linux.
  4. Find which com port the printer is on. (see below)
  5. Change the comport value in the printer config files to be that value.
  6. Open FAB2.exe which is the FabInterpreter.
  7. Hit Initialize and load the printer config file (default location is in 'Printer Configs' folder under FabAtHome program files directory).

If all is right it will populate fields with axis and numbers. If connection fails, it will show a message , "0 of N modules Found". If all the cables are secure and the device is correctly recognized by the computer, the most likely problem is an incorrectly configured COM port.

Configuring the port

On Windows

  1. Open Device Manager by pressing 'Win Key + R' to open the run dialog and typing 'devmgmt.msc' and hitting Enter.
  2. Under Ports look for the COM Port used by a UART device. There's usually only one COM on modern systems. This number is generally persistent for one printer on one computer.
  3. You can now either change the value in the .config file to agree with the port, or vice versa.
  4. In either case, open the .config file you want to use in a text editor and search for '<comPort>*</comPort>' to find the configured port number. In most cases when using one printer on one computer, just change this value to agree with the one in Device Manager.
  5. If necessary, you can change the COM Port value itself instead by right clicking on the COM Port under device manager, clicking Properties, clicking Advanced under the Details tab, and changing the COM Port in this dialog.
  6. Loading the config file should now work.

On Unix systems

  1. Open up a terminal window
EITHER
  1. Run 'dmesg | tail' immediately after plugging in the printer. There should be a line similar to ' usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB0'. The last identifier is the device location.
  2. The Port Name in FabInterpreter is /dev/[the location].
OR:
  1. Go into /dev folder by typing in "cd /dev"
  2. Turn on the box and plug it into the computer
  3. Type in "ls"
  4. The location will be of the form tty.usbserial-******** or ttyUSB* depending on your system. The Port Name in FabInterpreter is /dev/[the location].

Under OSX

  1. Open System Profiler
  2. Under Hardware/USB/USB Bus there should be an FT232R USB UART device.
  3. There should be an 8 character serial number listed beginning with A. The Port Name in FabInterpreter is /dev/tty.usbserial-[this serial number].