"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.