PDF Editor Help File.

Note: #### indicates title of specific PDF Editor dialog tab.  # Indicates a specific field within a tab.

The best way to use this help file is to search for specific fields/tab names in order to quickly glean pertinent information.


#### General Tab

# Comment

This field has no effect on either input or output.  It exists simply to help you or the next user remember what the PDF is for.  You can type in a brief description of the PDF’s intended purpose or just leave it blank.


# Whole Digits, Precision, and Zero Suppression (Input/Output)

When writing a value with fractional parts (such as an X or Y location), the location of the decimal point in the value is implied by a combination of the expected number of whole-unit digits, the expected number of digits of precision, and the zero suppression ("zero suppression" refers to the practice of saving file space by not writing leading or trailing zeros).  Typically one speaks of this setup in terms of whole digits and precision — that is, data with 2 whole digits and 3 digits of precision is referred to as "2,3 data."  Unless stated otherwise, leading zero suppression is the norm.

Example: :  We wish to output the value "10.1."  In a system with no zero suppression and 3,4 data, we would write "0101000."  In the same system with leading zero suppression, we would write "101000."  With trailing zero suppression, it would be written as "0101."  With trailing zero suppression and 2,4 data, we would write "101."

Some devices DO include an explicit decimal point.  For such devices, use zero suppression type "Decimal."


# Abs/Inc (Input/Output)

With Incremental data, X and Y values are given as the distance to the next location from the current location.  With Absolute data, the location is given directly.


# Units (Input/Output)

Data can be written and read in inches or mm, subject to the X and Y scaling parameters described below.


# Coordinate System (Input/Output)

Data can be written and read either in the absolute coordinate system or the user coordinate system as set in the Viewer/Editor.  (Data are always internally maintained in the absolute coordinate system — thus the User coordinate system origin can be changed without moving all the data).  When the User coordinate system is used, data are written and read relative to the User coordinate system origin.  When the Abs coordinate system is used, data are written and read with no translation.


# Arc Style (Input/Output)

For Input, select either "Quadrant" or "Full 360."  Most plotters use only Quadrant arc styles (positive-only I and J arc center offset codes).  You should toggle to Full 360 if the plotter you use has Full 360 degree arc data recognition (signed arc center offset codes).  For output purposes only, you can select "Vector" to convert arcs into a series of short vectors (see Chord Angle for more information on this conversion).


# Flash/Draw Check (Input)

A traditional vector plotter using actual aperture wheels must be careful not to use flash-type apertures for drawing and vice versa.  Raster plotters, on the other hand, typically make no distinction.  
the application will warn the user of the cross-use of aperture types if the Flash/Draw check is turned on.  Turn the Flash/Draw check off if your target plotter is a laser plotter or some other raster device.  When reading NC drill/rout data this entry has no effect.


# Character Set (Input/Output)

The application provides the user with the choice of ASCII, EBCDIC, or EIA characters, depending on your plotter’
s requirements.  ASCII is by far the most common character set.


# Magtape Filter (Input)

Enabling the Magtape Filter causes the application to ignore carriage returns, linefeeds, nulls, and spaces when reading Gerber data.  This is useful for data files that have been received from mainframes or other workstations which insert padding characters and new lines at regular intervals (sometimes in the middle of a data value).


# Stop on M00,M01 (Input)

You can specify whether or not to stop on the M00 and M01 codes with this feature.  This overcomes a problem with several CAD systems, which mistakenly use them as end-of-data markers.


# Filename Extension (Input/Output)

This allows you to specify default filename extensions which reflect the nature of the data in the file.  For instance, photoplot data might use "GBR" while HPGL data might use "PLT."


# Sort Tools (Output)

This field sets the default for the Sort Tools Setup entry in the Write with PDF option of the layer list.  On a non-raster plotter, the changing of apertures is typically the most time-consuming operation.  
By sorting tools on output, tool changes are minimized and plot times come down.  A raster plotter may or may not benefit from tool sorting, depending on the nature of its Raster Image Processor (RIP).


# Serpentine (Output)

