SX

This is an old version.

For newer version please check out the
NEW SX modeller implemented in PLT-Scheme.
A lot of libraries have changed since 1998, therefore I include the source of the
libraries that are required.

Description

SX is a graphical 3D object modeller
implemented in Scheme.
The program can create, edit, modify
any geometry consisting points, one dimensional elements (links),
triangles, quadrilaterals and boxes (experimental feature).
Several operations on the objects
have already been implemented and there are several operations which
will be implemented as they are required.
Lots of the features of the program or handling of the geometric model
follow some of the features found in AutoCAD. (AutoCAD is
a registered trademark of Autodesk).
However This program is not an AutoCAD
replica. The reason to "borrow" some features from AutoCAD is that
I liked AutoCAD, but they discontinued the UNIX version of it
somewhere around version 12. (If there is an AutoCAD for Unix then
this program would never exist.)

The program is developed in GNU guile, but now it is possible to use the
base system with Bigloo. In Bigloo actually it is possible to compile the
program into a binary file!

Todo

Proper crash handling. At the moment the program rely on the fact
that guile cannot be crashed, which is true. :-)

Command shortcut file should be parsed.

Other operations on objects:

Generation of points of a circle on an arbitrary plane.

Rotate objects around an axis.

Project points to an arbitrary plane.

Scale objects.

Extend a link object to an arbitrary plane.

Break a link object at the intersection point with an
arbitrary plane.

Trim a link object at the intersection point with an
arbitrary plane. (?)

Extrusion along a path, spinning around an axis. (?)

Some random comments

The program is still under development. Any suggestions, comments and bug
fixes are greatly appreciated.

On my 700 MHz machine approximately 2000 objects can be handled
conveniently with the program. This limit is mainly due to my lack of
experience with scheme. Optimization comes later, but any idea is
appreciated.

No extension language is necessary, like AutoLisp, since you have the whole
source, it can be adapted as required. :-)