Index: acompnet/index.html =================================================================== --- acompnet/index.html (revision 30434) +++ acompnet/index.html (revision 30435) @@ -6,7 +6,7 @@ -

Acompnet plugin

+

Acompnet plugin

Acompnet was originally conceived as a limited autorouter and layout assistant.

Index: asm/index.html =================================================================== --- asm/index.html (revision 30434) +++ asm/index.html (revision 30435) @@ -6,7 +6,7 @@ -

asm - manual assembly helper

+

asm - manual assembly helper

The asm plugin provides an action called asm which pops up a dialog box that assists manual assembly of the current board. The plugin is useful only Index: autocrop/index.html =================================================================== --- autocrop/index.html (revision 30434) +++ autocrop/index.html (revision 30435) @@ -6,7 +6,7 @@ -

Autocrop plugin

+

Autocrop plugin

Use the autocrop action to resize your pcb-board to extants

Description

Index: autoplace/index.html =================================================================== --- autoplace/index.html (revision 30434) +++ autoplace/index.html (revision 30435) @@ -6,7 +6,7 @@ -

Autoplace plugin

+

Autoplace plugin

The autoplace plugin looks at the netlist and tries to place subcircuits in a way to get routing easier. The algorithms follow those described in Index: autoroute/index.html =================================================================== --- autoroute/index.html (revision 30434) +++ autoroute/index.html (revision 30435) @@ -6,7 +6,7 @@ -

Autoroute plugin

+

Autoroute plugin

Tha autoroute plugin attempts to route traces according to the netlist, after subcircuit placement is done by the user. There are two modes of Index: cam/index.html =================================================================== --- cam/index.html (revision 30434) +++ cam/index.html (revision 30435) @@ -6,7 +6,7 @@ -

CAM support

+

CAM support

