Commit 9a582789 authored by Christopher Alfeld's avatar Christopher Alfeld
Browse files

dnard1.ps - New dnard labels

shark.tcl - The file to create them.  Good example for creating custom
labels.
parent c20619e2
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Tk Canvas Widget
%%For: Christopher Alfeld
%%Title: Window .label_canvas
%%CreationDate: Fri Feb 23 11:03:44 2001
%%BoundingBox: 0 0 612 793
%%Pages: 1
%%DocumentData: Clean7Bit
%%Orientation: Portrait
%%DocumentNeededResources: font Courier-Bold
%%EndComments
%%BeginProlog
50 dict begin
% This is a standard prolog for Postscript generated by Tk's canvas
% widget.
% SCCS: @(#) prolog.ps 1.7 96/07/08 17:52:14
% The definitions below just define all of the variables used in
% any of the procedures here. This is needed for obscure reasons
% explained on p. 716 of the Postscript manual (Section H.2.7,
% "Initializing Variables," in the section on Encapsulated Postscript).
/baseline 0 def
/stipimage 0 def
/height 0 def
/justify 0 def
/lineLength 0 def
/spacing 0 def
/stipple 0 def
/strings 0 def
/xoffset 0 def
/yoffset 0 def
/tmpstip null def
% Define the array ISOLatin1Encoding (which specifies how characters are
% encoded for ISO-8859-1 fonts), if it isn't already present (Postscript
% level 2 is supposed to define it, but level 1 doesn't).
systemdict /ISOLatin1Encoding known not {
/ISOLatin1Encoding [
/space /space /space /space /space /space /space /space
/space /space /space /space /space /space /space /space
/space /space /space /space /space /space /space /space
/space /space /space /space /space /space /space /space
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand
/quoteright
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /space
/space /space /space /space /space /space /space /space
/space /space /space /space /space /space /space /space
/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
/dieresis /space /ring /cedilla /space /hungarumlaut /ogonek /caron
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
/registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph
/periodcentered
/cedillar /onesuperior /ordmasculine /guillemotright /onequarter
/onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex
/Idieresis
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn
/germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex
/idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn
/ydieresis
] def
} if
% font ISOEncode font
% This procedure changes the encoding of a font from the default
% Postscript encoding to ISOLatin1. It's typically invoked just
% before invoking "setfont". The body of this procedure comes from
% Section 5.6.1 of the Postscript book.
/ISOEncode {
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding ISOLatin1Encoding def
currentdict
end
% I'm not sure why it's necessary to use "definefont" on this new
% font, but it seems to be important; just use the name "Temporary"
% for the font.
/Temporary exch definefont
} bind def
% StrokeClip
%
% This procedure converts the current path into a clip area under
% the assumption of stroking. It's a bit tricky because some Postscript
% interpreters get errors during strokepath for dashed lines. If
% this happens then turn off dashes and try again.
/StrokeClip {
{strokepath} stopped {
(This Postscript printer gets limitcheck overflows when) =
(stippling dashed lines; lines will be printed solid instead.) =
[] 0 setdash strokepath} if
clip
} bind def
% desiredSize EvenPixels closestSize
%
% The procedure below is used for stippling. Given the optimal size
% of a dot in a stipple pattern in the current user coordinate system,
% compute the closest size that is an exact multiple of the device's
% pixel size. This allows stipple patterns to be displayed without
% aliasing effects.
/EvenPixels {
% Compute exact number of device pixels per stipple dot.
dup 0 matrix currentmatrix dtransform
dup mul exch dup mul add sqrt
% Round to an integer, make sure the number is at least 1, and compute
% user coord distance corresponding to this.
dup round dup 1 lt {pop 1} if
exch div mul
} bind def
% width height string StippleFill --
%
% Given a path already set up and a clipping region generated from
% it, this procedure will fill the clipping region with a stipple
% pattern. "String" contains a proper image description of the
% stipple pattern and "width" and "height" give its dimensions. Each
% stipple dot is assumed to be about one unit across in the current
% user coordinate system. This procedure trashes the graphics state.
/StippleFill {
% The following code is needed to work around a NeWSprint bug.
/tmpstip 1 index def
% Change the scaling so that one user unit in user coordinates
% corresponds to the size of one stipple dot.
1 EvenPixels dup scale
% Compute the bounding box occupied by the path (which is now
% the clipping region), and round the lower coordinates down
% to the nearest starting point for the stipple pattern. Be
% careful about negative numbers, since the rounding works
% differently on them.
pathbbox
4 2 roll
5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll
6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll
% Stack now: width height string y1 y2 x1 x2
% Below is a doubly-nested for loop to iterate across this area
% in units of the stipple pattern size, going up columns then
% across rows, blasting out a stipple-pattern-sized rectangle at
% each position
6 index exch {
2 index 5 index 3 index {
% Stack now: width height string y1 y2 x y
gsave
1 index exch translate
5 index 5 index true matrix tmpstip imagemask
grestore
} for
pop
} for
pop pop pop pop pop
} bind def
% -- AdjustColor --
% Given a color value already set for output by the caller, adjusts
% that value to a grayscale or mono value if requested by the CL
% variable.
/AdjustColor {
CL 2 lt {
currentgray
CL 0 eq {
.5 lt {0} {1} ifelse
} if
setgray
} if
} bind def
% x y strings spacing xoffset yoffset justify stipple DrawText --
% This procedure does all of the real work of drawing text. The
% color and font must already have been set by the caller, and the
% following arguments must be on the stack:
%
% x, y - Coordinates at which to draw text.
% strings - An array of strings, one for each line of the text item,
% in order from top to bottom.
% spacing - Spacing between lines.
% xoffset - Horizontal offset for text bbox relative to x and y: 0 for
% nw/w/sw anchor, -0.5 for n/center/s, and -1.0 for ne/e/se.
% yoffset - Vertical offset for text bbox relative to x and y: 0 for
% nw/n/ne anchor, +0.5 for w/center/e, and +1.0 for sw/s/se.
% justify - 0 for left justification, 0.5 for center, 1 for right justify.
% stipple - Boolean value indicating whether or not text is to be
% drawn in stippled fashion. If text is stippled,
% procedure StippleText must have been defined to call
% StippleFill in the right way.
%
% Also, when this procedure is invoked, the color and font must already
% have been set for the text.
/DrawText {
/stipple exch def
/justify exch def
/yoffset exch def
/xoffset exch def
/spacing exch def
/strings exch def
% First scan through all of the text to find the widest line.
/lineLength 0 def
strings {
stringwidth pop
dup lineLength gt {/lineLength exch def} {pop} ifelse
newpath
} forall
% Compute the baseline offset and the actual font height.
0 0 moveto (TXygqPZ) false charpath
pathbbox dup /baseline exch def
exch pop exch sub /height exch def pop
newpath
% Translate coordinates first so that the origin is at the upper-left
% corner of the text's bounding box. Remember that x and y for
% positioning are still on the stack.
translate
lineLength xoffset mul
strings length 1 sub spacing mul height add yoffset mul translate
% Now use the baseline and justification information to translate so
% that the origin is at the baseline and positioning point for the
% first line of text.
justify lineLength mul baseline neg translate
% Iterate over each of the lines to output it. For each line,
% compute its width again so it can be properly justified, then
% display it.
strings {
dup stringwidth pop
justify neg mul 0 moveto
stipple {
% The text is stippled, so turn it into a path and print
% by calling StippledText, which in turn calls StippleFill.
% Unfortunately, many Postscript interpreters will get
% overflow errors if we try to do the whole string at
% once, so do it a character at a time.
gsave
/char (X) def
{
char 0 3 -1 roll put
currentpoint
gsave
char true charpath clip StippleText
grestore
char stringwidth translate
moveto
} forall
grestore
} {show} ifelse
0 spacing neg translate
} forall
} bind def
%%EndProlog
%%BeginSetup
/CL 2 def
%%IncludeResource: font Courier-Bold
%%EndSetup
%%Page: 1 1
save
306.0 396.0 translate
0.9589 0.9589 scale
-319 -413 translate
0 826 moveto 638 826 lineto 638 0 lineto 0 0 lineto closepath clip newpath
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 764.429930715935 [
(000003-016-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 726.887205542725 [
(000007-018-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 689.344480369515 [
(000008-018-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 651.801755196305 [
(000014-020-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 614.259030023095 [
(000015-020-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 576.716304849885 [
(000021-022-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 539.173579676674 [
(000022-022-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 501.630854503464 [
(000026-024-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 464.088129330254 [
(000027-024-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 426.545404157044 [
(000031-024-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 389.002678983834 [
(000033-024-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 351.459953810624 [
(000028-026-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 313.917228637413 [
(000034-026-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 276.374503464203 [
(000036-026-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 238.831778290993 [
(000037-026-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 201.289053117783 [
(000038-026-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 163.746327944573 [
(000039-028-D)
] 15 -0.5 0.5 0 false DrawText
grestore
gsave
/Courier-Bold findfont 14 scalefont ISOEncode setfont
0.000 0.000 0.000 setrgbcolor AdjustColor
87.4745496535797 126.203602771363 [
(000040-028-D)
] 15 -0.5 0.5 0 false DrawText
grestore
restore showpage
%%Trailer
end
%%EOF
source labels.tcl
source avery_.5x1.75.lbl
set wirefont "Courier 14 bold"
# Yellow N PC Node to Switch
# Orange D Dnard to Switch
# White S Serial
# Green P Power
# Red C Control
set cables {
{D 16 3}
{D 18 5}
{D 20 7}
{D 22 7}
{D 24 5}
{D 26 3}
{D 30 10}
{N 16 17}
{N 18 35}
{N 20 50}
{N 22 50}
{N 24 35}
{N 26 17}
{P 18 4}
{P 20 4}
{P 22 4}
{P 24 4}
{C 16 5}
{C 18 10}
{C 20 13}
{C 22 13}
{C 24 10}
{C 26 5}
{S 10 5}
{S 14 5}
{S 16 12}
{S 18 23}
{S 20 32}
{S 22 32}
{S 24 23}
{S 26 12}
}
set cableindex 1
foreach cable $cables {
set type [lindex $cable 0]
set size [lindex $cable 1]
set num [lindex $cable 2]
for {set i 1} {$i <= $num} {incr i} {
set lables($cableindex) [format "%06s-%03s-%s" $cableindex $size $type]
incr cableindex
}
}
# Override some labels
set lables(39) "000039-028-D"
set lables(40) "000040-028-D"
for {set i 34} {$i <= 38} {incr i} {
set lables($i) [format "%06s-026-D" $i]
}
for {set i 31} {$i <= 33} {incr i} {
set lables($i) [format "%06s-024-D" $i]
}
set newlabels {3 7 8 14 15 21 22 26 27 31 33 28 34 36 37 38 39 40}
foreach label $newlabels {
LABEL::label $lables($label) -font $wirefont
}
LABEL::print "dnard"
exit
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment