The Cyberware EchoTk software supports the acquisition, processing and editing of 3D images obtained by Cyberware Rapid 3D Scanners. The scanner itself is an optical and electronic assembly which captures surface contours of a wide variety of objects. The scanner is always interfaced to a computer which supports the processing of the large volumes of high resolution data created by the scanner.
Additionally, these data sets, or images, can be manipulated in a wide variety of ways and then be reproduced in both a visual and solid form. Views of the dataset may be rendered on a graphics workstation in either wireframe or shaded form. Solid reproductions of images may be machined on computer-controlled machine tools from a wide variety of materials.
EchoTk is a modified version of Cyberware's standard Echo program. This version is intended to provide the user with a simple, intuitive interface to run the Cyberware digitizer and process the resulting files.
This manual assumes familiarity with the use of the UNIX operating system, the
windowing system and the mouse.
Capabilities
The capabilities of the software may be divided into four general categories:
The software is developed in conjunction with the scanners. Much of the software reflects the design of the scanner. The software has been developed with what might be called a toolbox approach. A toolbox contains many tools, each with a certain use. Most tasks require the use of many tools, each contributing its own function to the task at hand. Each software tool of the EchoTk software has been designed to perform as simple a function as possible. While many tools do very little, the use of them in the proper sequence results in a very powerful and flexible system. We hope that their individual simplicity also makes the EchoTk software easier to understand.
The software is intended to handle the images of 3D surfaces acquired by the Cyberware scanners. Therefore, understanding these images and their representation are fundamental concepts.
All Cyberware scanners acquire 3D surface information as a series of contours. A contour of a face might look like a profile, and a contour of a hand might look like a slice. These contours are, by convention, defined as a series of coordinate values at regular intervals. The depth values are named Z, while the intervals which lie along the contour are called Y. With Cyberware scanners, each Y interval is assigned one and only one Z value. This is fundamental to the design of the Echo software.
Typically each contour is divided into 450 Y intervals, and each assigned a Z value. Portions of this contour may contain no value at all. These are places where there was no visible surface. These points will have a value of 0 and are known as void. Some points on the contour may have had too much reflection, so their Z value will be much greater than the normal surface. These points are called spikes or anomalous data.
Non-void values will usually be expressed in microns so that integer values can be used. Microns are easily converted to millimeters by placing a decimal point 3 places in from the right.
Each contour is a two-dimensional object. To define a three-dimensional surface these contours are scanned side-by-side across the subject surface. This forms a perfectly regular grid of Z values which is sometimes called a range map.
Because the origin of the software was in the scanning of human heads with the Cyberware PS scanner, the terminology uses the words longitude and latitude. The PS scanner scans in a cylindrical fashion. The contour line is vertical and is called the longitude; it is composed of radius values spaced at regular intervals. These longitudes and latitudes are also called theta and Y respectively, with the Z value being the radius.
Other models of Cyberware scanners, such as the LN, MM, MS or Model 15, produce a cartesian or rectangular image. The only difference from cylindrical images is that the interval between successive contours, or longitudes, changes from angular to linear. And the Z value is interpreted as a distance to a plane rather than a radius.
You may think of the latitudes and longitudes of a cartesian image as X and Y respectively. The value of each point on this grid is the Z coordinate.
Most of the commands make no distinction between the two image types. If there is a difference in a command's function between the two image types, then it is noted.
Throughout the software, in the names of commands for example, longitudes and latitudes are abbreviated as lg and lt respectively. When the options to a command require it, longitude and latitude might be referred to with the single letter g and t respectively, these being the significant unique letters of the two words.
Because the image is represented by a range map composed of points at regular intervals along each axis, the software maintains the dimensions of these intervals rather than the actual coordinates of each point. This is a great time and space saving technique. It also enables the software to perform some transformations which would be otherwise very complex. These intervals are often discussed in the documentation as the values lgincr and ltincr. The associated variables nlg and nlt indicate the number of points along each axis.
If you keep in your mind, and perhaps occasionally sketch this range map
format, it will be much easier to understand the software and commands.
Organization of this User Guide
This User Guide is divided into 8 sections; Introduction,
Safety, Site
Preparation, Operation,
Quick Start,
Reference,
Advanced Usage, and Command
Descriptions. A suggested approach to using EchoTk is to finish reading the
Introduction, especially the Setup portion, and if
you are not familiar with Tcl/Tk, then read the Conventions
section as well. Next, read the Safety Section and
the Quick Start, duplicating the examples using
EchoTk. Refer to the Site Preparation,
Operation, and Reference
as necessary to understand the parameters of the various
algorithms, menu selections, and interface items. The
Advanced Usage and Command
Description Sections are provided for experienced users of the application,
and include information about scripting EchoTk, as well as some further
examples of the uses of EchoTk and the built-in commands.
System Requirements
The following are the minimum system requirements for using EchoTk on a Silicon Graphics workstation:
By default, EchoTk should be installed into the /usr/local/echotk directory. You may choose to install it elsewhere, and if so please modify the environment variables and path statements that follow accordingly.
For information on how to install EchoTk and the supporting software, please refer to the appropriate Software Installation Instructions.
In order to execute EchoTk, you must set the following in your .login file:
| setenv ECHO_DIR /usr/local/echotk
setenv ECHO_CFG $ECHO_DIR/cfg/echo####.cfg set path = ($path $ECHO_DIR/bin_sgi) |
Once these environment variables are set, start EchoTk by entering:
| irix 101# echotk |
EchoTk was written to run on a Silicon Graphics workstation, and uses the GL graphics library to display objects. It uses the Tk widget toolkit for buttons and Tcl command interpreter as a text front-end to interpret user commands. Tk and Tcl are both written John Ousterhout of the University of California at Berkeley, and is freely distributed from a number of FTP sites.
Graphical user interfaces may differ greatly in their applications, but their components are usually quite similar. They encompass one or more windows, some of which are only visible briefly, and these windows contain buttons, menus, lists, labels, scroll bars, sliders, and text areas for users to type in. These different pieces are all referred to generically as widgets and are the building blocks contained in toolkits such as Tcl/Tk.
Users interact with the application by setting values, selecting
options, pressing buttons, moving sliders, etc. These, in turn, cause
the software behind the interface to perform an operation with input
from the user. Often, this changes something in the interface so that
the user sees the result of the interaction.
Mouse Buttons
Buttons and toggles are activated by clicking on the Select mouse button when the cursor is within the button. The Select mouse button is the left button on a right-handed mouse, or the right button on a left-handed mouse. (From this point forward, we assume that the left button is the Select button, and also we will refer to the left mouse button as Button 1, the middle button as Button 2, and the right mouse button as Button 3.
Another important interactor object is the selection list. The selection list displays a list of zero or more items to select. An item is selected by placing the cursor (i.e. the mouse pointer) over it and clicking Button 1. In some cases, more than one item may be selected by repeatedly using Button 1. In this case, selecting a previously selected item will deselect it.
Menus are used as interactor objects in some cases. Menus are initiated by placing the cursor on a menu title and pressing Button 1. Continue to hold down the mouse button, then move the mouse until the desired menu selection is highlighted. Then release the mouse button. Releasing the mouse button on a highlighted selection processes that selection.
Where appropriate, the conventions used in other graphical user interfaces have been followed. In particular, the meanings for the following buttons in the dialog boxes are standard: