User Tools

Site Tools


pcb-projects

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
pcb-projects [2018/03/04 10:13]
bert [User Experience (UX) Improvements]
pcb-projects [2019/03/26 09:40] (current)
cparker [Design Rule Checker]
Line 1: Line 1:
 //​Translations of this page are also available in the following languages://​ [[pcb-projects.ru|Русский]] //​Translations of this page are also available in the following languages://​ [[pcb-projects.ru|Русский]]
 +====== pcb Projects ======
 +===== Core Functionality =====
 +  * [[pcb:​padstacks|Padstacks]]
 +===== Design Rule Checker =====
 +[[pcb:drc]]
 +====Online DRC====
  
-==== PCB Layout Editor ==== +====== pcb Layout Editor ====== 
- +==== Plow feature ​====
-== Plow feature ==+
  
 A "​plow"​ feature where the line tool shoves existing traces aside A "​plow"​ feature where the line tool shoves existing traces aside
Line 10: Line 15:
 ''​Difficulty = 4-5''​ ''​Difficulty = 4-5''​
  
-== Fast snap rounding Algorithm ==+==== Fast snap rounding Algorithm ​====
  
 Implement a fast snap rounding algorithm and resolve the case where Implement a fast snap rounding algorithm and resolve the case where
Line 51: Line 56:
 ''​Difficulty = 4-5''​ ''​Difficulty = 4-5''​
  
-== Snapping enhancements == +==== Snapping enhancements ​==== 
  
 There are a number of possible enhancements related to crosshair snapping that could improve usability. For example, being able to reorder the snapping priority (what objects are snapped to before others), disabling certain objects from being snapped to, changing the radius at which a snap occurs, and others. There are a number of possible enhancements related to crosshair snapping that could improve usability. For example, being able to reorder the snapping priority (what objects are snapped to before others), disabling certain objects from being snapped to, changing the radius at which a snap occurs, and others.
  
-Ideas for how the snapping system should work are being collected here: [[Snapping in pcb]]+Ideas for how the snapping system should work are being collected here: [[Snapping in pcb]]. There is also a todo list with some work that needs to be done.
  
-== Auto-routed drawing tool ==+==== Auto-routed drawing tool ====
  
 Basically with this tool, you would click on a starting point, then drag the Basically with this tool, you would click on a starting point, then drag the
Line 72: Line 77:
 ''​Difficulty = 5''​ ''​Difficulty = 5''​
  
-== IPC Footprint Calculator ==+==== IPC Footprint Calculator ​====
  
 Build a footprint calculator that can take the IPC rules and produce a pcb footprint. Preferably write this in a way where the core program is independent of a GUI so that you can script it for generating entire large families of footprints or hook it up to a GUI of choice (lesstif, gtk, maybe even cgi). Would require the purchase of IPC-7351 (approximately U.S.A. $100) and verifying that one is allowed to produce such a calculator. Build a footprint calculator that can take the IPC rules and produce a pcb footprint. Preferably write this in a way where the core program is independent of a GUI so that you can script it for generating entire large families of footprints or hook it up to a GUI of choice (lesstif, gtk, maybe even cgi). Would require the purchase of IPC-7351 (approximately U.S.A. $100) and verifying that one is allowed to produce such a calculator.
Line 78: Line 83:
 ''​Difficulty = 2''​ ''​Difficulty = 2''​
  
-== Recently loaded file list ==+==== Recently loaded file list ====
  
 Presently pcb does not present a list of recently loaded files in the file menu. It would be nice if pcb kept track of the last few files a user loaded. This is a common feature found in other programs. Presently pcb does not present a list of recently loaded files in the file menu. It would be nice if pcb kept track of the last few files a user loaded. This is a common feature found in other programs.
Line 84: Line 89:
 ''​Difficulty = 1''​ ''​Difficulty = 1''​
  
