-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Reprap Print Studio aims to redefine the end user experience of printing with a reprap.
The current software for reprap printers provide very proprietary interfaces which perhaps arent' as intuitive as they could be. One reason for this is that they largely ignore the current UI metaphores which have been developed over the past couple of decades for 2D printing.
Reprap Print Studio has several aims:
- To present a user experience that leans heavily on the lessons learnt from the 2D printing world to deliver a more familiar user interface.
- Where possible use existing standards (terminology and protocols) from the 2D world.
- Provide better separation of functional components.
- Deliver multi-material printing support
- Develop a plugable archetecture so that the system can easily be expanded by third parties.
- Involve as large a part of the Reprap community as possible.
Resources
To maximise existing code the project will utilise existing tooling as much as possible. To that end the follow projects will be used as contributing codes bases:
#Reprap Host #Skien Forge
The core language will be java utilising the Eclipse IDE.
#Reprap Print Studio (RPS) RPS is a UI which focus' on print layout, slicing and layer visualisation and tuning. RPS will output STL, AMF and gcode files. RPS primary format will be AMF as it allows multiple objects, materials and colours to be defined in a single file and is critical for support of the multi-material printing.
RPP will be a UI/service responsible for the actual printing process. RPP will accept as input gcode files (or some similar substitute). RPP will provide printer setup and calibration tools as well as implementing a print queue. RPP will provide a method to directly open a gcode file however it will also provide a standards based tcp interface for accepting and managing print job.
User space print drivers will be developed (effectively POJOs with a defined interface) to allow RPS and RPP to operating independently of the underlying printer. Both RPS and RPP will provide an interface to allow a Print Driver to be loaded. The print driver will provide all of the printer specific configuration information needed to slice objects.
The first component developed is a library which supports the creation of AMF files by merging multiple STL files. At this point in time there are no native CAD applications that support AMF. As such allowing multiple STL files to be merged into a single AMF file allows existing CAD applications to be used to support our multi-material tool chain. The conversion tool is complete and supports the following features.
- Read/Write STL, STLB and AMF files (with crude support for OBJ) files.
- Provide unit conversion when merging files (millimeter to/from inches, meters, microns, feet)
- Allow multiple input files to be merged into a single output file.
- Rotate or translate the input file when writing it to the output file.
- Assign a material to an input file when the output file is an AMF file.
- Assign a colour to an input file when the output file is an AMF file.
- High speed manipulation of all of the above through the aggressive use of threads.
This is the home for my multi-material/multi-colour tool chain for reprap.
The initial aim of the tool chain is to allow existing reprap printers to print using multiple material and/or colours and when the hardware is available to support repraps that have multiple extruders.
The initial tool chain will include:
- Tool to convert multiple STL files (each representing a different material or colour) into a single AMF file.
- Modified reprap host which can load a multi-material/multi-colour AMF file.
- Modfied reprap host which can display/slice an AMF file.
- Modified reprap host which is able to generate gcode that includes the required tool change commands.
- Modified firmware (sprinter?) that support the required tool change commands. In order to support existing hardware this will be done by 1) pausing the print 2) backing out the extruder material 3)loading new material into the extruder 4) pausing until operator confirms new material loaded 5) dumping material to a dump point to clear previous material from nozzel. 6) resuming the print.
The STL converter will be the first tool delivered. This is a java port of Alex W's STL encoder/decoder.
Learn more about repraps multi-material tool chain
The original reason for the port is to add this library to the reprap host in order to read stl files, as the standard java3d stl importer has some bugs.
The code is now being morphed to support a multi-material tool chain for reprap 3d printers. In order for reprap printers to support printing multiple materials on a single print run we need the ability to support multi-material object files such as AMF. Currently there are no CAD tools that support AMF. As such the first object of this convertor is to allow multiple STL files to be combined into a single AMF file. As each STL file is merged into the AMF file a geometric transformation and a material id will be added. In this way and an AMF file can be created without the need for direct CAD support.
As well as porting the code to java I've made a couple of improvements:
- Code no longer reads the entire STL file into memory but rather use random access to access the file as needed. This should allow much larger STL files to be read.
- I've restructured the code so it can be used as a library as well as a standalone application. The main changes involved removing all of the code that writes to stdout. The code now throws exceptions instead.
- support for AMF importing has been added.
TODO: Write an AMF encoder so we can output AMF files. Allow multiple STL files to be combined into a single AMF file with a transformation and material id being added as part of the merge.