Index: index.html =================================================================== --- index.html (revision 27619) +++ index.html (revision 27620) @@ -52,6 +52,7 @@

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

-For these exporters the above apply with only the file name specified and all -the rest from the '=' (including the '=') omitted. For example the XY exporter -can be used with +For these exporters the above apply with no layergrp specified. In the simplest +for this means the '=' and the rest of the line is omitted. However, if +supplement needs to be passed, the syntax is filename=(supplement). +For example the XY exporter can be used with

 --cam foo.xy
 
+or a partial excellon export can be done using: +
+--cam foo.exc=(partial)
+

The --cam option in these exporters are implemented for two reasons:

+

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 +using an expression. +

+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)

The CAM plugin is a way to manage output "jobs": collections of cam export @@ -170,8 +185,42 @@

 cam(call, doc_png)
 
+

+If the command partial appears in the job, a query() is executed +with the expression specified in the command's argument, marking matching +objects with the EXPORTSEL flag. The full command is used to remove +the EXPORTSEL flag from all objects. Note: to export only marked objects, +the write command will typically need the partial supplement. +A typical use case is exporting filled vias in a separate file, using +a custom object attribute called "process": +

+li:pcb-rnd-conf-v1 {
+	ha:overwrite {
+		ha:plugins {
+			ha:cam {
+				li:jobs {
+					holes {
+						desc export all holes in excellon files, sorted by whether they are filled
+						plugin excellon
+						partial @.a.process == "filled"
+						write filled.exc=(partial)
+						full
+						partial @.a.process != "filled"
+						write unfilled.exc=(partial)
+						full
+						write all.exc
+					}
+				}
+			}
+		}
+	}
+}
+
+Note: the first full command is used to cancel the effect of the first +partial command. Without full, at the second partial +all the "filled" vias would still be marked and unfilled.exc would contain +both filled and unfilled vias. -

Tips for using with various exporters

When exporting to ps, consider using the --no-show-toc. It is