Example of scanning an object and aligning the parts


Make a directory, eg. object, to hold the data, and go to it. Make two subdirectories, eg. angle1 and angle2.

Take the cover off the front of the head assembly of the scanner.

Fire up the scanner software from the object directory. The easiest (but perhaps least flexible?) is to use cydir, which is sort of a main-menu for some of the software. Go to angle1 (click on the arrow next to the unresponsive directory text box).

Now hit scan. This brings up a controller guee and a restricted version of echotk. Use guee to select the number of scans to use in a 360 degree turn around the object, select parameters using echotk, and hit scan. This will produce echo files in directory angle1, with names like scan000.

Here are some informal instructions for using echotk. Also read the documentation. There are a lot of subtlties.

Exit guee and echotk, and from cydir switch to directory angle2. Move the object with your hand, and do some more scans. Do more angles if you want, and finally exit guee.

Put the cover back on the head of the scanner.

If you just want to output the scans you made, as a set of points, you can use echoascii.

Cleaning, Alignment and (partial) Merging

Switch back up to the object directory, and hit merge. This brings up the cleaning and merging tool cypie.

It might be wise to clean up each scan a little first, with the controls above alignment. Especially if there is a block of wood or something holding the object up that you'd like to erase.

After any cleaning, it's time to align and merge the files in each sub-directory, which we do with the merge feature of cypie. Switch to angle1 (hit the arrow) and hit autoalign, and then merge. This makes the files lores.ply, midres.ply and hires.ply in the angle1 directory.

Looking at the plyfiles with view, there are many secret keyboard commands, shift-mouse things, etc. s redraws the surface. Try other things.

Do the same for angle2.

Now we want to align angle1 with angle2 (the hard part!!). Exit cydir and start up cyeat -gui. Choose angle1 as the anchor and angle2 as the xform, and load. You should get the two ply files in a window. Align and refine and hit final as described in the cyeat documentation, but DO NOT MERGE!! You should end up with a file called angle2.conf in the object directory. It gives the transformation needed to move angle2 to align with angle1.

Making input files for powercrust

Powercrust want a single file of points (ascii x,y,z). To make angle1/midres.ply into ascii, run it through the filter /projects/geom/ply/ply2ascii (one of Greg Turk's). This makes an ascii file, which you should name simpley midres.

Similarly create angle2/midres.

Now we need to transform the points from angle2 to be aligned with angle1. This we can do with:
/projects/geom/software/perl/xformply angle2.conf > object.pts
The resulting file can be used as input to powercrust.

If you want to check that the alignment worked right, use /projects/geom/software/perl/puantalize to turn object.pts into object.off, and look at it in Geomview. You need to manually put the first two lines of the off file into object.pts first.

Nina Amenta
Last modified: Tue Nov 19 19:58:54 CST 2002