3D CAD Framework for Smalltalk
A-S Koh
curriculum vitae (resume)

Page updated: 2002/06/12
'StCAD6 was created on 2002/03/30. supersedes all patch6*.zip.

What is 'StCAD'?
What are the features of 'StCAD'?
What is new in this release?
Are there any reviews or articles?
How to download, install, patch and quick test 'StCAD'?
Are there documentation, tutorials or examples?
What are the known problems?
Where can I get help with 'StCAD'?
What is a sponsor?
How can I help?

What is 'StCAD'?

'StCAD' is a basic 3D CAD framework in Smalltalk (VisualWorks 5i.x). It extends the GF/ST 2D drawing framework into 3D. It also include 'StGeo' which is the 3D geometric domain, 'StMath' which provides the mathematical support for 3D CAD and motion simulation computations, and 'StDoc' which is a simple word processor. 'StMath' is also suitable for engineering, scientific and business computing. The parcels are open source using Lesser GNU Public License. Users can use these parcels with other private software to create 3D applications like motion simulation, finite element analysis, CAD, scientific visualization, etc.

'StCAD' allows users to create and manipulate assemblies, which are collections of 3D parts. The parts are 3D solids, which can be connected by joints, constraints, contacts, actuators, springs, dampers or forces. The parts and connections define the structure or mechanism that the assembly is meant to represent. Animation is possible, if the user can provide time series of position and orientation data for the parts.

Users can also obtain output data in the form of plots and tables. XY plots can be zoomed and set to equal scales. Data series available include linear and angular displacements, velocities, accelerations and other user generated data.

'StCAD' has been used to create a freeware called 'freeCAD' which is a 3D CAD with Motion Simulation. The parcel 'StMbD' has been included to provide a functional demonstration, but its source code is hidden. For more information visit:

What are the features of 'StCAD'?

'StCAD' is capable of full 3D pan, zoom, tilt and rotate. Available solids are extrusions of rectangles, circles, ellipses and polygons. The solids can be positioned and oriented exactly in space, as are markers on the solids. Exact specification of linear and angular velocities of solids in space are also possible. Mass and inertia properties can be user specified or automatically computed based on uniform density. Available joints are spherical (ball), revolute (pin), translational (slider), cylindrical, planar, fixed, universal, point in line, point in plane, parallel, perpendicular, no rotation, constant velocity, rack pinion, screw. The curve-curve contact allows liftoffs and collisions based on coefficient of restitution. Available actuators are rotary and translational. Their motions are user prescribed functions of time. Forces and torques are user prescribed functions of time, displacements and velocities in all three components or along connecting markers. Example formulas for spring, damper, bushing, beam, aerodynamic, inverse square law and other forces and torques are given. Users can specify constant gravity of arbitrary magnitude and direction.

Users need to provide the domain to simulate the behavior of the system. Simulation progress can be animated and stopped any time. After simulation, the computed solution can be used for animation or frame by frame analysis. Full 3D pan, zoom, tilt and rotate is available during simulation and animation. Users can also obtain output data in the form of plots and tables. XY plots can be zoomed and set to equal scales. Individual parts can be saved into files and reinserted into any assembly repeatedly. Assemblies can be saved in binary or tab delimited text format with textual notes and simulation data for later reload. The text format allows pre and post processing of assembly and simulation data by other programs. 'StCAD' runs on Windows, Macintosh PPC, Linux PC and other Unix's. Assembly data are unchanged across platforms.

What is new in this release?

'freeCAD' can now read and write assembly and simulation data in a tab delimited text format suitable for spreadsheets. The text format allows pre and post processing of assembly and simulation data by other programs.

Are there any reviews or articles?

Search for 'freeCAD' at the following web sites:
Top Quality Freeware
Cad Depot
The Internet Resource for Engineering Professionals
Mechanical Engineering magazine, September 2001, "Software Exchange, 3D-CAD",
CADENCE magazine, October 2001, "Analysis Tools For The Desktop",

How to download, install, patch and quick test 'StCAD'?

StCAD6 is broken on VisualWorks 7. I am fixing it.
You can get a free non commercial copy of VisualWorks 5i.4 at
Create a directory, say, C:\vw5i4nc (or as appropriate for your platform) for the following downloads:
VW5i4NC-VMWindows.tar.gz  or choose a VM suitable for you computer.
Uncompress the files as instructed.

To try 'StCAD' in VisualWorks 5i.4:
Create a directory, say, C:\vw5i4nc\stcad6 for the downloads.
Download  (2.11MB, 2167KB, 2218630 bytes).
Download  (3.68KB, 3776 bytes).
The files should be good on all platforms supported by VisualWorks.
Unzip into the same directory.
Unzip patch6*.zip into the same directory. Let it overwrite other files.
Save a new image in the directory and launch it from you operating system.
Load parcel C:\vw5i4nc\stcad6\stcadstart6.pcl.
Click 'Yes to All' for all prompts.
Launch 'freeCAD' with doit 'StCAD.Editor open', if it is not already launched.
Inside 'freeCAD', click Explain/Quick Test/ and Explain/Quick Start/, to find instructions and tutorials.

Quick test 'freeCAD':
Make sure that the example assemblies (*.asm) are in the directory of the image.
Click File/Open/Assembly/ to get list of example assemblies.
Choose one, say, fourbar.asm
Click View/Tilt Rotate/ to center the model.  Drag the handles to tilt and rotate the 3D assembly.
Click Simulation/Animation/ to get the animation dialog. Click Play to start animation.
You can click any View menu item and drag handles, even during animation.
Please report any problems to
A-S Koh

Quick start:
Click Explain/Quick Start/ to learn how to build a model from scratch. Together, the tutorials demonstrate the available features in 'freeCAD'.

Are there documentation, tutorials or examples?

'StCAD' is an extension of GF/ST, so its documentation (gfstvw.hlp) is relevant. Class CADApp has some documentation in class methods. Class StMathHelp has examples of use for StMath.

Inside 'freeCAD', documentation are collected in a series of menu items labeled 'Explain'. Click on them anytime. Click Explain/Quick Start/ for a list of examples on projectiles, circular motion, relative motion, pendulums, spring-masses, four bar linkages, piston crank, gyro, cam follower.

The motion simulation theory is in the journal paper:
Koh, A-S., and Park, J-P. "Object Oriented Dynamics Simulator," Computational Mechanics, Jun 1994, 14(3) 277–287.

More Example Assemblies

What are the known problems?

All Platforms:
'Invalid zip file'. Check that the download files have the exact number of bytes shown above.

On Windows:
Right clicking on some mice does not bring up the correct menu. Try right clicking while holding the ctrl key down.
On Windows 98, the help dialog for motion and force-torque dialogs will not close when the X button is clicked. Close with ESC key.
On machines with low memory, desktop icons may become white when 'freeCAD' exits. Reboot to recover. Internet Explorer 5.5 seems to be the cause. Upgrade to Internet Explorer 6.
If resizing the window is very slow to repaint, disable 'Show window contents while dragging' found in Start/Settings/Control Panel/Display/Effects.

On Linux:
'Out of Memory' error at startup. The probable cause is having too many fonts. Execute with the following command to start freeCAD
./visual -h10M

Please report problems to
A-S Koh

Where can I get help with 'StCAD'?

For the latest information, free downloads, patches and examples for 'StCAD', visit:

To pose a question, submit it to the newsgroup comp.lang.smalltalk. Prefix the question with [StCAD] to distinguish it from other questions in the newsgroup.

Finally, you can email:
A-S Koh

What is a sponsor?

Sponsors can advertise on the 'StCAD' web site. Sponsors can also request for customizations of 'StCAD' or 'freeCAD' and other consultancy services from the author. A-S Koh's curriculum vitae (resume)

For more information, please contact A-S Koh at

How can I help?

Your bug reports and suggestions are most valuable for improvements in 'StCAD'. If you have code to share so that others can benefit from your work, please let me and others know about them. I can include them on this site if you want. Finally, but not least, please tell your friends and colleagues about 'StCAD'. Thank you very much for your contributions.


'StCAD' is provided 'AS-IS' with no warranty as to its use or performance. By using it, you agree to indemnify the author from any liabilities that you may incur from the use of the software.

Copyright (C) 2000-2002, A-S Koh, All Rights Reserved.