This field sets the default for the "Serpentine" Setup entry in the Write with PDF option of the layer list.  Whether or not you choose to sort tools, you can elect to optimize the tool path by performing a serpentine sort on the pad locations (secondary to the tool sort if enabled).  Choose "X" or "Y" to select the major axis of travel, or "None" to disable the sort.


# Band Width (Output)

This entry sets the width of the band in which the tool path weaves in a serpentine sort.  This value can also be overridden at the Write with PDF option of the layer list.


# Draw Custom Pads (Output)

When you use a custom aperture, you must direct how the aperture is output.  On non-programmable plotters, The application accounts for all of the aperture’s entities and "draws" the entities separately.  Enable this feature when using a non-programmable plotter.  The application can add a new aperture list with additional positions as needed to draw any custom apertures.  Note that it is still possible to create a custom aperture which cannot be represented on some plotters, if the aperture contains shapes that cannot be represented on the plotter.  One common instance is the attempted use of Slit apertures on vector plotters.

The Application also permits you to output custom apertures as single codes for use on programmable plotters.  This cuts down on the output that occurs when each entity is drawn.  If your plotter lets you take advantage of this, set Draw Custom Pads to "No."


# Pads and Traces (Output)

These selections let you enable or disable the output of pad or trace information.  For instance, the NETALL PDF does not use trace information, so Traces is set to No.  GERBER.PDF sets output of both Pads and Traces to Yes.


#### Format Tab

# End of Block (EOB) (Output)

This item is written after each data block, including the data header, tool changes, moves, and end of data.  Two special codes are used here: 

"#r" for carriage return (ASCII 13) and

"#l" for line feed (ASCII 10).

Example: :  For Gerber data, this would be:

*#r#l


# Data Header (Output)

This item is always the first thing written to an output file.  It usually includes data format declarations or rewind stops.  This field uses the same special codes as End of Block, in addition to a special "include file" feature.  If the required data header is very large, you can write it to a separate file and have the application include that file’s contents in the output file.
Example Let’s say you always want the following lines first thing in your Gerber output files:

G04 My Company Name*

G04 My Company Phone Number*
G04 etc*
G04 etc*

You could write these lines to a file called "mygbrhdr.doc" and set up the Data Header entry in your PDF as:

"#[mygbrhdr.doc]"

This would cause the contents of the file "mygbrhdr.doc" to be the first thing written to the output file.
Note:  You must include a path in addition to the filename in this field (as well as other places where the "include file" feature exists).  The path is necessary whenever the default directory is different from the installed directory.


# End of Data (Output)

This is the last set of data written to an output file.  Typically this is a rewind command, tool up, or some similar cleanup command.  End of Data supports the Include File feature described in the Data Header topic above.  An End of Block is written after the End of Data.
Note:  You must include a path in addition to the filename in this field (as well as other places where the "include file" feature exists).  The path is necessary whenever the default directory is different from the installed directory.


# EOF (End of File) Character(Output)

Some programs and  devices (for example, a program that transfers data to a paper punch) need to see a special character before they realize that they have reached the end of a file.  Other programs (like GraphiCode applications) do not.  For those that do, the usual character is Ctrl Z (ASCII 26).  
If you want to include an end-of-file character, enter its byte value.  This value will be output directly, that is, not translated into EIA or EBCDIC if so selected.  Enter a value of 0 for no end-of-file character output.


# First Block (Output)

