Fabbaloo: How did you come to be interested in CAD and 3D modeling?
Giles Bathgate: From an early age I was fascinated by things such as BigTrak and the Turtle in the Logo programming language. Later as school work experience I was introduced to AutoCAD. One of the nice things about AutoCAD was its interpreter based interface. Fast forward 20 years or so having used various CAD packages through College and University, and I find myself in a job writing business computer software, a departure from by Graphics and Design based roots. I do like the GUI based CAD packages, but one of the things that you often do when using AutoCAD for example is to create temporary construction lines that you either delete or put on a layer that is never used or seen. From another persons perspective its not always obvious how you arrived at your final design. Having worked in the software industry and seeing the vital role of version control, I realise that what is missing from CAD is the transcript of decisions made during the design process. When I came across OpenSCAD I saw that solves some of these problems when used in conjunction with version control.
FB: Tell us the goals and intentions of RapCAD. Why yet another 3D software tool?
GB: As I started to use OpenSCAD, I found that some areas of the software were a bit inconsistent and limiting, furthermore at the time there were long gaps between short bursts of development, as the transition of maintenance was being transferred from Clifford Wolf to Marius Kintel. On the whole however, it’s a great piece of software and provided a sound basis for developing RapCAD. Another piece of software that I was not completely satisfied with at the time was the official Reprap host software. Its a pioneering piece of software that’s main focus is perfecting slice and dice algorithms rather than providing the end user with a pleasant UI experience
. My favourite piece of software at the time was Repsnapper, which provided a better UI, but I found the slice and dice algorithms although much faster were not producing very reliable results.
The Goal of RapCAD is to combine these two key areas of software into a complete solution. To provide an open source design and prototyping tool that has all the advantages of a script based model description, as well as the ability to turn the design directly into GCODE instructions to control a rapid prototyping 3D printer.
FB: RapCAD was announced late last year – what’s happened since then?
GB: The development of RapCAD thus far has mostly been a learning process for me. I have been using the OpenSCAD source as a reference. I must confess I am not a big fan of the way OpenSCAD has been written, and some of the design choices made (e.g. variables that don’t vary, and the intersection_for kludge). I felt that I could learn a lot more by starting from scratch than trying to modify the existing code base to make it do what I wanted. I am now at a point where I have started making monthly binary releases. So far can do about 90% of what OpenSCAD is also capable of doing, having said that though I think that most of the things that are implemented are largely improvements over the way OpenSCAD does things.
FB: You’ve indicated RapCAD will address RepRap and MakerBot machines – but what about other machines that are becoming popular, like BFB, Ultimaker, Up!, BotMill or others?
GB: Not only do I intend to support all the additive machines mentioned above, I also want to make the software flexible enough for controlling subtractive machines such as CNC routers. The idea is to use a special type of RapCAD script called an .rcam script that will perform the slicing dicing and generate paths that will be used by the GCODE generation code. More about this can be found on my recent blog post
FB: What is the development roadmap for the next year? What are the key capabilities that will emerge?
GB: The key features that I want to work on now are GCODE generation and after that integrating printer control. I am very pleased to see that libreprap development coming along and I think this will be a crucial library for providing the latter of these features. I think my main milestone for announcing a 1.0.0 version would be: to be able to think of a reasonably feature full design, create a script to describe that design, and then have RapCAD produce the commands to turn that design into a 3D print on my Reprap Mendel.
Version 2.0.0 might see the addition of integration with git to make version control quick and easy, as well as completing the integration of native ThingDoc to produce documentation and images from the script.
FB: Is there anything you’d request of our readers? Do you need particular kinds of assistance?
GB: I would love if your readers could test out my (alpha) releases, which I am doing monthly. The latest is 0.2.0, and is available for Ubuntu, Windows and Mac OS X. I need people who are early adopters and understand that it is still very much a work in progress. If there are any coders out there that feel like looking at the code and pointing out potential problems or pitfalls that would be very much appreciated. As always feature suggestions and patches will be welcomed.
You can check out the evolving RapCAD at the link below.