Bookshelf Contents Previous Next Glossary Index Search

flipbook

Purpose

flipbook is an animation previewer which allows you to:

Overview

FlipBook is available inside the Alias package, and as the stand-alone utility, flipbook, suitable for presentation use. Compressed FlipBook animations can be saved as single files to quickly load later on.

Description

The usage statement for flipbook is as follows:

:
flipbook [-c# # ] [-d] [-e #] [-h] [-i] [-m] [-o] [-p <path>] [-P<root>] [-r #] [-R] [-s] [-t <text>] [-z #] <filename> [,start[,end[,by]]]
where
-c# # sets the space and time compression.
-d turns OFF double-buffering.
-e # sets the extension width which is the pad extension with leading zeros.
-h prints the on-line help.
-i displays information about which version of flipbook is running.
-m opens the FlipBook control window.
-o sets oscillation of animation ON.
-p <path> sets the default browser directory path to a specific path.
-P <root> reads the book file and creates corresponding pix files with a specified root name.
-r # sets the pixel sample rate, with or without filtering.
-R forces flipbook to avoid memory mapping and use real memory. This option is handy when you have lots of main memory but little disk space.
-s turns OFF framerate synchronization.
-t <text> specifies a file extension to be found. The filename is in the format XXXX.##.ext. For example, -t Z finds the file testpix.1.Z.
-z # zooms into the image by an integer factor.
<filename> [,start[,end[,by]]] specifies the animation sequence to be loaded, and can specify the start, end, and by values to use while loading. One or more filenames can be specified at once.

When the command is entered, the FlipBook window is displayed, and starts cycling through the animation.

If you have specified the [-m] option, the FlipBook control window is also displayed.

For information about using FlipBook from within Alias, refer to the Alias Menu Book.

fmovie

Purpose

fmovie converts a sequence of Alias image files into an SGI or Apple QuickTime movie.

Overview

fmovie is used to take a sequence of image files and create an industry standard movie file from them, such as a SGI movie file or an Apple QuickTime movie.

The QuickTime option can also be used to ease the transfer of animation output to Apple Macintosh systems.

Description

The usage statement for fmovie is as follows:

:
fmovie [-a <audiofile>] [-b #] [-c <method>] [-e #] [-f #] [-h] [-i <infile>] [-o <outfile>] [-r #] [-s #] [-S #] [-v] [-w #]
where:
-a <audiofile> specifies the name of the audio track to go with the movie file. The audio track may be in AIFF or AIFC format.
-b # specifies how many frames to count by.
-c <method> specifies the compression method to use in creating the movie file. The choices are: NONE = No compression RLE = 8 bit run length encoding RLE24 = 24 bit run length encoding JPEG = JPEG encoding MVC1 = SGI format 1 encoding MVC2 = SGI format 2 encoding "Apple Video" = Apple video encoding "Apple Animation" = Apple animation encoding.
-e # specifies the frame number of the last image file to use.
-f # specifies the format of the movie file to be created. 4 formats are currently available: 0 = SGI format 1 1 = SGI format 2 2 = SGI format 3 (default) 3 = QuickTime.
-h displays the help messages.
-i <infile> specifies the input sequence of image files. Files may be in PIX, SGI,TIFF, TIFF16, RLA, FIDO, or HARRY format.
-o <outfile> specifies the name of the output movie file.
-r # specifies the playback rate of the movie.
-s # specifies the frame number of the first image file to use.
-S # specifies a scale factor to apply to the input images while reading them. The choices are: 1 = full scale 2 = 1/2 scale 4 = 1/4 scale 8 = 1/8 scale 16 = 1/16 scale.
-v displays all messages while creating the movie.
-w # specifies the extension width of the input frames. For example, for foo.001,width would be 3.

Example 1

To JPEG compress all frames of foo into foo.mv, use the following:

fmovie -i foo -o foo.mv -c JPEG -v

Example 2

To create a quick time movie of the above, use the following:

fmovie -i foo -o foo.qt -f 3 -c "Apple Video"

fpaste

Purpose

fpaste vertically joins together pieces of image files as in the following diagram.

Overview

fpaste is most useful for creating a single complete image from a series of incompletely rendered images, each starting after the last complete scanline in the previous attempt.

If you have several CPUs, the elapsed time to generate a single image can be reduced by rendering different portions of the image on different CPUs and then pasting them together.

Description

The usage statement for fpaste is as follows:

fpaste a b [c...] output

where:

a, b and so on are files to be joined together to produce the output image.

The files are joined vertically so that a is the top of the image, b follows immediately after the last complete scanline of a, and so on.

The X resolution of output is set to be the same as image a. The Y resolution is set to the actual number of complete scanlines joined together.

froam

Purpose

froam allows the mouse to move through image files that are larger than the screen size.

Overview

The mouse pans through a subset of the original image in the window. This allows you to see small parts of very large images without having to resize the image and lose details from the original.

Description

The usage statement for froam is as follows:

 
froam [-a] [-d] [-f] [-l#] [-t#] [-u] [filename]
where:
-a starts automatic roaming.
-d provides a double buffer where possible.
-f keeps the program in the foreground.
-l looks ahead a specified number of tile rows. The default number of rows is 2.
-t uses a tile size of a specified number of pixels. The default number of pixels is 64.
-u displays the on-line help.
filename specifies a file to use as input. If a filename is not provided, standard input is read.

For large pix files, there will be a delay during start-up while the file is read and processed.

To pan through the image, move the cursor into the image window and drag the image using the left mouse button. The image follows the cursor while the left button is pressed. For the best visual results, scroll slowly.

To zoom in and out of the image, use the up and down arrow keys.

To exit froam, press Esc.

Due to the way dithering is implemented, sometimes a short pixel-wide vertical or horizontal band will appear. Repositioning the image slightly will make it disappear.

fstats

Purpose

fstats reports pixel and scanline statistics for images.

Description

fstats supports the following file formats:

The usage statement for fstats is as follows:
fstats [-f] [-v] image [...]
where:
-f attempts to read more pixels every second and update the scanline/pixel count when the end of an incomplete image is reached.
-v displays the total number of pixels. If the image is an Alias format file, the number of run-length packets and the average run-length of each packet are also displayed.
image is a picture or matte file in one of the formats specified above.

The X and Y resolution are reported to standard output.

If the image is an Alias format file, the Y resolution is printed as yres.fraction if the number of complete scanlines does not match the Y resolution specified in the header. If this is the case, the image is incomplete. yres always represents the actual number of complete scanlines. .fraction represents the number of pixels calculated so far on the incomplete scanline.

Example

yres=483.639 is one pixel short of a complete 640x484 image in Alias file format.

ftarga

Purpose

ftarga converts AT&T Targa Format 10 image files to Alias pix files and the reverse.

Overview

The default conversion creates a Targa Format 10 Version 2 format file. To convert to a version 1 (original) format file, specify the -o option.

Description

The usage statement for ftarga is as follows:

ftarga [-o] [-v] [-V] [input_image] [output_image]
where:
-o creates an original version Targa file.
-v prints the file header information to stderr.
-V displays all header and footer information.
input_image is either an Alias format pix file or an AT&T TARGA Format 10 image file.
output_image is a file in the opposite format. If output_image is not specified, the image is written to stdout.

ftiff

Purpose

ftiff converts Alias pix files to TIFF format.

TIFF format files are accepted by desktop publishing programs.

Description

The usage statement for ftiff is as follows:

ftiff [-g] [-h height] [-u] [-w width] [input_file] [output_file]
where:
-g creates an 8-bit grayscale TIFF image instead of a color image. The default creates a color image.
-h height specifies the vertical resolution of the output image. The default is resolution is 100.
-u prints the on-line help.
-w width specifies the horizontal resolution of the output image. The default resolution of 100 approximates the size of the full image on the screen. Increasing the value of -w increases the resolution, and decreases the size of the output image.
input_file is the name of the Alias pix file to be converted.
output_file is the name of the TIFF file to be created.

Procedure to convert TIFF Files to Macintosh

  1. Perform the file conversion on a UNIX machine.
  2. Download the converted file using FTP (the File Transfer Protocol). On NCSA Telnet, the procedure is as follows:
  3. Log on to the UNIX machine where the TIFF file is located using NCSA Telnet.
  4. Toggle OFF File MacBinary Enabled.
  5. Set File Set Transfer Directory to the name of the Macintosh folder you want the TIFF file to appear in.
  6. Select Network Send FTP Command.
  7. Type bin at the FTP prompt.
  8. Type mput <filename> at the FTP prompt. <filename> is the name of the TIFF file on the UNIX system.
  9. Once FTP has finished downloading the file (when the FTP prompt appears again), type bye to exit from FTP.
  10. Select File quit to exit from Telnet.
  11. Open Resedit. Select the TIFF file, and select File Get Info from the Resedit menu. Change the File Type from TEXT to TIFF using all capital letters.

The Macintosh TIFF file can now be opened in Macintosh programs that accept TIFF files.

Grayscale TIFF files are accepted by Retouch (shareware), Aldus Pagemaker, Aldus Freehand, Microsoft Word (via Freehand), and Adobe Photoshop.

Adobe Photoshop, Letraset's ColorStudio, and Pixelpaint Professional accept color TIFF files.

ftile

Purpose

ftile tiles a sequence of images into a single, larger image sometimes by sampling the images to the same size.

Overview

Use the ftile stand alone if you want to take a set of images in any sequence and create a single large image file with the images arranged on it.

You can also use ftile in combination with the mark and gamepoly OpenAlias plug-ins in order to create an 8 x 8 palette of images to use as a texture palette.

Description

The usage statement for ftile is as follows:

ftile [-a] [-c] [-i <script>] [-o <filename>] [-r #] [-s <script>] [-x #] [-y #] <pixfiles>
where:
-a specifies don't sample the image. Simply pixel replicate or skip pixels.
-c # specifies the number of smaller images per column in the tiled image.
-i script reads in the script file specified in the order to place the input files into the tiled image. The script should be in the format described for the -s option.
-o filename specifies the name of the output tiled image.
-r # specifies the number of smaller images per row in the tiled image.
-s script outputs an ASCII script file describing how the smaller images have been laid out. For example, if you have the following image files: fred.1, fred.2, fred.3, and fred.4 and if you execute the following usage statement: ftile -o temp, -c 2 -r 2 -s fred.script fred* the file fred.script would contain: fred.1 0 0 fred.2 0 1 fred.3 1 0 fred.4 1 1 indicating that fred.1 had been put in row 0, column 0, fred.2 had been put in row 0, column 1, fred.3 had been put in row 1, column 0, and fred.4 had been put in row 1, column 1.
-x # specifies the X resolution of all of the smaller images in the tiled image.
-y # specifies the Y resolution of all of the smaller images in the tiled image.
pixfiles specifies that any files not associated with an option are assumed to be image files to place in the tiled image.

gamma

Purpose

gamma applies a specified gamma conversion factor to an image.

Overview

gamma alters images by specified factors in each channel to correct the rendered color.

gamma is particularly useful for correcting the color in images rendered by old versions of Alias.

gamma accepts input and produces output in any of the following file formats:

Description

The usage statement for gamma is as follows:

gamma [-a # # #] <R scale> <G scale> <B scale> infile outfile
where:
[-a # # #] indicates an animation's start, end, and by frame numbers. The infile and outfile are appended with a frame number.
<R scale> indicates the factor the red channel is corrected by. gamma uses the formula 255/255R to correct the color.
<G scale> indicates the factor the green channel is corrected by. gamma uses the formula 255/255R to correct the color.
<B scale> indicates the factor the blue channel is corrected by. gamma uses the formula 255/255R to correct the color.

get_alias_variable

Purpose

get_alias_variable queries the value of Alias preference variables from the command line.Alias: preferences: querying value of:

Overview

get_alias_variable is called from your .cshrc at login with a variable name as an argument. It attempts to determine the value of the variable by scanning through $HOME/.AliasPrefs and /usr/alias/.AliasPrefs, in that order. get_alias_variable will not find environment variables, for example ALIAS_LOCATION, that are set at the shell level.

If a value is found, it is written to stdout. If a value is not found, an error message is written to stderr.

Description

The usage statement for get_alias_variable is as follows:

get_alias_variable <var_name>

where <var_name> is the name of the Alias preference variable you want information about.

get_alias_variable completes the search for the variables and then returns one of the following:
0 indicates that a variable was defined and a value was found.
1 indicates that the variable could not be found in a .AliasVariables file.
2 indicates unauthorized use of the stand-alone.

Example

The following example illustrates a use of get_alias_variable.

get_alias_variable ALIAS_EDITOR

returns the value 0 and the pathname to the editor:

/usr/sbim/jot_f

getid

Purpose

getid provides helpful information about your machine's set-up and about the Alias system you are running.

The same information provided by getid -i -v is available from within the Alias executable by selecting Help System info

Overview

Some of the information provided by getid is required to obtain an encrypted string. If you are having problems with your system, it is useful to have this information written down before calling for assistance.

Description

The usage statement for getid is as follows:

getid [-g] [-h] [-i] [-v] [-w]
where:
no options displays the getid number and system information.
-g displays only the getid number.
-h displays the on-line help.
-i displays more system information.
-v verifies the encrypted string for your machine.
-w displays additional information about Wavefront products after the getid number.

Example

The following is an example of the information displayed if getid -i -v is typed at the command line:
Getid number: 87978551325080 (tempest)
Host type: S,1,150,12,11,163 (Indigo2 Extreme)
Operating System: SGI Irix 5.3 (11091812)
Main memory size: 96 Mbytes
Swap space size: 100 Mbytes
Running NFS: yes
Media drives: CD-ROM, DAT
Software cut: 95-08-10 01:53
Software location: /usr/aw/alias
Runtime checksum: 906.142.2
Current date/time: Thu Aug 10 19:18:51 EDT 1995
Free disk space: 19 Mbytes in / 180 Mbytes in /usr

Looking for an encrypted string, 
for host: tempest
in file: /usr/aw/alias/sys/install/en
on line: 1
and found: KRK8sn3Jb55KejCBvFt5NejR
Expires on: none (permanent)
Product: Alias Studio V7.0
Enabled options: Studio base
Advanced Modeling
Advanced Evaluation
Advanced Animation
PowerTracer
PowerCaster

Explanation of the system information fields:

Getid number: [unique number for software licensing] (hostname)
Host type: [numerical description] (official SGI name, if known)
Operating System: SGI Irix [Irix release] (Irix version)
Main memory size: rounded up to nearest Mbyte. 1 Mbyte is 1024 * 1024 bytes.
Swap space size: rounded up to nearest Mbyte.
Running NFS: yes or no.
Media drives: CD-ROM, QIC 24, QIC 150, DAT, 8 mm (2.3 Gbyte), 8 mm (5 Gbyte), etc.
Software cut: date software was built.
Software location: where software is installed.
Runtime checksum: used on the SPAR form.
Current date/time: same format as from the UNIX date command.
Free disk space: rounded down to nearest Mbyte. Only writable local EFS and XFS filesystems are reported. NFS filesystems are not reported.

Information about the Host type

The Host type field reports the official SGI name (or our best guess at the official name in the case of new systems) for almost all SGI systems produced in the last three years. The Host type is reported even if the system is not qualified to run Alias software. Check the Alias CD-ROM booklet or the Alias Installation & Release notes to determine if the system is capable of running Alias. The numerical Host type was devised by Alias to identify the system when the official SGI name is not known, such as for new systems or unusual configurations. The SPAR form requires the numerical host type so that there is no ambiguity.

harry

Purpose

harry converts files between Alias RGB format and Quantel Harry 4:2:2 format.

Overview

harry reads an Alias format run-length file and converts it to one frame/field of digital component video in Harry format.

Description

The usage statement for harry is as follows:

harry [-a] [-h] infile outfile
where:
-h converts files from Alias RLE (run-length encoded) format to Harry. The infile is a run-length encoded file, and the outfile is created and written in Harry format.
-a converts files from Harry format to Alias format. The infile is a Harry format image and the outfile is created and written in run-length encoded format.

Restrictions

If the Alias RGB files are not rendered with Harry horizontal resolution (set in the Render Globals window), they cannot be converted to Harry format using harry.

harry only converts Alias RGB format images or Harry format images that are 720 pixels wide.

hp_glplotf, hp_gl2plotf

Purpose

hp_glplotf translates Alias plot files into HP-GL (IBM GL) format files that are suitable for plotting on any supported plotter.

hp_gl2plotf creates similar output, but includes initialization commands required for HP-GL2 plotters.

Overview

hp_glplotf and hp_gl2plotf are filters which take input from stdin or <in_file> and send output to stdout or <out_file>, which would normally be sent to lp.

Description

The usage statement for hp_glplotf and hp_gl2plotf are as follows:

hp_glplotf [-a] [-c<x>[<y>]] [-h] [-i] [-m<model>] [-n] [-p<paper>] [-r<angle>] [-s] [t # #] [<in_file> [<out_file>]]
hp_gl2plotf [-a] [-c<x>[<y>]] [-h] [-i] [-m<model>] [-n] [-p<paper>] [-r<angle>] [-s] [t # #] [<in_file> [<out_file>]]
where <options> include the following control parameters:
-a specifies automatic feed is to be used.
-c<x>[<y>] specifies scale correction factors.
-h displays the on-line help.
-i displays version information.
-m<model> specifies the plotter model type.
-n separates HPGL plot commands on new lines.
-p<paper> specifies the paper type.
-r<angle> specifies the force plot rotation angle.
-s sizes the plot produced automatically. The plotter's default size is used.
-t # # specifies the text scaling where # and # are the width and height.
<in_file> reads input from the file <in_file>. The default is to read from stdin.
<out_file> writes output to the file <out_file>. The default is to write to stdout.

iges_info

Purpose

iges_info provides a summary of the iges entities used in the named files.

Description

The usage statement for iges_info is as follows:

iges_info file [file...]

Example

The following is an example of the use of iges_info.

iges_info sample.iges

The following is an example of the type of information provided by the command stated above.

Summary of IGES file sample.iges 
---------------------------------------------
entity unsupported if marked *** 
entity 124 form 0 occurs 9 times. -- Transformation Matrix
entity 108 form 0 occurs 9 times. -- Plane
entity 406 form 15 occurs 2 times. -- Name
entity 110 form 0 occurs 64 times. -- Line
entity 104 form 1 occurs 1 times. -- Conic Arc
entity 212 form 0 occurs 109 times. -- General Note ***
entity 100 form 0 occurs 11 times. -- Circular Arc
entity 102 form 0 occurs 2 times. -- Composite Curve
entity 106 form 3 occurs 1 times. -- Copious Data
entity 106 form 63 occurs 2 times. -- Closed Planar Curve
entity 128 form 0 occurs 2 times. -- Rational B-Spline Surface
entity 126 form 0 occurs 14 times. -- Rational B-Spline Curve
entity 116 form 0 occurs 3 times. -- Point
entity 120 form 0 occurs 1 times. -- Surface of Revolution
entity 118 form 1 occurs 1 times. -- Ruled Surface
entity 140 form 0 occurs 1 times. -- Offset Surface
entity 118 form 0 occurs 2 times. -- Ruled Surface
entity 106 form 12 occurs 1 times. -- 3D Path
entity 142 form 0 occurs 1 times. -- Curve on a Parametric Surface
entity 144 form 0 occurs 1 times. -- Trimmed Parametric Surface
entity 214 form 2 occurs 18 times. -- Leader (Arrow) ***
entity 206 form 0 occurs 1 times. -- Diameter Dimension ***
entity 106 form 40 occurs 9 times. -- Copious Data
entity 402 form 7 occurs 1 times. -- Group Without Back Pointers
entity 114 form 0 occurs 2 times. -- Parametric Spline Surface
   ---------------------------------------------
Done for the named file(s).

IncreaseVSwap

Purpose

IncreaseVSwap verifies that the size of a machine's virtual swap space is at the optimal level.

Overview

IncreaseVSwap examines the computer's resources and determines the optimal size of virtual swap space that the system should have in order for Alias to run efficiently.

If the size of virtual swap space is not equal to the optimal value calculated by IncreaseVSwap, the Alias software generates a warning message every time it is started.

The size of the virtual swap space can be set to the optimal level by a System Administrator using IncreaseVSwap.

For further information about virtual swap space, see the UNIX manual or your System Administrator.

install_glib

Purpose

install_glib installs the games library.

Description

install_glib is used by the InstallGame script to install game specific libraries. (For more information on InstallGame, see the Games Data Transfer book.) install_glib copies standard input to standard ouput, converting to plain format, if the appropriate game library option is enabled.

The usage statement for install_glib is as follows:

install_glib [<options>] <infile> <outfile>
Options:
-h displays the help information and exits
-P product (game library) to convert to plain format; default is to list all game libraries enabled in encrypted string
-q quiet; do not display progress messages to stderr
-v verbosely list all game libraries enabled in encrypted string

IvToAl

Purpose

IvToAl translates Inventor files into Alias wire files.

Description

The usage statement for IvToAl is as follows:

IvToAl [<options>] [<infile> [<outfile>]]
Options:
-o Do not optimize the Inventor file
-s scale Use an input scale factor of scale (for example, 2.0)
-g Do not group the geometry
where:
<infile> specifies an Inventor file to use as input. If infile is not specified, input comes from stdin.
<outfile> specifies the Alias wire file to write output to. If outfile is not specified, output is written to stdout.

linerender

Purpose:

To render or rerender the polyline files created during a PowerToon render.

Description

The line renderer can render or rerender the polyline files that were created during a PowerToon render. This utility allows you to alter shaders in the line file and rerender the resulting composite quickly. You can also use it to set composite opacity and improve anti-aliasing quality.

The line files used by the linerender are created in the same directory as the rendered pix file with the name pixfilename.lines. These are simple ASCII files, like SDL files.

The line renderer executable is called linerender, and is located in the .../alias/bin directory. Type linerender without any arguments to see a list of options.

The usage statement for linerender is as follows:

linerender [-p n][-s n][etc..][-c] linefile [inpix] outpix
outpix A required option. Specify the file name you want for the resulting composite output.
inpix The normal render image on which you want to draw lines. You must specify the x and y parameters if you don't specify this parameter.
-x <value> The x size for output. (Required if inpix is not specified.)
-y <value> The y size for output. (Required if inpix is not specified.)
-B <value> The background color. This greyscale value can be any value from 0 (black) to 0.5 (gray) to 1 (white). If there is an inpix image, its background is used and this value is ignored.
-L <value> The line color. This greyscale value can be any value from 0 (black) to 0.5 (gray) to 1 (white). It overrides line colors in inpix files. If it is not specified, the default is whatever line color is defined in the inpix file
-o <value> The opacity value for composites.
-s <frame_value> The start frame.
-e <frame_value> The end frame.
-b <value> The by frame value.
- q <value> The quality of anti-aliasing, a number from 1 to 4. A value of 1 should be sufficient for most cases, and represents natural anti-aliasing. Occasionally, lines with 1-pixel widths may require higher an anti-aliasing value of 2. The values of 3 and 4 should rarely be used, and will use much memory. Note: Sometimes bad line quality is caused by poor line formation during the Power Animator render process, typically because edge and depth thresholds are set too low. Increasing the anti-aliasing value will not improve this situation. Note: This parameter is ignored if you have set frames. You must set the anti-aliasing level (aa_level) in the line file instead.
-a Generates an alpha output file that can be used for compositing
-c Generates a special color file for compositing with alpha. This file is not anti-aliased, so composites using the alpha file will not have color fringes. No inpix is allowed with this option.
-f <filename> The name of the line file to use for shader settings. This option lets you update one file for an animation sequence, and then use this file to override the settings inside the other line files.

For more information on PowerToon, see What's New in Alias 8.5.

makebot

Purpose:

To create block ordered texture files.

Description

makebot [-m|-d] input output
Given an input image, makebot will do the following:
If no option is given, the output file created will be a compressed, block ordered texture file with no mipmap built in.
-m the output file created will be a compressed, block ordered texture file with a mipmap built in.
-d the input file must be a compressed, block ordered texture file. The resulting output file will be in Alias pix format, and will be equivalent to the image contained in the input file. (Note: If the input block ordered texture file contains a mipmap, only the highest resolution level will be contained in the resulting output image).

Note: A compressed block ordered texture containing a mipmap (i.e., created with the -m option) can be used as a texture with either filter OFF or ON. A compressed block ordered texture created without a mipmap (i.e., created without the -m option) can only be used as a texture with filter OFF. Unless you do not plan on using filtering on a texture, the -m option should be specified when creating the compressed block ordered texture files.

make_pix_icons

Purpose

make_pix_icons produces icons to represent image files in the File Browser.

Overview

The image to be represented by the icon can be in any of the following formats:

make_pix_icons creates icons in Alias file format and uses the same filename for the icon, but with the extension ICON added.

The size of the icon created by make_pix_icons can be specified. The default icon size is 60x60.

Description

The usage statement for make_pix_icons is as follows:

make_pix_icons [-a] [-f] [-r] [-x x_size] [-y y_size] directory_name
where:
-a remakes all icons. If the option -a is not inserted in the command, only new icons are created.
-f resizes icons using a box filter.
-r searches recursively through sub-directories making icons for all the images that it finds.
-x x_size sets the x resolution of the icon to x_size. The default size is 60.
-y y_size sets the y resolution of the icon to y_size. The default size is 60.

If directory_name is a filename, then only one icon is produced for that file. If the files are compressed and their names end in .Z, the icon file name will exclude the extension .Z.

matteRGB

Purpose

matteRGB converts 8-bit matte files to 24-bit RGB image files for certain devices (for example, Quantel Harry) which only have one format for both color and matte files.

Description

The usage statement for matteRGB is as follows:

matteRGB infile outfile

nprocs

Purpose

nprocs displays information about the host machine's processor(s).

Description

nprocs is mainly of use on multi-processor machines. It displays information about the number and type of processors on a machine, and queries each processor to determine if any special flags have been set or if any of the processors have been locked by using IRIX system calls.

nprocs displays the following information:


HOST `whistler'

IRIX 6.2 03131015 IP22 mips 1762190057 /etc/inittab Silicon Graphics, Inc.
Silicon Graphics, Inc. IRIX IP22 1 c04b146e 6 2 0
Processors     : R4600 2.0
Available Procs: 1

 Allowed processes   : 150
 Parallel processes  : 1
 Page size           : 4096
 Number of processors: 1
 Unlocked processors : 1
     Processor  0 --> Id:  0  Flags: Enabled Master Clock FastClock

pim

The plug-in manager script is only available on SGI machines.

The Plug-in Manager script is new to Alias 7.5 and supports the loading, removal and distribution of plug-ins. The Plug-in Manager script is called pim(Plug-in Manager) and is located in $ALIAS_LOCATION/bin/.

Plug-in Archives

The plug-in manager script allows users to work with plug-in manager archives. The suffix used to represent a plug-in manager archives is .pim. Plug-in manager archives enscapsulate the necessary files of a plug-in into one archive file. All scheme, icon, binary(.plugin) and other supporting files will be placed into the archive. Archives can be created, appended to, viewed and installed using the Plug-in Manager script.

Environment Variables the Plug-in Manger Script Needs

The Plug-in Manager script requires that $ALIAS_LOCATION, $ALIAS_WORKENV and $HOME be set. In addition, $ALIAS_LOCATION/bin/aliasWarning must exist.

Plug-in Manager Script: Command Line and GUI mode

The Plug-in manager script supports both Command Line and GUI modes. The script is layered so that the user input code is isolated from the code that actually performs the generic operations required. GUI mode is utilized to perform operations that are called from within the Alias application.

Plug-in Manager Script Options

The Plug-in Manager script supports the following options:
-install <pim file, pim file, ... > Used for local or global installation of plug-in manager archive files
-remove <pim file, pim file, ... > Used to remove plug-in manager archive files
-view <pim file, pim file, ... > View the files within a plug-in manager archive
-create <pim file> <plug-in files> <scheme files> <icon files> <other files> Allows for the creation of plug-in manager archive files
-cR <pim file> <plug-in file directory> Recursive creation of a plug-in manager archive from a directory
-append <pim file> <plug-in files> <scheme files> <icon files> Appends to an already created plug-in manager archive file
-gui_install <pim file, pim file, ... > Installs plug-in manager archive files through the desktop
-h Help

The creation ( -create, -cR ) and append ( -append) routines require the files that will be placed into the archive be in a specific format. This format is:

This rigid format has been choosen so that special logic is not required to install the individual files from the archive.

Workflow using the Plug-in Manager Script

Creating a Plug-in Manager Archive

The following is an example of how to create a plug-in manager archive

pim -c nothing.pim ./lib/nothing.plugin ./scm/nothing.scm ./scm/nothing_init.scm ./
medium/nothing.M

The files that will be inserted into the archive must be relative to the current directory. Note that the created file's location could be specified in another directory.

pim -c /tmp/nothing.pim  ./lib/nothing.plugin ./scm/nothing.scm ./scm nothing_init.scm ./
medium/nothing.M

If the directory NothingPlugin has the proper structure, then the recursive creation option could be used.

pim -Cr nothing.pim NothingPlugin

Installing a Plug-in Manager Archive from the Command Line

The following is an example of how to install plug-in manager archives using the script.

pim -i /tmp/nothing.pim

You will asked to choose between local or global installation. Local installations put the plug-in files into $HOME/.Alias/plugins. This makes plug-ins available locally to any Alias session. Global installations place the plug-in files into $ALIAS_LOCATION/ODS/OpenAlias/plugins. If its a global installation, then the user must have the priviledges required to place files within the Alias directories.

Installing a Plug-in Manager Archive Locally by using Drag and Drop

The files of a plug-in manager archive can be installed locally into $HOME/.Alias/plugins by dragging and dropping the archive onto the Alias icon via the SGI desktop. The files will be copied out of the archive and placed into the local plug-in directory, with warning prompt boxes generated for duplicates. An "Installation Complete" dialog signals the end of the install process. At the end of the installation process of the plug-in, Alias exits. In the next session of Alias, the plug-in installed will be displayed in the Plug-in Manager window.

Alias will attempt to install all files dropped as Plug-in Manager Archives if the first file of the possible set that was dropped onto Alias has the .pim suffix. This implies the following:

Running the Archive Removal Script

To simplify the complexity of removing plug-ins from a machine, when the plug-in manager script executes an install, it also builds a removal script. This removal script can be run in two ways. It can be run from the command line:

pim -r helix.pim

The user will be asked if it is a local or global removal. If its a global removal, then the user must have the priviledges required to remove files from the Alias directories.

The second way of deleting the files associated with a plug-in that was installed locally is to use the desktop to run the appropriate removal script located in $HOME/.Alias/plugins/remove. Double clicking on the script will execute it to run the removal code. As a result, plug-ins should not share scheme, icon or other supporting files.

pixdiff

Purpose

pixdiff compares two pix files on a pixel by pixel basis to determine the differences between them.

Overview

pixdiff supports the following file formats:

Description

The usage statement for pixdiff is as follows:

pixdiff [-d] [-l] file1 file2 [outfile]
where:
-d creates an intensity difference file rather than a half-intensity pix file.
-l prints a long version of the pixel differences and creates a half-intensity file with the differences at full intensity.
outfile specifies an output file containing the pixdiff image. The file format is the same as file1.

pixdiff checks the alpha channel for differences, in addition to the RGB channels if the input file type has a bit depth of 32.

If file1 has fewer channels than file2, the outfile uses the smaller of the two channels. The smaller number of channels is checked for differences.

In addition to generating an image, the following statistics are also listed:

pix2omf

Purpose

pix2omf converts files between pix and OMFI (AVID Open Media Framework Interchange) format.

Description

The usage statement for pix2omf is as follows:

pix2omf [-A<mode>] [-b #] [-C] [-D] [-e<errfile>] [-f #] [-F] [-i<infile>] [-j #] [-J #] [-l #] [-n] [-o<outfile>] [-O] [-p] [-q #] [-r] [-R #] [-s #] [-S] [-t #] [-x] [-v] [-V] [-w] [-z<ext>] [-Z<pix type>]
where:
-A<mode> specifies one of the following Avid Composer formats to be used as the base for the OMFI file output format:
VR1 VR2 VR2e VR3 VR3e VR4 VR4e
VR5 VR5e VR6 VR6e VR25 VR26 VR27
VR70 MSPN MSPP
The base configuration can be overridden using command line switches. Override switches follow the -A <mode> command. This option requires the pix files to be the correct resolution for the Avid composer formats. Note: See the Avid composer documentation for file format information.
-b # sets the number of frames for the by value.
-C specifies Override Compression mode. In this mode, software compression is not used during file conversion.
-D dumps raw OMF image data to the outfile.
-e<errfile> creates an output error file.
-f # sets the frame for the end of the sequence.
-F specifies the layout field format from one of the following choices: 0=none, 1=full frame, 2=one field, 3=interlaced fields. This option overrides -A mode.
-i<infile> states the input file name.
-j # uses JPEG compression (0 is off, 1 is on). The JPEG compression tables specified in the ISO JPEG standard are used during the compression. Note that while this does significantly reduce the size of the resultant OMFI file, it can also result in significant loss of detail.
-J # sets the JPEG identification value to use.
-l # specifies the number of leading lines of black for composer formats.
-n sets the NTSC edit rate. The default command setting includes this option.
-o<outfile> states the output file name.
-O extracts one field only.
-p sets the PAL edit rate. The default command setting includes this option.
-q # sets the Q value for compression mode.
-r reverses the top and bottom scan lines.
-R # specifies the edit rate.
-s # sets the frame for the start of the sequence.
-S switches the field ordering, when using field rendered files.
-t # specifies the number of trailing lines of black for composer formats.
-x extracts a pix file from an OMFI file.
-v displays the information in the header of the OMFI file.
-V displays the information in the header of the OMFI file and does not convert the file.
-w WRLs the extracted files.
-z<ext> specifies the input file name extension, if needed.
-Z<pix type> specifies the type of pix file to convert into OMFI format from the following choices: 0=frame, 1=odd, 2=even, 3=both (odd and even).

PRenderToAlias

Purpose

PRenderToAlias converts Pro/Engineer Render Format files into Alias Wire files.

This utility is available in Alias Studio, AutoStudio, Designer and PowerAnimator.

Overview

PRenderToAlias converts the triangle data of the Pro/E Render Format into Alias Polysets. It is important that the Pro/E designer assign each part of an assembly a different color so that each part becomes a separate polyset in Alias. The colors also translate into simple Alias shaders and these shaders are assigned to the appropriate objects.

The units of the data in Pro/E Render files are not specified in the files. Therefore, you must specify the units so that the model is the correct scale once it is imported into Alias.

The default file extension used by Pro/Engineer files is .slp.

Description

The usage statement for PRenderToAlias is as follows:

PRenderToAlias [-a nrm_tol] [-g] [-h] [-n] [-p] [-r] [-s scale] [-t pos_tol] [-u units] [<infile> [<outfile>]]
where
-a nrm_tol specifies the merge vertices normal tolerance value in degrees. The default is 1 degree.
-g groups the geometry of the polysets created for a particular render file. This allows several files to be retrieved in a row, with the geometry from each file in a separate group.
-h displays the on-line help.
-n specifies that PRenderToAlias will not merge vertices.
-p merges vertices according to xyz position only.
-r recalculates the vertex normals.
-s scale specifies the input scale factor. For example -s2.0.
-t pos_to specifies the merge vertices position tolerance value in input units. The default is 0.0001.
-u units specifies the input units as one of the following: MI, YD, FT, IN, MIL, UIN, KM, M, CM, MM, or UM. The default is -uIN.
<infile> is a Pro/Engineer Render file. If an infile is not specified, the input comes from stdin.
<outfile> is an Alias wire file. If an outfile is not specified, the output is written to stdout.

All options can be specified in either upper or lower case.

By default, all vertices are merged according to their positions and normals.

Using PRenderToAlias From a UNIX Shell

PRenderToAlias can be executed in a UNIX shell window, or from within Alias if an External Filter for the program has been set up.

To execute PRenderToAlias from the command line in a UNIX shell window, use the usage statement and options described above. The resulting wire file can be retrieved into Alias.

If the model was created in Pro/E based in units other than the default inches, these units should be specified using the -u option when the render file is converted.

Examples

The following are examples of usage statements for PRenderToAlias as typed into UNIX shell windows:

PRenderToAlias crankshaft.slp crankshaft.wire
PRenderToAlias -g -t0.001 hammer.slp hammer.wire

Specifying Tolerances

By default, PRenderToAlias may merge the vertices of triangles along apparent shared edges. If two vertices have the same x,y,z position within a tolerance and have the same normal within a tolerance, they are merged into one vertex. This allows Alias to do smooth shading across the edges. If two vertices have the same x,y,z position, but have different normals, then these vertices are not merged to maintain the hard edge.

The tolerance used for comparing vertex positions can be specified using the -t option. The value specified is in the same units as the data. For example, if you specified -uMM -t0.01, the tolerance for comparing vertex positions is 0.01 millimeters. If you change the units from the default inches, then the default tolerance of .0001 may have to be changed to make sense for the units specified.

The tolerance used for normal comparisons can be specified using the -a option. The value is specified in degrees and is the angle between the normals of two vertices. The default is that two vertices are merged if their positions are equal within tolerance and the angle between the normals is less than 1 degree.

Specifying Vertex Normals

Vertex normals in Pro/E Render Files all point towards the inside of objects. For rendering purposes in Alias, these normals must point towards the outside of objects. Consequently, PRenderToAlias flips all vertex normals during the translation.

The vertex normals of polysets are usually recalculated by the Alias renderer before it renders polysets. By default, PRenderToAlias freezes the normals assigned to vertices in the Pro/E Render file so that they are used by the renderer rather than discarded and recalculated. This allows the renderer to produce a better quality rendering.

To suppress this behavior, specify -r so that the renderer will discard the Pro/E assigned normals and recalculate them.

print_wire_header

Purpose

print_wire_header prints the header and can be used to verify the named wire files.

Description

The usage statement for print_wire_header is as follows:

print_wire_header [-v] file [file...]
where:
-v sets the verify mode. If -v is included, the entire wire file is read and if the trailer record is not found, the file is reported as invalid. This option indicates that a wire file is not truncated. It is useful for verifying the success of a file transfer operation, such as a copy to or from tape or across NFS.
file [file...] is a list of files to be processed. There must be at least one file listed. Wildcard listing of files is supported.

The header information displayed is different depending on the version of Alias that made the file.

In V3.1.1 and previous versions, wire files have an 80 character text string for a header.

In V3.2 through V5.0.1, wire files do not have the Alias Software Date in the header (this is a reformatted version of the number you get when you execute "Alias -i").

Example:

The following is an example of output produced from using the command print_wire_header -v * in a directory.

Filename: sample.501 
Alias Product Name: Alias Animator
Alias Product Version: 5.0.1
Alias File Version: V5.0.1-2
File Creation Date: Thu Jun 16 05:32:59 1994
File Type: WIRE
Graphics Display Size: 1279 x 1022
Kenworth.hood.iges is not an Alias Wire File.

Filename: sample.truncated.wirefile 
Alias Product Name: Alias Studio
Alias Product Version: 3.2
Alias File Version: V3.2-15
File Creation Date: Thu Sep 3 11:12:10 1992
File Type: WIRE
Graphics Display Size: 1280 x 1024
Warning: Wire file sample.truncated.wirefile is corrupted. Trailer record is missing!

Filename: old_wire
Alias2v3.1 Wire File, Alias Research Inc., Copyright 1991

Filename: gold_sphere 
Alias Product Name: Alias Studio
Alias Product Version: 5.1
Alias Software Date: 94/07/07 05:24
Alias File Version: V5.1-2
File Creation Date: Thu Jul 7 15:53:27 1994
File Type: TEXTURE
Graphics Display Size: 1279 x 1022

psplotf

Purpose

psplotf is a plotter driver program that translates Alias plot files into PostScript suitable for printing on any PostScript printer.

Overview

psplotf is a filter that takes input from stdin or <in_file> and sends output to stdout or <out_file> instead of lp.

Description

The usage statement for psplotf is as follows:

psplotf [-f fontname] [-h] [-i] [-r #] [-s #,#,#,#] [-t #] [-u] [-w #] [<in_file> [<out_file>]]
where:
-f fontname specifies the font name to use.
-h displays the on-line help.
-i displays the version information.
-r # specifies the rotation angle.
-s #, #, #, # specifies the paper size. The # values represent x min, x max, y min, y max.
-t # specifies the font size.
-u specifies that the program generated initialization string is not to be used.
-w # specifies the line width.
<in_file> reads input from the file <in_file>. The default is to read from stdin.
<out_file> writes output to the file <out_file>. The default is to write to stdout.

Additional initialization commands can be added to the file by defining the environment variables ALIAS_PSPLOT_INIT and ALIAS_PSPLOT_INIT2.

pst, pstget

Purpose

pst and pstget create simple editor windows of the type used by Alias.

Overview

The PST editor system

The PST editor system consists of two stand alone programs: pst and pstget.

The PST editor system is intended for those who are familiar with programming concepts and who know how to write UNIX shell scripts.

The editor windows created are of the form type. The editors always contain Save and Cancel buttons and can contain many, possibly interdependent, editor fields.

A high level diagram of how a PST editor is used is as follows:

A PST file contains a description of the fields to be edited, and the current value of each field.

Launching an editor

To allow you to interact with the editor described by the PST file, the script launches the pst program, providing it with a specified path on the command line.

You must have write permissions for the pst file to make an editor window.

Description

The usage statement for pst is as follows:

$ALIAS_LOCATION/bin/pst <-geometry WxH+X+Y> PST_file_name

If -geometry is specified, the window is opened as a WxH pixel window, and located at the coordinates specified by X and Y.

The path to the pst file must be specified.

If you exit pst by clicking the Save button, the return code is 0. If you exit pst without clicking Save, the return code is 1. If an error occurs, the return code is a negative integer.

Querying values from an editor

A script can query values from an editor using pstget.

pstget accepts a specified pst filename as an argument and a symbol name specifying the field to be queried and then prints the current value of the field to the console. The output can be saved in the script you created.

The usage statement for pstget is as follows:

$ALIAS_LOCATION/bin/pstget PST_file_name symbol_name

How to write PST files

You can format a pst file any way you choose because white spaces (tabs, spaces, new lines) are irrelevant. When you click the Save button, the file is recreated from scratch by a code generator in pst.

Edit window title

Each file must start with a name for the table (the string <Name> appears as the title of the editor window).

profile "<Name>" {
LIST
}

LIST is a list of entries. Each entry can be a block name (a group in the editor window) or a standard entry.

Blocks

A block, or group, is an open/close section of an editor window.

The usage statement for a group is:

group "<GroupName>" {
LIST
}

OR

group = "<GroupName>" {
LIST
}

A <GroupName> must be entered because it appears as the title for the block in the editor window.

If = is included in the statement, the block starts open. If = is not included, the block starts closed.

Individual entries

In each of the following entries, if data replaces entry, the particular field does not appear in the editor window, but rather in the table. You can determine the value of the entry with pstget.

Visible comments

To insert comments in the editor window, use the following:

annotation( "<text>" );

The <text> string appears right justified.

Boolean entries (ON | OFF)

To insert Boolean entries in the editor window, use the following:

entry( "<Name>", type=boolean, value="<X>" );
entry( title="<Title>", "<Name>", type=boolean, value="<X>" );

<Title> is optional and appears as the <Name> for the field in the editor window.

<Name> can be used to query and to refer to the value of the entry.

<X> is the default value.

0 is OFF and 1 is ON.

Integer sliders

To create an integer slider, use the following:

entry( "<Name>", type=integer, value="<val>" );
entry( title="<Title>", "<Name>", type=integer, value="<val>" );
entry( "<Name>", type=integer {range "<low>" to "<high>" }, value="<val>" );
entry( title="<Title>", "<Name>", type=integer {range "<low>" to "<high>" }, 
value="<val>" );

If range is not specified, it defaults to [0,100].

<low>, <high>, and <val> should be integers. They represent the low and high boundary for the slider and the initial value.

Floating point sliders

To create a floating point number slider, use the following:

entry( "<Name>", type=float, value="<val>" );
entry( title="<Title>", "<Name>", type=float, value="<val>" );
entry( "<Name>", type=float {range "<low>" to "<high>" }, value="<val>" );
entry( title="<Title>", "<Name>", type=float {range "<low>" to "<high>" }, value="<val>" 
);

If range is not specified, it defaults to [0.0,100.0].

<low>, <high> and <val> should be floating point numbers. These values represent the low and high boundary for the slider and the initial value.

Radio pop-up menus

To create a radio pop-up menu, use the following:

entry( "<Name>", type=choice {"<Name_0:symbol_0>", "<Name_1:symbol_1>",...}, 
value="<Name_x:symbol_x>" );
entry( title = "<Title>", "<Name>", type=choice {"<Name_0:symbol_0>", 
"<Name_1:symbol_1>",...}, 
value="<Name_x:symbol_x>" );

The value specifies the initial value and it should be the same as one of the entries in the choice.

String entry

To create a string entry in the editor window, use the following:

entry( "<Name>", type=string, value="<text>" );
entry( title="<Title>", "<Name>", type=string, value="<text>" );

<text> appears as the initial value for the string entry.

Dependencies (conditional entries)

Editor windows should look different depending on some of the values in the table. For example, you want to display the Pivots option in extrude only if extrude tube is chosen, because extrude flat does not use the Pivots option.

To make editors dependent on the values in the table, use the test entry as follows:

test( {"<Name1>" * "<value1>", "<Name2>" * "<value2>"},{...}, ... );

* can be = or ! to signify equality or inequality. <Name> matches one of the <Name> entries in the table. The string right after the optional title=Title.

<value> is one of the possible values for that entry.

The conditional entry should immediately precede the entry for which the test is being done.

For example:

entry( watch, title="Extrude Tube", "mo_extrude_tube", type=boolean, value="0" );
...
test( {"mo_extrude_tube" = "1"} );
entry( watch, title="Extrude Pivots", "mo_extrude_pivots",
type=choice { "COMPONENT:comp", "CLOSEST:clos" }, value="CLOSEST:clos" );
...
test( {"mo_extrude_pivots" ! "clos"} );
something else that appears only if closest is NOT chosen as the pivot option.

In general, the following:

test( { a = b, c ! d }, {e = f}, {g ! k, h = m} );

says that { (a equals b) OR (c does not equal d) } AND { e equals f } AND { (g does not equal k } OR (h equals m) }. This should be general enough for you to convert anything into this form.

To make this work, we tell the table that the value of the mo_extrude_tube variable is important as something else depends on it. This is what the watch keyword means.

You can put test entries before groups in which the whole block appears or does not appear depending on the conditional in the test.

Example

The Editor Window

The following is an example file for a curve rebuild editor window. You can copy this code and see what the result would look like by running pst /fullpath/filename.

profile "Rebuild Curve" {
entry( watch, title = "Rebuild Type", "mo_rbld_type",				
type=choice{"MATCH:match","UNIFORM:uniform","CURVATURE:curvature"},
value="UNIFORM:uniform" );

test( { "mo_rbld_type"!"match" } );
entry( title = "Tolerance", "mo_rbld_tolerance",
type=float {range "1e-05" to "0"}, value="0.01" );

test( { "mo_rbld_type"="uniform" } );
entry( watch, title="Keep Number of CVs", "mo_rbld_keep_cvs",
type=boolean, value="0" );

test( { "mo_rbld_type"!"match" },
{ "mo_rbld_type"!"uniform","mo_rbld_keep_cvs"="0"} );
entry( watch, title = "Max Spans Type", "mo_rbld_spans_flag",
type=choice{"RELATIVE:relative","ABSOLUTE:absolute"},
value="RELATIVE:relative" );

test( { "mo_rbld_type"!"match" },
{ "mo_rbld_type"!"uniform","mo_rbld_keep_cvs"="0"},
{ "mo_rbld_spans_flag"="absolute"} );
entry( title = "Max Spans", "mo_rbld_spans_val",
type=integer{range "1" to "50"}, value="3");

test( { "mo_rbld_type"!"match" },
{ "mo_rbld_type"!"uniform","mo_rbld_keep_cvs"="0"},
{ "mo_rbld_spans_flag"="relative" } );
entry( title = "Max Spans Factor", "mo_rbld_spans_fact",
type=float {range "0.1" to "10"}, value="1.0");

test( { "mo_rbld_type"!"match" } );
entry( watch, title = "Change Degree", "mo_rbld_deg_flag", 
type=boolean,value="0" );

test( {"mo_rbld_deg_flag"="1"}, {"mo_rbld_type"!"match"} );
entry( title = "Degree", "mo_rbld_degree", type=integer {range "1" to "9"}, 
value="3" );
}

The above code creates an editor window that looks like the following:

Querying a value

To query a value (such as mo_rbld_type), from the above table, assuming it was called /usr/tmp/table, the usage statement is as follows:

pstget /usr/tmp/table mo_rbld_type

In this example, provided that no fields had been changed, the following would be written to stdout:

uniform

To capture this value into a c-shell variable called buildtype, use the following:

set buildtype=`pstget /usr/tmp/table mo_rbld_type`

The single quotation marks above are a forward single quotation mark (to the left of the 1 key on an SGI keyboard).

rb_stereo

Purpose

rb_stereo combines a stereo pair of images into a single image file suitable for viewing with red/blue glasses.

Overview

rb_stereo is useful for previewing stereo images on a standard display. All that is required are a stereo pair of images, rb_stereo, and a pair of red/blue or green/red "3-D" stereo glasses.

rb_stereo accepts a single stereo pair, or a sequence of stereo pairs.

rb_stereo performs a luminance calculation on each image to reduce it to a grey-scale, 8-bit image. The 8-bit channels are then combined into a single image file by assigning the 8-bits to the red, green, or blue channel of the new file as specified by the user options.

rb_stereo maintains the image file type between the input files and the output files. For example, if SGI image files are used as input, then SGI image files are output.

Description

The usage statement for rb_stereo is as follows:

rb_stereo [-a # # #] [-b] [-g] [-h] <infile> <outfile>
where:
-a # # # converts an animation, specifying the startframe, endframe, and byframe. The #s must be integers.
-b blends in a bit of green in order to improve red/blue viewing. This is necessary to improve the appearance of the images since the blue gun of the monitor does not exactly match the blue on most red/blue glasses.
-g creates a red/green stereo pair for use with red/green glasses. This option precludes the -b option.
-h displays the on-line help.

Examples

If you want to combine the files image_left and image_right into a single red/blue stereo pair image with a bit of green blend, the command would be:

rb_stereo -b image image.3d

This command creates a file called image.3d in your current directory.

If you have the following animation sequence:

pix/image_left.1   pix/image_right.1
pix/image_left.2   pix/image_right.2
pix/image_left.3   pix/image_right.3

the command to create a sequence of green/red stereo images is as follows:

rb_stereo -g -a 1 3 1 pix/image pix/image

This command creates files called pix/image.1, pix/image.2, and pix/image.3 in your current directory.

renderer/raytracer (incl. powercaster/powertracer)

Purpose

renderer creates raycast or raytraced image files from Alias SDL files while in a UNIX shell.

Description

The usage statement for renderer, raytracer, powercaster, or powertracer is as follows:

renderer or raytracer or powercaster or powertracer [-a#] [-b#] [-B#] [-c 
<quantized_output_file>] [-C <color_map_filename>] [-d <filename>] [-e#] [-E#] [-f <script>] 
[-h#] [-H] [-J] [-k] [-K#] [-m <filename>] [-p <filename>] [-P] [-q#] [-Q#] [-r#] [-R#] [-s#] [-S#] [-
t#] [-T#] [-w#] [-W#] [-x#] [-y#] [-Y#] [<filename>]
where:
-a# sets the anti-aliasing level to the integer #. aalevel is the maximum anti-aliasing level per pixel.
-b# sets the by frame number for animation sequences to the floating point number #.
-B# sets the by extension for animation sequences to the integer #.
-c <quantized_output_file> outputs the quantized image to the file <quantized_output_file> after each frame.
-C color_map_filename uses the SGI image format file <color_map_filename> as the color map to refer to for quantizing after each frame.*
-d <filename> uses <filename> as the depth filename.
-e# sets the ending frame number for animation sequences to the floating point number #.
-E# sets the size extension for animation sequences to the integer # where # indicates the number of 0 padding before the extension number. For example, -E 4 produces file extensions such as <file>.0001 indicating frame 1.
-f <script> invokes the program <script> after each frame.
-h# sets the image height for the partial image to be rendered to the integer # without changing the view port. However, this sub-region to be rendered always originates from the lower left hand corner of the image. The integer # moves the origin of this window around the view port.
-H displays the on-line help.
-J creates a depth file called `timing' representing time per pixel.
-k keeps depth maps in memory after reading them once.**
-K# turns depth maps on disk usage to #. 0 is OFF. Any number other than zero is ON. ***
-m <filename> produces a matte file and uses <filename> as the filename.
-n# sets, to the integer #, the number of processors to render on. This option is only available with powertracer and powercaster.
-p <filename> uses <filename> as the pix filename.
-P preserves the non-glowed image unless DOF or Quantize are on. This option allows you to save both a glowed and non-glowed image on disk. The non-glowed image will have the same name as the glowed image, but will have the suffix .ng.
-q# sets the quiet flag to #. # can be 0, 1, or 2.
-Q# sets the resolution in the X direction and the view port to the integer #. This option is useful for overriding the resolution specified in a given SDL file. For example, it is useful for switching between rendering NTSC and 1/4 NTSC for a quick preview render.
-r# sets the aspect ratio to the floating point number #.
-R# sets the resolution in the Y direction and the view port to the integer #. This option is useful for overriding the resolution specified in a given SDL file. For example, it is useful for switching between rendering NTSC and 1/4 NTSC for a quick preview render.
-s# sets the starting frame number for animation sequences to the floating point number #.
-S# sets the start extension for animation sequences to the integer #.
-t# sets the aathreshold to the integer #. aathreshold is the anti-aliasing threshold value that adaptively super-samples pixels based on color difference. The higher the value, the more sensitive the super-sampling is to color difference.
-T# sets the number of Y pixels in a tile to the integer #. A tile is a row of pixels to be rendered together. The main reason to use this option is to reduce the amount of memory used by lowering the Y value. This controls the tile size the image is broken up into for rendering and has no effect on the final image or its resolution.
-v render normally outside of viewport region
-V render image with hidden lines
-w# sets the image width for the partial image to be rendered to the integer # without changing the view port. However, this sub-region to be rendered always originates from the lower left hand corner of the image. The integer # moves the origin of this window around the view port.
-W# sets the ylow for backgrounds to #. The ylow and yhigh define the region of the rendering, specified in pixels, where the background should appear.
-x# sets the xleft to the integer #. xleft is the left corner of the partial image to be rendered.
-y# sets the ylow to the integer #. ylow is the left corner of the partial image to be rendered.
-Y# sets the yhigh for backgrounds to #. The ylow and yhigh define the region of the rendering, specified in pixels, where the background should appear.
filename sets the SDL filename to a specific filename. If no filename is specified, standard input is used.

* If required, the renderer quantizes images after rendering them. The option -C allows a previously generated color table to be used for quantizing images. However, aquant quantizes images much more quickly.

** Generally, when a depth_input file is specified for a shadowing spotlight, it is read every frame. -k forces the renderer to read the shadow map only once during the first frame of rendering.

*** Rather than editing your SDL files to add depth_input or depth_output commands to shadowing spotlights, this command line option may be used. When set to a non-zero value (for example -K 1), the renderer automatically creates depth output files named after the spotlights in your current directory, or if these files already exist, they are used.

Using any of the above options overrides any equivalent SDL keyword settings in the SDL file.

Examples

The following are examples showing the uses of the rendering utilities.

This command:

renderer testframe.sdl

renders an SDL file called testframe.sdl. All parameters and keywords set within the SDL file will be used. If any of the keywords is missing and requires a value, the default value for that parameter is used.

This command:

renderer -a0 -s1 -b2 -e20 -p testpix -q0 -h512 -w512 -x0 -y0 scene.sdl

renders an SDL file called scene.sdl. The scene to be rendered is an animation.

Anti-aliasing is turned OFF by setting the aalevelmax to 0. The animation specified in the SDL file is overridden by the specification of -s1 -b2 -e20, which renders with a frame step of 2 the first twenty frames of animation. Normal messages are output, and the test image size is 512x512 pixels square. The animation sequence is output to a series of files starting with the name testpix.

This command:

renderer -s 1.5 -e 3.5 -b .25 -S 1 -B 2 -E 3 sdl/foo

produces the following:

foo.001 (a snap shot of the animation at time 1.5)
foo.003 (a snap shot of the animation at time 1.75)
foo.005 (a snap shot of the animation at time 2.0)
 ...
foo.019 (a snap shot of the animation at time 3.25)
foo.021 (a snap shot of the animation at time 3.5)

Assuming a 512x512 image, the following command:

renderer -h 255 -w 255 -x 255 -y 255 sdl/foo

produces an image of the top right 255x255 pixel region of the original image.

Important Notes

Saved geometry is incompatible with motion blur.

You cannot stop and start a render process that uses saved geometry and retain the saved geometry.

Saved geometry uses a significant amount of memory. You should have at least 100 megabytes of swap space available before attempting to use it.

Alias backgrounds attempt to interpolate between the top and bottom of the current rendering pixel span in Y. This may not be what is intended if only a sub-region is being rendered as this would result in the background being repeated many times in Y. Therefore, remember to specify the -W and -Y options to specify the final resolution from which the background positioning can be calculated.

renderit

Purpose

renderit is a shell script that executes an SDL script. renderit copies files to the proper locations and can start a render on a remote machine.

Description

The usage statement for renderit is as follows:

renderit [-e <engine:loc>] [-f <pixfile>] [-r <renderer>] [-t <targ>] [<sdlfile>]
where:
-e <engine:loc> specifies where the rendering is to be done. If this option is not used, the rendering is done on the local host in the current directory.
-f <pixfile> specifies the name to give the resulting pix files.
-r <renderer> specifies which renderer should execute the SDL script. The renderer can be one of the following: renderer raytracer powercaster powertracer. renderer is the default option.
-t <targ> saves the rendered images in the specified file. <targ> can be in host:pathname format or pathname format. If this option is not used, the rendered images are left where they are rendered.
<sdlfile> specifies the input files to use. If nothing is specified, the standard input file is used by default. Note that this must be the last option specified.

There are a few places in the renderit shell script where the standard Alias layout of projects is assumed. This is unfortunate but necessary to make things work with Alias. The major assumption is that the renderer is running in a project directory (or at least a directory with a pix directory in it).

Because renderit is a shell script, it can be customized. However, we recommend that you give the customized version a different name so that the Alias interactive system runs the renderit script as supplied.

rndctl

Purpose

rndctl opens the Rendering Control window and can be used to specify the path to the directory to which control files are written or to specify a variety of batch commands.

The Rendering Control window appears as follows:

For more information about the Rendering Control window, see Render Distributed render in the Alias Menu Book.

Description

The usage statement for rndctl is as follows:

rndctl [-l control_path_location] [-a batch command] [-b batch command]
where:
-l control_path_location is a path to a directory to which you want to write control files created by the Distributed Rendering Control System. This directory should allow reading or writing by anyone. If a control_path is not specified, it is assumed to be $ALIAS_LOCATION/render_control.
-a batch command initializes the X system but does not display the editor window.
-b batch command does not initialize the X system and can be used across a serial link.

Batch commands

To use the -a or -b batch commands, type the option, -a or -b, and then the commands. Do not type spaces between the commands.

The following is a list of the batch commands that can be used with the options -a and -b.
addpath,index,path adds a new path to the rendering job associated with the specified job index number.
clone,index,[name,[sdl_filename]] creates a new job that is a copy of the job index specified. You can also specify a new name and new SDL filename for the new cloned job.
delpath,index,path deletes the previously specified path from the rendering job associated with the specified job index number.
devadd,jobname,resource,resource,... adds the listed resources to the specified jobname. The jobname is first checked for a job index number and then as a jobname. The resource is first checked for a resource index number and then as a resource name.
devdelete,jobname,resource,resource,... deletes the specified resources from the specified jobname. The jobname is first checked for a job index number and then as a jobname. The resource is first checked for a resource index number and then as a resource name.
devhost,resource,host sets the name of the host of the specified resource to the new host specified.
devlist,resource lists the current settings of the specified resource.
devname,resource,name sets the name of the specified resource to the new name specified.
devnew,resource,resource,... creates new resource entries for each of the specified resources that don't already have resource entries.
devremove,resource,resource,... deletes the resources for each of the specified resources.
devsummary lists all of the resources that your system has access to. The list shows 1 resource per line. This is an easy way to identify which resource index numbers belong to which filenames.
ext,index,start[,by,[size]] sets one or more of the start, by, and size fields for the specified job index number.
frames,index,start[,end[,by]] sets one or more of the start, end, and by values for the specified job index number.
help displays a summary of all the commands available from the command line.
image,index,pix_filename changes the output image filename assigned to the specified job index number.
jobadd,name,renderer,resource adds a new rendering job (by name of the SDL file) to the job list and associates it with a renderer (renderer, raytracer, powercaster, powertracer) and a specific processor on which to run the job. This command starts the renderer.
jobdelete,index,index,... deletes the rendering jobs with the given index numbers from the job list. This command can be used to delete more than 1 job at a time. Type the index numbers of the jobs on the same line, separated by commas, but no spaces.
joblist,index|name lists the status of a rendering job given the job index number or the name of the rendering job.
jobname,index,name changes the name of the rendering job with the given index number to the new name specified.
jobreset,index,index,... resets the rendering jobs listed by index number. Type the index numbers of the jobs to be reset on the same line, separated by commas, but no spaces.
jobstart,index,index,... starts the renderer running for each of the rendering jobs listed by index number.
jobstop,index,index,... stops each of the rendering jobs listed by index number.
jobsummary lists all render jobs on the job list.
lock,resource,schedule type sets the schedule flag to the specified type for the given resource. Possible schedule types to use are locked, avail, and schedule.
log,index displays the job log file associated with the specified job index number.
matte,index,matte_filename changes the output matte filename assigned to the specified job index number.
maxframes,resource,maxframes sets the maximum number of frames that the given resource can produce within a single rendering task.
numproc,resource,number processors sets the maximum number of processors that the given resource will allocate.
options,index,options changes the job options for the specified rendering job. If no new options are specified for the rendering, the options are set to NULL for the job. In other words, the original options are deleted.
output_mask,index,0|1 resets or sets the flag to output mask (matte) files as well as pix files. 0 indicates that mask files are not produced; 1 indicates that mask files are produced.
priority,index,number sets the priority number of the rendering job associated with the specified job index number.
renderer,index,renderer changes the renderer previously specified for the given job index to a new specified renderer.
sdl,index,sdl_filename changes the SDL filename for the specified job index number.
status,resource,... displays a list of the current jobs that the specified resource is actively processing. This command displays the job name, index, status, and the name of the pix file currently being rendered.
taskdump displays a listing of the current task control file. This allows you to see what is going on with the system and the status of the render.
use_ext,index,0|1 resets or sets the 0 padded enable flag.
use_sdl,index,0|1 resets or sets the flag to say whether the SDL names are used or not. 0 indicates that the names are not used; 1 indicates that the names are used.

Index is the identification number of the rendering job as defined by the system.

rndctl Examples

The following are examples of how rndctl is used to control rendering jobs and resources.

Example 1

The following command line displays a summary list of jobs in the Distributed Render Control area:

rndctl -b jobsummary

The above command will list the known jobs, start one of the jobs, and then check on the tasks list.

The output from the above command appears as follows:

Index Name Status totalframes doneframes executable sdl
 ------------------------------------------------------- 
98 wire2 finished 60 60 renderer /h/xxxx/user_data/demo/sdl/wire2
99 by1_t1 finished 10 10 renderer /h/xxxx/user_data/demo/sdl/by1_t1
100 by1_t2 aborted 10 0 raytracer /h/xxxx/user_data/demo/sdl/by1_t2
101 officewire3 none 60 0 (null) /h/xxxx/user_data/demo/sdl/officewire3
104 pad1_t1 finished 10 0 renderer /h/xxxx/user_data/demo/sdl/pad1_t1
105 at_field finished 10 10 renderer /h/xxxx/user_data/demo/sdl/at_field

Example 2

The following command starts a renderer and returns the process identification number of the new daemon started:

rndctl -b renderer,99,renderer

The process identification number of the new daemon appears similar to the following:

[1] 4201

Tip: To remove a daemon from a specific host, delete the host.pid file found in the Distributed Rendering Control area. Deleting the daemon directly may make the control file invalid.

Example 3

The following command presents a listing of how the rendering tasks are progressing:

rndctl -b taskdump

The results of this command appear as follows:

by1_t1   99  10  10 
0 1.000000 1.000000 1.000000 12 0 FINISHED
1 2.000000 2.000000 2.000000 12 0 FINISHED
2 3.000000 3.000000 3.000000 12 0 FINISHED
3 4.000000 4.000000 4.000000 12 0 FINISHED
4 5.000000 5.000000 5.000000 12 0 FINISHED
5 6.000000 6.000000 6.000000 12 0 FINISHED
6 7.000000 7.000000 7.000000 12 0 FINISHED
7 8.000000 8.000000 8.000000 12 0 FINISHED
8 9.000000 9.000000 9.000000 12 0 RUNNING
9 10.000000 10.000000 10.000000 0 0 PENDING

setupacct

Purpose

setupacct is used to customize pre-existing user accounts or create new user accounts to use the Alias software.

Usage

/usr/aw/alias/bin/setupacct

Description

Setupacct can be used to either update an existing user account for use with the Alias software or, when executed by the superuser, create a new user account for use with the Alias software.

When executed by a user (other than the superuser), setupacct prompts the user, asking them if they wish to customize their account to use the Alias software. If they say "yes", the account is customized.

If setupacct is executed by the superuser, it prompts for the username of a user account which should be customized to use the Alias software. If the specified user account does not exist, it is created and customized to use the Alias software. If the user account already exists, setupacct prompts the user, asking them if they wish to customize their account to use the Alias software. If they say "yes", the account is customized.

If an existing user account is customized to use the Alias software, some of the "dot" files in the account (i.e.: .cshrc, .login) may be moved aside in favor of the customized Alias software versions. These files are "saved" in a subdirectory of the user account named .env_MMMDD, where MMM are the first three letters of the current month and DD is the day of the month. For example, .env_Jan06.

Once a user account has been updated, the user must log out and back in again. This ensures that any changes made to the user account take effect.

Some further customization of the user's environment may be necessary to meet the users' needs. For example, if the user wishes to place their Alias working area in another location besides their home directory, they will need to edit their .cshrc file and change the value of ALIAS_WORKENV. Other customizations of the user account may be necessary as well if the user wishes to use their account for uses other than working with the interactive package. See the Alias Installation Notes for more information.

showstereo

Purpose

showstereo is used to view stereo pix files on Alias systems equipped with stereo viewing hardware by Streographics Corporation. Note that if the images are shown on other monitors, they are likely to appear half-height. To view the image on a standard monitor, you will need to interlace the images.

Description

The usage statement to view a pair of pix files that have been rendered with the stereo keyword in SDL is:

showstereo [-h] [-i] [-s #] <left> <right>
where:
-h displays the help messages and then quits.
-i identifies the version and then quits.
-s # toggles the SGI monitor in and out of 60Hz mode. 1 is on and 0 is off. The default is 1, on. If # is 0, the SGI monitor displays both images one on top of the other.
<left> and <right> specifies the filenames assigned to the left and right images.

Images that are smaller than full resolution (1280x480) are enlarged to fill the screen by pixel replication. Images larger than full screen resolution are truncated with as much as possible of the picture from the upper left corner preserved.

sla

Purpose

sla converts generic triangle information generated by File Export Save polygons - (with the Triangles option selected) to SLA-1 format.

File Export Save SLA - can be used in place of this stand-alone utility.

Overview

The SLA-1 is a device that produces physical replicas of objects modeled using Alias.

Objects modeled in Alias that you want the SLA-1 to produce must satisfy the following constraints. The modeled object must:

The objects that can be converted by sla are:

Curves or points that are not part of a surface are ignored. For example, a cross section of a model is not acceptable input for sla.

See the Alias Menu Book for further information about creating models for the SLA-1.

Description

The usage statement for sla is as follows:

sla [-B] [-C] [-R scale | -S scale] [-T] [-U units] [-V vatsize] [infile [outfile]]
where:
-B specifies that the output is in Binary format. If this option is not used, the output is in ASCII format.
-C specifies that the model should be created to be positioned at the center of the vat's volume. The default is to place it adjacent to the zero axes with a margin of 0.1 inch. The SLA-1 SLICE program ultimately controls the position of the model within the vat by providing controls to translate the model.
-R is a floating point number greater than 0.01 and less than or equal to 1. This option indicates the amount that the model's triangle data is scaled to fit in a fraction of the SLA-1's vat volume.
-S specifies an absolute scaling of the data so that the coordinate data is exported to standard units specified by the -U option in the final SLA-1 model.
-T translates incoming geometry into the positive quadrant if it wasn't already there.
-U specifies the output units (MI, YD, FT, IN, KM, M, CM, MM). The default unit is IN. This option must be used in conjunction with the -S option. The absolute scaling is combined with the units specification for an overall scale factor. The coordinate data are exported to be corrected from the current linear units to the selected units.
-V specifies the size of the vat on the SLA-1. The default is a nine inch vat. (The vat is assumed to be cubic.)
infile specifies the name of the file with the object to be created by the SLA-1. The infile must be named with the suffix .stl. The file specified must be a generic triangle file.
outfile specifies the name of the file the sla output is directed to. If no filename is specified, the output is directed to the standard output.

The SLA-1 SLICE program accepts two formats for input. One format is ASCII, where keywords identify elements in the file and where all numbers are given in a string. The other format is Binary which consists of Intel 386 format floating point and integer numbers where the position in the file determines the meaning of the value. See option -B above.

We recommend that you use the -S, -U, and -C options.

StToAl

Purpose

Converts ISO10303 files to Alias wire files, specifically application protocols ISO10303-203 (Configuration Controlled Design) conformance classes 1-4, and ISO10303-214 (Core Data for Automotive Mechanical Design Process) conformance classes 1-2. The import and export of this data is supported via ISO10303-21 Physical file exchange.

Description

The usage statement for StToAl is as follows:
AlToSt [-s] <infile> <outfile>
Where:
-s do not stitch the model on input. (The default is to stitch the model.)
<infile> specifies the STEP file to use as input. If not specified, input comes from stdin.
<outfile> specifies an Alias wire file to write output to. If not specified, output goes to stdout.

surfmate

Purpose

surfmate examines Alias triangle files to determine the topology of the data. surfmate then mates triangle meshes along edges that have small gaps, but which should be perfectly matched for use in conjunction with solid imaging.

Overview

surfmate is useful when the wire frame model needs to be topologically closed. Topologically closed means that if you poured water into the object, it would not leak. This condition is required by some three dimensional manufacturing systems.

If you are creating objects for manufacture on a prototype machine such as the stereolithography apparatus (SLA-1) by 3D Systems, you want to create a closed solid.

If you are creating objects for transfer to the Wavefront Personal Visualizer, you want to create one or more continuous surfaces, which may or may not be closed.

The small gaps that surfmate closes usually result when surfaces meet near trim curve boundaries.

Description

The usage statement for surfmate is as follows:

surfmate [-c dist] [-h] [-q] [-t dist] [input.tri [output.tri]]
where:
-c dist collapses spans of boundary edges that are shorter than a specified distance.
-h displays the on-line help.
-q reduces the number of status and diagnostic messages displayed.
-t dist sets the maximum matching distance. The default value often closes all gaps. Use the default distance from the first pass as an increment for subsequent passes if there are any remaining gaps.
input.tri specifies the Alias triangle file to use as input. The triangle file should be generated by either File Export Save STL/SLC - or File Export Save polygons - .
output.tri specifies the name of the Alias triangle file produced by surfmate.

The triangles in the file input.tri are modified as necessary to mate surfaces separated by small gaps of less than -t dist apart. The modified triangles are written to a file called output.tri.

If input.tri and output.tri are not specified, standard input and output are used. All messages are written to a standard error file.

No prompt or warning is given if output.tri is the name of an existing file. However, the triangles are not written out until the process is complete. Stopping surfmate before it writes the binary triangle data prevents the existing file from being overwritten.

Definitions

The following is a list of terms and their definitions to help you understand surfmate.

Solid Imaging and StereoLithography

Rapid Prototyping is a sector of industrial design which uses Solid Imaging (SI)to translate three-dimensional geometry to create physical models or parts of models using a variety of resins and other materials. The file formats used by Alias for outputting files for Rapid Prototyping are the tessellated STL and SLC file formats.

Topology

The topology of an object refers to the geometric properties of the object, discounting its location and size. For example, a sphere has the same topology even if it is large, small, squashed almost flat, or stretched.

Surfaces

Input to surfmate is a set of triangle vertex locations with a triangle normal. These triangles make up one or more distinct surfaces. Every triangle in a single surface can be reached from every other triangle in the same surface by stepping across shared triangle edges. Surfaces are distinguished from one another because there is no such connection across a shared edge.

Edges and Loops

Boundary edges

Each triangle edge is either shared with two triangles or belongs to only one triangle. Edges that belong to only one triangle are called boundary edges. See the following diagram of a boundary edge.

surfmate compares individual boundary edges with every other boundary edge. If two boundary edges are close enough to each other, they are considered to be a matched pair of edges. If a boundary edge is not near any other boundary edge, it will never be matched and it will show up as one of the unjoined edges reported by surfmate.

Even if a boundary edge is near two or more other boundary edges, it matches all of them, but can only be joined to one of them. For example, if an edge called E was near three other edges, E would match all three but could only be joined to one of the three edges.

surfmate reports the joining and counts the unjoined edges.

To continue the above example, after it has been joined to one of the three other edges, Edge E contributes 2 unjoined edges to the total number of unjoined edges.

Boundary loops

Every boundary edge belongs in a loop of other boundary edges that travels around the seam of a single surface. These loops are called boundary loops. See the following diagram of boundary loops.

You can picture a surface with a single boundary loop as a stretched piece of material where the boundary loop is the outside edge of the material.

A surface can have zero or more boundary loops. If a surface has no boundary loops, such as a sphere or torus, the surface is closed. A closed surface is the preferred state for solid imaging.

You can create surfaces with a single boundary loop in the Alias system using Surfaces Boundary surfaces Boundary - or Surfaces Ruled surfaces Patch - .

Surfaces with two or more boundary loops can be pictured as pieces of paper that have holes in them. For example, a cylinder is a stretchy piece of paper with a single hole in it. In Alias, objects with this type of topology are created whenever you create a revolved surface that is either open at the ends or with the curve not closed.

surfmate locates pairs of boundary loops that are near each other and attempts to join them. It is not necessary for an entire boundary loop to be near another entire boundary loop before they are joined. Most of the time, only portions of boundary loops are matched and subsequently joined.

Tolerance and Collapse Distances

You can clearly see when two surfaces need to be joined at a particular location. surfmate, however, uses an entirely different set of criteria in deciding if and when two boundary edges should be joined. These criteria are based upon the distance that separates the two edges. If the distance is less than the specified tolerance distance, the two edges are matched and may later be joined.

Using tolerance distance as the only criteria for matching edges does not work in all cases. surfmate usually repairs all of the gaps in an object with a single pass. Sometimes, however, the gaps are not all closed. In these cases, you examine the results of the first pass and rerun the program using the data produced from the first pass as the input for the second pass.

Determining the tolerance

Initially, use the default tolerance determined by surfmate. The default tolerance is usually good enough to join most of the boundaries for data produced by Alias. For additional passes, increase the tolerance to close the gaps between the surfaces that remain. A general rule is to increase the tolerance by the amount of the default tolerance for every pass. As more and more surfaces are matched, greatly increasing the tolerance is acceptable because there are fewer available boundary edges nearby to conflict with a pair of edges that should be matched.

If you have not turned on the -q (quiet) option, surfmate reports the minimum distance found between pairs of edges that were too far away from each other to be matched. Specifying this distance as the tolerance distance on the next pass joins at least one and perhaps a few other edge pairs.

Alias sometimes produces boundaries that have high densities of very small triangles near trim edges. Sometimes little islands of triangles are also created. The islands are actually surfaces in their own right, and are not attached to the two nearby trim surfaces.

Trimmed surfaces sometimes have very thin triangles near boundary edges that fold back on the surface. These triangles increase the uncertainty for surfmate when deciding which pairs of edges to join.

If you zoomed in on the triangles of a trimmed surface, you might see the following:

Setting the Collapse Distance

Before any boundary edges are matched and joined, they undergo a shrinkage operation in which very short adjacent edges are collapsed into a single, longer edge. Every boundary edge shorter than the specified collapse distance is fused with one of its neighboring edges in the loop.

By increasing the specified collapse distance from its default, you can eliminate islands and other small triangles along trim boundaries. However, if you increase the collapse distance much more than the tolerance distance, you can cause nearby boundaries of legitimate surfaces to shrink away from each other more than the matching tolerance which eliminates the possibility of these surfaces ever joining each other.

Use the default collapse distance supplied by surfmate for the first pass. If unexpected results occur, run the program again on the original data with the collapse distance increased to 20% greater than the tolerance distance.

Alternatively, try running surfmate using the original input data with a collapse distance that is smaller than the default. This can alter the order in which matched edges become joined and eliminate the problem.

It is dangerous to reduce the collapse distance too much because it may increase the number of edges any particular edge can match, and it does increase the risk of joining inappropriate edges.

Evaluating the Results

It is important that you know what sort of topology you want surfmate to achieve. Do you want a single closed surface? Do you want several surfaces with holes in them? In particular, you need to know how many boundary loops should be present in the corrected data. surfmate reports the number of boundary loops present in the input data. If this number is the same as the number of boundary loops you wanted, this pass was not necessary.

The number of surfaces that are present in the output is also very important. Usually, when surfmate is used to prepare rapid prototyping input, the goal is to create a single surface. If there is more than one surface remaining, there are further boundary loops to be joined. Run the program once again using the newly created triangle file as input in order to determine the number of boundary loops remaining.

If the surfaces are still not fully repaired, look at the number of pairs of edges that remain unjoined. If there are only a few, you probably only need to increase the tolerance slightly to join them.

Do not specify the -q (quiet) option or surfmate will not display the necessary messages.

There are two possible reasons why the number of unjoined edge pairs can be large:

The number of matched edges could be high for both of the above reasons simultaneously.

You should also examine the number of edge pairs that have not been joined. If this number is a significant portion, more than 15%, of the number of boundary edges remaining after the short edges have been collapsed, surfmate may have difficulty completely repairing the surface.

The proportion of collapsed edges to original boundary edges gives you an indication of how suitable your collapse length is for the input data. In general, it is not a good idea to collapse more than 50% of the boundary edges because the surfaces can become badly distorted and nearby boundary edges can pull apart from each other wherever a boundary loop makes a sharp turn around a corner of a surface.

Examples

The following are examples of possible uses of surfmate and their results.

The data files used in the following examples are not on the Wavelink option tape as these examples focus on the output; the data input is not critical to these examples.

Example 1:

The following command:

surfmate cyl.tri cylout.tri

produces the following messages and results:

Reading triangle data...
Sorting triangle vertices...
Identifying common triangle vertices...
Sorting triangle edges...
Linking adjacent triangles...
Locating boundary edges...
Tolerance value: 0.0118796     Collapse length: 0.0130676
Number of input triangles: 352.
Number of input boundary edges: 64.
Number of input boundary loops: 5.
Collapsing short boundary edges...
0 boundary edges collapsed.
Sorting boundary edges...
Matching edge pairs...
Writing binary triangle data...
Number of output triangles: 960.
Repaired surface(s) are closed.

The information messages above show the tolerance value used for the maximum matching distance. In this case, the default value 0.0118796 was used. The default value for the collapse length is also shown in the information messages above. The default values are calculated by surfmate and vary according to the input data.

The final line of the information messages states that surfmate had produced a closed surface.

Example 2:

This example passes an open surface with some cracks in it through surfmate. The result wanted is an open surface with a single boundary loop.

The input object is a hemisphere placed on a wavy plane. The bottom of the hemisphere has been trimmed flush with the plane.

The following command:

surfmate globe.tri globe1.tri

produces the following messages and results:

Reading triangle data...
Sorting triangle vertices...
Identifying common triangle vertices...
Sorting triangle edges...
Linking adjacent triangles...
Locating boundary edges...
Tolerance value: 0.015625     Collapse length: 0.0171875
Number of input triangles: 1156.
Number of input boundary edges: 896.
Number of input boundary loops: 23.
Collapsing short boundary edges...
262 boundary edges collapsed.
Sorting boundary edges...
Matching edge pairs...
Writing binary triangle data...
Number of output triangles: 1059
52 edges have not been joined to any other edge.
72 edge pairs could not be joined because one or both of the edges have already 
joined some other edge...
Minimum tolerance to try for next iteration: 0.0156905
2 distinct surfaces remain.

52 edges have not been joined to any other edges because no other edge comes within the tolerance value. Because this object is an open surface, it should have unjoined edges.

72 edge pairs could not be joined because mating conflicts exist. Increasing the collapse distance before running surfmate again will reduce the number of conflicting edge pairs by turning short edges into longer ones. The collapse distance will increase without specifying it if you increase the tolerance value.

Only in unusual situations do you have to change the collapse distance explicitly.

The last line of the information messages states that there are still two surfaces remaining in the object. If the result you want is a single surface, run surfmate a second time. As a rule, increase the tolerance value for subsequent passes by the initial tolerance value reported by surfmate in the information messages. Check that this increased value makes the tolerance greater than the minimum tolerance value required (the second to last line of the information messages).

The following command runs the program a second time, increases the tolerance value to 0.032, and uses the triangle file output by the first pass of surfmate as the input for the second pass:

surfmate -t 0.032 globe1.tri globe2.tri

The following messages and results are produced:

Reading triangle data...
Sorting triangle vertices...
Identifying common triangle vertices...
Sorting triangle edges...
Linking adjacent triangles...
Locating boundary edges...
Tolerance value: 0.0032     Collapse length: 0.0352
Number of input triangles: 1059.
Number of input boundary edges: 59.
Number of input boundary loops: 7.
Collapsing short boundary edges...
7 boundary edges collapsed.
Sorting boundary edges...
Matching edge pairs...
Writing binary triangle data...
Number of output triangles: 1052
40 edges have not been joined to any other edge.
Minimum tolerance to try for next iteration: 0.05.
1 distinct surfaces remain.

The number of input triangles is the same as the output from the first pass. The number of edges is different because the changed tolerance value and collapse length result in the triangles being processed differently.

surfmate has adjusted the default collapse length to match the specified maximum matching tolerance. The only time you are likely to need to specify a collapse length explicitly is when you use surfmate on a trimmed surface with a large number of very small triangles.

7 boundary edges were collapsed allowing the two surfaces to be joined.

The second pass has produced the desired result: a single surface. You can tell that it is an open surface by the third to last line: 40 edges have not been joined to any other edge.

Using Surfmate - An Overview

The following section describes how to use surfmate.

Converting wire files to wavefront format

  1. After creating your model in Alias, select Render Globals... to open the Render Globals window and set Render to ACTIVE to render active objects only as follows:

  2. Pick each object or component in turn, and create a separate triangle file for each using File Export Save polygons - .
  3. Use surfmate to modify the triangle files and mate the appropriate surfaces.

Manufacturing using an SLA-1

  1. Create the model and supports. See the Alias Menu Book for the requirements for and information about modeling for the SLA-1.
  2. Select Render Globals... and set Render to ACTIVE to render only the active objects. See the illustration above for details.
  3. Make sure the object is positioned in the positive octant. Select Layouts Top to make the top window active.
  4. Pick the object and render a triangle file and an STL file (for the 3D Systems SLA-1 SLICE program) with File Export Save STL/SLC. Repeat the process for the supports.
  5. Use surfmate on the object triangle file from a UNIX shell. Remember, the result should be a closed object and you may need to make more than one pass if your object is very complex.
  6. Once you have created a triangle file containing a closed object, use the stand-alone utility sla to convert this .tri file into the .stl format that the SLICE program uses.
  7. . Slice the .stl files using the 3D Systems SLA-1 SLICE program.
  8. Merge the resulting .sli files containing the supports and objects. Use the merged .sli file to create the object with the SLA-1.

Working with surfmate

To show you how surfmate is commonly used, we have included a basic exercise and a more advanced exercise. We strongly recommend that you try the exercises before working with surfmate.

Basic Exercise

The following is a basic exercise showing a common procedure for using surfmate.

  1. Open the standard modeling windows by selecting Layouts All windows All (Studio).
  2. Select Objects Primitives Sphere to create a default sphere. Type 0 0 0 at the command line to place the sphere at the coordinates 0, 0, 0.

    Although the sphere looks like a closed object, it actually has a seam along one side that reaches from pole to pole:

  3. Make the top window active by selecting Layouts Top.

    If you were planning to manufacture this object with a rapid prototyping machine, such as the SLA-1, you would have to close the seam. For the purposes of this exercise, we assume that you need to close the seam.

  4. Select File Export Save STL/SLC - . This opens the Save STL/SLA Options window as follows:

  5. Click the Reset button to make sure that the options are set to the defaults. Click Go.

    When the Alias File Requestor appears, type the following at the File information line:

    defaultsphere.tri
    

  6. Click the Save STL button.
  7. Exit Alias by selecting File Exit. The UNIX window appears.
  8. In a UNIX shell, type:
    cd sla
    

    to access the sla directory. You should see the defaultsphere.tri file in the directory.

Use surfmate

Run surfmate using the default values for tolerance and boundary collapse by typing:

surfmate defaultsphere.tri sphere.tri

The following information appears on the screen:

Reading triangle data...
Sorting triangle vertices...
Identifying common triangle vertices...
Sorting triangle edges...
Linking adjacent triangles...
Locating boundary edges...
Tolerance value: 0.00195312     Collapse length: 0.00214844
Number of input triangles: 960.
Number of input boundary edges: 32.
Number of input boundary loops: 1.
Collapsing short boundary edges...
0 boundary edges collapsed.
Sorting boundary edges...
Matching edge pairs...
Writing binary triangle data...
Number of output triangles: 960.
Repaired surface(s) are closed.

This information tells you that there was initially one boundary loop (the seam). No boundary edges were collapsed, and all of the edges were matched. The result is a closed surface.

Advanced Exercise

The following is an advanced exercise showing a common procedure for using surfmate to create a T-shaped pipe for creation on a rapid prototyping machine such as the SLA-1.

Create Pipe

First two crossed cylinders are created using the instructions that follow to resemble the following illustration.

  1. Select Objects Primitives Cylinder. At the prompt line, type the numbers 0 0 0.
  2. Select Xform Nonp scale and type the numbers 1 0.5 8 at the keyboard prompt.
  3. Select Objects Primitives Cylinder to place the second cylinder. Type the numbers 0 0 4 at the prompt line.
  4. Select Xform Rotate and type the numbers 0 90 0 at the prompt line. This rotates the cylinder 90 degrees about the Y axis.
  5. Select Xform Nonp scale and type the numbers 1 1 8 at the prompt line.
  6. Select Pick Nothing and then Pick Component. Pick the cap of the vertical cylinder that is inside the horizontal cylinder as in the following illustration.

    You will probably need to tumble and dolly in the Perspective window to pick the cap.

  7. Select Delete Del active and click YES in the confirm box to delete this cap.
  8. Select File Save all to save the wireframe file.

Intersect Pipes

The cylinders are now intersected and trimmed to form a single, joined pipe from the two separate cylinders.

  1. Select Pick Object and click on the vertical cylinder to make it active.
  2. Select Surface Edit Create CurveOnSurface Intersect. When prompted, click on the horizontal cylinder.
  3. Select Surface Edit Trim Trim. When prompted, click on the vertical cylinder to make it active. When prompted to select the region to keep, click on the lower part of the cylinder. Make sure that Keep is selected and click Go.
  4. Once the trim is completed, you are prompted to:
    Select a target surface to trim.
    

    Click on the horizontal cylinder to make it active. Make sure that Keep is selected. Click again on the horizontal cylinder away from the area of intersection and click Go.

  5. Save the wireframes by selecting File Save all.

Create STL File

  1. Select Pick Object, hold down the Shift key, and click on the cylinders to make them both active.
  2. Select Render Globals... to open the Render Globals window. Select ACTIVE at the Render option and then close the Render Globals window.
  3. Select File Export Save STL/SLC - . When the Alias File Requestor appears, type the following at the File information line:
    t_pipe.tri
    

    Click the Save STL button.

  4. Select File Exit to exit Alias. The UNIX window appears.
  5. In a UNIX shell, change to the SLA directory where t_pipe.tri was saved.

Use surfmate

The file t_pipe.tri is now processed using the default values for surfmate.

Type the following usage statement at the UNIX prompt:

surfmate t_pipe.tri t_pipe1.tri

The following information is displayed on the UNIX screen:

Reading triangle data...
Sorting triangle vertices...
Identifying common triangle vertices...
Sorting triangle edges...
Linking adjacent triangles...
Locating boundary edges...
Tolerance value: 0.0166016     Collapse length: 0.0182617
Number of input triangles: 1936.
Number of input boundary edges: 848.
Number of input boundary loops: 2.
Collapsing short boundary edges...
574 boundary edges collapsed.
Sorting boundary edges...
Matching edge pairs...
Writing binary triangle data...
Number of output triangles: 1354.
8 edges have not been joined to any other edge.
4 edge pairs could not be joined because one or both of the edges 
have already joined some other edge.
Minimum tolerance to try for next iteration: 0.0166142
1 distinct surfaces remain.

From this information we can see that a single surface remains. However, since not all triangles have been mated, this is not a closed surface.

On the next iteration of surfmate, the tolerance is increased by the recommended value to 0.033.

Type the following usage statement at the UNIX prompt:

surfmate -t 0.033 t_pipe1.tri t_pipe2.tri

The following information is displayed in the UNIX window:

Reading triangle data...
Sorting triangle vertices...
Identifying common triangle vertices...
Sorting triangle edges...
Linking adjacent triangles...
Locating boundary edges...
Tolerance value: 0.033 	Collapse length: 0.0374
Number of input triangles: 1354.
Number of input boundary edges: 0.
Number of input boundary loops: 0.
Collapsing short boundary edges...
0 boundary edges collapsed.
Writing binary triangle data...
Number of output triangles: 1354.
Repaired surface(s) are closed.

After two iterations of surfmate, a closed surface is produced that can be processed on a rapid prototyping machine such as an SLA-1.

You can now use the final triangle file t_pipe2.tri with the stand-alone sla to produce appropriate .sli files.

For further information about File Export Save STL/SLC - , see the Alias Menu Book.

systemInfo

Purpose

systemInfo displays information about your system in a window.

Overview

The preferred ways of getting the same information are by using Help System info... within Alias or the stand-alone getid at the UNIX shell level.

For further information about using Help System info... , see the Alias Menu Book.

For further information about using getid, see getid on page 63 in this manual.

Description

The usage statement for systemInfo is as follows:

systemInfo

The window displayed is as follows:

unlace

Purpose

unlace breaks up image files into two separate files, one containing the even scanlines field of the image and the other containing the other containing the odd scanlines field of the image.

Overview

Because of the length of time between recording the first field of an image and the second, sequences grabbed from traditional video sources such as video cameras can show significant temporal aliasing between fields. In other words, temporal aliasing is caused by the interlaced scan used in television and video cameras. The first field is offset from the second field by 60 Mhz.

Temporal aliasing can cause some serious artifacts when the sequence is used as a backdrop or other computer graphics element. By unlacing the images, you can eliminate these effects by either rendering on fields or using only the data from the even or odd field of your animation.

unlace can be used with the following format files:

The even field is stored in a file with the suffix .e, and the odd field is stored in a file with the suffix .o.

Description

The usage statement for unlace is as follows:

unlace <image>

Many files can be specified on the command line at one time, or a valid UNIX wildcard such as * can be specified.

Example

If your current directory contained pix files named image.1, image.2, and image.3, running the following command:

unlace image.* 

would create the following PIX files:

image.1e

image.1o

image.2e

image.2o

image.3e

image.3o.

vda_info

Purpose

vda_info lists the number of occurrences of entities in the specified VDAFS files.

Description

The usage statement for vda_info is as follows:

vda_info <file>

where <file> is any VDAFS format file.

Example

The following is an example of a vda_info usage statement:

 vda_info sample.vda

The following information is displayed on the screen:

Summary of file sample.vda 
********************** 
Entity Name Number of Occurrence
SURF 108
CURVE 231
CONS 336
FACE 72
number of sets 5

write_multiple_sdl

Purpose

write_multiple_sdl converts wire files to SDL files.

If the wire file has animation, write_multiple_sdl creates one SDL file for each frame of the animation in order to animate the curve networks and construction history.

Overview

This utility is specifically designed to render animated curve networks and/or construction history. It is also accessible in Alias through the Render menu (see Render Render in the Alias Menu Book).

The animation can be output as either a normal SDL file containing all of the animation or as a single SDL file for each frame of the animation.

In the case of the individual SDL files for each frame of animation, each SDL file contains no animation.

The sequence of SDL files can be animated to simulate animated curve networks or construction history.

The renderer or raytracer can be started from write_multiple_sdl. This is convenient for rendering animated curve networks or construction history. Instead of writing one SDL file for every frame, the renderer or raytracer will render each SDL file as it is written. When the frame render is complete, the SDL file is rewritten using the next frame.

Description

The usage statement for write_multiple_sdl is as follows:

write_multiple_sdl [-a # # #] [-d] [-p pix_name] [-P] [-r] [-R <cmd_string>] [-s] <inputfilename> [ <out_directory> ]
where:
[-a # # #] specifies the start, end, and by frames. The # values are real numbers. If one # is specified, all three must be specified.
[-d] deletes any SDL files created. This option is useful when rendering the wire file if you do not want the SDL files created.
[-p pixname] specifies the filename to use for the rendered pix files. The -r option must be used with this option.
[-P] prints the process's PID and fewer messages.
[-r] starts the Alias renderer rendering all of the SDL files produced. The output from the renderer is stored in a file called render.log unless a different file is specified using [-p pixname].
[-R <cmd_string>] starts the Alias renderer rendering all of the SDL files produced and executes <cmd_string> for each SDL file. This option is useful for running the raytracer instead of the renderer, or for specifying renderer options.
[-s] creates a single SDL file containing the animation in the given wire file instead of creating many SDL files.
<inputfilename> specifies input wire file by name. The inputfilename must be a standard Alias wire file.
<out_directory> specifies the directory in which to place the resulting files. The default is the current working directory.

wrl

Purpose

wrl is used to view image files.

Overview

wrl allows interactive placement and display of one or more image files.

Description

The usage statement for wrl is as follows:

wrl [-c] [-C] [-f] [-F] [-h#] [-i] [-k] [-m] [-n] [-o] [-r#] [-s#] [-t#] [-w#] [-x#] [-X#] [-y#] [-Y#] [-display hostname:0.0] [files]
where:
-c draws the images sequentially in the same window.
-C is the same as option -c, but cycles through the images forever. Press the Esc key to stop the cycling.
-f fits the image to the window size. The image is full screen size if -w and -h options are not specified.
-F is the same as option -f but it does not fit the image to the window if the image is smaller than the window. If the image is smaller than the window, -F just centers the image.
-h# specifies # as height of image shown.
-i identifies the version number of wrl and then quits.
-k redraws images instead of closing.
-m shows only the alpha channel of a TIFF, TIFF16, or RLA image. If the image file does not have an embedded alpha channel, the -m option is ignored.
-n draws no borders around window.
-o stops the default action of periodically re-reading incomplete images.
-r# specifies # as the scaling factor.
-s# scrolls the image into a window in steps of a specified number of pixels.
-t# times out after a specified number of seconds. This option is useful with option -C.
-w# specifies # as the width of image shown.
-x# specifies # as the pixel to be shown on the farthest left.
-X# specifies # as the x position of the window.
-y# specifies # as the bottom pixel shown.
-Y# specifies # as the y position of the window.
-display hostname:0.0 shows the image on a specified display.You can have other options before or after this option, but not between the display and the hostname. You must have usage permission for the display you want to show the image on. See the UNIX manual page for xhost for more information.
files specifies the files to display. If no files are specified, stdin is used.

wrl generates a red square the size of the image to be shown. Move the mouse to place the red square where you want it and click the mouse button. The image is then displayed. Continue placing the red squares and displaying the images until all the files in the list have been placed on the screen.

If you type r, g, b, or a in a wrl window, wrl displays only the corresponding channel: red, green, blue, or alpha.

Pressing any key other than r, g, b, or a toggles the wrl window back to red, green, blue display mode.

If the image file is only 3 channels, red, green, and blue, typing a toggles the window back to red, green, and blue display mode.

Once an image is displayed, it can be removed from the screen by clicking the mouse anywhere inside the image.

Pressing Esc with the cursor in any of the images removes all the image windows.

If the image to be displayed is exactly the same size as the console, it will be automatically positioned so that it entirely fills the screen. The screen cursor will also be blanked.

If the image is larger than the screen, the bottom left corner of the image is displayed.

Examples

The following is an example of a usage statement for wrl:

wrl -F-C -t30 <Files>

In this example, using the -C, -F, and -t options together cause wrl to continuously display images on the full screen, resizing them as necessary, and cycling to the next image in <file> every 30 seconds.

Press the Esc key to stop the images from cycling and to clear the screen.

The following is an example of a usage statement for wrl:

wrl -display remotehost:0.0 <Files>

In this example, wrl shows the image on another display. Alternatively, you can set your DISPLAY environment variable.



Bookshelf Contents Previous Next Glossary Index Search

[email protected]
Copyright © 1998, Alias|Wavefront, a division of Silicon Graphics Limited. All rights reserved.