For outputs which include block numbers (see the #n code in the following four topics), the starting value of the block number sequence can be specified here.


# Skip Initial Tool Up (Output)

Normally, the application writes a tool up command as one of the first commands in the output file (this helps avoid tool breakage on the initial move).  Some devices become confused by a tool up command if the tool is already up, as it probably is at the program start.  Set this field to "Yes" if this is a problem.


# Tool Up at Rout End (Output)

Selecting Yes causes a 0-length move to be written after the last vector in a run of one or more connected vectors.  For example:

	X015.000Y010.000T0	becomes	X015.000Y010.000TO
	X015.000Y030.000G1		X015.000Y030.000G1
	X025.000Y030.000		X025.000Y030.000
	X015.000Y030.000		X015.000Y010.000
					X015.000Y010.000T0

# Move Format (Output)

This gives the general format for writing tool-up moves to the target plotter.  Special codes used here are:

"#x" for X move as described in the "X Move" field below

"#y" for Y move as described in the "Y Move" field below
"#t" for tool state up code as described below
"#<w>n" block sequence number, <w> digits wide (width argument is optional)
"#r" for carriage return
"#l" for line feed
"#f" for the vector’s layer’s name (useful for ATE)
"#m" for the drill/aperture number (useful for ATE)

Output represented by the "#x", "#y", and "#t" may or may not appear in every output block depending on move and tool state modality.EXAMPLE For Gerber, this field looks like:

"#x#y#t"

which means X move, Y move, Tool State (D01/D02/D03).


# Vector Format (Output)

This gives the general format for writing movement data to the target plotter.  Special codes used here are:

"#x" for X move as described in the "X Move" field below

"#y" for Y move as described in the "Y Move" field below
"#t" for tool state (up/down) code as described below
"#<w>n" block sequence number, <w> digits wide (width argument is optional)
"#r" for carriage return
"#l" for line feed
"#f" for the vector’s layer’s name (useful for ATE)

Output represented by the "#x", "#y", and "#t" may or may not appear in every output block depending on move and tool state modality.
Example For Gerber, this field looks like:

"#x#y#t"

which means X move, Y move, Tool State (D01/D02/D03).


# Arc Format (Output)

To format arcs, use these extra codes  in addition to those found in the Vector Format:

"#d" for direction, either clock-wise (CW) or counter clock-wise (CCW)

"#<w>a" for degrees of arc (useful for HPGL and some NC routers —<w> is an optional precision value. If none is given, angles are written to three decimal places.
"#i" for relative x center coordinate
"#j" for relative y center coordinate
"#I" for absolute x center location (useful for Quest)
"#J" for absolute y center location (useful for Quest)
"#k" for arc radius (useful for some NC routers)

For Quadrant arc style, all minus signs (-) are removed when writing center coordinates.  Arcs that cross quadrant boundaries are broken into smaller arcs confined to single quadrants.  This field is ignored for Vector-style arc output.
Example For Gerber, this field looks like:

"#d#x#yI#iJ#j#t*G01"

which means Direction(G02/G03),X move,Y move,"I" followed by relative x arc center, "J" followed by relative y arc center, tool state, and a return to vector mode (PDF output is largely vector-oriented, so it is necessary to return the output device to vector mode after each arc.  One could also place the G01 at the head of the Vector Format field for the same effect).


# Peck Format (Output) (PDFs)

You may want to modify a Programmable Device Format (PDF) for tool pecks (parts, drill hits, photoplotter flashes, etc.).  Here are all the codes you may enter on the Peck format line after selecting PDF and New or Edit.  This format is usually similar to the format used for a vector, as is the case with Gerber data. 

"#<w>g" for reference designator

"#p" for part number.
"#i" for pin number 
"#a" for part rotation
"#x" for X move as described in the "X Move" field
"#y" for Y move as described in the "Y Move" field
"#t" for tool peck code
"#<w>n" block sequence number, <w> digits wide (width argument is optional)
"#r" for carriage return
"#l" for line feed
"#f" for the pad or drill’s layer’s name (useful for ATE)

The #g code’s width specifier (the <w> above) provides for spacing your reference designators for columnar formatting.  The table below shows syntax examples.  Use one of the following syntax options:

0<number of spaces> 
or
<number of spaces>

Example If the reference designator includes a numeral and you type 04 (line 1 below), the 0 adds leading zeros.  The 4 determines how many zeros by controlling the total spaces. For example, typing "#04g" changes R1 to R001.  
If there is no existing numeral (line 3), the width specifier has no effect.  If you remove the 0, the 4 will add trailing spaces for 4 total spaces whether or not there is a numeral (lines 4 and 5). 

Type	To change refdeg	To this output	Comment
1. #04g	"R1"	"R001"	4 total characters; add leading zeros
2. #04g	"R1"	"R 01"	Needs one more space; add one zero
3. #04g	"RCB"	"RCB"	4 total characters only when numerals are included; no change
4. #4g	"R1"	"R1"		4 total characters; add 2 trailing spaces
5. #4g	"RCB"	"RCB"	4 total characters; add 1 trailing space
6. #2g	"RCB"	"RCB"	Will not cut off characters; no change


# X Move and Y Move (Output)

These fields give the format for X and Y outputs respectively.  The application uses these fields to construct X and Y moves for replacement in the #x and #y special codes for Vector, Arc, and Peck formats.  The only special code here is:

"#c" for coordinate value

Example For Gerber, the X and Y move fields are:

X#c

Y#c


# Modal X,Y (Output)

Some formats, like Gerber, do not require an X or Y value in a move command if there is no motion along that axis.  This is the modal X,Y "Yes" case and should be used if possible as it usually results in much smaller data files.  Other formats (HPGL, for example) require both X and Y values for every move.  This is the Modal X,Y "No" case.  If Modal X,Y is enabled, the X and/or Y moves will only be constructed and included in Vector, Arc, and Peck blocks (#x and #y codes) if the X and/or Y value differs from the last output value.


# Codes for Clockwise and Counterclockwise Arcs (Output)

These two entries specify the codes to output for and Counter Clockwise arcs respectively.  When writing an arc, the appropriate code is substituted for the #D Code in the Arc format.


# Chord Angle (Output)

When using "Vector" style arc  output, the application converts each arc to a series of connected vectors.  You can specify the fineness of this conversion in terms of degrees of arc per vector.  A smaller value produces a better looking vectorized arc, but also produces more vectors.  5 or 10 degrees is usually acceptable.  If needed, the application will adjust the chord angle value downward in order to make all the vectors in a converted arc the same length.


#### Tool Tab

# Tool Type (Output)

Each plot entity (pad or trace) is associated with an aperture or drill position.  If the Net List extractor has been run, each entity also has a net number.  When writing an output file, we may be concerned with any one of several different pieces of information associated with an entity.  Some of these are listed below in the pop-up fields of the small dialog box below and to the right.


# Output Zero (Output)

When the "Transcode" Transcodes tool type is in use, this controls the output of data whose apertures have zero-value transcodes.  When set to "Yes", this is useful for the output of Quest files, which have tool selection codes that range from 00 to 47.  When set to "No", it is useful for filtering out data whose apertures have 0 transcodes.


# Peck and Arc/Vector Tool Declarations (Output)

This field determines how a tool is described, usually for inclusion in a Tool Change block.  Some machines describe tools for pads differently than they do tools for traces, so we provide two different declarations.  Most devices expect these to be the same, however.  Several special codes are supported:

"#<w>t" for tool code (optional width argument <w>).  This will be one of the four pieces of information described in Tool Type Output.
"#<w>s" for Spindle code (optional <w> width argument).  Useful only for Tool Type "Drill."
"#f" Feed Speed.  Useful only for Tool Type "Drill."  Feed Speed is written in the same units and precision as X and Y values, and may be scaled using the Feed Speed Scale feature.
"#d" for tool diameter.  Not useful for Tool Type "Net Number."  Tool diameter is written in the same units and precision as X and Y values, and will be similarly scaled.  If the tool is a custom aperture, its name will be substituted for the #D Code.

"#D" works like #d in that it represents the diameter of the tool for standard shapes, but differs in its behavior for Custom (or SMT/TH Part) shapes.  For custom shapes, #D gives the shape diameter while #d gives the CAP filename. 
"#<w>n" for net code (useful for ATE, which may need intermingled drill and net information).
"#h" for height.
"#X" for the absolute X start coordinate of the arc or vector.
"#Y" for the absolute Y start coordinate of the arc or vector.

The #x and #y end-coordinate values are still absolute or relative depending on the PDF’s "Abs/Inc" setting.  This is useful for writing files to be exported to CAD systems.
You may also include a carriage return code, "#r", or a line feeD Code, "#l."
Example For both Peck (pads) and Arc/Vector (traces) in Gerber, this is:

D#2t

The ‘D’ is the ‘D’ in "D10", whereas "#2t" means "two digits of tool code."


# Feed Speed Scale

This value is for scaling Drill/Rout-oriented outputs.


# Tool UpCode (Output)

This is the output to be issued when  the pen is to be lifted, or light source to be switched off, etc.  This field may include the special code:

"#d" for the current Arc/Vector tool declaration.


# Tool DownCode (Output)

This is the output to be issued  when the pen is to be put to paper, or the light source is to expose film, etc.  This field may include the special code:

"#d" for the current Arc/Vector tool declaration.


# Tool Peck Code (Output)

This is the code to be output for a Flash, or a drill stroke, etc.  This field may include the special codes:

"#d" for the current Peck tool declaration.

"#k" for tool radius.  

The "#k" code is useful for generating drill charts —for instance, in HPGL, "CI#k" would draw a circle at the pad location, using the radius of the drill if Tool Type is "Drill", and using the aperture radius (1/2 the major dimension) otherwise.
The Modal Tool Peck selection affects the use of the Tool Peck Code.


# Modal Tool Up/Down (Output)

Some formats (Gerber, for example) do not require the tool Up/Down state to be declared for every move.  This is the Modal Tool Up/Down "Yes" case.  Other formats (HPGL, for instance) do require the tool state to be declared for each move.  This is the Modal Tool Up/Down "No" case.


# Modal Tool Peck (Input/Output)

Some devices, such as NC drills, do not require an explicit tool peck command at each data location.  For these devices, Modal Tool Peck should be set to "Yes."  Other devices, such as (most) photoplotters, do require an explicit command ("D03") for each data location.  On these devices, set Modal Tool Peck to "No."  There seems to be no agreement on Gerber D03 modality, so be careful to set this appropriately both on input and output.


# Move before Peck (Output)

Set this to Yes if your device needs an explicit Tool Up move when making the transition from drawing to Pecking.  Most NC devices (including photoplotters and drills) don't need this since they infer that the tool is to be picked up before moving to a position for Pecking.  
Example In Gerber data a D03 block can follow a D01 block with no intervening D02 —the plotter knows to turn off the lamp before moving to the flash position.  "Move before Peck" is set to No.


# Peck and Arc/Vector Tool Changes (Output)

These are the outputs issued to effect a tool change, depending on what will be done with the tool once in place.  For most devices (including photoplotters and NC mill/drill) the Peck and Arc/Vector tool declarations are identical.  These fields may (and generally do) include the special code:

"#d" for the current Peck or Arc/Vector tool declaration, respectively.  The tool declaration will be chosen based on the action to follow the tool change.  Again, for most devices (including Gerber) these are identical anyway.

Example Absolutely standard Gerber tool change formats for both Peck (flash) and Arc/Vector (draw) would both be:

G54#d

although in practice one can usually use:
"#d"


# Peck and Arc/Vector Tool Changes (Output)

These are the outputs issued to effect a tool change, depending on what will be done with the tool once in place.  For most devices (including photoplotters and NC mill/drill) the Peck and Arc/Vector tool declarations are identical.  These fields may (and generally do) include the special code:

"#d" for the current Peck or Arc/Vector tool declaration, respectively.  The tool declaration will be chosen based on the action to follow the tool change.  Again, for most devices (including Gerber) these are identical anyway.

Example Absolutely standard Gerber tool change formats for both Peck (flash) and Arc/Vector (draw) would both be:

G54#d

although in practice one can usually use:
"#d"


#### Scale Tab

# X Scaling and Y Scaling (Output)

If you wish, you can introduce stretching or shrinking along either or both axes.  A value of less than 1.0 shrinks the output image, while more than 1.0 stretches it.  Scaling is centered at the origin of the selected coordinate system (absolute or user).  If any X and Y offsets are used, these are applied BEFORE scaling.


# X and Y Offset (Input/Output)

These fields allow you to read and write data for devices with fixed-coordinate systems which differ from the selected coordinate system.  On output, any X or Y offset given will be subtracted from each coordinate.  On input, any X or Y offset will be added.  This feature works independently of the selected coordinate system.


# Rotation (Output)

Sometimes it is useful to rotate data on output by some arbitrary amount, usually to correct for some table misalignment on the target plotter.  The application allows you to specify output rotation in degrees.  Choose 0 for no rotation.  This rotation does NOT use the R90 aperture rotation information.


#### Image Polarity

# Positive/Negative/Composite Data (Output)

This option allows the user to combine positive and negative layers into a single output file.  This allows for composite effects with no risk of mis-ordering files.  In order for this to work, the target plotter must be capable of switching from positive to negative operation (and back again) within a single file.  These fields contain the necessary codes to make the switch.


#### Tool Table (Output)

The application provides for the creation of a tool table for NC mill/drill machine output and Gerber data.  Select First to put a table at the top of a file; last to put it at the end.  Then enter codes for the table start, table entry, and table end.  
Below are examples of tool table setups for both NC and Gerber.

Excellon Tool Table

Tool Table: "First" (place tool at top of file)

Table Start: "%"
Table Entry: "T#tC#dF#fS#s"
Table End: "%"

Note that table entry uses the same codes as the Peck and Arc/Vector Tool Declarations.

Gerber Tool Table

For Gerber, both x and y dimensions and shape names can be included.  Also, only those apertures actually in use for the plot are listed.  As part of this change, the Draw Customs feature has been improved to expand the aperture list only for those customs actually used in the plot.
Here is an example of a Gerber tool table:

Tool Table: "First"

Table Start: "G04 Apertures used"
Table Entry: "G04 D#2t: #d x #h #n"
Table End: "G04 end of apertures"

This causes a table to be produced at the top of the output file, with each entry being a comment with a 2 digit D Code (D#2t), the width and height of the aperture (#d x #h), and the shape (#n).  For custom apertures, the width field is replaced with the custom aperture name, and the height does not appear.


#### Toolwidth Compensation Tab

# Toolwidth Compensation (Output)

Tool compensation codes on output are supported here.  For Excellon, enter:

Toolwidth Compensation: Yes

T.C. Off: G40
T.C. Left: G41
T.C. Right: G42


#### Step and Repeat Tab

# Step and Repeat (Output)

Some devices (NC Drill and Rout machines, especially) have the ability to store patterns and repeat them at a simple X,Y offset command.  Such devices can benefit from the use of PDF Step and Repeat codes, so "Step and Repeat" should be set to "Yes."  Most photoplotters do not have this ability, and so each entity and copies of that entity must be written explicitly.  This can result in huge data files.
Example In order to produce eight copies of a board with 4000 entities, one could use Array Copy in Edit Both(pads and traces) mode to create a database with (8x4000=) 32000 entities, or use Array Copy or Panelize in Edit Layers mode to create a database with a 4000-entity original and seven pattern-placement commands.  This is much more efficient for the application internally and allows for much smaller NC output files.  

A PDF for Excellon output would use "Step and Repeat":

Yes

A PDF for Gerber output would use "Step and Repeat":

No

The application does not support nested patterns.


#### Postprocessor Tab

# Postprocessor (Output)

This feature allows you to specify a DOS command to be executed after creating an output file via the F4 Write with PDF command.  Legal codes for this entry are #f for the output filename, and #b for backspace (useful for changing the filename extensions).  This is handy if you must use some kind of postprocessor on your output, perhaps to generate a binary file format.  
For example, imagine a PDF with "Filename Extension" set to "ASC."  Further imagine that .ASC files must be processed with a utility called "asc2bin" to create binary files with a "BIN" filename extension.  

"Postprocessor" for this PDF could be set to:

asc2bin #f #f#b#b#bBIN

which for the output file FOO.ASC would cause execution of the DOS command 

asc2bin FOO.ASC FOO.BIN

immediately after FOO.ASC is created.  A simpler example which just lets you view the output file after creation would be "type #f | more" ("| more" means one page at a time).
Note:  Under Windows NT, it is a good idea to specify the batch file extension when entering a postprocessor PDF.  This is because, if no batch file is given, NT will look for .EXE or .COM, but not .BAT.






