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
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 @@
-
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
-
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
-
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 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.
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)
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 @@
-
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.
-
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.
-
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