-==== User Experience (UX) Improvements ====+====== User Experience (UX) Improvements ​======
  
  
-== Update the User Manual ==+==== Update the User Manual ​====
  
 In 1997, Richard Stallman wrote: “The biggest deficiency in free operating systems is not in the software — it is the lack of good free manuals that we can include in these systems.” In 1997, Richard Stallman wrote: “The biggest deficiency in free operating systems is not in the software — it is the lack of good free manuals that we can include in these systems.”
Line 100: Line 105:
     * Unify and combine the READMEs.     * Unify and combine the READMEs.
  
-== i18n / l10n ==+==== i18n / l10n ====
  
   * Get more translations/​translators --> better and more language translations.   * Get more translations/​translators --> better and more language translations.
Line 111: Line 116:
   * Respect "​Right-To-Left"​ reading users (Arabic, GUI layouts ?).   * Respect "​Right-To-Left"​ reading users (Arabic, GUI layouts ?).
  
-== Netlists ==+==== Netlists ​====
  
   * Layout vs netlist/​schematic check or just trust the "​import schematic"​ netlist (ERC).   * Layout vs netlist/​schematic check or just trust the "​import schematic"​ netlist (ERC).
   * Rebuilding a netlist from scratch, based on connectivity (copper layers).   * Rebuilding a netlist from scratch, based on connectivity (copper layers).
  
-== Routing ==+==== Routing ​====
  
   * Respect the "​outline",​ "​route"​ and non-copper layers with the autorouter.   * Respect the "​outline",​ "​route"​ and non-copper layers with the autorouter.
Line 124: Line 129:
   * Importing routing style and other data from the netlist (if available).   * Importing routing style and other data from the netlist (if available).
  
-== Other platforms, GUI's and dependencies ==+==== Other platforms, GUI's and dependencies ​====
  
   * Migrate to GNOME/GTK3 … when ?   * Migrate to GNOME/GTK3 … when ?
Line 143: Line 148:
   * Flatpak (http://​flatpak.org) pcb packages for multiple linux distributions ?   * Flatpak (http://​flatpak.org) pcb packages for multiple linux distributions ?
  
-== Plug-ins ==+==== Plug-ins ​====
  
   * Breakout plug-in for BGA escape routes.   * Breakout plug-in for BGA escape routes.
Line 158: Line 163:
   * Load plug-ins on demand.   * Load plug-ins on demand.
  
-== File exchange ==+==== File exchange ​====
  
   * IDF importer/​exporter (ECAD <--> MCAD).   * IDF importer/​exporter (ECAD <--> MCAD).
Line 167: Line 172:
   * GnuCAP exporter (PCB --> simulation / analysis).   * GnuCAP exporter (PCB --> simulation / analysis).
  
-== Exporters ==+==== Exporters ​====
  
   * Geometric model representation:​   * Geometric model representation:​
Line 179: Line 184:
     * Validate the workflow for Nelma.     * Validate the workflow for Nelma.
  
-== Other unsorted crazy ideas ==+==== Other unsorted crazy ideas ====
  
   * Gerber files as a background (for reverse engineering).   * Gerber files as a background (for reverse engineering).
Line 194: Line 199:
   * Layer stackup definitions.   * Layer stackup definitions.
   * Create multiple pcb executables during build time (bpcb for batch, gpcb for GTK, lpcb for lesstif).   * Create multiple pcb executables during build time (bpcb for batch, gpcb for GTK, lpcb for lesstif).
 +  * Assist the user with repetitive tasks.
  
-==== Developer Experience (DX) Improvements ====+====== Developer Experience (DX) Improvements ​======
  
   * Travis-CI Continuous Integration for pcb on Travis (https://​travis-ci.org).   * Travis-CI Continuous Integration for pcb on Travis (https://​travis-ci.org).
Line 207: Line 213:
     * Descriptions of "state machines"​ within actions and other code flow.     * Descriptions of "state machines"​ within actions and other code flow.
  
 +==== Test Suite ====
 +  * [[pcb:​pcb_tests|PCB level tests]]
 +  * [[pcb:​unit_tests|Code level unit tests]]
pcb-projects.1520176426.txt.gz · Last modified: 2018/03/04 10:13 by bert