Index: doc/user/07_io/io_hkp/index.html =================================================================== --- doc/user/07_io/io_hkp/index.html (revision 30667) +++ doc/user/07_io/io_hkp/index.html (nonexistent) @@ -1,23 +0,0 @@ - - -
--HKP is Mentor Graphic's file format, Hierarchical Keyword Parser. A -set of HKP files can fully describe a board that can be exported from or -imported to Expedition PCB (old name: Veribest). In theory other -of their product would work with HKP files (such as PADS), but in practice -the actual import/export could be tricky. Also, discussions on -Mentor community forums show that the company started getting rid of the -ASCII HKP format around 2010 in favor of an encrypted and/or binary file format, -so an old version of the software or a special license with new versions might -be needed. Index: doc/user/07_io/export_xy/index.html =================================================================== --- doc/user/07_io/export_xy/index.html (revision 30667) +++ doc/user/07_io/export_xy/index.html (nonexistent) @@ -1,89 +0,0 @@ - - -
--Export_xy is a configurable template based export plugin that prints -text files. The output contains an optional header, then an optional block -for each subcircuit and after each such subcircuit block an optional block -for each terminal in that subcircuit. In pseudo-code: -
-print header_template -foreach subc in subcircuits { - print subc_template - foreach term in s.terminals { - print term_template - } -} --
-Templates can reference to the current term, the current -subc and global properties (such as board properties). - -
-Each xy export format has an user assigned ID (which is the short name of the format). -There is a list of strings in the config tree under plugins/export_xy/templates; -each item is named as ID.something where something is: -
-Templates are text strings; they are printed as is, keeping all newlines and -whitespace. Portions in between % signs are substituted, depending on the -context. - -
-
keyword | description - |
---|---|
%UTC% | current date and time in UTC - |
%author% | board author - |
%title% | board title - |
%suffix% | coordinate unit (mm or mil) - |
%boardw% | boward width (unit suffixed coord) - |
%boardh% | boward height (unit suffixed coord) - |
%subc.a.KEY% | paste the current subcircuit's attribute value of the attribute whose name matches KEY; print "n/a" for non-existing attributes - |
%subc.a.KEY|unk% | same as %subc.a.KEY% but print "unknown" instead of "n/a" - |
%subc.a.KEY?yes% | same as %subc.a.KEY% but print "yes" if attribute value represents true, "n/a" otherwise - |
%subc.a.KEY?yes:nope% | same as %subc.a.KEY% but print "yes" if attribute value represents true, "nope" otherwise - |
%subc.refdes% | print the refdes of the current subcircuit - |
%subc.refdes_% | print the cleaned refdes of the current subcircuit - |
%subc.footprint% | print the footprint name of the current subcircuit - |
%subc.footprint_% | print the cleaned footprint name of the current subcircuit - |
%subc.value% | print the value of the current subcircuit - |
%subc.value_% | print the cleaned value of the current subcircuit - |
%subc.x% | print the X coordinate of the origin of the subcircuit (coord with unit suffix) - |
%subc.y% | print the Y coordinate of the origin of the subcircuit (coord with unit suffix) - |
%subc.padx% | print the X coordinate calculated from padstacks of the subcircuit (coord with unit suffix) - |
%subc.pady% | print the Y coordinate calculated from padstacks of the subcircuit (coord with unit suffix) - |
%subc.pad_width% | print the total width calculated from padstacks of the subcircuit (coord with unit suffix) - |
%subc.pad_height% | print the total height calculated from padstacks of the subcircuit (coord with unit suffix) - |
%subc.pad_width_prerot% | print the total width calculated from padstacks of the subcircuit, before applying rotation (coord with unit suffix) - |
%subc.pad_height_prerot% | print the total height calculated from padstacks of the subcircuit, before applying rotation (coord with unit suffix) - |
%subc.rot% | print the subc rotation value in degrees - |
%subc.siderot% | print the subc rotation value in degrees, always looking from the top side, "x-ray mode" (relative to side) - |
%subc.270-rot% | print the subc rotation value in degrees, subtracted from 270 - |
%subc.side270-rot% | print the subc rotation value in degrees, always looking from the top side, "x-ray mode", subtracted from 270 (relative to side) - |
%subc.side% | "top" or "bottom" (determined by subc placement, the subc aux layer) - |
%subc.num-side% | "1" for top or "2" for bottom (determined by subc placement, the subc aux layer) - |
%subc.count% | integer value, incremented by one before processing each subcircuit - |
%subc.smdvsthru% | "SMD" if contains padstacks but no padstack with hole; "PTH" if contains padstack with hole; "0" if neither - |
%subc.smdvsthrunum% | "2" if contains padstacks but no padstack with hole; "1" if contains padstack with hole; "0" if neither - |
%subc.pincout% | "pin" or "pad" count. Do not use. - |
%term.netname% | name of the net the current terminal should be connected to according to the netlist; "NC" for no connection - |
-Cleaned means any character that is non-alphanumeric, not "." and not "-" -and not "+" is replaced with "_". Index: doc/user/07_io/export_openscad/1206.scad =================================================================== --- doc/user/07_io/export_openscad/1206.scad (revision 30667) +++ doc/user/07_io/export_openscad/1206.scad (nonexistent) @@ -1,15 +0,0 @@ -module part_1206() -{ - translate([0,0,0.3]) { - // body - color([0.1,0.1,0.1]) - cube([3.2-2*0.2,1.6,0.6], center=true); - // terminals - color([0.8,0.8,0.8]) { - translate([+1.5, 0, 0]) - cube([0.2, 1.6, 0.6], center=true); - translate([-1.5, 0, 0]) - cube([0.2, 1.6, 0.6], center=true); - } - } -} Index: doc/user/07_io/export_openscad/preliminary.txt =================================================================== --- doc/user/07_io/export_openscad/preliminary.txt (revision 30667) +++ doc/user/07_io/export_openscad/preliminary.txt (nonexistent) @@ -1,48 +0,0 @@ -The openscad exporter generates the 3D model of the board in form of -an openscad script. - -The main entry point of the script is pcb_board(). All coordinates are in -mm. The in x and y directions the 0;0 point of the board is the 0;0 point on -screen in pcb-rnd, to make it easy to wrap the board in a translate() after -measuring the coords of a point in pcb-rnd. The vertical origin is the middle -of the board's FR4. - -Supported features: - - arbitrary shaped outline - - top/bottom copper (optional) - - top/bottom mask (optional) - - top/bottom silk (optional) - - holes (optional) - - element models (optional) - -Element models are loaded from external files referenced from the element -in the pcb-rnd board file. Model files are searched recursively under the -footprint library search path. - -The element (footprint instance) can have the following openscad related -attributes, all optional: - - - openscad=filename file name of the .scad script (3d element model) - - openscad-transformation=script apply the specified transformation on the model instance - - openscad-param=p1,p2,p3... parameters to pass on to the model - -If the openscad attribute is not present, no 3d model is inserted. - -If openscad-transformation is specified, it is inserted before the model -call; it typically contains a transform() and/or a rotate() to modify the -placement of the model. The 0;0;0 point of the placement is the origin of -the element in pcb-rnd, on the surface of the board. - -If openscad-param is specified, the module is called with this parameter -list, else the model is called with empty parameter list. - -A model file shall contain a single module, with "module" and the arbitrary -module name in the same line, { in the following line. One instance of -each model is copied into the output file so that the resulting openscad -script has no external reference and is self-contained. - - -Known bugs: - - with pcb elements it's impossible to tell the rotation; this will - be fully solved only with the subcircuit transition. Until that you - will need to manually specify an openscd-transformation for each element Index: doc/user/07_io/1_1_io_hkp/index.html =================================================================== --- doc/user/07_io/1_1_io_hkp/index.html (nonexistent) +++ doc/user/07_io/1_1_io_hkp/index.html (revision 30668) @@ -0,0 +1,23 @@ + + +
++HKP is Mentor Graphic's file format, Hierarchical Keyword Parser. A +set of HKP files can fully describe a board that can be exported from or +imported to Expedition PCB (old name: Veribest). In theory other +of their product would work with HKP files (such as PADS), but in practice +the actual import/export could be tricky. Also, discussions on +Mentor community forums show that the company started getting rid of the +ASCII HKP format around 2010 in favor of an encrypted and/or binary file format, +so an old version of the software or a special license with new versions might +be needed. Index: doc/user/07_io/3_1_export_openscad/1206.scad =================================================================== --- doc/user/07_io/3_1_export_openscad/1206.scad (nonexistent) +++ doc/user/07_io/3_1_export_openscad/1206.scad (revision 30668) @@ -0,0 +1,15 @@ +module part_1206() +{ + translate([0,0,0.3]) { + // body + color([0.1,0.1,0.1]) + cube([3.2-2*0.2,1.6,0.6], center=true); + // terminals + color([0.8,0.8,0.8]) { + translate([+1.5, 0, 0]) + cube([0.2, 1.6, 0.6], center=true); + translate([-1.5, 0, 0]) + cube([0.2, 1.6, 0.6], center=true); + } + } +} Index: doc/user/07_io/3_1_export_openscad/index.html =================================================================== --- doc/user/07_io/3_1_export_openscad/index.html (nonexistent) +++ doc/user/07_io/3_1_export_openscad/index.html (revision 30668) @@ -0,0 +1,13 @@ + + +
++TODO Index: doc/user/07_io/3_1_export_openscad/preliminary.txt =================================================================== --- doc/user/07_io/3_1_export_openscad/preliminary.txt (nonexistent) +++ doc/user/07_io/3_1_export_openscad/preliminary.txt (revision 30668) @@ -0,0 +1,48 @@ +The openscad exporter generates the 3D model of the board in form of +an openscad script. + +The main entry point of the script is pcb_board(). All coordinates are in +mm. The in x and y directions the 0;0 point of the board is the 0;0 point on +screen in pcb-rnd, to make it easy to wrap the board in a translate() after +measuring the coords of a point in pcb-rnd. The vertical origin is the middle +of the board's FR4. + +Supported features: + - arbitrary shaped outline + - top/bottom copper (optional) + - top/bottom mask (optional) + - top/bottom silk (optional) + - holes (optional) + - element models (optional) + +Element models are loaded from external files referenced from the element +in the pcb-rnd board file. Model files are searched recursively under the +footprint library search path. + +The element (footprint instance) can have the following openscad related +attributes, all optional: + + - openscad=filename file name of the .scad script (3d element model) + - openscad-transformation=script apply the specified transformation on the model instance + - openscad-param=p1,p2,p3... parameters to pass on to the model + +If the openscad attribute is not present, no 3d model is inserted. + +If openscad-transformation is specified, it is inserted before the model +call; it typically contains a transform() and/or a rotate() to modify the +placement of the model. The 0;0;0 point of the placement is the origin of +the element in pcb-rnd, on the surface of the board. + +If openscad-param is specified, the module is called with this parameter +list, else the model is called with empty parameter list. + +A model file shall contain a single module, with "module" and the arbitrary +module name in the same line, { in the following line. One instance of +each model is copied into the output file so that the resulting openscad +script has no external reference and is self-contained. + + +Known bugs: + - with pcb elements it's impossible to tell the rotation; this will + be fully solved only with the subcircuit transition. Until that you + will need to manually specify an openscd-transformation for each element Index: doc/user/07_io/3_2_export_xy/index.html =================================================================== --- doc/user/07_io/3_2_export_xy/index.html (nonexistent) +++ doc/user/07_io/3_2_export_xy/index.html (revision 30668) @@ -0,0 +1,89 @@ + + +
++Export_xy is a configurable template based export plugin that prints +text files. The output contains an optional header, then an optional block +for each subcircuit and after each such subcircuit block an optional block +for each terminal in that subcircuit. In pseudo-code: +
+print header_template +foreach subc in subcircuits { + print subc_template + foreach term in s.terminals { + print term_template + } +} ++
+Templates can reference to the current term, the current +subc and global properties (such as board properties). + +
+Each xy export format has an user assigned ID (which is the short name of the format). +There is a list of strings in the config tree under plugins/export_xy/templates; +each item is named as ID.something where something is: +
+Templates are text strings; they are printed as is, keeping all newlines and +whitespace. Portions in between % signs are substituted, depending on the +context. + +
+
keyword | description + |
---|---|
%UTC% | current date and time in UTC + |
%author% | board author + |
%title% | board title + |
%suffix% | coordinate unit (mm or mil) + |
%boardw% | boward width (unit suffixed coord) + |
%boardh% | boward height (unit suffixed coord) + |
%subc.a.KEY% | paste the current subcircuit's attribute value of the attribute whose name matches KEY; print "n/a" for non-existing attributes + |
%subc.a.KEY|unk% | same as %subc.a.KEY% but print "unknown" instead of "n/a" + |
%subc.a.KEY?yes% | same as %subc.a.KEY% but print "yes" if attribute value represents true, "n/a" otherwise + |
%subc.a.KEY?yes:nope% | same as %subc.a.KEY% but print "yes" if attribute value represents true, "nope" otherwise + |
%subc.refdes% | print the refdes of the current subcircuit + |
%subc.refdes_% | print the cleaned refdes of the current subcircuit + |
%subc.footprint% | print the footprint name of the current subcircuit + |
%subc.footprint_% | print the cleaned footprint name of the current subcircuit + |
%subc.value% | print the value of the current subcircuit + |
%subc.value_% | print the cleaned value of the current subcircuit + |
%subc.x% | print the X coordinate of the origin of the subcircuit (coord with unit suffix) + |
%subc.y% | print the Y coordinate of the origin of the subcircuit (coord with unit suffix) + |
%subc.padx% | print the X coordinate calculated from padstacks of the subcircuit (coord with unit suffix) + |
%subc.pady% | print the Y coordinate calculated from padstacks of the subcircuit (coord with unit suffix) + |
%subc.pad_width% | print the total width calculated from padstacks of the subcircuit (coord with unit suffix) + |
%subc.pad_height% | print the total height calculated from padstacks of the subcircuit (coord with unit suffix) + |
%subc.pad_width_prerot% | print the total width calculated from padstacks of the subcircuit, before applying rotation (coord with unit suffix) + |
%subc.pad_height_prerot% | print the total height calculated from padstacks of the subcircuit, before applying rotation (coord with unit suffix) + |
%subc.rot% | print the subc rotation value in degrees + |
%subc.siderot% | print the subc rotation value in degrees, always looking from the top side, "x-ray mode" (relative to side) + |
%subc.270-rot% | print the subc rotation value in degrees, subtracted from 270 + |
%subc.side270-rot% | print the subc rotation value in degrees, always looking from the top side, "x-ray mode", subtracted from 270 (relative to side) + |
%subc.side% | "top" or "bottom" (determined by subc placement, the subc aux layer) + |
%subc.num-side% | "1" for top or "2" for bottom (determined by subc placement, the subc aux layer) + |
%subc.count% | integer value, incremented by one before processing each subcircuit + |
%subc.smdvsthru% | "SMD" if contains padstacks but no padstack with hole; "PTH" if contains padstack with hole; "0" if neither + |
%subc.smdvsthrunum% | "2" if contains padstacks but no padstack with hole; "1" if contains padstack with hole; "0" if neither + |
%subc.pincout% | "pin" or "pad" count. Do not use. + |
%term.netname% | name of the net the current terminal should be connected to according to the netlist; "NC" for no connection + |
+Cleaned means any character that is non-alphanumeric, not "." and not "-" +and not "+" is replaced with "_". Index: doc/user/07_io/index.html =================================================================== --- doc/user/07_io/index.html (nonexistent) +++ doc/user/07_io/index.html (revision 30668) @@ -0,0 +1,36 @@ + + +
++There are three types of file format plugins: +import plugins for partial load, export plugins for partial save and +io plugins for complete and/or bidirectional load/save. Partial in this +context means not the whole board, but only a few aspects of it are +handled. +
+ +