GRAW(10.1) GRAW(10.1)
NAME
graw - gnot graphic editor
SYNOPSIS
graw [ -f fontfile ] [ -g ] [ file ... ]
DESCRIPTION
Graw is a multi-file graphic editing program specialized for
schematic entry. Graw drawings consist of lines, boxes,
text objects, and instantiations of previously defined draw-
ings called masters. The graw user interface differs from
that of most 5620/gnot programs in that button 1 controls
all graphical entry.
The -g flag invokes an experimental mode in which graw
attempts to render in grey scale. The -f flag allows the
user to specify a font for displaying text objects.
By default, pressing button 1 will create a line with one
end fixed and the other end attached to the cursor as long
as button 1 is held down. Objects other than lines can be
drawn by prefacing a drawing operation with a button 2
onesies-> selection. Button 1 is also used for grabbing
objects. Grabbing takes precedence over drawing, and graw
evaluates every button 1 hit to see if there is something to
grab.
Grabbing rules vary by object. For example, a box can be
grabbed by pointing to its interior. A grabbed box will
cause all objects inside or touching it to be grabbed also.
Grabbing a box's corner will also grab objects touching the
two sides of that corner. An object inside a box may be
grabbed without grabbing the box. Graw's grabbing rules are
meant to be intuitively obvious. The author apologizes for
cases in which this is not true.
Graw keeps a "text point" at the last location of a button 1
hit. Typing to graw creates a text object at the current
text point. A text object orients itself based on its sur-
roundings each time it is typed at or moved. Typing a car-
riage return causes graw to move the current text point down
one or two ticks, depending on the surroundings.
Buttons 2 and 3 contain editing and file oriented menus,
respectively. The button 2 menu entries are onesies-> (box,
dots, macro), inst-> (master list), sweep, slash, cut,
paste, and scroll.
onesies->
selects a non-line object to be drawn with button
Page 1 Plan 9 (printed 4/24/26)
GRAW(10.1) GRAW(10.1)
1. You get at most one non-line object per one-
sie.
inst->
selects a master to be instantiated and attached
to the cursor until any button is pressed.
sweep
uses a rectangle input with button 1 (N.B.) to
grab a set of objects and drag them until any but-
ton is pressed.
slash
differs from sweep only in that rectilinear lines
are first cut by the input rectangle.
cut undraws and moves the object(s) last drawn or
moved to the cut/paste buffer.
paste
attaches a copy of the cut/paste buffer to the
cursor until any button is pressed.
snarf
is a cut without the undraw.
scroll
attaches the entire drawing to the cursor until
any button is pressed.
The button 3 menu entries are edit, read, write, exit, and
new, followed by the list of filenames currently being
edited.
edit prompts for a file name and reads in the file for
editing. Backspace and control-W may be used to
edit the name; a null file name aborts the opera-
tion.
read prompts for the name of a master file, reads it
in, and plants a reference to it in the current
file. The names of the masters in the file are
added to those in the inst-> menu for the current
file, overwriting older definitions if necessary.
write
prompts for a file name (starting with the current
file name). The non-null result becomes the new
file name and the file is written.
exit terminates the program. It may be necessary to
type a character and/or move the mouse after graw
Page 2 Plan 9 (printed 4/24/26)
GRAW(10.1) GRAW(10.1)
exits to really exit.
new creates a new, unnamed drawing for editing.
Selecting a file name selects the current file.
Gnet(10.1) produces cdl_format(10.6) files from graw_format
files.
FILES
/lib/graw/gates.g the standard gate file
/lib/graw/analog.g analog parts file
/sys/font/1/7/PA default font file
SEE ALSO
gnet(10.1), graw_format(10.6), cdmglob(10.1), grawp(10.1),
annotate(10.1)
BUGS
Doesn't handle parse errors well.
Crashes when it reads two 'e' (end of master) lines in suc-
cession.
Page 3 Plan 9 (printed 4/24/26)