User Tools

Site Tools


geda:pcb_tips

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
geda:pcb_tips [2014/04/18 08:35]
vzh Correct URL
geda:pcb_tips [2018/06/03 09:58] (current)
bert [What resources exist to process PCB files using scripts?]
Line 1: Line 1:
 //​Translations of this page are also available in the following languages://​ [[pcb_tips.fr|Français]],​ [[pcb_tips.ru|Русский]]. //​Translations of this page are also available in the following languages://​ [[pcb_tips.fr|Français]],​ [[pcb_tips.ru|Русский]].
 +
 +
 +====== Footprint issues ======
 +===== I have a question relating to footprints =====
 +See the [[geda:PCB footprints]] page.
 +
  
 ====== About PCB layout and routing ====== ====== About PCB layout and routing ======
Line 6: Line 12:
  
 ===== More PCB FAQ: ===== ===== More PCB FAQ: =====
 +  * [[ gEDA:​FAQ-pcb | PCB FAQ]]
 +  * [[http://​www.luciani.org/​geda/​pcb/​faq-pcb-footprint.html]]
 +  * [[http://​pcb.geda-project.org/​faq.html]]
 +
 ===== Where can I read about the basics of using pcb? ===== ===== Where can I read about the basics of using pcb? =====
 The pcb manual contains a concise description of the user interface in the The pcb manual contains a concise description of the user interface in the
Line 36: Line 46:
   * Auto-pan speed can be set in ''​$HOME/​.pcb/​preferences''​   * Auto-pan speed can be set in ''​$HOME/​.pcb/​preferences''​
 ===== The delete key sometimes refuses to delete ===== ===== The delete key sometimes refuses to delete =====
-Probably you try to delete a selected object. In pcb the delete button does not act on the selection, but on the object currently under the mouse. Consequently nothing will be deleted if an object is selected and the mouse hovers at some other place. Bottom line: Just position the mouse over an object and press the delete button. No need to select the object.+Probably you try to delete a selected object. In pcb the <key>delete</​key> ​button does not act on the selection, but on the object currently under the mouse. Consequently nothing will be deleted if an object is selected and the mouse hovers at some other place. Bottom line: Just position the mouse over an object and press the <key>delete</​key> ​button. No need to select the object.
  
-However, you can delete the current selection with the backspace key.+However, you can delete the current selection with the <key>backspace</​key> ​key.
 ===== I try to move an object, but pcb won't let me! ===== ===== I try to move an object, but pcb won't let me! =====
 Most probably the object is locked. ​ Locked objects won't highlight. To see, whether it indeed is, **//Select all connected objects//** from the **//​Select//​** menu. Locked footprints are shown with a little L at their diamond shaped insertion mark. Use the lock tool to unlock the object in question. Note, that the lock tool always toggles the lock state of the object you click at. Afterward, an object report pops up that contains the lock state in the last line. Most probably the object is locked. ​ Locked objects won't highlight. To see, whether it indeed is, **//Select all connected objects//** from the **//​Select//​** menu. Locked footprints are shown with a little L at their diamond shaped insertion mark. Use the lock tool to unlock the object in question. Note, that the lock tool always toggles the lock state of the object you click at. Afterward, an object report pops up that contains the lock state in the last line.
Line 45: Line 55:
  
 A different reason for numb objects is "Only Names" in the settings menu. When checked, the selection tool will exclusively act on text. This is useful with crammed layouts. There is a complementary setting "Lock Names",​ too. A different reason for numb objects is "Only Names" in the settings menu. When checked, the selection tool will exclusively act on text. This is useful with crammed layouts. There is a complementary setting "Lock Names",​ too.
- 
-====== Footprint issues ====== 
- 
-===== How do PCB's footprints work? ===== 
-PCB supports two entirely separate footprint library mechanisms: 
-  - The first is referred to as the “oldlib”,​ “pcblib”,​ or the “M4 library”. This system uses the macro language M4 to generate footprints on the fly. The M4 library is fairly large. ​ A powerful feature of the m4 library is that an entire family of footprints can quickly be defined by defining an appropriate base macro. ​ Several standard families of footprints exist in pcblib. ​ Starting with the pcb-20070208 snapshot, the entire m4 library is available as "​newlib"​ footprints (see the following paragraph) under the name "​pcblib-newlib"​. 
-  - The second footprint library for PCB is called the “newlib”. Newlib footprints are defined using ASCII text files which call out each graphical primitive which makes up an entire footprint. ​ Newlib footprints can either be created graphically using PCB or via any other method which can produce a text file (text editor, awk/​perl/​ruby script, etc.). ​ The use of a scripting or programming language is especially powerful because you can generate large footprints or families of footprints. 
- 
-Therefore, during layout, you can use footprints which are distributed with 
-PCB, you can find footprints via a web search, or you can create your own, and 
-put them in a dedicated directory. [[http://​pcb.geda-project.org/​pcb-cvs/​pcb.html|The pcb manual]] has complete and up to date documentation for the element file format. ​ [[http://​gedasymbols.org|Gedasymbols.org]] has a number of user contributed footprints. ​ A somewhat incomplete but useful tutorial is available on the web at: [[http://​www.brorson.com/​gEDA/​]] (search for the term "​newlib"​). 
- 
-===== Where can I get pre-drawn footprints for PCB? ===== 
-  * Check your hard disk for ''​newlib''​ and ''​pcblib-newlib''​. These directories contain the default footprint library of PCB. 
-  * The best place to get additional footprints is the [[http://​www.gedasymbols.org|gEDA Symbols website]]. If you have you are welcome to contribute to the project and share your footprints. 
-  * [[http://​www.luciani.org/​geda/​pcb/​pcb-footprint-list.html|John Luciani'​s website]] has a large number of footprints and tools. 
-  * Darrell Harmon provides a nice footprint generating script [[http://​www.dlharmon.com/​geda/​footgen.html|on his website]]. 
-  * Finally, you can ask on the [[http://​wiki.geda-project.org/​geda:​mailinglists|geda-user mailing list]], and somebody might take pity on you and send you a footprint. 
- 
-===== I want to use PCB to do layout. How do I know what value to use for the footprint attribute? ===== 
-This question is a common one amongst new gEDA users. Indeed, helping newbies determine the appropriate footprint names lies at the core of the ongoing [[geda:​faq-gschem#​what_s_this_business_about_heavy_vs._light_symbols|light vs. heavy symbol]] debate. In the current, light symbol gEDA/gaf distribution,​ you need to attach the footprint attribute at the schematic level (i.e. using either gschem or gattrib). The name of the footprint to use depends upon whether you are using the newlib or the M4 library (pcblib). 
- 
-==== Newlib ==== 
-The newlib stores one footprint per file, and the footprint names used by the newlib are the file names of the footprint files. 
- 
-There are several ways to determine the newlib footprint names to use: 
-  * You can browse the available footprints by running pcb and opening the footprint library window (available from the menu bar via **//​Window//​** -> **//​Library//​**). Click on the “newlib” library group, and then select a sublibrary to browse its symbols. The name of each footprint appears in the **Elements** window on the right hand side of the footprint library browser. Use the name exactly as it appears in the browser for the footprint attribute in gschem or gattrib. 
-  * The newlib footprints distributed with PCB are stored in the directories under **''​${PREFIX}/​share/​pcb/​newlib''​**. (**''​${PREFIX}''​** is the install directory you specified when configuring/​building PCB.) The name to stick in the “footprint” attribute is the filename of the footprint you wish to use.\\ For example, on my machine I installed gEDA with the prefix **''/​usr/​local/​geda/''​**. The 0805 package (for SMT resistors or caps) lives in a file with absolute path\\ **''/​usr/​local/​geda/​share/​pcb/​newlib/​generic_SMD_packages/​0805_reflow_solder''​** \\ Therefore, to use this footprint on a component I set its “footprint” attribute to **''​0805_reflow_solder''​** using gschem or gattrib.\\ Note that if the newlib symbol you want to use lives in a non-standard directory, gsch2pcb needs you to specify a path to that directory, either within your project.rc file (if you use one) or using the **''​%%--elements-dir%%''​** flag (from the command line). 
-  * Finally, since each new design typically requires you to draw at least a couple of new footprints, it’s likely you will have a local “footprints” directory. As previously, the footprint name to use is the filename you assign to each of your new footprints. Again, don’t forget to add a line to your project.rc file telling gsch2pcb where to find your local footprints. Alternately,​ you can run gsch2pcb with the **''​%%--elements-dir%%''​** flag set to point to your local footprint directory. 
- 
-==== M4 library ==== 
-The M4 library stores the footprints as M4 macros; there are usually several (many) footprints contained in each footprint file. The different footprints in a single file are generally variations on a single pattern (e.g. DIP-8, DIP-14, DIP-16, etc.)  The easiest way to find the correct footprint attribute name is by browsing through the "​pcblib"​ library in the PCB library window. ​ The footprint attribute is given in square brackets in the description. ​ Also you can view the list of footprints from pcblib at the [[http://​www.gedasymbols.org/​footprints/​|gEDA Symbols webpage]]. 
- 
-The following m4 libraries have received more attention and improvements than the others: 
-  * ~amp for Amp connectors 
-  * ~amphenol for Amphenol connectors 
-  * ~geda for many diverse parts used in basic design using gEDA (resistors, caps, etc). 
-  * ~bourns for products like trim pots from Bourns 
-  * ~cts for products like resistor packs from CTS 
-  * ~johnstech for Johnstech sockets 
-  * ~minicircuits for Minicircuits specific footprints 
-  * ~panasonic for some Panasonic specific footprints 
- 
-Finally, for both the newlib and the M4 lib, it is extremely important that you verify that the footprint name you use instantiates *exactly* the footprint you want when you place it in PCB. Therefore, it is critical to inspect the footprint before you use it. You can verify the footprint you want to use by clicking on it in the “footprint library” window, and then placing it onto an empty spot in PCB’s drawing area. Manually inspect the footprint to ensure that it has the correct number of pins/pads, correct dimensions, etc. 
- 
-Also, once you generate Gerber files, make sure you [[geda:​pcb_tips#​i_m_done_with_my_layout._how_should_i_check_my_design|inspect all footprints instantiated in your Gerbers]] using gerbv (or an equivalent Gerber viewer) before you send your design out for fabrication. 
- 
-===== What is the recommended way to deal with different footprints for the same sort of device? ===== 
-For example, an opamp may be DIP8 or SO8. A resistor may be 0603, 0805, 1208, or through-hole. How do I know what package and footprint to use, and how do I manage the choices? 
- 
-First off, the footprint you should use is a decision for you to make, not your CAD tool. It is up to you to choose your preferred package type/​footprint,​ and then attach the correct footprint attribute to the component in the schematic. Once you have chosen which package (and footprint) you wish to use, then either [[geda:​pcb_tips#​where_can_i_get_pre-drawn_footprints_for_pcb|find an appropriate footprint]],​ or [[geda:​pcb_tips#​how_do_i_draw_a_new_footprint|draw one yourself]] and save it in a local directory. 
- 
-As far as managing the footprint choices (and indeed the large number of component attributes you are likely to have): Use [[geda:​faq-attribs#​help_my_design_has_hundreds_of_components_and_it_s_a_pain_to_use_gschem_to_attach_all_my_attributes|gattrib]]. That’s what it’s for. 
- 
- 
- 
- 
- 
-===== How do I draw a new footprint? ===== 
-Everybody does this a little differently. Some people draw the footprint entirely using PCB. Some people first draw a preliminary footprint in PCB, and then finish it off by hand editing it (e.g. using emacs). Some people write Perl or Python scripts to autogenerate footprints. 
- 
-  * use a text editor. See [[http://​www.brorson.com/​gEDA/​land_patterns_20070818.pdf| the manual on footprint creation]] by Stuart Brorson for the details. 
-  * draw the part in PCB and save as a footprint. See the [[http://​ronja.twibright.com/​guidelines/​footprints.php|howto by Karel Kulhavy]] 
-  * or use a [[http://​dlharmon.com/​geda/​footgen.html| python script]] by Darrel Harmon for "two pad", "​SOxx",​ "​tabbed"​ and QFP" style 
-  * or use a [[http://​www.brorson.com/​gEDA| perl script]] by Stuart Brorson for two pad SMT components 
-  * or use a [[http://​www.luciani.org/​geda/​pcb/​pcb-perl-library.html|perl script]] from John Luciani -- can be adapted to DIL, SOxx-Style, QFP, or even circular arrangement of pads. 
-  * or use the web based application [[http://​www.gedasymbols.org/​user/​dj_delorie/​tools/​dilpad.html|dilpad]] written by DJ Delorie for "​SOxx"​ style footprints. 
- 
- 
-===== How do I edit/change an existing footprint? ===== 
-You can convert a footprint into an ordinary layout, edit the parts and convert them back to footprint. In the following list the parts in bold italic font are actions from the **//​Buffer//​** menu. 
-  - Select element 
-  - Copy selection to buffer ([ctrl-c]). 
-  - **//Break buffer elements to pieces//**. Pins become vias and pads become tracks. Unfortunately,​ some information is lost during the process. Namely, the square flag names of pins and pads. You have to regenerate this information later. 
-  - **//Paste buffer to layout//** 
-  - Do the desired changes. Note, that only vias, tracks and rectangles are allowed. No text, no arcs, no general polygons. 
-  - Select all objects that belong to the footprint 
-  - Copy selection to buffer ([ctrl-c]). The position of the crosshair will determine the origin of the resulting footprint. The origin will be marked with a little diamond. 
-  - **//Convert buffer to element//​**. This converts vias to pins. Tracks and rectangles get SMD pads. 
-  - **//Paste buffer to layout//** 
-  - Place the mouse over the pads that got rounded during step 4 and press [q]. This squares off the rounded pad edges. 
-  - Go over every pad, press [n] and give a name to the pad. 
-  - Place the mouse somewhere where there is no pad or pin and give a name to the symbol. 
-  - Move the name to the place where you want the refdes or the value to appear. 
-  - Select everything and copy selection to buffer ([ctrl-c]) 
-  - **//Save buffer elements to file//**. 
-Alternatively,​ you can use your favorite text editor and edit the source code of the footprint. 
- 
-===== How do I move the diamond of a footprint ===== 
-The origin of a footprint is marked with a little diamond. To move it to some other position relative to the footprint you have to modify all coordinates. This can be done manually with a text editor. If you want to do it from within the GUI, you need to break the footprint into pieces and assemble it again. See above for a detailed checklist. Note, that the position of the diamond is determined by the position of cross hair when copying to the buffer. 
- 
-Yes, this is tedious. The reason for it is the lack of a real footprint editing mode in pcb. You are invited to write one. 
- 
- 
- 
-===== pcb does not save silk when I try to make a footprint ===== 
-The silk of footprints can only deal with lines and arcs. All the other objects like polygons, rectangles and text are silently omitted during **//Convert buffer to element//​**. If you need text in footprints you have to literary draw the letters with the line tool. 
- 
-===== What is the proper way to make a double-sided footprint? ===== 
-You can use the "​onsolder"​ flag to place pads on the opposite side of the 
-board. You would have something like this for a connector on both sides of the board: 
- 
-''​Pad[-40000 -7000 -40000 7000 2700 2400 3000 "​B1"​ "​B1"​ "​square"​]''​\\ 
-''​Pad[-40000 -7000 -40000 3000 2700 2400 3000 "​A1"​ "​A1"​ "​square,​onsolder"​]''​ 
- 
-If you draw the footprint with pcb-GUI and do **//​Buffer//​** -> **//Convert buffer to element//​**,​ the lines on the second layer become pads with the onsolder flag. Yes, it is the second layer, regardless its name. 
- 
-===== How can I achieve pads without paste? ===== 
-Sometimes, exposed copper should not receive solder paste. A common example is the pads of an edge connector. This can be achieved with the ''​nopaste''​ [[geda:​glossary#​flag|flag]]. Currently, there is no GUI way to set the flag. Use a text editor to add this flag to the pads of a footprint. 
-===== How do I add a footprint library to PCB? ===== 
-Adding footprint libraries can be done from the GUI:\\ 
-**//​File//​** -> **//​Preferences...//​** -> **Library** -> ''​FOOTPRINTDIRECTORY''​\\ 
-Alternatively you can edit the file ''​$HOME/​.pcb/​preferences''​. Make sure, no instance of pcb is currently running. Look for the line that starts with "​library-newlib"​. 
-Don’t forget to include the new directory into either your gsch2pcbrc, or your local gafrc file (if you are using gsch2pcb, that is). 
- 
-===== How do I update a footprint in my layout? ===== 
-There is no way to automatically replace all instances of a footprint with the new version, yet. But there is a special mode of the buffer-paste tool, that will reduce the amount of clicks for manual replacement.\\ 
-Use the **//​Window//​** -> **//​Library//​** dialog box to manually choose the new footprint. The tool becomes the buffer-paste tool, with the new footprint preloaded. Rotate it if needed with **//​Buffer//​** -> **//Rotate Buffer//**. Position the new footprint over the old one, and shift-left-mouse-click to replace the old footprint with the new one. Watch out for being 180 degrees off, use '​o'​ to check the rats nest after each placement, and undo if it appears you placed it backwards. 
- 
-===== PCB is not finding my footprints. Why? ===== 
-The footprint path that PCB uses is defined using the **''​Pcb.elementPath''​** variable in the app-defaults file named **''​PCB''​**. The path for the **''​PCB''​** file is set using the **''​XAPPLRESDIR''​** environment variable which is typically set from within the wrapper script named **''​pcb''​**. 
- 
- 
-===== Now that I have all of these footprints where do I put them? ===== 
-I prefer to place all “production-ready” footprints in a single directory that is not in the gEDA/PCB install tree. When a new version of gEDA/PCB comes out I do not make any changes to project files or libraries. If there are newlib footprints in the PCB library that I want to use I copy them to the "​production-ready"​ footprint directory. 
- 
-Rather than change configuration files to get gsch2pcb to find the footprints I create a wrapper script called **''​sch2pcb''​** that contains the footprint path. All users use the same script and access the same production footprints. 
- 
-To use the **''​sch2pcb''​** script that is listed below replace the string **''​FOOTPRINT_DIR''​** with your footprint directory: 
-<​code>​ 
-#!/bin/bash 
-gsch2pcb --elements-dir FOOTPRINT_DIR $@ 
-</​code>​ 
- 
-Or another user's version: 
-<​code>​ 
-#!/bin/bash 
-#this script was written by John Luciani 
-gsch2pcb --elements-dir /​home/​user/​pcb/​footprints/​user --use-files $@ 
-</​code>​ 
- 
-Alternatively you can make use of a project file which gsch2pcb reads for its options. For example the file ''​myproject''​ could look like this: 
-<​code>​ 
-schematics myschematic.sch myschematic2.sch 
-elements-dir /​myfootprintdir 
-output-name mypcb 
-skip-m4 
-</​code>​ 
- 
-The example file searches through ''​myfootprintdir''​ for footprints used in ''​myschematic.sch''​ and ''​myschematic2.sch''​ and creates ''​mypcb.pcb''​ skipping m4 style footprints. gsch2pcb is then called with the project file as an option. 
-<​code>​ 
-gsch2pcb myproject 
-</​code>​ 
  
  
Line 214: Line 71:
 ===== How do I rotate objects by an arbitrary angle? ===== ===== How do I rotate objects by an arbitrary angle? =====
   - Cut the object into the paste buffer.   - Cut the object into the paste buffer.
-  - Type ":​FreeRotateBuffer(45)"​. The colon will open the command line. Replace "​45"​ with the angle you want to rotate by.+  - Type ":​FreeRotateBuffer(45)"​. The <​key>:</​key>​ key will open the command line. Replace "​45"​ with the angle you want to rotate by.
   - Paste the object back to your board.   - Paste the object back to your board.
  
Line 222: Line 79:
 ===== How do I move objects by an arbitrary distance? ===== ===== How do I move objects by an arbitrary distance? =====
   - Let the mouse hover over the object to be moved.   - Let the mouse hover over the object to be moved.
-  - Type ":​MoveObject(x,​y,​unit)"​. The colon will open the command line. Replace "​x"​ and "​y"​ with the desired coordinates and "​unit"​ with either "​mm",​ or "​mil"​. +  - Type ":​MoveObject(x,​y,​unit)"​. The <​key>:</​key>​ key will open the command line. Replace "​x"​ and "​y"​ with the desired coordinates and "​unit"​ with either "​mm",​ or "​mil"​. 
-  - Type [return].+  - Type <​key>​Enter</​key>​.
 If both coordinates are prefixed with a "​+",​ or "​-"​ the move is relative to the current position. Else the object is moved to absolute coordinates. If both coordinates are prefixed with a "​+",​ or "​-"​ the move is relative to the current position. Else the object is moved to absolute coordinates.
  
Line 230: Line 87:
  
 ===== How do I change the size of a graphical object (such as text, silkscreen lines, etc)? ===== ===== How do I change the size of a graphical object (such as text, silkscreen lines, etc)? =====
-  * Mouse over the object and hit [**''​s''​**]. This will increase the size of the object you are mousing over. +  * Mouse over the object and hit <key>s</​key>​. This will increase the size of the object you are mousing over. 
-  * Mouse over the object and hit [**''​<shift>-S''​**]. This will decrease the size of the object you are mousing over.+  * Mouse over the object and hit <key>shift-s</​key>​. This will decrease the size of the object you are mousing over.
  
 You can alter the increase/​decrease quantum using the **//​File//​** -> **//​Preferences...//​** -> **Increments** menu. You can alter the increase/​decrease quantum using the **//​File//​** -> **//​Preferences...//​** -> **Increments** menu.
Line 237: Line 94:
 ===== How do I put components on both faces in PCB? ===== ===== How do I put components on both faces in PCB? =====
 There are two ways to do it: There are two ways to do it:
-  * Pressing the tab key will alternate the active side between the component and solder sides. When you place components, they will go on the active side. +  * Pressing the <key>tab</​key> ​key will alternate the active side between the component and solder sides. When you place components, they will go on the active side. 
-  * If you are viewing one side of the board, place a component there and (with the cursor over it) press the [**''​b''​**] ​key (which means, send the component to the Back side) the component go to the other side of the board.+  * If you are viewing one side of the board, place a component there and (with the cursor over it) press the <key>b</​key> ​key (which means, send the component to the Back side) the component go to the other side of the board.
  
-===== I can't move the components on the other side of the board! ==== +===== I can't move the components on the other side of the board! ​===== 
-The mouse is only sensitive to components on the active side of the board. This prevents ambiguities with components placed on both, top and bottom. ​ By default, top side is active and the bottom side is the "far side" whose components are ignored by the mouse. You can swap the roles of the sides to make components on the far side accessible. The key-accels ​[tab][shift-tab][ctrl-taband [ctrl-shift-tabwill do the trick. These accels combine the swap with different vertical and horizontal flips.+The mouse is only sensitive to components on the active side of the board. This prevents ambiguities with components placed on both, top and bottom. ​ By default, top side is active and the bottom side is the "far side" whose components are ignored by the mouse. You can swap the roles of the sides to make components on the far side accessible. The key-accels ​<key>tab</​key>​<key>shift-tab</​key>​<key>ctrl-tab</​key> ​and <key>ctrl-shift-tab</​key> ​will do the trick. These accels combine the swap with different vertical and horizontal flips.
 Specifically:​ Specifically:​
-  * [tab: swap sides and mirror along horizontal axis. This is like flipping a real board upside-down. +  * <key>tab</​key> ​: swap sides and mirror along horizontal axis. This is like flipping a real board upside-down. 
-  * [shift-tab]: swap sides and mirror along vertical axis. This mimics flipping a real board like a page in a book. +  * <key>shift-tab</​key>​: swap sides and mirror along vertical axis. This mimics flipping a real board like a page in a book. 
-  * [ctrl-tab]: swap sides and mirror along both axis. That is, do an inversion. This cannot be done with a real board ... +  * <key>ctrl-tab</​key>​: swap sides and mirror along both axis. That is, do an inversion. This cannot be done with a real board ... 
-  * [ctrl-shift-tab: No mirroring, just swap front side and far side. This is like an x-ray view.+  * <key>ctrl-shift-tab</​key> ​: No mirroring, just swap front side and far side. This is like an x-ray view.
  
 ===== How do I know, which side a component sits on? ===== ===== How do I know, which side a component sits on? =====
Line 252: Line 109:
  
 ===== How do I define a silkscreen layer for the other side of the board? ===== ===== How do I define a silkscreen layer for the other side of the board? =====
-Although only one silk layer button is visible in the GUI, silkscreen for both sides is automatically configured. In default view the silk layer button refers to silkscreen on the component side of the board. To place text or lines on solder silk you have to flip the board with the tab key (or shift-tab if you prefer a left-right flip). This is like physically turning the board to the other side. It turns the solder layer on top, and component layer on bottom. Objects on component silk layer+Although only one silk layer button is visible in the GUI, silkscreen for both sides is automatically configured. In default view the silk layer button refers to silkscreen on the component side of the board. To place text or lines on solder silk you have to flip the board with the <key>tab</​key> ​key (or <key>shift-tab</​key> ​if you prefer a left-right flip). This is like physically turning the board to the other side. It turns the solder layer on top, and component layer on bottom. Objects on component silk layer
 will be greyed out. If you draw to silk, lines will always go to the current top silk layer, which is solder now. The same happens to components and their silk screen. Flip the board again to return to default view. will be greyed out. If you draw to silk, lines will always go to the current top silk layer, which is solder now. The same happens to components and their silk screen. Flip the board again to return to default view.
  
 ===== Why text I add to the solder side not reversed? ===== ===== Why text I add to the solder side not reversed? =====
-Add it while the board is flipped (Tab). ​ Just selecting the solder side is insufficient. ​ New text always reads correctly from the side+Add it while the board is flipped (<key>Tab</​key>​).  Just selecting the solder side is insufficient. ​ New text always reads correctly from the side
 you're looking at. you're looking at.
  
Line 262: Line 119:
 ===== Is it possible to use an arbitrary grid spacing? ​ ===== ===== Is it possible to use an arbitrary grid spacing? ​ =====
 Yes. You can use the command <​nowiki>​setvalue(grid,​value,​unit)</​nowiki>​. To do this: Yes. You can use the command <​nowiki>​setvalue(grid,​value,​unit)</​nowiki>​. To do this:
-  - Type ":​SetValue(grid,​=x,​unit)"​. The colon will open the command line. Replace "​x"​ with the desired grid spacing and "​unit"​ with either "​mm",​ or "​mil"​. +  - Type ":​SetValue(grid,​=x,​unit)"​. The <​key>:</​key>​ key will open the command line. Replace "​x"​ with the desired grid spacing and "​unit"​ with either "​mm",​ or "​mil"​. 
-  - Type [return].+  - Type <​key>​Enter</​key>​.
  
 ===== How do I set the origin in pcb? ===== ===== How do I set the origin in pcb? =====
-The absolute origin is always in the upper left corner of the accessible area. This cannot be set to some other place. However, coordinates of objects can also be given relative to the current grid. In the GTK2 version of pcb coordinates are shown in the upper right corner of the main window. The right pair is the absolute position, while the left pair reflects the position relative to an arbitrary marker. This marker is set to the current position of the mouse by the key sequence ​[**''​ctrl-m''​**]. You may want to set the marker to a grid point or a specific pin.+The absolute origin is always in the upper left corner of the accessible area. This cannot be set to some other place. However, coordinates of objects can also be given relative to the current grid. In the GTK2 version of pcb coordinates are shown in the upper right corner of the main window. The right pair is the absolute position, while the left pair reflects the position relative to an arbitrary marker. This marker is set to the current position of the mouse by the key sequence ​<key>ctrl-m</​key>​. You may want to set the marker to a grid point or a specific pin.
  
 ===== How do I measure distances and dimensions of components? ===== ===== How do I measure distances and dimensions of components? =====
-Use [**''​ctrl-m''​**] ​to set the origin and read the distance of the mouse pointer relative to this point on the upper right of the pcb window. Some objects like vias and tracks yield useful information in object reports. Access the report of the object currently under the mouse pointer with [**''​ctrl-r''​**].+Use <key>ctrl-m</​key> ​to set the origin and read the distance of the mouse pointer relative to this point on the upper right of the pcb window. Some objects like vias and tracks yield useful information in object reports. Access the report of the object currently under the mouse pointer with <key>ctrl-r</​key>​.
  
 ===== How do I hide rats of specific nets? ===== ===== How do I hide rats of specific nets? =====
-In the netlist window, doubleclick on the specific rat name, then press 'o' ​on your board window. Your rats are hidden for that net. In the **Netlist** window an asterisk appears in from of the rat name.+In the netlist window, doubleclick on the specific rat name, then press <key>o</​key> ​on your board window. Your rats are hidden for that net. In the **Netlist** window an asterisk appears in from of the rat name.
 To reverse: follow the same procedure. To reverse: follow the same procedure.
  
Line 292: Line 149:
   - either vertical or 45° (status line: “45”)   - either vertical or 45° (status line: “45”)
   - arbitrary angle (status line: “all”)   - arbitrary angle (status line: “all”)
-The way to access these modes differs among the GUI versions. The current GTK snapshot (v20060288) defaults to “_/” but can be temporarily turned to “\_” with the shift key. You can switch to 45° mode with the slash key /. For arbitrary angles, press the period key ., or choose **//'​All-direction'​ lines//** in the **//​Setting//​** menu.+The way to access these modes differs among the GUI versions. The current GTK snapshot (v20060288) defaults to “_/” but can be temporarily turned to “\_” with the <key>shift</​key> ​key. You can switch to 45° mode with the slash key <key>/</​key>​. For arbitrary angles, press the period key <key>.</​key>​, or choose **//'​All-direction'​ lines//** in the **//​Setting//​** menu.
  
 ====== Routing Issues ====== ====== Routing Issues ======
Line 298: Line 155:
  
 ===== I got stuck! How do I go back? ===== ===== I got stuck! How do I go back? =====
-The universal undo key [**''​U''​**] ​works even while in the middle of track layout actions. It will remove the last segment but keep the line tool attached to the mouse. So you can immediately go on routing and find a better way.+The universal undo key <key>U</​key> ​works even while in the middle of track layout actions. It will remove the last segment but keep the line tool attached to the mouse. So you can immediately go on routing and find a better way.
  
 ===== How do I move one set of layer tracks to a different layer? ===== ===== How do I move one set of layer tracks to a different layer? =====
   - Select the tracks. It’s easiest to do this if you shut off everything but that layer first (i.e. silk, pins, other layers, etc).   - Select the tracks. It’s easiest to do this if you shut off everything but that layer first (i.e. silk, pins, other layers, etc).
   - Now set the current layer to be the new layer. Yes, the layer might get displayed; not a problem as you’ve already selected the tracks you want.   - Now set the current layer to be the new layer. Yes, the layer might get displayed; not a problem as you’ve already selected the tracks you want.
-  - Press [**''​shift-M''​**] ​to move all the selected tracks to the current layer.+  - Press <key>shift-M</​key> ​to move all the selected tracks to the current layer.
  
 ===== How do I achieve open vias clear of soldermask ===== ===== How do I achieve open vias clear of soldermask =====
Line 309: Line 166:
  
 For individual vias: For individual vias:
-  - Turn on the soldermask layer. This will make the k key refer to the soldermask clearance instead of polygon clearance.+  - Turn on the soldermask layer. This will make the <key>k</​key> ​key refer to the soldermask clearance instead of polygon clearance.
   - Position the mouse above the via (mouse cursor will change in recent versions of pcb)   - Position the mouse above the via (mouse cursor will change in recent versions of pcb)
-  - Type [**''​k''​**] ​several times until soldermask clearance exceeds the diameter of the via pad. Every strike of the key will increase the clearance by 2 mil. The first strike will let the pad of the via pop through the soldermask color. Yet, the actual clearance is only 2 mil at this point. You can decrease the clearance by using the [**''​<shift>-K''​**] ​key.+  - Type <key>k</​key> ​several times until soldermask clearance exceeds the diameter of the via pad. Every strike of the key will increase the clearance by 2 mil. The first strike will let the pad of the via pop through the soldermask color. Yet, the actual clearance is only 2 mil at this point. You can decrease the clearance by using the <key>shift-K</​key> ​key.
  
 For groups of vias: For groups of vias:
   - Turn on the solder mask layer.   - Turn on the solder mask layer.
   - select the all the vias you want to clear from soldermask. You may switch off all the other layers to conveniently collect exclusively the vias.   - select the all the vias you want to clear from soldermask. You may switch off all the other layers to conveniently collect exclusively the vias.
-  - Type [**''​<ctrl>-K''​**] ​key several times. ​[**''​<shift>-<ctrl>-K''​**] ​will decrease the clearance of all selected objects.+  - Type <key>ctrl-K</​key> ​key several times. <key>shift-ctrl-K</​key> ​will decrease the clearance of all selected objects.
  
-The command interface provides more control over the actual size of the clearance. Type ":" ​to get the command line window, then type:+The command interface provides more control over the actual size of the clearance. Type <key>:</​key> ​to get the command line window, then type:
   ChangeClearSize(SelectedVias,​ <​delta>​)   ChangeClearSize(SelectedVias,​ <​delta>​)
 where ''<​delta>''​ is a size given in 1/100 of a mil. Thus the number 3000 corresponds to 30 mil. Simple integers for ''<​delta>''​ will set the clearance to this value. If the value is preceded by a minus "​-"​ or a plus "​+"​ the clearance will be decreased or increased. This also works with ''​SelectedPins'',​ ''​SelectedPads'',​ ''​SelectedLines'',​ ''​SelectedArcs''​ or even ''​SelectedObjects''​. where ''<​delta>''​ is a size given in 1/100 of a mil. Thus the number 3000 corresponds to 30 mil. Simple integers for ''<​delta>''​ will set the clearance to this value. If the value is preceded by a minus "​-"​ or a plus "​+"​ the clearance will be decreased or increased. This also works with ''​SelectedPins'',​ ''​SelectedPads'',​ ''​SelectedLines'',​ ''​SelectedArcs''​ or even ''​SelectedObjects''​.
Line 327: Line 184:
 ===== How do I change the size of my tracks? ===== ===== How do I change the size of my tracks? =====
 There are a number of ways to change the size of already laid down tracks: There are a number of ways to change the size of already laid down tracks:
-  - Use [**''​s''​**] ​and [**''​shift-s''​**] ​to increase and decrease the size of the track currently under the mouse cursor.+  - Use <key>s</​key> ​and <key>shift-s</​key> ​to increase and decrease the size of the track currently under the mouse cursor.
   - Choose **//​Select//​** -> **//Change size of selected objects//** -> **//Lines -10 mil//** from the **//​Select//​** menu. The actual amount of change can be set in **//​File//​** -> **//​Preferences...//​** -> **Sizes**. This only acts on the tracks. So the selection may contain components, text, vias and the like.   - Choose **//​Select//​** -> **//Change size of selected objects//** -> **//Lines -10 mil//** from the **//​Select//​** menu. The actual amount of change can be set in **//​File//​** -> **//​Preferences...//​** -> **Sizes**. This only acts on the tracks. So the selection may contain components, text, vias and the like.
-  - Select the tracks to be changed and type **'':​ChangeSize(SelectedLines,​+4,​mils)''​**. The colon gets you to the command line and **''​ChangeSize()''​** is the command version of the previously described action. Replace “**''​+4''​**” by the amount you want to increase the track size. Use the minus sign to decrease the track size. If you omit the sign the command sets the track size to the value given.+  - Select the tracks to be changed and type **'':​ChangeSize(SelectedLines,​+4,​mils)''​**. The <​key>:</​key>​ key gets you to the command line and **''​ChangeSize()''​** is the command version of the previously described action. Replace “**''​+4''​**” by the amount you want to increase the track size. Use the minus sign to decrease the track size. If you omit the sign the command sets the track size to the value given.
  
 ===== How do I drive a via to connect a track to a ground plane on a different layer? ===== ===== How do I drive a via to connect a track to a ground plane on a different layer? =====
Line 345: Line 202:
  
 Here are some suggestions:​ Here are some suggestions:​
-  * Draw a rectangle to comfortably surround the vias.  Then, mouse over the rectangle and hit 's'.  This will flood the thermal reliefs on the vias.  If you want to ever de-solder the part from the back, make sure the pad on the opposite side has the solder resist cleared.+  * Draw a rectangle to comfortably surround the vias.  Then, mouse over the rectangle and hit <key>s</​key>​.  This will flood the thermal reliefs on the vias.  If you want to ever de-solder the part from the back, make sure the pad on the opposite side has the solder resist cleared.
   * Just put a normal thermal relief on the via and then shift click on it to cycle through to the one with no relief.   * Just put a normal thermal relief on the via and then shift click on it to cycle through to the one with no relief.
  
Line 352: Line 209:
 You are likely drawing tracks with auto-DRC on. To connect the two segments, here are some suggestions:​ You are likely drawing tracks with auto-DRC on. To connect the two segments, here are some suggestions:​
   * DRC enforcement uses the ratsnest to determine where a track is allowed to go. Thus, you must have the ratsnest drawn in order to make connections in auto-DRC mode. Otherwise you will not be allowed to connect (or approach) any copper that is not already connected to your net. (If the rat visibility bothers you, you can hide the rats layer -- but the rats must exist).   * DRC enforcement uses the ratsnest to determine where a track is allowed to go. Thus, you must have the ratsnest drawn in order to make connections in auto-DRC mode. Otherwise you will not be allowed to connect (or approach) any copper that is not already connected to your net. (If the rat visibility bothers you, you can hide the rats layer -- but the rats must exist).
-  * You should also refresh the rats regularly when drawing. Hit [**''​o''​**] ​to redraw/​re-optimize the rats. Make sure a rat is visibly connecting the two pieces of metal you want to connect.+  * You should also refresh the rats regularly when drawing. Hit <key>o</​key> ​to redraw/​re-optimize the rats. Make sure a rat is visibly connecting the two pieces of metal you want to connect.
   * It is also possible that you will experience this situation when drawing tracks between pins in a connector. In this case, it is possible that your track width violates the clearance requirements of the pin field. Try decreasing the pin-to-metal clearance, or use a narrower track width.   * It is also possible that you will experience this situation when drawing tracks between pins in a connector. In this case, it is possible that your track width violates the clearance requirements of the pin field. Try decreasing the pin-to-metal clearance, or use a narrower track width.
   * Sometimes this route-blocking behaviour can come about from an error in your netlist. ​ Don't end refdes'​s with lower case letters - they'​re reserved for gates within devices. ​ End with upper case or a digit; the lowercase letters are simply ignored.   * Sometimes this route-blocking behaviour can come about from an error in your netlist. ​ Don't end refdes'​s with lower case letters - they'​re reserved for gates within devices. ​ End with upper case or a digit; the lowercase letters are simply ignored.
Line 360: Line 217:
  
 There are two ways to connect to unconnected copper, anyway: Obviously, you can temporarily deactivate **//Auto enforce DRC clearance//​** in the **//​Settings//​** menu. A second way uses the fact that auto-DRC relies on the found flag: There are two ways to connect to unconnected copper, anyway: Obviously, you can temporarily deactivate **//Auto enforce DRC clearance//​** in the **//​Settings//​** menu. A second way uses the fact that auto-DRC relies on the found flag:
-  - enter the "​line"​ mode ([**''​F2''​**]).+  - enter the "​line"​ mode (<key>F2</​key>​).
   - hover the mouse cursor over the unconnected copper.   - hover the mouse cursor over the unconnected copper.
-  - press [**''​f''​**] ​to mark it as "​found"​.+  - press <key>f</​key> ​to mark it as "​found"​.
   - start the line from somewhere else. Both should now be marked with the "​found"​ color and should be connectable.   - start the line from somewhere else. Both should now be marked with the "​found"​ color and should be connectable.
  
Line 421: Line 278:
 ===== How can I connect tracks, pads, or vias to my polygon? ===== ===== How can I connect tracks, pads, or vias to my polygon? =====
 There are different ways to adequately connect different types of objects to a polygon: There are different ways to adequately connect different types of objects to a polygon:
-  * tracks: Set the join flag of the track. You can do this with the [**''​j''​**] ​key, while the mouse hovers above the track. Alternatively you can select the lines and apply the command "​SetFlag(selected,​join)"​. For new lines, you can uncheck the **//New lines, arcs clear polygons//​** in the **//​Settings//​** menu. The polygon will immediately flow into the track.+  * tracks: Set the join flag of the track. You can do this with the <key>j</​key> ​key, while the mouse hovers above the track. Alternatively you can select the lines and apply the command "​SetFlag(selected,​join)"​. For new lines, you can uncheck the **//New lines, arcs clear polygons//​** in the **//​Settings//​** menu. The polygon will immediately flow into the track.
   * pads: Currently, there is no way to directly connect a polygon to a pad. Draw a track without the join flag from the pad to the polygon. (see above)   * pads: Currently, there is no way to directly connect a polygon to a pad. Draw a track without the join flag from the pad to the polygon. (see above)
   * pins and vias: Choose the thermal tool ("​THRM"​). Select the layer the polygon sits on. Shift-Click on the via to circle through the available styles of the connection.   * pins and vias: Choose the thermal tool ("​THRM"​). Select the layer the polygon sits on. Shift-Click on the via to circle through the available styles of the connection.
Line 427: Line 284:
  
 ===== The polygons are shorting my tracks! What can I do about it? ===== ===== The polygons are shorting my tracks! What can I do about it? =====
-You didn't have **//New lines, arcs clear polygons//​** checked in the **//​Settings//​** menu when you layed down the tracks. Enter ''​changejoin(selected)''​ in the command window to toggle this flag for all tracks that are currently selected. The keyboard shortcut to this action is [**''​shift-j''​**].+You didn't have **//New lines, arcs clear polygons//​** checked in the **//​Settings//​** menu when you layed down the tracks. Enter ''​changejoin(selected)''​ in the command window to toggle this flag for all tracks that are currently selected. The keyboard shortcut to this action is <key>shift-j</​key>​.
 If you want to set or clear the join flag rather than toggle it, you can use If you want to set or clear the join flag rather than toggle it, you can use
 the commands ''​SetFlag(selected,​ join)''​ and  ''​ClrFlag(selected,​ join)''​. See the commands ''​SetFlag(selected,​ join)''​ and  ''​ClrFlag(selected,​ join)''​. See
Line 436: Line 293:
 In pcb, the polygon itself has no built-in clearance. It is the tracks, pads and pins that bear this property. This means, you can adjust the clearance individually:​ In pcb, the polygon itself has no built-in clearance. It is the tracks, pads and pins that bear this property. This means, you can adjust the clearance individually:​
  
-Make sure, the soldermask layer is not active. Else the following will apply to the soldermask rather than to the polygon. Press [''​k''​] ​to increase the clearance of the object under the cursor. Use [''​ctrl-k''​] ​to increase the clearance of selected objects. Add the [''​shift''​] ​modifier to decrease the clearance. To change a whole track press [''​f''​] ​to find all segments that are connected to the object under the cursor and apply the action ''​select(connection)''​.+Make sure, the soldermask layer is not active. Else the following will apply to the soldermask rather than to the polygon. Press <key>k</​key> ​to increase the clearance of the object under the cursor. Use <key>ctrl-k</​key> ​to increase the clearance of selected objects. Add the <key>shift</​key> ​modifier to decrease the clearance. To change a whole track press <key>f</​key> ​to find all segments that are connected to the object under the cursor and apply the action ''​select(connection)''​.
  
 The amount of the increment can be configured in the dialog **//​File//​** -> **//​Preferences...//​** -> **Increments**. (Note, this setting is currently ignored) The amount of the increment can be configured in the dialog **//​File//​** -> **//​Preferences...//​** -> **Increments**. (Note, this setting is currently ignored)
Line 457: Line 314:
  
 ===== How do I edit polygons? ===== ===== How do I edit polygons? =====
-There are four basic ways to edit polygon outlines. You can move and delete vertices and you can insert vertices using two techniques. Polygons can be edited equally well in “thin line draw” mode (**//​Settings//​** -> **//Thin draw poly//**) or in normal mode. Moving a vertex is easily accomplished by un-selecting your polygon and then clicking and dragging that vertex to a new location. To delete a vertex, a corner in your polygon, put your crosshairs over the point and hit delete’ on the keyboard. To insert a vertex, you’ll use the insert tool (insert’ keystroke). Start by clicking the edge you want to split with a new point. Click and drag a new point into the polygon. A variation on this technique is 1) click to select, followed by 2) click to place new vertex.+There are four basic ways to edit polygon outlines. You can move and delete vertices and you can insert vertices using two techniques. Polygons can be edited equally well in “thin line draw” mode (**//​Settings//​** -> **//Thin draw poly//**) or in normal mode. Moving a vertex is easily accomplished by un-selecting your polygon and then clicking and dragging that vertex to a new location. To delete a vertex, a corner in your polygon, put your crosshairs over the point and hit <key>delete</​key> ​on the keyboard. To insert a vertex, you’ll use the insert tool (<key>insert</​key> ​keystroke). Start by clicking the edge you want to split with a new point. Click and drag a new point into the polygon. A variation on this technique is 1) click to select, followed by 2) click to place new vertex.
  
 (NOTE: Inserting points into polygon will generally work ONLY with “all direction lines” enabled (**//​Settings//​** -> **//'​All direction'​ lines//**). This is because PCB has a powerful 45/90 degree constraints system. If you try to insert new vertices into a polygon that don’t fall onto lines of proper 45 and 90 degree constraints,​ PCB disallows the action!) (NOTE: Inserting points into polygon will generally work ONLY with “all direction lines” enabled (**//​Settings//​** -> **//'​All direction'​ lines//**). This is because PCB has a powerful 45/90 degree constraints system. If you try to insert new vertices into a polygon that don’t fall onto lines of proper 45 and 90 degree constraints,​ PCB disallows the action!)
  
 ===== How do I place vias that connect to a polygon for full thermal dissipation or full shielding integrity? ===== ===== How do I place vias that connect to a polygon for full thermal dissipation or full shielding integrity? =====
-Often it’s useful to have vias connect completely to a polygon (a field of copper) for heat transfer -- the apparent problem is that PCB polygons have only a single “clear pins/​vias” flag for the entire polygon (toggled by the [**''​s''​**] ​key). Our goal is to only connect some of the pins/vias to the polygon, but to connect them better than a thermal does. Here are a few ways to do this:+Often it’s useful to have vias connect completely to a polygon (a field of copper) for heat transfer -- the apparent problem is that PCB polygons have only a single “clear pins/​vias” flag for the entire polygon (toggled by the <key>s</​key> ​key). Our goal is to only connect some of the pins/vias to the polygon, but to connect them better than a thermal does. Here are a few ways to do this:
  
 One way, you’ll make an object that’s almost just like a thermal in that it goes between your via and the polygon -- the difference is that you’ll actually create an annulus to completely fill the space between the hole and polygon (which because it’s clearance is turned on, is not connected to the pin). This annulus is four arc segments. You can copy these four items to the buffer to create a "​zero-clearance thermal tool". The drawback of this trick is that when you change via size, you’ll also have to modify the size of these filler parts. One way, you’ll make an object that’s almost just like a thermal in that it goes between your via and the polygon -- the difference is that you’ll actually create an annulus to completely fill the space between the hole and polygon (which because it’s clearance is turned on, is not connected to the pin). This annulus is four arc segments. You can copy these four items to the buffer to create a "​zero-clearance thermal tool". The drawback of this trick is that when you change via size, you’ll also have to modify the size of these filler parts.
Line 468: Line 325:
 The arcs allow you to use this fill trick in tight places by only placing, say two of the four arcs. The arcs allow you to use this fill trick in tight places by only placing, say two of the four arcs.
  
-Another trick is to make a zero-length line. Take a single line segment and move the end-point on top of the start-point. Now you have a “single point line” (a circle) with the diameter equal to the line thickness. Move to different layers ([**''​m''​**] ​key) as you see fit. Place this object centered on your via to connect it to a polygon.+Another trick is to make a zero-length line. Take a single line segment and move the end-point on top of the start-point. Now you have a “single point line” (a circle) with the diameter equal to the line thickness. Move to different layers (<key>m</​key> ​key) as you see fit. Place this object centered on your via to connect it to a polygon.
  
 Power-users may want to keep a small custom library of these parts by saving them as elements. It’s also handy to put these “parts” in one of your PCB buffers so they’re at your fingertips. Power-users may want to keep a small custom library of these parts by saving them as elements. It’s also handy to put these “parts” in one of your PCB buffers so they’re at your fingertips.
Line 481: Line 338:
   - Do **//Convert selection to element//** from the **//​Select//​** menu   - Do **//Convert selection to element//** from the **//​Select//​** menu
   - Activate the solder mask layer. The solder mask should keep clear of the tracks   - Activate the solder mask layer. The solder mask should keep clear of the tracks
-  - Increase the clearance of the pads to match the desired bare copper area. To do this, press [kwhile the mouse cursor hovers above the pads. +  - Increase the clearance of the pads to match the desired bare copper area. To do this, press <key>k</​key> ​while the mouse cursor hovers above the pads. 
-  - Optionally press q to set the square flag of the pads.+  - Optionally press <key>q</​key> ​to set the square flag of the pads.
 While the pad width is limited to 250 mil, clearance can be arbitrary. While the pad width is limited to 250 mil, clearance can be arbitrary.
  
Line 492: Line 349:
  
 Alternatively,​ issue the ChangeSize action with the command tool: Alternatively,​ issue the ChangeSize action with the command tool:
-  * Type a colon to open the command line.+  * Type <​key>:</​key> ​to open the command line.
   * In the command line type:   * In the command line type:
        <​code>​ChangeSize(SelectedPins,​ SIZE)</​code>​        <​code>​ChangeSize(SelectedPins,​ SIZE)</​code>​
Line 537: Line 394:
 ===== What resources exist to process PCB files using scripts? ===== ===== What resources exist to process PCB files using scripts? =====
 One of PCB's great features is that it uses an easily understood ASCII file format. ​ Therefore, many people use scripts (commonly Perl) to process their boards in various ways.  You can use these scripts either as they are, or modify them to suit your own goals. ​ Here are some links to available scripts: One of PCB's great features is that it uses an easily understood ASCII file format. ​ Therefore, many people use scripts (commonly Perl) to process their boards in various ways.  You can use these scripts either as they are, or modify them to suit your own goals. ​ Here are some links to available scripts:
-  - John Luciani has a large number of [[http://www.luciani.org/​geda/​pcb/​pcb-perl-library.html|scripts]] available on [[http://​www.luciani.org | his website]]. ​ Included in his collection are scripts for generating footprints, as well as +  - John Luciani has a large number of [[http://lucianifamily.org/​geda/​pcb/​pcb-perl-library.html|scripts]] available on [[http://​www.lucianifamily.org | his website]]. ​ Included in his collection are scripts for generating footprints, as well as 
-  - David Rowe has scripts for updating elements as well as adding/​subtracting PCB files from each other on [[ http://​www.rowetel.com/​perl4pcb.html|his website.]]+  - David Rowe has scripts for updating elements as well as adding/​subtracting PCB files from each other on [[ http://​www.rowetel.com/​perl4pcb.html|his website.]] ​(404 - Not found error)
   - Stuart Brorson wrote a simple script which generates footprints for two terminal SMT passives. ​ A gzipped tarball is available [[http://​www.brorson.com/​gEDA/​Smtgen.pl.gz | here ]].   - Stuart Brorson wrote a simple script which generates footprints for two terminal SMT passives. ​ A gzipped tarball is available [[http://​www.brorson.com/​gEDA/​Smtgen.pl.gz | here ]].
   - The website [[http://​www.gedasymbols.org/​ | gedasymbols.org]] has gathered a collection of footprints, symbols, scripts, and other materials from many different gEDA contributors. ​ The website is organized by contributor,​ so if you take the time to browse around there, you may find exactly what you are looking for!   - The website [[http://​www.gedasymbols.org/​ | gedasymbols.org]] has gathered a collection of footprints, symbols, scripts, and other materials from many different gEDA contributors. ​ The website is organized by contributor,​ so if you take the time to browse around there, you may find exactly what you are looking for!
Line 606: Line 463:
   - Set the current routing style for any nets not having a defined route style in the netlist.   - Set the current routing style for any nets not having a defined route style in the netlist.
   - Disable any nets that you don't want the autorouter to route -- double-click them in the  netlist window to add/remove the "​*"​.   - Disable any nets that you don't want the autorouter to route -- double-click them in the  netlist window to add/remove the "​*"​.
-  - Create a fresh rat's nest. (press the [o]-key)+  - Create a fresh rat's nest. (press the <key>o</​key> ​key)
   - Select **//Show autorouter trials//** in the **//​Settings//​** menu if you want to watch what's happening.   - Select **//Show autorouter trials//** in the **//​Settings//​** menu if you want to watch what's happening.
   - Choose **//​Auto-route all rats//** in the **//​Connects//​** menu.   - Choose **//​Auto-route all rats//** in the **//​Connects//​** menu.
Line 620: Line 477:
  
 ===== How do I make autorouter leave particular nets alone? ===== ===== How do I make autorouter leave particular nets alone? =====
-Open up the netlist window. ​ It has options for including or excluding nets from the ratlist. If you use the GTK-HID double-click a route to disable it. Make sure, only the nets you want are enabled. Optimize the rats with key [o].  Do **//​Auto-route all rats//**.+Open up the netlist window. ​ It has options for including or excluding nets from the ratlist. If you use the GTK-HID double-click a route to disable it. Make sure, only the nets you want are enabled. Optimize the rats with key <key>o</​key>​.  Do **//​Auto-route all rats//**.
  
 ===== How do I force the autorouter to route only within my pcb outline? ===== ===== How do I force the autorouter to route only within my pcb outline? =====
Line 702: Line 559:
 PCB will produce a gerber file called $NAME.outline.gbr that exclusively contains the objects in the outline layer. PCB will produce a gerber file called $NAME.outline.gbr that exclusively contains the objects in the outline layer.
  
-===== How do I make sure, that the design contains only certain hole sizes? ====+===== How do I make sure, that the design contains only certain hole sizes? ​=====
 Some fabs provide lists of standard drill sizes and charge extra if the design Some fabs provide lists of standard drill sizes and charge extra if the design
 contains additional sizes. You can put this list in a "​vendor resource file". contains additional sizes. You can put this list in a "​vendor resource file".
Line 768: Line 625:
 This setting will be reset at the next session of pcb. This setting will be reset at the next session of pcb.
  
-===== How do I permanently change keyboard shortcuts? ====+===== How do I permanently change keyboard shortcuts? ​=====
 Default keyboard shortcuts are defined in files called ''​gpcb-menu.res''​ if you use the default GTK interface. On start-up pcb reads the configuration from a system path, e.g. ''/​usr/​local/​share''​ or ''/​usr/​share/''​. For permanent change of keyboard shortcuts you can copy the system file to ''​$HOME/​.pcb/​gpcb-menu.res''​ and edit to your needs. Settings in this file will overwrite the system configuration. Default keyboard shortcuts are defined in files called ''​gpcb-menu.res''​ if you use the default GTK interface. On start-up pcb reads the configuration from a system path, e.g. ''/​usr/​local/​share''​ or ''/​usr/​share/''​. For permanent change of keyboard shortcuts you can copy the system file to ''​$HOME/​.pcb/​gpcb-menu.res''​ and edit to your needs. Settings in this file will overwrite the system configuration.
  
geda/pcb_tips.1397824558.txt.gz · Last modified: 2014/04/18 08:35 by vzh