Chips Project
Introduction
The Chips project is a project to put together
a usable CAD/CAM (Computer Aided Design/Computer
Aided Manufacturing) system for the Linux platform.
When it comes to CAD/CAM, there are two basic
strategies -- separate CAD and CAM tools and
integrated CAD/CAM tools.
-
Separate CAD/CAM
-
When the CAD/CAM tools are separate, the
first task is to design a part using a CAD
system. The part design specifies all of
the important characteristics of the part,
its material, its demensions, positions
of holes, thread pitches, surface smoothness,
etc. It does not in any way specify how the
part is to be manufactured. That is role of
the CAM post processor, which takes the CAD
part specifications and helps convert them into
a sequence of manufacturing steps that will
ultimately cause the specified part to be
produced.
-
Integerated CAD/CAM
-
When the CAD/CAM tools are integrated, the
manufacturing process is part of the design.
Thus, the ultimate part includes as part of
its design, the sequence of manufacturing
steps required to manufacture the part.
The Chips project is definitely an integrated CAD/CAM
system. The basic concept is that Chips consists of a
library of relatively high level routines like, drill
a hole, mill out a pocket, cut an outline, etc. The
user specifies a sequence of these operations that
when executed in order result in the finished part.
In greater detail, the user writes a program for
each part. In preview mode, Chips allows the user
to preview the part in 3D on the screen after each
manufacturing step (i.e. drill a hole, mill a pocket,
etc.) Once the user is satisfied with the 3D part,
Chips is put into production mode where it either
generates an industry standard (sort of) RS-274
(i.e. G code) file, or Chips can be made to produce
a file called a timed position file that can be
consumed by one of my
table top CNC controllers.
Since the part is manufactured using high level
routines, it is possible to use the same program
to manufacture the same part on significantly
different CNC machines. For example, both Bridgeport
and a Sherline are capable of manufacturing small
parts. However, the Bridgeport is a stiffer machine
with signicantly stronger motors. Thus, the
Bridgeport can "hog" out metal significantly faster
than the CNC Sherline. By taking into account
the different metal removal rates of the two different
machines, the Chips high level routines can produce
customized instructions for the two different machines.
Hence, the CNC Bridgeport will make the part faster,
than the CNC Sherline; ultimately the two produced
parts should be interchangable.
More Details
{A lot more details need to go here.}
References
Chips is assembled out of the following pieces:
-
OpenGL/Mesa (C)
-
The OpenGL library is a library that was
initially promoted by Silicon Graphic, Inc.
The open source Mesa project has largely
reproduced the functionality of OpenGL
without having to pay for OpenGL
certification.
-
GLU (C)
-
The Graphics Library Utilities (GLU) library
has a bunch of routines for doing triangle
tessellation and the like. The GLU library
is usually included with the OpenGL/Mesa
library.
-
GLUT/FreeGLUT (C)
-
The Graphics Library User Toolkit (GLUT) is
a platform independent window system
for OpenGL/GLU. It is not clear whether or
not I'm using the original implementation of
GLUT or the FreeGLUT implementation.
-
GLUI (C++)
-
The Graphics Library User Interface (GLUI) is
a platfrom independent set of widgets based on
top of OpenGL/GLU/GLUT. It has labels, check
boxes, radio buttons, entry fields, etc.
-
GTS (C)
-
The Gnu Triangulated Surface library is a
bunch of routines that allow people to
represent solid objects as a bunch of
interconnected triangles. In particular,
the GTS provides so called Constructive Solid
Geometry (CSG) boolean primitives such as
union, intersection, and difference.
Miscellaneous
The
RoboStrut Jig is an example of the Chips
library in action.
Copyright (c) 2002-2003 by
Wayne C. Gramlich.
All rights reserved.