The purpose of the CAM support is to provide a unified interface to export a board in different file formats using different exporter plugins. The @@ -13,7 +13,7 @@ interface consists of a CLI layer (each export plugin's "cam" option) and an optional GUI (the CAM plugin). -

CAM export support in multi-layer plugins with '-x plugin --cam'

+

CAM export support in multi-layer plugins with '-x plugin --cam'

This section is about the syntax used by the exporters that export multiple layers (e.g. gerber, ps, png). @@ -87,7 +87,7 @@ export all copper layers to numbered copper-N.gbr files where N is the full name of the group being exported -

CAM export support in no-layer plugins with '-x plugin --cam'

+

CAM export support in no-layer plugins with '-x plugin --cam'

This section is about the syntax used by the exporters export global digest of the board and not layers (e.g. XY). @@ -110,7 +110,7 @@

  • to allow a CAM job to use these exporters -

    partial export

    +

    partial export

    In partial exporting the rendering code in core will draw only those object that have the EXPORTSEL flag set. The flag is normally set by a query() action @@ -119,7 +119,7 @@ A typical use of this feature is to export plugged/filled vias into a separate file, assuming the padstacks have a specific attribute set. -

    CAM plugin (CAM jobs) with '-x cam'

    +

    CAM plugin (CAM jobs) with '-x cam'

    The CAM plugin is a way to manage output "jobs": collections of cam export settings for reproducing export packages in various formats. @@ -211,7 +211,7 @@ all the "filled" vias would still be marked and unfilled.exc would contain both filled and unfilled vias. -

    Tips for using with various exporters

    +

    Tips for using with various exporters

    When exporting to ps, consider using the --no-show-toc. It is possible to combine multiple layers (e.g. top silk and top copper, which Index: ddraft/index.html =================================================================== --- ddraft/index.html (revision 30434) +++ ddraft/index.html (revision 30435) @@ -6,7 +6,7 @@ -

    ddraft - 2 dimensional drafting aid

    +

    ddraft - 2 dimensional drafting aid

    The purpose of ddraft is to provide actions and GUI tools to help users drawing precise 2d drafts. Many of the features in ddraft are very similar @@ -17,7 +17,7 @@

    ddraft coordinate system: upper left corner is 0;0, x+ is tot he right, y+ is down, 0 deg is at 3 o'clock and increases clockwise -

    constraints

    +

    constraints

    Coordinate and/or angle constraints can be applied on line drawing (when all-direction lines turned on) and move operation. Executing the @@ -54,7 +54,7 @@ tang() click on an arc; set line_angle tangential to the circle of the arc -

    Cutting edges

    +

    Cutting edges

    For already existing, intersecting objects (lines and arcs), the user may define cutting edges that can manipulate target objects they intersect. There @@ -81,7 +81,7 @@ they cross a cutting edge. A split means a single line object becomes multiple line objects or a single arc object becomes multiple arc objects. -

    Command line drafting

    +

    Command line drafting

    The above features are pcb-rnd actions designed to fit in the action framework, to work together with the original pcb-rnd drawing tools, like the line tool. Index: diag/index.html =================================================================== --- diag/index.html (revision 30434) +++ diag/index.html (revision 30435) @@ -6,7 +6,7 @@ -

    Diag plugin

    +

    Diag plugin

    Diag is a config POV setting, you can enable or disable it any time, from gui, from cli, from config files, from actions. It's called Index: distalign/index.html =================================================================== --- distalign/index.html (revision 30434) +++ distalign/index.html (revision 30435) @@ -6,10 +6,10 @@ -

    Distalign plugin

    +

    Distalign plugin

    Two actions for aligning and distributing subcircuits in pcb-rnd -

    Action Syntax

    +

    Action Syntax

    Align(X/Y, [Lefts/Rights/Tops/Bottoms/Centers/Marks, [First/Last/pcb_crosshair/Average[, Gridless]]]) @@ -16,7 +16,7 @@

    Distribute(Y, [Lefts/Rights/Tops/Bottoms/Centers/Marks/Gaps, [First/Last/pcb_crosshair, First/Last/pcb_crosshair[, Gridless]]]) -

    Description

    +

    Description

    align() aligns selected subcircuits along the X or Y axis, relative to user selected reference points (like specific subcircuit edges, their centers, or marks) @@ -24,9 +24,9 @@
    distribute() distributes selected subcircuits evenly between the first or last subcircuit or to the pcb crosshairs -

    Examples

    +

    Examples

    -

    Build a linear array of tactile switch parts

    +

    Build a linear array of tactile switch parts

    Command descriptionimage @@ -44,7 +44,7 @@
    -

    Align & distribute a mix of parts

    +

    Align & distribute a mix of parts

    Command descriptionimage Index: distaligntext/index.html =================================================================== --- distaligntext/index.html (revision 30434) +++ distaligntext/index.html (revision 30435) @@ -6,11 +6,11 @@ -

    Distaligntext

    +

    Distaligntext

    Two actions to align and distribute text objects in pcb-rnd -

    Action Syntx

    +

    Action Syntx

    AlignText(X/Y, [Lefts/Rights/Tops/Bottoms/Centers, [First/Last/pcb_crosshair/Average[, Gridless]]]) @@ -18,7 +18,7 @@
    DistributeText(Y, [Lefts/Rights/Tops/Bottoms/Centers/Gaps, [First/Last/pcb_crosshair, First/Last/pcb_crosshair[, Gridless]]]) -

    Examples

    +

    Examples

    Command descriptionimage Index: djopt/index.html =================================================================== --- djopt/index.html (revision 30434) +++ djopt/index.html (revision 30435) @@ -1,6 +1,6 @@ -

    Action djopt()

    +

    Action djopt()

    The different types of optimizations change your board in order to reduce the total trace length and via count. Each optimization is accessible Index: drc_query/index.html =================================================================== --- drc_query/index.html (revision 30434) +++ drc_query/index.html (revision 30435) @@ -6,7 +6,7 @@ -

    drc_query: query() based, scriptable Design Rule Checker

    +

    drc_query: query() based, scriptable Design Rule Checker

    The drc_query plugin is a glue layer between the query plugin and the DRC infrastructure. It allows the @@ -15,7 +15,7 @@ how to configure and use query() based DRC scripts and offers a tutorial on developing DRC scripts. -

    Configuration

    +

    Configuration

    DRC rules are specified as a list of hash nodes under the plugins/drc_query/rules config path, from the config source of the user's choice. Commonly used config @@ -55,7 +55,7 @@

    There are two main subtrees below ha:drc_query: definitions and rules. -

    Definitions

    +

    Definitions

    Definitions create new config nodes under design/drc. These config nodes can be used to configure parameters of the drc check. The order of @@ -76,7 +76,7 @@ be referenced using the shorthand $min_dirll form. -

    Rules

    +

    Rules

    Text fields type, tilte and desc are optional user readable strings that will be presented in the DRC report. The type::title pair serves @@ -114,9 +114,9 @@ are executed each in its own, independent context, the order of rules does not matter. -

    Tutorial

    +

    Tutorial

    -

    Single expression scripts

    +

    Single expression scripts

    In Example 1, a single query() expression is used: it iterates through all objects available (@) and evaluates whether the object's hole property is @@ -141,7 +141,7 @@ is needed because of the pcb-rnd data model: hole diameter zero means no hole (e.g. smd pads) - no warning should be issued for that. -

    Rule scripts

    +

    Rule scripts

    However, in some situations a DRC violation depends on two or more objects, thus iterations need to be done on pairs (or tuplets) of objects. It is Index: index.html =================================================================== --- index.html (revision 30434) +++ index.html (revision 30435) @@ -7,7 +7,7 @@ -

    Feature Plugins

    +

    6. Feature Plugins

    These plugins have a wide variety of origins and offer a likewise wide variety of actions to the pcb-rnd user.
      Index: polystitch/index.html =================================================================== --- polystitch/index.html (revision 30434) +++ polystitch/index.html (revision 30435) @@ -6,7 +6,7 @@ -

      Polystitch plugin

      +

      Polystitch plugin

      This plugin is intended as a workaround for a bug in pstoedit. Pstodeit generates polygons instead of polygon holes. This plugin creates a polystitch Index: query/index.html =================================================================== --- query/index.html (revision 30434) +++ query/index.html (revision 30435) @@ -1,7 +1,7 @@ -

      Query: data query language

      +

      Query: data query language

      The query language is a powerful domain specific, declarative scripting language that can: Index: query/z1_functions.html =================================================================== --- query/z1_functions.html (revision 30434) +++ query/z1_functions.html (revision 30435) @@ -1,12 +1,14 @@ -

      Query: advanced search, command line: function calls available

      +

      6. jajj

      +

      Query: advanced search, command line: function calls available

      +

      Functions listed below can be called from a query expression. -

      llen(lst)

      +

      llen(lst)

      Determine length of a list.

      @@ -17,7 +19,7 @@

      Return value: integer length of the list. -

      mklist(args...)

      +

      mklist(args...)

      Determine length of a list.

      @@ -27,7 +29,7 @@

      Return value: a list built of the objects passed. -

      distance(x1, y1, x2, y2)

      +

      distance(x1, y1, x2, y2)

      Calculate the distance of two points.

      @@ -42,7 +44,7 @@ Return value: floating point distance value in nanometers. -

      violation(i1, v1, ..., iN, vN)

      +

      violation(i1, v1, ..., iN, vN)

      Build a DRC violation report.

      @@ -62,7 +64,7 @@

      Return value: a list suitable for the drc_query to process. -

      netlist()

      +

      netlist()

      Return the netlist.

      @@ -73,7 +75,7 @@ using). Each item of the list is a net. -

      netterms(net)

      +

      netterms(net)

      Return terminals of a network.

      @@ -86,7 +88,7 @@ as described by the edited netlist). -

      netobjs(net)

      +

      netobjs(net)

      Return terminals and all copper objects galvanically connected to a network.

      @@ -98,7 +100,7 @@ Return value: an unordered list of copper objects connected to the network. -

      netsegs(net)

      +

      netsegs(net)

      Return a list of objects, one terminal object per disconnecte segment of the network. @@ -112,7 +114,7 @@ from each disconnected segment of the net. -

      netbreak(obj, minimum_overlap)

      +

      netbreak(obj, minimum_overlap)

      Start a search on a galvanically connected network segment starting from an object (typically returned by netsegs()) and generate a DRC violation @@ -126,7 +128,7 @@

      Return value: a list that represents a DRC violation (or empty list). -

      netshort(obj, minimum_distance)

      +

      netshort(obj, minimum_distance)

      Start a search on a galvanically connected network segment starting from an object (typically returned by netsegs()) and generate a DRC violation @@ -141,7 +143,7 @@

      Return value: a list that represents a DRC violation (or empty list). -

      subcobjs(subc)

      +

      subcobjs(subc)

      Return a list of objects that are within the subc.

      @@ -152,7 +154,7 @@

      Return value: an unordered list of objects. -

      action(args...)

      +

      action(args...)

      Execute a pcb-rnd action.

      @@ -160,7 +162,7 @@

      Return value: invalid on error, or the return value of the action. -

      getconf(path)

      +

      getconf(path)

      Fetch the value of a config node

      @@ -173,7 +175,7 @@ the config node (converted to the most appropriate data type). -

      pstkring(pstk, minimum_ring_thickness)

      +

      pstkring(pstk, minimum_ring_thickness)

      Return the number of layers on which the ring of a padstack is too thin.

      @@ -187,7 +189,7 @@ the minimum_ring_thickness requirement, positive integer (number of violations) otherwise. -

      poly_num_islands(poly)

      +

      poly_num_islands(poly)

      Return the number of visible polygon islands.

      @@ -202,7 +204,7 @@ itself. -

      overlap(obj1, obj2)

      +

      overlap(obj1, obj2)

      Returns 1 if obj1 and obj2 overlap (even if they are on different layers)

      Index: query/z2_tutor_cli.html =================================================================== --- query/z2_tutor_cli.html (revision 30434) +++ query/z2_tutor_cli.html (revision 30435) @@ -1,9 +1,9 @@ -

      Query: advanced search, command line tutorial: query language

      +

      Query: advanced search, command line tutorial: query language

      -

      scope

      +

      scope

      pcb-rnd from version 1.1.3 features a flexible advanced search that helps the user selecting/unselecting objects that match a given logical expression. @@ -19,7 +19,7 @@ wizard when using the GTK HID. A separate tutorial is dealing with that feature. -

      Actions

      +

      Actions

      The query(act, expr) action creates the list called "@", which contains all objects of the design. Then it iterates over this list (if needed) and evaluates the query expression on each object. For each evaluation "act" Index: scripting/index.html =================================================================== --- scripting/index.html (revision 30434) +++ scripting/index.html (revision 30435) @@ -5,15 +5,15 @@ -

      pcb-rnd fungw scripting - TOC

      +

      pcb-rnd fungw scripting - TOC

      -

      Installation, configuration

      +

      Installation, configuration

      -

      High level docs

      +

      High level docs

      • Introduction to scripting
      • Rosetta: example scripts Index: scripting/intro.html =================================================================== --- scripting/intro.html (revision 30434) +++ scripting/intro.html (revision 30435) @@ -6,12 +6,12 @@ -

        Scripting - User Intro

        +

        Scripting - User Intro

        This document is an introduction to fungw for pcb-rnd users. It focuses on scripting pcb-rnd and doesn't discuss fungw deeper than the minimum necessary. Fungw is more generic than shown here. -

        1.1. Stored scripts

        +

        Stored scripts

        Stored scripts are typically larger piece of works that register actions, may create menus, GUI dialog boxes. Their role is to introduce new @@ -65,7 +65,7 @@ which will then load ~/.pcb-rnd/scripts/foo.awk using the mawk scripting engine with the script id bar. -

        1.2. Oneliners

        +

        Oneliners

        Note: examples in this section assume pcb-rnd is configured and compiled with system installed fungw, and libmawk is also installed @@ -115,7 +115,7 @@ defined in one-liners are also discarded after the one-liner finished. For such use cases, stored script shall be written. -

        1.3. Live Scripting

        +

        Live Scripting

        Action LiveScript() pops up the Live Scripting window. The script entered here can be executed, saved or loaded. @@ -133,10 +133,10 @@ Live Scripting Tutorial is available in the knowledge pool. -

        Scripting - Developer Intro

        +

        Scripting - Developer Intro

        -

        2.1. The big picture

        +

        The big picture

        The main interface between pcb-rnd internals and the outside world (e.g. user interface, scripts) is called actions. An action is typically @@ -157,7 +157,7 @@ task

      -

      2.2. Defining actions

      +

      Defining actions

      With fungw, every action is just a native function - the syntax varies from scripting language to scripting language (see @@ -177,7 +177,7 @@ is not called to get a value but to perform some changes, the return value should be an integer: 0 means success, anything else means error. -

      2.3. Calling actions

      +

      Calling actions

      The script may call any action available at a given time, independently of whether the action is defined in pcb-rnd core, in plugins or in other @@ -188,7 +188,7 @@ data type for action arguments without conversion, fungw will take care of the conversions automatically. -

      2.4. Action names

      +

      Action names

      All action names are registered in lowercase version. The script shall register lower case function names and action (function) calls should be Index: scripting/rosetta/index.html =================================================================== --- scripting/rosetta/index.html (revision 30434) +++ scripting/rosetta/index.html (revision 30435) @@ -6,7 +6,7 @@ -

      pcb-rnd scripting - Rosetta

      +

      pcb-rnd scripting - Rosetta

      The Rosetta Stone of pcb-rnd scripting is a collection of example scripts implemented in various scripting languages. Rosetta has multiple purposes: @@ -26,7 +26,7 @@ the example is. -

      Index of examples

      +

      Index of examples

      Index: scripting/rosetta/index.templ.html =================================================================== --- scripting/rosetta/index.templ.html (revision 30434) +++ scripting/rosetta/index.templ.html (revision 30435) @@ -6,7 +6,7 @@ -

      pcb-rnd scripting - Rosetta

      +

      pcb-rnd scripting - Rosetta

      The Rosetta Stone of pcb-rnd scripting is a collection of example scripts implemented in various scripting languages. Rosetta has multiple purposes: @@ -26,7 +26,7 @@ the example is. -

      Index of examples

      +

      Index of examples

      Index: smartdisperse/index.html =================================================================== --- smartdisperse/index.html (revision 30434) +++ smartdisperse/index.html (revision 30435) @@ -6,7 +6,7 @@ -

      smartdisperse - smart netlist disperse

      +

      smartdisperse - smart netlist disperse

      The smartdisperse plugin provides an action called smartdisperse that uses a loaded netlist to arrange the layout subcircuits in a linear order at Index: stroke/index.html =================================================================== --- stroke/index.html (revision 30434) +++ stroke/index.html (revision 30435) @@ -6,9 +6,9 @@ -

      Stroke plugin

      +

      Stroke plugin

      -

      Gestures

      +

      Gestures

      The stroke plugin uses libstroke to recognize mouse gestures. By the default menu config gestures are recognized while the right mouse button @@ -36,7 +36,7 @@

      zoom in to the area between the endpoints of the gesture
      -

      Configuration

      +

      Configuration

      The stroke plugin is compiled only if (the development package of) libstroke is installed. Any gesture recognition takes place only if Index: vendordrill/index.html =================================================================== --- vendordrill/index.html (revision 30434) +++ vendordrill/index.html (revision 30435) @@ -6,11 +6,11 @@ -

      The vendordrill plugin - Apply Vendor Drills and DRC

      +

      The vendordrill plugin - Apply Vendor Drills and DRC

      Load and Apply vendor file to the current design. -

      Description

      +

      Description

      Footprint holes are predefined within each footprint and layer characteristics are predefined in the layout file. Consequentially, hole @@ -45,7 +45,7 @@ may not want to change the drill size can be identified to be left alone - "skipped". -

      Vendor File Requirements

      +

      Vendor File Requirements

      • The vendor file is a text file in lihata format. It expects a @@ -72,9 +72,7 @@
    -

    - Example Minimal Vendor File -

    +

    Example Minimal Vendor File

        ha:vendor_drill_map {
       vendor = oshpark  # Optional and can be omitted
       units = mil      # mil|mils|inch|inches|mm - mil is default