"Fossies" - the Fresh Open Source Software Archive

Member "brlcad-7.32.4/doc/mged/e.tex" (29 Jul 2021, 44309 Bytes) of package /linux/misc/brlcad-7.32.4.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) TeX and LaTeX source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 \chapter{KEYBOARD COMMANDS}
    2 
    3 The MGED keyboard commands are used to maintain overall control of the
    4 system and to perform general housekeeping functions.
    5 They are summarized in Figure \ref{cmd-summary}.
    6 
    7 \begin{figure}[tb]
    8 \begin{tabular}{l l l}
    9 Key & Argument[s]   & Description \\
   10 \\
   11   e & obj1* obj2* ... objn* & display objects on the screen \\
   12   E & obj1* obj2* ... objn* & display objects evaluating regions \\
   13   B & obj1* obj2* ... objn* & Zap screen, display objects \\
   14   d & obj1* obj2* ... objn* & delete objects from screen \\
   15   cp    & oldobj newobj & copy 'oldobj' to 'newobj' \\
   16   cpi   & oldtgc newtgc & copy 'oldtgc' to 'newtgc' inverted \\
   17   Z & -none-    & Zap (clear) the screen \\
   18   g & groupname obj1* obj2*....objn*    & group objects \\
   19   r & region op1 sol1....opn soln   & create/modify a region \\
   20   i & object instname   & create instance of an object \\
   21   mv    & oldname newname   & rename object \\
   22   mvall & oldname newname   & rename all occurrences of an object \\
   23   l & object*   & list object information \\
   24   kill  & obj1* obj2* ... objn* & remove objects from the file \\
   25   killall   & obj1* obj2* ... objn* & remove object[s] + references from file \\
   26   killtree  & obj1* objn* ... objn* & remove complete paths  **CAREFUL** \\
   27   t & object*   & table of contents \\
   28   mirror    & oldobj newobj axis    & mirror image of an object \\
   29   mirface   & \#\#\#\# axis & mirror face \#\#\#\# about an axis \\
   30   extrude   & \#\#\#\# distance & extrude an arb face \\
   31   item  & region item air   & change region item/air codes \\
   32   mater & region material los   & change region mat/los codes \\
   33   rm    & comb mem1* mem2*....memn* & delete members from combination \\
   34   units & mm|cm|m|in|ft & change the units of the objectfile \\
   35   title & new-title & change the title of the description \\
   36   p & dx [dy dz]    & precise commands for solid editing \\
   37   rotobj    & xdeg ydeg zdeg    & rotate(absolute) an edited object \\
   38   scale & factor    & scale(absolute) an edited object \\
   39   translate & x y z & translate an edited object \\
   40   arb   & name rot fb   & make arb8 with rot and fb \\
   41   analyze   & solids    & print much info about a solid \\
   42   summary   & s|r|g & solid/region/group summary \\
   43   tops  & -none-    & list all top level objects \\
   44   find  & obj1* obj2* ... objn* & find all references to an object \\
   45   area  & [endpoint-tolerance]  & find presented area of E'd objects \\
   46 \end{tabular}
   47 \caption{MGED Command Summary 1 \label{cmd-summary} }
   48 \end{figure}
   49 
   50 \begin{figure}
   51 \begin{tabular}{l l l}
   52 Key & Argument[s]   & Description \\
   53 \\
   54   plot  & [-zclip] [-2d] [out-file] [| filter]  & make UNIX-plot of view \\
   55   color & low high r g b str    & assign color(r g b) to item range \\
   56   edcolor   & -none-    & text edit the color/item assignments \\
   57   prcolor   & -none-    & print the current color/item assignments \\
   58   make  & name type & create and display a primitive \\
   59   fix   & -none-    & restart the display after hangup \\
   60   rt    & [options] & raytrace view onto framebuffer \\
   61   release   & -none-    & release current display processor \\
   62   attach    & nu|tek|tek4109|plot|mg|vg|rat & attach new display processor \\
   63   ae    & az elev   & rotate view w/azim and elev angles \\
   64   regdef    & item [air los mat]    & set default codes for next region created \\
   65   ted   & -none-    & text edit a solids parameters \\
   66   vrot  & xdeg ydeg zdeg    & rotate view \\
   67   ill   & name  & illuminate object \\
   68   sed   & solidname & solid edit the named solid \\
   69   center    & x y z & set view center \\
   70   press & button-label  & emulate button press \\
   71   knob  & id value  & emulate knob twist \\
   72   size  & value & set view size \\
   73   x & -none-    & debug list of objects displayed \\
   74   status    & -none-    & print view status \\
   75   refresh   & -none-    & send new control list \\
   76   edcomb    & comb flag item air mat los    & edit comb record info \\
   77   edgedir   & delta\_x delta\_y delta\_z    & define direction of an ARB edge being moved \\
   78   in    & name type {parameters}    & type-in a new solid directly \\
   79   prefix    & string obj1* obj2* ... objn*  & prefix objects with 'string' \\
   80   keep  & file.g obj1* obj2* ... objn*  & keep objects in 'file.g' \\
   81   tree  & obj1* obj2* ... objn* & list tree for objects \\
   82   inside    & --prompted for input--    & find inside solid \\
   83 \end{tabular}
   84 \caption{MGED Command Summary 2 }
   85 \end{figure}
   86 
   87 \begin{figure}
   88 \begin{tabular}{l l l}
   89 Key & Argument[s]   & Description \\
   90 \\
   91   solids    & file obj1* obj2* ... objn*    & make ascii solid parameter summary in 'file' \\
   92   regions   & file obj1* obj2* ... objn*    & make ascii region summary in 'file' \\
   93   idents    & file obj1* obj2* ... objn*    & make ascii region ident summary in 'file' \\
   94   edcodes   & obj1* obj2* ... objn* & edit region ident codes \\
   95   dup   & file {prefix} & checks for dup names in 'file' \& current file \\
   96   cat   & file {prefix} & cat's 'file' onto end of current file \\
   97   track & --prompted for input--    & builds track given appropriate 'wheel' data \\
   98   3ptarb    & --prompted for input--    & makes arb8 given 3 pts, etc. \\
   99   rfarb & --prompted for input--    & makes arb8 given point, rot, fallback, etc. \\
  100   whichid   & ident1 ident2 ... identn  & list all regions with given ident \\
  101   paths & --prompted for input--    & lists all paths matching input path \\
  102   listeval  & -prompted for input-- & gives 'evaluated' path summary \\
  103   copyeval  & --prompted for input--    & copy an 'evaluated' path-solid \\
  104   tab   & obj1* obj2* ... objn* & list objects as stored in data file \\
  105   push  & obj1* obj2* ... objn* & push object transformations to solids \\
  106   facedef   & \#\#\#\# {data}   & define plane of an edited ARB face \\
  107   eqn   & A B C & define plane coefficients of rotating ARB face \\
  108   q & -none-    & quit \\
  109   % & -none-    & escape to shell \\
  110   ? & -none-    & help message \\
  111 \end{tabular}
  112 \caption{MGED Command Summary 3 }
  113 \end{figure}
  114 
  115 \section{Copy Object}
  116 
  117 {\em \center cp oldobj newobj}
  118 
  119 This command is used to produce a copy of an object (solid or comb).
  120 In this case, the
  121 object "oldobj" will be copied into an object called "newobj".
  122 
  123 Examples:
  124 {\em
  125               cp arb8 hullbot.s \\
  126               cp tgc wheelrim.s \\
  127               cp torso.r driver\_torso \\
  128               cp proto.man driver \\
  129 }
  130 
  131 \section{Zap Screen}
  132 
  133 {\em \center Z}
  134 
  135 This is the Zap command.  It clears all objects from the screen.
  136 
  137 \section{Drop objects from display screen}
  138 
  139 {\em \center d obj1 obj2 ... objn}
  140 
  141 This command allows one to remove objects from the display screen.  In
  142 this case "obj1" thru "objn" will be removed from the display.
  143 
  144 \section{Move (rename) object}
  145 
  146 {\em \center mv old new}
  147 
  148 This command is used to rename objects in the data file.  In this
  149 case, the object "old" will be renamed "new".
  150 A note of caution:  the name is changed only in the object record itself, not
  151 in any member records.  Thus if the object "old" appears as a member
  152 of any other object, the name will not be changed there.
  153 To rename all occurrences of an object, use the "mvall" command.
  154 
  155 Examples:
  156 {\em
  157               mv test hull \\
  158               mv g00 air \\
  159               mv g1 turret \\
  160 }
  161 
  162 \section{Set Local Working Units}
  163 
  164 {\em \center units ab}
  165 
  166 This command allows one to change the local or working units at ANY time.
  167 The only allowable values for "ab" are "mm", "cm", "m", "in", or "ft".
  168 
  169 Examples:
  170 {\em
  171            units mm \\
  172            units in \\
  173 }
  174 
  175 \section{Group objects}
  176 
  177 {\em \center g group obj1 obj2 ..... objn}
  178 
  179 This command creates or appends to a combination record and
  180 is used to group objects together either for editing or displaying
  181 purposes.  In this case, "obj1" through "objn" are added as members
  182 to the combination "group".  If "group" does not exist, it is
  183 created and "obj1" through "objn" are added as members.
  184 NOTE: no checking to see if "obji" is already a member of "group".
  185 
  186 Examples:
  187 {\em
  188             g shell hull turret \\
  189             g tank wheels engine crew shell \\
  190             g tank track \\
  191 }
  192 
  193 \section{Create Region}
  194 
  195 {\em \center
  196 r region op1 sol1 op2 sol2 .... opn soln
  197 }
  198 
  199 This command is used to create regions or append to regions.
  200 If "region" exists, then solids "sol1" through "soln" are
  201 added as members with "op1" through "opn" as the defining operations.
  202 If "region" does not exist, then it is created and solids "sol1" through
  203 "soln" are added as members with "op1" through "opn" as the
  204 defining operations.  A region is merely a combination
  205 record with a flag set and is distinguished from other combinations (groups)
  206 since it has meaning to the COMGEOM solid modeling system.
  207 Note that "+" or "u" must be the first operations in a region.
  208 
  209 When a region is created, the item and air codes are set equal to default values.
  210 If the "regdef" command has been used, then those values will be used,
  211 otherwise the values "1000 0 100 1" will be used respectively.
  212 To change
  213 the item and air codes use the "item" command.
  214 The "edcodes" command is probably the easiest and fastest way to change these
  215 identifying codes.
  216 Note:  In the past, all members of a region had to be solids, but
  217 recently combinations have been allowed as members of regions.  Hence,
  218 the names "soli" can also be combinations (groups) now.
  219 Also, as in grouping, no checking for members already in a region.
  220 
  221 Examples:
  222 {\em
  223              r hulltop.r + hulltop.s -- hullleft.s -- hullright.s \\
  224              r gun + gun.s -- gunin.s \\
  225              r gunair + gunin.s \\
  226 }
  227 
  228 \section{Instance an object}
  229 
  230 {\em \center
  231 i object combname
  232 }
  233 
  234 This command is used to make an instance of an object.
  235 An instance of an object is produced by creating a combination
  236 and making the object a member.
  237 In this case, an instance of "object" is made by
  238 creating the combination record "combname" (if "combname" does not
  239 already exist) and adding "object" as a member.
  240 If "combname" already exists, then "object" is added as the next member.
  241 
  242 An instance is used to refer to an object, without making actual copies
  243 of the object.  Instances are useful when one is adding a certain
  244 component to a target description many times.
  245 Furthermore, any modifications to an object which has been instanced need only be
  246 done in the original (prototype) object.
  247 These modifications will then be automatically reflected in all the
  248 instances of the object.
  249 
  250 Examples:
  251 {\em
  252                 i heround he1 .he1. \\
  253                 i heround he2 .he2. \\
  254                 i heat heat1 .heat1. \\
  255                 i heat heat2 .heat2. \\
  256 }
  257 
  258 \section{Change Title of Database}
  259 
  260 {\em \center
  261 title newtitle
  262 }
  263 
  264 This command allows one to change the title of the model database at any time.
  265 The string "newtitle" will become the new title, and may contain blanks.
  266 The title is limited to 72 characters including blanks.
  267 
  268 Examples:
  269 {\em
  270           title XM89A -- New version of tank \\
  271           title M345 (groups are m345 and m345a) \\
  272 }
  273 
  274 \section{Extrude}
  275 
  276 {\em \center
  277 extrude \#\#\#\# distance
  278 }
  279 
  280 This command allows the user to project
  281 a face(\#\#\#\#) of an arb being edited a normal distance to create a new arb.
  282 The value of "face" is 4 digits such as 1256. If the face is projected
  283 in the wrong direction use a negative "distance".
  284 One common use for this command is
  285 for producing armor plates of a desired thickness.
  286 
  287 Examples:
  288 {\em
  289               extrude 1234 20 \\
  290               extrude 2367 34.75 \\
  291               extrude 2367 -34.75 \\
  292 }
  293 
  294 \section{Remove members from Combination}
  295 
  296 {\em \center
  297 rm comb mem1 mem2 .... memN
  298 }
  299 
  300 This command allows one to delete members from a combination (group or region) record.
  301 In this case, members "mem1" through "memn" will be deleted from
  302 the combination "comb".
  303 
  304 Examples:
  305 {\em
  306               rm tank hull wheels \\
  307               rm region1 solid8 solid112 \\
  308               rm turtop.r tursidel.s tursider.s  \\
  309 }
  310 
  311 \section{List Object Information}
  312 
  313 {\em \center
  314 l object
  315 }
  316 
  317 This command is used to list information about objects in the data file.
  318 The information listed depends on what type of record "object" is.
  319 If "object" is a combination record, then the members are listed.
  320 If "object" is a solid record, then the MGED general solid type and
  321 the parameters as presently in the data file are listed.
  322 Note:  only the solid parameters as they exist in the solid record are
  323 listed, no transformation matrix is applied.
  324 Hence, if the solid was edited as a member of a combination, the "l"
  325 command will not reflect the editing in the listed parameters.
  326 To produce this type of listing, see the "listeval" command.
  327 
  328 Examples:
  329 {\em
  330                l hull \\
  331                l turret \\
  332                l turtop.s \\
  333                l arb8 \\
  334 }
  335 
  336 \section{Analyze Solid}
  337 
  338 {\em \center
  339 analyze solid
  340 }
  341 
  342 This command produces information about a solid (all except ARS).
  343 The information includes surface area(s) and volume.
  344 Also, in the case of ARBs, edge lengths and rot and fallback angles
  345 and plane equations are given for each face.
  346 If "solid" is present that solid name will be used and analyzed.
  347 If "solid" is absent, the solid at the bottom of the present path
  348 being edited will be analyzed.
  349 
  350 \section{Mirror Object}
  351 
  352 {\em \center
  353 mirror oldobj newobj axis
  354 }
  355 
  356 This command is used to create a new object which is
  357 the mirror image of an existing object about an axis.
  358 The object may be either a solid or a combination.
  359 In this case, a mirror image of the object "oldobj" will created
  360 about the axis indicated by "axis" and the new object record will
  361 be called "newobj".
  362 The only acceptable values for the parameter "axis" are "x", "y", and "z".
  363 
  364 Examples:
  365 {\em
  366               mirror tur.left.s tur.right.s y
  367               mirror tur.top.s tur.bot.s z
  368               mirror tur.front.s tur.back.s x
  369               mirror lt\_gun rt\_gun y
  370 }
  371 
  372 \section{Create ARB8}
  373 
  374 {\em \center
  375 arb name rot fb
  376 }
  377 
  378 This command allows one to create an arb8
  379 with the desired rotation and fallback angles.
  380 In this case, an arb8 with the name of "name" will be created with the desired
  381 rotation angle of "rot" degrees and the fallback angle of "fb" degrees.
  382 
  383 Examples:
  384 {\em
  385            arb top1.s 0 90 \\
  386            arb sidelt.s 90 0 \\
  387            arb upglacis.s 0 60 \\
  388 }
  389 
  390 \section{Change Item (Ident) and Air codes of Region}
  391 
  392 {\em \center
  393 item region ident air
  394 }
  395 
  396 This command allows one to change the item or
  397 air code numbers of a region.  If the air code ("air") is not included,
  398 a zero is assumed.
  399 To change the air code, a zero item code must be used (see second
  400 example below).
  401 
  402 Examples:
  403 {\em
  404             item region1 105 \\
  405             item region7 0 2 \\
  406             item region11 129 0 \\
  407 }
  408 
  409 \section{Specify Material Properties}
  410 
  411 {\em \center
  412 mater comb [material]
  413 }
  414 
  415 This command is used to change the material properties specification for
  416 a combination.
  417 
  418 \section{Edit Combination Record Info}
  419 
  420 {\em \center
  421 edcomb comb regionflag regionid air los GIFTmater
  422 }
  423 
  424 This command is used to change the material and the los percent for
  425 a region.
  426 
  427 \section{Edit (Display) an object on the screen}
  428 
  429 {\em \center
  430 e obj1 obj2 ... objn
  431 }
  432 
  433 This command allows one to display objects on the screen.
  434 In this case, "obj1" thru "objn" will be displayed on the screen.
  435 
  436 \section{Evaluated Display of Object on the screen}
  437 
  438 {\em \center
  439 E obj1 obj2 ... objn
  440 }
  441 
  442 This command is the same as the "e" command, except the regions will
  443 be evaluated before being displayed.
  444 
  445 \section{Zap screen and Display Object}
  446 
  447 {\em \center
  448 B obj1 obj2 ... objn
  449 }
  450 
  451 This command is the same as the "e" command, except that the screen
  452 is cleared (Zap) before the objects are displayed.
  453 
  454 \section{Kill (delete) object from database}
  455 
  456 {\em \center
  457 kill obj1 obj2 ... objn
  458 }
  459 
  460 This command allows one to remove objects from the file itself.
  461 Only the object records themselves are removed, any references made
  462 to these objects still will exist.
  463 To remove the references also, see the "killall" command.
  464 
  465 \section{List Table of Contents}
  466 
  467 {\em \center
  468 t obj1 obj2 ... objn
  469 }
  470 
  471 This is the table of contents command.  If arguments are present, a list
  472 of all objects in the file matching these names will be printed.
  473 If there are no arguments, then a listing of all objects will be printed.
  474 
  475 \section{List Tree Tops}
  476 
  477 {\em \center
  478 tops
  479 }
  480 
  481 This command will search the target file hierarchy, and list all "top level"
  482 objects (objects which are not members of any other object).
  483 This command is useful to make sure objects have been grouped properly.
  484 
  485 \section{Make prototypical solid}
  486 
  487 {\em \center
  488 make name type
  489 }
  490 
  491 This command will create a solid of a specified type.
  492 This solid will be named "name" and the solid type will be "type".
  493 The acceptable types are: arb8, arb7, arb6, arb5, arb4, tor, tgc, tec,
  494 rec, trc, rcc, ellg, ell, sph.
  495 This new solid will be drawn at the center of the screen.
  496 This command should be used to create
  497 solids for editing.
  498 
  499 \section{Mirror ARB Face}
  500 
  501 {\em \center
  502 mirface \#\#\#\# axis
  503 }
  504 
  505 This command allows one to mirror a face of an edited arb about an axis.
  506 This command is quite useful for adding air to a "symmetric" target.
  507 
  508 \section{Print Summary of Objects}
  509 
  510 {\em \center
  511 summary s|r|g
  512 }
  513 
  514 This command will produce a summary of objects in the target file.
  515 If the options s, r, or g are entered a listing of the solids, regions,
  516 or groups will also be presented.
  517 
  518 \section{Specify Numeric Parameter(s)}
  519 
  520 {\em \center
  521 p dx [dy dz]
  522 }
  523 
  524 This is the parameter modification command and is used during solid
  525 editing to make precise changes.
  526 The actual meaning of the values typed after the "p", depend on what
  527 editing option is being performed.
  528 If one were translating a solid, then the values would be the x,y,z
  529 coordinates of the vertex of the solid.
  530 
  531 \section{Release Current Display}
  532 
  533 {\em \center
  534 release
  535 }
  536 This command releases the current display device,
  537 and attaches the null device.
  538 
  539 \section{Attach to Display Device}
  540 
  541 {\em \center
  542 attach device
  543 }
  544 
  545 This command allows one to attach a display device (the present display device
  546 is released first).
  547 The present acceptable values for "device" are vg, mg, tek, rat, plot, tek4109, ir, sgi, and nu.
  548 The "plot" device will produce a UNIX-plot of the present view (including the
  549 faceplate) on a display device using a specific filter.
  550 You will be asked which filter to use.
  551 Sample filters include "tplot" and "plot-fb".
  552 
  553 \section{Numeric Object Rotation Edit}
  554 
  555 {\em \center
  556 rotobj xdeg ydeg zdeg
  557 }
  558 
  559 This command allows one to make precise rotations of an object during
  560 object editing.
  561 MGED must be in the "object edit" state for this command to have effect.
  562 If "object rotation" is not in effect, MGED will select this option for you
  563 and perform the rotation.
  564 The object will be rotated "xdeg" about the x-axis, "ydeg" about the
  565 y-axis, and "zdeg" about the z-axis.
  566 The rotation is "absolute"....the total rotation since the beginning
  567 of object editing will be equal to the input values.
  568 The rotation is done about the "KEY" point for the object being edited.
  569 
  570 \section{Scale Edited Object}
  571 
  572 {\em \center
  573 scale xxx.xx
  574 }
  575 
  576 This command allows one to make precise scaling changes to an object
  577 during object editing.
  578 MGED must be in the "object edit" state for this command to have effect.
  579 If one of the object scale options is not in effect, the "global scale"
  580 options will be selected.
  581 The object will be scaled by a TOTAL amount equal to the input value.
  582 If one of the local scale options is in effect, the object will be
  583 scaled in the selected axis direction by an amount equal to the input value.
  584 The scaling is done about the "KEY" point of the object being edited.
  585 
  586 \section{Translate Edited Object}
  587 
  588 {\em \center
  589 translate xxx.xx yyy.yy zzz.zz
  590 }
  591 
  592 This command allows one to make precise translation changes to an object
  593 during object editing.
  594 MGED must be in the "object edit" state for this command to have effect.
  595 If the object translation option is not in effect, this option will be
  596 selected and the translation performed.
  597 The "KEY" point of the object being edited will move to the input coordinates.
  598 
  599 \section{Fix Broken Hardware (sometimes)}
  600 
  601 {\em \center
  602 fix
  603 }
  604 
  605 This command will "fix" (restart) the display device after a hardware error.
  606 
  607 \section{Ray-Trace Current View}
  608 
  609 {\em \center
  610 rt [-s\#]
  611 }
  612 
  613 This command will run the {\bf rt}(1) program
  614 to produce a color shaded image of objects on the currently
  615 selected framebuffer.
  616 The resolution of the image (number of rays) is equal to "\#" from the "-s"
  617 (square view resolution) option.
  618 If the -s option is absent, 50x50 ray resolution will be used.
  619 
  620 \section{Emulate Knob Twist}
  621 
  622 {\em \center
  623 knob id value
  624 }
  625 
  626 This command is used to emulate a "knob twist".
  627 Generally this command is used for display devices which have no actual
  628 knob peripherals (e.g. tek).
  629 Any non-zero number entered for "value" is converted to 1 (if "value" is
  630 greater than zero) or is converted to -1 (if "value is less than zero).
  631 The user must enter the same command with "value" equal to zero to
  632 stop the action invoked by the knob twist.
  633 
  634 The "id" defines which knob is to be "twisted":
  635 
  636 \begin{tabular}{rl}
  637     x   & rotates about x-axis \\
  638     y   & rotates about y-axis \\
  639     z   & rotates about z-axis \\
  640     X   & slew view in x direction \\
  641     Y   & slew view in y direction \\
  642     Z   & zoom the view \\
  643 \end{tabular}
  644 
  645 Examples:
  646 {\em
  647        knob x 1 \\
  648        knob x 0 \\
  649        knob Z -1 \\
  650        knob Z 0 \\
  651 }
  652 
  653 \section{Solid\_Edit Named Solid}
  654 
  655 {\em\center
  656 sed name
  657 }
  658 
  659 This command allows one to immediately enter the solid edit mode
  660 with the solid "name" as the edited solid.
  661 Note that the solid must be displayed but not multiply referenced.
  662 
  663 \section{Illuminate Named Object}
  664 
  665 {\em\center
  666 ill name
  667 }
  668 
  669 This command is used to illuminate an object ... a path containing this
  670 object ("name") will be illuminated.
  671 This command is primarily used with display devices which do not have
  672 a tablet to pick objects for editing.
  673 
  674 \section{Rotate the View}
  675 
  676 {\em\center
  677 vrot xdeg ydeg zdeg
  678 }
  679 
  680 This command rotates the VIEW "xdeg" degrees about the screen x-axis,
  681 "ydeg" degrees about the screen y-axis, and "zdeg" degrees about the
  682 screen z-axis.
  683 
  684 This command is useful when the precise rotation desired is known.
  685 It is also useful when in a rotation edit mode, and the viewing
  686 rotation needs to be changed, without affecting the current edit.
  687 
  688 \section{Move Screen Center}
  689 
  690 {\em\center
  691 center xx.xx yy.yy zz.zz
  692 }
  693 
  694 This command moves the screen center to (xx.xx, yy.yy, zz.zz).
  695 Using this command is one way of slewing the view.
  696 
  697 \section{Set View Size}
  698 
  699 {\em\center
  700 size xx.xx
  701 }
  702 
  703 This command sets the view size to xx.xx and is one way of zooming
  704 the display.
  705 Making the view size smaller has the effect of zooming in on the view.
  706 
  707 \section{Extended List of all Objects in Displaylist}
  708 
  709 {\em\center
  710 x
  711 }
  712 
  713 This command produces a list of all objects displayed, listing the center
  714 of the object, its size, and if it is in the present view.
  715 It is intended primarily for software debugging.
  716 
  717 \section{Refresh Display}
  718 
  719 {\em\center
  720 refresh
  721 }
  722 
  723 This command will send a new display list to the display device.
  724 
  725 \section{Print View Status}
  726 
  727 {\em\center
  728 status
  729 }
  730 
  731 This is a debug command which prints the status of the current view,
  732 including all viewing and editing matrices.
  733 
  734 \section{Simulate Button Press}
  735 
  736 {\em\center
  737 press button-label
  738 }
  739 
  740 This command allows one to emulate a button press and is generally used
  741 on display devices which do not have actual button peripherals.
  742 The following are the strings allowed for "button-label" and all produce
  743 the indicated view on the device screen:
  744         top, bottom, right, left, front, rear, 90,90, 35,25
  745 
  746 The following is a listing of the remaining acceptable strings for
  747 "button-label" and the resulting action:
  748 
  749 \begin{tabular}{rl}
  750        reset         & reset the view \\
  751        save          & save the present view \\
  752        restore       & restore the saved view \\
  753        adc           & display the angle-distance cursor \\
  754        oill          & begin object illumination (pick) \\
  755        sill          & begin solid illumination (pick) \\
  756        oscale        & object scale \\
  757        ox            & object translation in x direction only \\
  758        oy            & object translation in y direction only \\
  759        oxy           & object translation \\
  760        orot          & object rotation \\
  761        sedit         & put up solid parameter menu \\
  762        srot          & solid rotation \\
  763        sxy           & solid translation \\
  764        sscale        & solid scale \\
  765        accept        & accept editing done \\
  766        reject        & reject editing done \\
  767 \end{tabular}
  768 
  769 Examples:
  770 {\em
  771          press 90,90 \\
  772          press front \\
  773          press oill \\
  774          press orot \\
  775          press reject \\
  776 }
  777 
  778 \section{Escape to the Shell}
  779 
  780 {\em\center
  781 %
  782 }
  783 
  784 This command allows one to escape to the shell to perform multiple commands
  785 without having to terminate the current MGED session.
  786 To return to mged, enter a control-d to the Shell.
  787 Note that the "!" escape at the beginning of a line can be used
  788 to send a single command to the shell.
  789 
  790 \section{Get Short Help Listing}
  791 
  792 {\em\center
  793 ?
  794 }
  795 
  796 This is the short form of the help command,
  797 that lists the names of all MGED commands.
  798 
  799 \section{Get Long Help Listing}
  800 
  801 {\em\center
  802 help
  803 }
  804 
  805 This is the long form of the help command,
  806 that produces a listing of all the available commands and their
  807 arguments, and a one sentence summary of the commands purpose.
  808 
  809 \section{Exit (Quit) MGED}
  810 
  811 {\em\center
  812 q
  813 }
  814 
  815 Running the "q" command, or entering an End-Of-File (EOF) (typ. Control/D)
  816 is the normal way of exiting MGED.
  817 
  818 \section{Copy and Translate TGC}
  819 
  820 {\em \center
  821 cpi oldtgc newtgc
  822 }
  823 
  824 This command is a specialized copy command and is designed to be used when one
  825 is "running wires" in a description.
  826 The object being copied must a cylindrical solid (TGC).
  827 The following occurs when cpi is used:  first the cylinder ("oldtgc") is
  828 copied to "newtgc"; then "newtgc" is translated to the end of "oldtgc";
  829 then "newtgc" is displayed; and finally, MGED is put in the SOLID EDIT state
  830 with "newtgc" as the edited solid.
  831 
  832 \section{Remove Object and All References}
  833 
  834 {\em \center
  835 killall obj1 obj2 ... objn
  836 }
  837 
  838 This command will accomplish two things:  first, the object[s] will be
  839 removed from the data file just as in the "kill" command;  second, all
  840 references to the object[s] will also be removed.
  841 
  842 \section{Remove Complete Tree}
  843 
  844 {\em \center
  845 killtree obj1 obj2 ... objn
  846 }
  847 
  848 This command will remove from the file complete trees originating with
  849 obj1, obj2, ..., objn.
  850 Every object in the designated paths will be removed from the file, hence
  851 CAUTION is urged.
  852 Make sure that "killtree" is what you want to do.
  853 Using the "paths" or "tree" command on an object before "killtree" will
  854 show what objects will be killed.
  855 
  856 \section{Add Color To Display}
  857 
  858 {\em \center
  859 color low high r g b string
  860 }
  861 
  862 This command allows one to make color assignments to a range of item codes.
  863 The arguments "low" and "high" are the item ranges.
  864 The arguments "r", "g", and "b" are the red, green, and blue values
  865 respectively (the range of these numbers is generally 0-255).
  866 The argument "string" is a string describing this class of items.
  867 A blank is considered a terminator, so there can be no blanks in
  868 this string.
  869 
  870 \section{Edit Display Colors}
  871 
  872 {\em \center
  873 edcolor
  874 }
  875 
  876 This command allows one to edit the existing color assignments (table).
  877 The changes are made using the user's "selected" text editor
  878 found in environment variable EDITOR.
  879 Note that this method of specifying object colors is obsolete,
  880 and has been replaced by the {\em mater} command.
  881 
  882 \section{Print Display Colors}
  883 
  884 {\em \center
  885 prcolor
  886 }
  887 
  888 This command prints the color assignments as they presently exist.
  889 
  890 \section{Find Objects}
  891 
  892 {\em \center
  893 find obj1 obj2 ... objn
  894 }
  895 
  896 This command will find ALL references of obj1 obj2 ... objn in the file.
  897 
  898 \section{Estimate Presented Area}
  899 
  900 {\em \center
  901 area [tolerance]
  902 }
  903 
  904 This command finds an estimate of the presented area of all E'd objects
  905 in the present view from that aspect.
  906 The argument "tolerance" is the tolerance for the endpoints of
  907 line segments being "equal" and is optional.
  908 
  909 \section{Produce UNIX Plot}
  910 
  911 {\em \center
  912 plot [-zclip] [-2d] [out-file] [| filter]
  913 }
  914 
  915 This command is used to produce a UNIX-plot hardcopy of the present view of
  916 the 'geometry' on the display device.
  917 The MGED faceplate will not be drawn.
  918 Some useful examples are:
  919 
  920 \begin{tabular}{rl}
  921 plot-fb & LIBFB framebuffer (low res) \\
  922 plot-fb -h & LIBFB framebuffer (high res) \\
  923 tplot -Ti10 & Imagen laser printer \\
  924 tplot -Tmeg & Megatek 7250 \\
  925 tplot -T4014 & Tek4014 \\
  926 tplot -Thpgl & HP7550A plotter
  927 \end{tabular}
  928 
  929 \section{Text Edit Solid Parameters}
  930 
  931 {\em \center
  932 ted
  933 }
  934 
  935 This command allows one to edit a solid's parameters using the text editor
  936 defined by the user's path.
  937 The solid being edited (solid edit mode) will be the one that will be
  938 "text edited".
  939 
  940 \section{Keyboard Input of Solid Parameters}
  941 
  942 {\em \center
  943 in name type {parameters}
  944 }
  945 
  946 This command allows one to enter a new solid directly via the keyboard.
  947 The user will be prompted for any missing input and the solid will be
  948 displayed on the screen.  WARNING: only minimal checking of parameters
  949 is done.
  950 
  951 \section{Change View Azimuth, Elevation}
  952 
  953 {\em \center
  954 ae az elev
  955 }
  956 
  957 This command sets the display viewing angles using the input azimuth (az)
  958 and elevation (elev) angles.
  959 
  960 \section{Define Region Identifiers}
  961 
  962 {\em \center
  963 regdef item [air los mat]
  964 }
  965 
  966 This command allows one to change the default codes which will be given
  967 to the next region created.
  968 If the "air" code is non-zero, then the "item" code will be set to zero.
  969 
  970 \section{Change Edge Direction}
  971 
  972 {\em \center
  973 edgedir delta\_x delta\_y delta\_z
  974 }
  975 
  976 This command allows one to define the direction of an ARB edge being moved.
  977 If only two arguments are input, the code assumes these to be the
  978 rotation and fallback angles for the edge.
  979 If three arguments are present, the code will use them as "deltas" to
  980 define the direction of the edge.
  981 Note that this command can be useful to find the intersection of
  982 a line (edge) with planes (faces).
  983 
  984 \section{Prefix Object Names}
  985 
  986 {\em \center
  987 prefix string obj1 obj2 ... objn
  988 }
  989 
  990 This command will prefix obj1, obj2, .... objn with "string".  All occurrences
  991 of these names will be prefixed.  String matching is allowed for the objects
  992 to prefix.
  993 
  994 \section{Keep Objects in Another File}
  995 
  996 {\em \center
  997 keep file.g obj1 obj2 ... objn
  998 }
  999 
 1000 This command allows one to keep the listed objects in the file "file.g".
 1001 This command is useful for pulling out parts of a description.
 1002 
 1003 \section{List Object Hierarchy}
 1004 
 1005 {\em \center
 1006 tree obj1 obj2 ... objn
 1007 }
 1008 
 1009 This command will print the tree structure for the objects listed.
 1010 
 1011 \section{Create Inside Solid}
 1012 
 1013 {\em \center
 1014 inside
 1015 }
 1016 
 1017 This command is used to define a solid (inside solid) such that when it is subtracted
 1018 from another certain solid (outside solid), the resulting region will have desired
 1019 thicknesses.
 1020 To invoke this option, enter "inside".
 1021 You will then be prompted for the required data.
 1022 If you are in the solid edit mode, the "outside solid" will default to the
 1023 solid presently being edited.
 1024 If you are in the object edit mode, the "outside solid" will default to the
 1025 "key solid" of the object path being edited.
 1026 If you are not in an edit mode, you will then be asked for the name of
 1027 the "outside solid".
 1028 Next, you will be asked what name you wish to call the new "inside solid"
 1029 to be calculated.
 1030 Finally, you will be asked to enter the thickness[es], depending on the
 1031 solid type.
 1032 The "inside solid" will then be displayed on the screen.
 1033 If the thickness values input are negative, then the thickness will be
 1034 directed to the "outside" of the solid.
 1035 
 1036 \section{Produce ASCII Summary of Solids}
 1037 
 1038 {\em \center
 1039 solids file obj1 obj2 ... objn
 1040 }
 1041 
 1042 This command will produce an ascii summary of all solids involved with
 1043 objects obj1, obj2, ..., objn.  This summary will be written in 'file'.
 1044 In this file, all regions and solids are numbered and will match the
 1045 numbers of a COMGEOM deck produced by VDECK or GIFT if the objects are
 1046 entered in the same order.
 1047 The file 'file' will be overwritten if it already exists.
 1048 String matching is allowed for the objects.
 1049 
 1050 \section{Produce ASCII Summary of Regions}
 1051 
 1052 {\em \center
 1053 regions file obj1 obj2 ... objn
 1054 }
 1055 
 1056 This command will produce an ascii summary table of all regions involved with
 1057 objects obj1, obj2,...,objn.
 1058 This summary table will be written in 'file'.
 1059 In this file, all regions and solids will be numbered and will match the numbers
 1060 of a COMGEOM description produced by VDECK or GIFT if the objects are entered
 1061 in the same order.
 1062 This file will be identical to the "solids" command except the actual
 1063 parameters are not listed.
 1064 The file 'file' will be overwritten if it already exists.
 1065 String matching is allowed for the object names.
 1066 
 1067 \section{Produce ASCII Summary of Idents}
 1068 
 1069 {\em \center
 1070 idents file obj1 obj2 ... objn
 1071 }
 1072 
 1073 This command will produce an ascii summary table of all region idents involved with
 1074 objects obj1, obj2,...,objn.
 1075 This summary table will be written in 'file'.
 1076 In this file, all regions will be numbered and will match the region numbers
 1077 of a COMGEOM description produced by VDECK or GIFT if the objects are entered
 1078 in the same order.
 1079 At the end of this file will be the same region information, but ordered
 1080 by ident number.
 1081 The file 'file' will be overwritten if it already exists.
 1082 String matching is allowed for the object names.
 1083 
 1084 \section{List Objects Paths}
 1085 
 1086 {\em \center
 1087 paths
 1088 }
 1089 
 1090 This command will print ALL paths matching an "input" path.
 1091 You will be asked to enter the path to match.
 1092 The path members are entered on ONE line, separated by spaces.
 1093 The input path need not be a complete path, but must contain at least one object.
 1094 All paths with the same first members as the input path will be listed.
 1095 This command is useful for finding complete paths which begin with certain objects.
 1096 
 1097 \section{List Evaluated Path Solid}
 1098 
 1099 {\em \center
 1100 listeval
 1101 }
 1102 
 1103 This command will "evaluate" and list ALL paths matching an input path, including the
 1104 parameters of the solids at the bottom of each path.
 1105 These parameters will reflect any editing contained in the path listed.
 1106 You will be asked to enter the path to match.
 1107 The path members are entered on ONE line, separated by spaces.
 1108 The input path need not be a complete path, but must contain at least
 1109 one object.
 1110 Note that since the solid parameters are printed, this could be a
 1111 rather lengthy listing depending on the completeness of the input path.
 1112 
 1113 \section{Evaluate Path and Copy Solid}
 1114 
 1115 {\em \center
 1116 copyeval
 1117 }
 1118 
 1119 This command allows one to copy an "evaluated solid", that is a complete path
 1120 ending in a solid.
 1121 You will be asked to enter a complete path.
 1122 Again, this path is entered on ONE line with the members separated by spaces.
 1123 If you do not know the complete path, use the "paths" command above to find it.
 1124 Next, you will be asked to enter the name of this copied solid.
 1125 The input path will be traversed and the accumulated path transformations will
 1126 be applied to the parameters of the bottom solid.
 1127 These new parameters will then be the copied solid.
 1128 Note:  this command is useful for making "dummy solids" to subtract for
 1129 overlaps between objects which have been "object" edited.
 1130 
 1131 \section{Edit Objects Region Identifiers}
 1132 
 1133 {\em \center
 1134 edcodes obj1 obj2 ... objn
 1135 }
 1136 
 1137 This command provides for an easy way to modify the code numbers (item, air, material, and los)
 1138 of ALL regions found in paths beginning with an object.
 1139 For each object, all paths beginning with that object are traversed until a region
 1140 is encountered...at which time the following is listed:
 1141 
 1142 item  air  mat  los      /obj1/.../region.n
 1143 
 1144 The cursor then jumps back to "item" at the beginning of the line.
 1145 At this time the cursor can be advanced only by entering a new item code
 1146 (only digits are allowed) or by hitting the "space bar" or "tab key".
 1147 The space and tab will move the cursor to the next position in the line.
 1148 Pressing the "backspace key" will move the cursor to the beginning of
 1149 the next location to the left.
 1150 Moving the cursor "past" the los location
 1151 will return it to the beginning of the line.
 1152 When the code numbers are as you desire,
 1153 a RETURN will print the next line
 1154 for editing.
 1155 At any time, pressing the "R" key will restore the idents on the current
 1156 line to the way they were originally.
 1157 A Control/C or a "q" will abort the process at the current line.
 1158 String matching is allowed for the object names.
 1159 
 1160 \section{List Object As Stored}
 1161 
 1162 {\em \center
 1163 tab obj1 obj2 ... objn
 1164 }
 1165 
 1166 This command will produce a listing of objects as they are stored in
 1167 the MGED object data file.
 1168 String matching is allowed for the objects.
 1169 
 1170 \section{List Regions With Given Ident}
 1171 
 1172 {\em \center
 1173 whichid item1 item2 ... itemn
 1174 }
 1175 
 1176 This command will list ALL regions in the data file which have certain
 1177 item codes.
 1178 
 1179 \section{Create ARB Given 3 Points}
 1180 
 1181 {\em \center
 1182 3ptarb
 1183 }
 1184 
 1185 This command will produce a "plate mode" arb8 given 3 points on one face, 2 coordinates
 1186 of the 4th point on that face, and a thickness.
 1187 The 3rd coordinate of the 4th point will be solved for and the "other" face
 1188 will be a normal distance (== the desired thickness) away.
 1189 You will be asked for all necessary input.
 1190 
 1191 \section{Create ARB Given Point and Angles}
 1192 
 1193 {\em \center
 1194 rfarb
 1195 }
 1196 
 1197 This command will produce a "plate mode" arb8 given a point on one face,
 1198 rotation and fallback angles for that face, 2 coordinates of the 3
 1199 remaining points on that face, and a thickness.
 1200 The 3rd coordinates of the three points will be solved for, and the other
 1201 face will be a normal distance equal to "thickness" away.
 1202 You will be asked for all necessary input.
 1203 
 1204 \section{Push Editing Down Paths}
 1205 
 1206 {\em \center
 1207 push obj1 obj2 ... objn
 1208 }
 1209 
 1210 This command will "push" an object's path transformations to the solid's parameters
 1211 located at the bottom of each path.
 1212 If a conflict is encountered, then an error message is printed and NOTHING is done.
 1213 A conflict occurs when the same solid "ends" different paths but the transformations
 1214 are different.
 1215 Conflicts could occur when "instanced" or "copied" groups occur in an object's
 1216 paths or when a solid is a member of 2 regions which have been edited separately.
 1217 A complication of this command, which will not be listed as a conflict, is when a solid's parameters have been
 1218 changed by a push, yet this solid is referenced by another object which was NOT
 1219 included in the push.
 1220 The user should beware of this situation.
 1221 This command can be very useful when "adding" parts from another file.
 1222 Once the "object editing" of these new parts is completed, the push command
 1223 will put the editing done to the solid level.
 1224 Since the added parts should have no cross-references with the existing
 1225 objects, there should be no problems.
 1226 
 1227 \section{Check For Duplicate Names}
 1228 
 1229 {\em \center
 1230 dup file.g {string}
 1231 }
 1232 
 1233 This command will compare the current object data file with another
 1234 MGED file "file.g" and list any object names common to both files.
 1235 If "string" is present, all object names in "file.g" will be prefixed with
 1236 "string" before comparing for duplicate names.
 1237 Generally, one uses "string" only when duplicate names are found without it.
 1238 
 1239 \section{Concat Files}
 1240 
 1241 {\em \center
 1242 concat file.g {string}
 1243 }
 1244 
 1245 This command will concatenate another MGED file "file.g" onto the present
 1246 object data file.
 1247 If "string" is present, all names in "file.g" will be prefixed with this
 1248 string.
 1249 No objects from "file.g" will be added if the name already occurs in the
 1250 current object file...the object names will be listed and skipped.
 1251 However, this command should be used in conjunction with the "dup" command to
 1252 eliminate any problems with duplicate names.
 1253 
 1254 \section{Create Pseudo-Track}
 1255 
 1256 {\em \center
 1257 track
 1258 }
 1259 
 1260 This command adds track components to the data file to fit specified
 1261 "wheel" data.
 1262 Solids, regions, and a group containing the regions will be created and
 1263 displayed on the screen.
 1264 You will be prompted for all required data.
 1265 
 1266 \section{Define ARB Face}
 1267 
 1268 {\em \center
 1269 facedef \#\#\#\#
 1270 }
 1271 
 1272 This command is used to define the face plane of an ARB that is being edited.
 1273 The following is the option menu displayed when this command is used:
 1274         a     planar equation
 1275         b     3 points
 1276         c     rot and fb angles + fixed point
 1277         d     same plane thru fixed point
 1278         q     quit
 1279 To select any of these methods of defining a plane, enter the appropriate
 1280 letter.  You will then be asked for the desired input.
 1281 
 1282 \section{Define Plane Equation of ARB Face}
 1283 
 1284 {\em \center
 1285 eqn [A B C]
 1286 }
 1287 
 1288 This command is used when one is rotating the face of an edited ARB and defines
 1289 the coefficients of the face planar equation (Ax + By + Cz).
 1290 
 1291 \section{Move (Rename) Everywhere}
 1292 
 1293 {\em \center
 1294 mvall old new
 1295 }
 1296 
 1297 This command is used to rename all occurrences of an object in the data file.  In this
 1298 case, the object "old" will be renamed "new" for every occurrence.
 1299 
 1300 \section{Miscellaneous Commands}
 1301 
 1302 It is possible to view, specify, and text-edit
 1303 information pertaining to the material type and color of various
 1304 parts of the model tree.  This is an interim capability
 1305 intended to provide enough material properties information for
 1306 current rendering and analysis purposes until the design of a
 1307 full material properties database can be finalized.
 1308 
 1309 In addition to a variety of usual database manipulation
 1310 and status commands, there are commands to
 1311 compare the current database for name overlap (conflicts)
 1312 with another database, as well as commands to import and export
 1313 subtrees to/from the current database.
 1314 If name conflicts between the two databases
 1315 do exist, there are commands to rename an individual node without
 1316 changing any of the references to it (``mv''), or to rename
 1317 a node and change all the references to it (``mvall'').
 1318 Another command which is useful for preparing to move subtrees between
 1319 databases is the ``push'' command,
 1320 which adjusts the transformation matrices from the indicated point
 1321 down to the leaves of the directed acyclic graph, leaving the higher
 1322 level arcs with identity matrices.
 1323 
 1324 \section{UNIX-Plot Output}
 1325 
 1326 The ``plot'' command can store an exact image of the current
 1327 (non-faceplate) display on the screen, either using the
 1328 System V standard 2-D monochrome UNIX-Plot ({\em plot(4)}) format,
 1329 or the BRL 3-D color extended-UNIX-Plot format.
 1330 These plots can be sent to a disk file,
 1331 or ``piped'' directly to a filter process.
 1332 This can be useful for making hard copies of the current MGED view
 1333 for showing to others,
 1334 using a local pen plotter or laser printer.
 1335 
 1336 \section{Ray-Tracing the Current View}
 1337 
 1338 An important capability even beyond the ability to generate an
 1339 evaluated boundary wireframe is the ability of MGED to initiate a
 1340 quick ray-trace rendering of the current view on any nearby framebuffer!
 1341 This is implemented by using the MGED ``rt'' command to fork off
 1342 an instance of the RT program, and sending the RT program
 1343 a description of the current view
 1344 with any user-specified options.
 1345 This allows the designer to
 1346 use the power of MGED to select the desired view, and then to
 1347 quickly verify the geometry and light source placement.
 1348 A 50 by 50 pixel rendering of the current view can usually be done
 1349 in less than a minute (on a DEC VAX-780 class processor), and allows
 1350 for general verification before the designer uses the ``saveview''
 1351 command to submit a batch job for a high resolution ray-trace of
 1352 the same view.
 1353 
 1354 \section{Animation}
 1355 
 1356 The MGED editor includes a number of features which are useful
 1357 for developing animation tools and scripts.
 1358 The full description of the current viewing transformation and eye position
 1359 can be saved in a file,
 1360 and such a previously saved view can be read back at any time,
 1361 immediately changing the editor's view.
 1362 In addition, the current viewing transformation and eye position can be
 1363 appended to a file containing a collection of keyframes.
 1364 Most importantly, a file full of keyframe information, either raw keyframe
 1365 positions or smoothly interpolated keyframe sequences, can
 1366 by ``played'' in real time using MGED,
 1367 providing a powerful and fast animation preview capability.
 1368 
 1369 As a separate animation capability intended
 1370 for developing demonstrations and instructional material relating to the
 1371 use of the MGED editor,
 1372 all user interactions with the editor can be recorded in a file,
 1373 along with an indication of the time elapsed between user actions.
 1374 This file can be  adjusted using a normal text editor to remove any errors,
 1375 or to eliminate dead time where the user stopped to think.
 1376 Once created, this session script can be replayed through the editor
 1377 at any time, either to provide a smooth ``canned'' demonstration
 1378 before a live audience, or to create a film or videotape.