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
Next revision Both sides next revision
pcb-projects [2018/03/04 09:06]
bert [User Experience (UX) Improvements]
pcb-projects [2019/03/21 12:54]
cparker [Core Functionality]
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]]
 +====== 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 12:
 ''​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 53:
 ''​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 74:
 ''​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 80:
 ''​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 86:
 ''​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 102:
     * Unify and combine the READMEs.     * Unify and combine the READMEs.
  
-== i18n / l10n ==+==== i18n / l10n ====
  
-  * Update Dutch translations (by bert ?). 
   * Get more translations/​translators --> better and more language translations.   * Get more translations/​translators --> better and more language translations.
 +  * Update the Dutch translation ?
 +  * Update the French translations ?
 +  * Update the Cyrrilic translations ?
   * Use Launchpad for common translations.   * Use Launchpad for common translations.
   * Check on what should be translatable strings.   * Check on what should be translatable strings.
Line 109: Line 113:
   * 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 122: Line 126:
   * 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 131: Line 135:
   * wxWidgets for native Microsoft windows look-and-feel UX ?   * wxWidgets for native Microsoft windows look-and-feel UX ?
   * Single Document Interface mode GTK UI with a separate function tear-off (lessGTK ?)   * Single Document Interface mode GTK UI with a separate function tear-off (lessGTK ?)
 +    * Separate layout window for artwork (primary screen).
 +    * Separate window for buttonbox and pull-down menu-items (secondary screen).
 +    * More routing styles (in pull-down combo-box ?).
   * Multiple Document Interface mode for the GTK UI ?   * Multiple Document Interface mode for the GTK UI ?
   * Multiple Document Interface mode for the lesstif UI ?   * Multiple Document Interface mode for the lesstif UI ?
Line 138: Line 145:
   * Flatpak (http://​flatpak.org) pcb packages for multiple linux distributions ?   * Flatpak (http://​flatpak.org) pcb packages for multiple linux distributions ?
  
-== Other unsorted crazy ideas ==+==== Plug-ins ==== 
 + 
 +  * Breakout plug-in for BGA escape routes. 
 +  * MUCS manhattan router plug-in. 
 +  * Pcb shopper quotation plug-in. 
 +  * Double Stripline/​Microstrip Impedance Calculator plug-in. 
 +  * Entity inspector/​editor plug-in. 
 +  * Serpentine length matching plug-in. 
 +  * Differential pair routing plug-in. 
 +  * Panelize plug-in. 
 +  * Bus routing plug-in. 
 +  * Push and Shove routing plug-in. 
 +  * Parasitic capacitance/​inductance extraction plug-in. 
 +  * Load plug-ins on demand. 
 + 
 +==== File exchange ==== 
 + 
 +  * IDF importer/​exporter (ECAD <--> MCAD). 
 +  * XML importer/​exporter. 
 +  * DXF importer/​exporter ​ (PCB <--> MCAD). 
 +  * DSN importer/​exporter (PCB <--> external routing). 
 +  * Verilog-AMS exporter (PCB --> simulation / analysis, see [[https://​archive.fosdem.org/​2016/​schedule/​event/​eda_data_interchange/​ | Albert Davis talk at FOSDEM-2016 ]]). 
 +  * GnuCAP exporter (PCB --> simulation / analysis). 
 + 
 +==== Exporters ==== 
 + 
 +  * Geometric model representation:​ 
 +    * VRML exporter (PCB --> eye-candy for visualisation / sales pitch). 
 +    * OpenSCAD exporter (PCB --> MCAD integration / 3D printing / mock-up). 
 +    * STEP exporter (PCB --> MCAD integration). 
 +    * DXF exporter (PCB --> MCAD integration). 
 +    * STL exporter (PCB --> MCAD integration / 3D printing / mock-up). 
 +  * Electromagnetics / Capacitance exporters:​ 
 +    * Validate the workflow for GSvit. 
 +    * Validate the workflow for Nelma. 
 + 
 +==== Other unsorted crazy ideas ====
  
 +  * Gerber files as a background (for reverse engineering).
 +  * Import a gerber project (for reverse engineering).
   * Layer definition awareness (copper, non-copper, soldermask).   * Layer definition awareness (copper, non-copper, soldermask).
   * Editable soldermask (gang solder mask clearance … for QFP, SO, PLCC, etc. package types).   * Editable soldermask (gang solder mask clearance … for QFP, SO, PLCC, etc. package types).
Line 151: Line 196:
   * 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 164: Line 210:
     * 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.txt · Last modified: 2021/06/13 16:50 by bert