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 09:46]
bert [User Experience (UX) Improvements]
pcb-projects [2021/06/13 16:50] (current)
bert [Update the User Manual]
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:​preferences_subsystem|Preferences]]
 +===== 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 16:
 ''​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 57:
 ''​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 78:
 ''​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 84:
 ''​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 90:
 ''​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 93: Line 99:
   * Include a chapter on the Topological router in User Manual.   * Include a chapter on the Topological router in User Manual.
   * Include DJ's Getting Started in the User Manual.   * Include DJ's Getting Started in the User Manual.
-  ​Extend ​Getting Started for both autorouter and topological router.+    ​Expand the Autorouter chapter with a Getting Started ​example. 
 +    * Expand the Toporouter chapter with a Getting Started example. 
 +  * Include a Step-By-Step ​for the File/Import feature. 
 +    * Gschem workflow. 
 +    * TinyCAD workflow.
   * Add more step-by-step examples for existing exporters:   * Add more step-by-step examples for existing exporters:
     * Usage of Nelma.     * Usage of Nelma.
     * Usage of GSvit.     * Usage of GSvit.
     * Usage of Blind and buried vias.     * Usage of Blind and buried vias.
 +    * Appendix B: add chapter B.10 Problems related to Microsoft Windows.
     * 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 122:
   * 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 135:
   * 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 133: Line 144:
   * 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 140: Line 154:
   * 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 155: Line 169:
   * Load plug-ins on demand.   * Load plug-ins on demand.
  
-== File exchange ==+==== File exchange ​====
  
-  * IDF importer/exporter (ECAD <--> MCAD). +  ​* IDF exporter. 
-  * XML importer/exporter+  ​* IDF importer
-  * DXF importer/exporter ​ (PCB <--> ​MCAD). +  * XML exporter. 
-  * DSN importer/​exporter ​(<--> ​external routing). +  * XML importer. 
-  * Verilog-AMS exporter (--> simulation / analysis, see [[https://​archive.fosdem.org/​2016/​schedule/​event/​eda_data_interchange/​ | Albert Davis talk at FOSDEM-2016 ]]). +  * DXF exporter (PCB --> MCAD). 
-  * GnuCAP exporter (--> simulation / analysis).+  * DXF importer ​(MCAD --> PCB)
 +  * DSN exporter (PCB --> ​external routing). 
 +  * DSN importer (external routing ​--> ​PCB). 
 +  * 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 ==+==== Exporters ​====
  
   * Geometric model representation:​   * Geometric model representation:​
-    * VRML exporter (--> eye-candy for visualisation / sales pitch). +    * VRML exporter (PCB --> eye-candy for visualisation / sales pitch). 
-    * OpenSCAD exporter (--> MCAD integration / 3D printing / mock-up). +    * OpenSCAD exporter (PCB --> MCAD integration / 3D printing / mock-up). 
-    * STEP exporter (--> MCAD integration). +    * STEP exporter (PCB --> MCAD integration). 
-    * DXF exporter (--> MCAD integration). +    * DXF exporter (PCB --> MCAD integration). 
-    * STL exporter (--> MCAD integration / 3D printing / mock-up). +    * STL exporter (PCB --> MCAD integration / 3D printing / mock-up). 
-  * Electro magnetics ​exporters:+  * Electromagnetics / Capacitance ​exporters:
     * Validate the workflow for GSvit.     * Validate the workflow for GSvit.
     * 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 191: Line 209:
   * 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 ​shutting June 15th, 2021). Latest news: Travis CI has become a commercial service (https://​travis-ci.com/​plans) free for FOSS (credits upon request). 
 +  * Circle-CI ?
   * Under the hood structural improvements.   * Under the hood structural improvements.
   * Start a pcb-5.x.y development blueprint and branch "​devel"​ ?   * Start a pcb-5.x.y development blueprint and branch "​devel"​ ?
Line 204: Line 224:
     * 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.1520174799.txt.gz · Last modified: 2018/03/04 09:46 by bert