diff --git a/.gitignore b/.gitignore index 34b993656f..a1a31d7abd 100644 --- a/.gitignore +++ b/.gitignore @@ -20,7 +20,6 @@ eeschema/dialogs/dialog_bom_cfg_lexer.h eeschema/dialogs/dialog_bom_help_html.h eeschema/template_fieldnames_keywords.* eeschema/template_fieldnames_lexer.h -pcbnew/dialogs/dialog_freeroute_exchange_help_html.h pcbnew/pcb_plot_params_keywords.cpp pcbnew/pcb_plot_params_lexer.h pcb_calculator/attenuators/bridget_tee_formula.h @@ -74,4 +73,4 @@ demos/**/_autosave-* *.old *.gch *.orig -*.patch \ No newline at end of file +*.patch diff --git a/pcbnew/dialogs/dialog_freeroute_exchange.cpp b/pcbnew/dialogs/dialog_freeroute_exchange.cpp deleted file mode 100644 index 3200de151b..0000000000 --- a/pcbnew/dialogs/dialog_freeroute_exchange.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* - * This program source code file is part of KiCad, a free EDA CAD application. - * - * Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, you may find one here: - * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * or you may search the http://www.gnu.org website for the version 2 license, - * or you may write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ -/** - * @file dialog_freeroute_exchange.cpp - * Dialog to access to FreeRoute, the web bases free router, export/import files - * to/from FreeRoute - */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include <../common/dialogs/dialog_display_info_HTML_base.h> - -#include - -#ifdef __WINDOWS__ -#include -#endif - - -void PCB_EDIT_FRAME::Access_to_External_Tool( wxCommandEvent& event ) -{ - DIALOG_FREEROUTE dialog( this ); - dialog.ShowModal(); -} - - - -DIALOG_FREEROUTE::DIALOG_FREEROUTE( PCB_EDIT_FRAME* parent ): - DIALOG_FREEROUTE_BASE( parent ) -{ - m_Parent = parent; - init(); - - m_sdbSizerCancel->SetDefault(); - - // Rename "Cancel" button label to "Close", because: - // wxFormBuilder has no option to create/rename a Close button in the wxStdDialogButtonSizer - // and a Cancel button (id = wxID_CANCEL) is mandatory to allow dismiss dialog by ESC key - wxButton* button = dynamic_cast( wxWindow::FindWindowById( wxID_CANCEL, this ) ); - - if( button ) - button->SetLabel( _( "Close" ) ); - - GetSizer()->SetSizeHints( this ); - Centre(); -} - - - -// Specific data initialization -void DIALOG_FREEROUTE::init() -{ - SetFocus(); - m_freeRouterFound = false; - - wxFileName fileName( FindKicadFile( wxT( "freeroute.jar" ) ), wxPATH_UNIX ); - - if( fileName.FileExists() ) - m_freeRouterFound = true; - - m_buttonLaunchFreeroute->Enable( m_freeRouterFound ); - -} - -const char * s_FreeRouteHelpInfo = -#include -; - -void DIALOG_FREEROUTE::OnHelpButtonClick( wxCommandEvent& event ) -{ - DIALOG_DISPLAY_HTML_TEXT_BASE help_Dlg( this, wxID_ANY, - _("Freeroute Help"),wxDefaultPosition, wxSize( 650,550 ) ); - - wxString msg = FROM_UTF8(s_FreeRouteHelpInfo); - help_Dlg.m_htmlWindow->AppendToPage( msg ); - help_Dlg.ShowModal(); -} - - -void DIALOG_FREEROUTE::OnExportButtonClick( wxCommandEvent& event ) -{ - m_Parent->ExportToSpecctra( event ); -} - - -void DIALOG_FREEROUTE::OnImportButtonClick( wxCommandEvent& event ) -{ - m_Parent->ImportSpecctraSession( event ); -} - - -// Run freeroute, if it is available (freeroute.jar found in kicad binaries) -void DIALOG_FREEROUTE::OnLaunchButtonClick( wxCommandEvent& event ) -{ - wxString dsnFile; - - if( m_freeRouterFound ) - { - dsnFile = createDSN_File(); - - if( dsnFile.IsEmpty() ) // Something is wrong or command cancelled - return; - } - - wxFileName jarfileName( FindKicadFile( wxT( "freeroute.jar" ) ), wxPATH_UNIX ); - wxString command; - - // Find the Java application on Windows. - // Colud be no more needed since we now have to run only java, not java web start -#ifdef __WINDOWS__ - - // If you thought the registry was brain dead before, now you have to deal with - // accessing it in either 64 or 32 bit mode depending on the build version of - // Windows and the build version of KiCad. - - // This key works for 32 bit Java on 32 bit Windows and 64 bit Java on 64 bit Windows. - wxString keyName = wxT( "SOFTWARE\\JavaSoft\\Java Runtime Environment" ); - wxRegKey key( wxRegKey::HKLM, keyName, - wxIsPlatform64Bit() ? wxRegKey::WOW64ViewMode_64 : - wxRegKey::WOW64ViewMode_Default ); - - // It's possible that 32 bit Java is installed on 64 bit Windows. - if( !key.Exists() && wxIsPlatform64Bit() ) - { - keyName = wxT( "SOFTWARE\\Wow6432Node\\JavaSoft\\Java Runtime Environment" ); - key.SetName( wxRegKey::HKLM, keyName ); - } - - if( !key.Exists() ) - { - ::wxMessageBox( _( "It appears that the Java run time environment is not " - "installed on this computer. Java is required to use " - "FreeRoute." ), - _( "Pcbnew Error" ), wxOK | wxICON_ERROR ); - return; - } - - key.Open( wxRegKey::Read ); - - // Get the current version of java installed to determine the executable path. - wxString value; - key.QueryValue( wxT( "CurrentVersion" ), value ); - key.SetName( key.GetName() + wxT( "\\" ) + value ); - - key.QueryValue( wxT( "JavaHome" ), value ); - command = value + wxFileName::GetPathSeparator(); - command << wxT("bin\\java"); -#else // __WINDOWS__ - command = wxT( "java" ); -#endif - - command << wxT(" -jar "); - // add "freeroute.jar" to command line: - command << wxChar( '"' ) << jarfileName.GetFullPath() << wxChar( '"' ); - // add option to load the .dsn file - command << wxT( " -de " ); - // add *.dsn full filename (quoted): - command << wxChar( '"' ) << dsnFile << wxChar( '"' ); - - ProcessExecute( command ); -} - -const wxString DIALOG_FREEROUTE::createDSN_File() -{ - wxFileName fn( m_Parent->GetBoard()->GetFileName() ); - wxString dsn_ext = SpecctraDsnFileExtension; - fn.SetExt( dsn_ext ); - wxString mask = SpecctraDsnFileWildcard(); - - wxString fullFileName = EDA_FILE_SELECTOR( _( "Specctra DSN File" ), - fn.GetPath(), fn.GetFullName(), - dsn_ext, mask, - this, wxFD_SAVE, false ); - - if( !fullFileName.IsEmpty() ) - { - if( ! m_Parent->ExportSpecctraFile( fullFileName ) ) // the file was not created - return wxEmptyString; - } - - return fullFileName; -} - - diff --git a/pcbnew/dialogs/dialog_freeroute_exchange.h b/pcbnew/dialogs/dialog_freeroute_exchange.h deleted file mode 100644 index aaf15f0d47..0000000000 --- a/pcbnew/dialogs/dialog_freeroute_exchange.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * This program source code file is part of KiCad, a free EDA CAD application. - * - * Copyright (C) 2010-2014 Jean-Pierre Charras, jean-pierre.charras at wanadoo.fr - * Copyright (C) 1992-2014 KiCad Developers, see AUTHORS.txt for contributors. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, you may find one here: - * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * or you may search the http://www.gnu.org website for the version 2 license, - * or you may write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef _DIALOG_FREEROUTE_EXCHANGE_H_ -#define _DIALOG_FREEROUTE_EXCHANGE_H_ - -#include - -class DIALOG_FREEROUTE : public DIALOG_FREEROUTE_BASE -{ -private: - PCB_EDIT_FRAME* m_Parent; - bool m_freeRouterFound; - -private: - // Virtual event handlers - void OnExportButtonClick( wxCommandEvent& event ) override; - void OnLaunchButtonClick( wxCommandEvent& event ) override; - void OnImportButtonClick( wxCommandEvent& event ) override; - void OnHelpButtonClick( wxCommandEvent& event ) override; - - void init ( ); - const wxString createDSN_File(); - -public: - DIALOG_FREEROUTE( PCB_EDIT_FRAME* parent ); - ~DIALOG_FREEROUTE() {}; - -}; - -#endif - -// _DIALOG_FREEROUTE_EXCHANGE_H_ diff --git a/pcbnew/dialogs/dialog_freeroute_exchange_base.cpp b/pcbnew/dialogs/dialog_freeroute_exchange_base.cpp deleted file mode 100644 index 0528c4dfa1..0000000000 --- a/pcbnew/dialogs/dialog_freeroute_exchange_base.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Aug 4 2017) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_freeroute_exchange_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_FREEROUTE_BASE::DIALOG_FREEROUTE_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bUpperSizer; - bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bLeftSizer; - bLeftSizer = new wxBoxSizer( wxVERTICAL ); - - m_staticTextMsg = new wxStaticText( this, wxID_ANY, _("Export/Import to/from FreeRoute:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextMsg->Wrap( -1 ); - m_staticTextMsg->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) ); - - bLeftSizer->Add( m_staticTextMsg, 0, wxALL, 5 ); - - wxBoxSizer* bLeftSubSizerSizer; - bLeftSubSizerSizer = new wxBoxSizer( wxHORIZONTAL ); - - - bLeftSubSizerSizer->Add( 20, 20, 0, 0, 5 ); - - wxBoxSizer* bLeftButtonsSizer; - bLeftButtonsSizer = new wxBoxSizer( wxVERTICAL ); - - m_ExportDSN = new wxButton( this, wxID_ANY, _("Export a Specctra Design (*.dsn) File"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ExportDSN->SetToolTip( _("Export a Specctra DSN file (to FreeRouter)") ); - - bLeftButtonsSizer->Add( m_ExportDSN, 0, wxALL|wxEXPAND, 5 ); - - m_buttonLaunchFreeroute = new wxButton( this, wxID_ANY, _("Export a Specctra Design and Launch FreeRoute"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonLaunchFreeroute->SetToolTip( _("FreeRouter can be run only if freeroute.jar is found in Kicad binaries folder") ); - - bLeftButtonsSizer->Add( m_buttonLaunchFreeroute, 0, wxALL|wxEXPAND, 5 ); - - m_buttonImport = new wxButton( this, wxID_ANY, _("Back Import the Specctra Session (*.ses) File"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonImport->SetToolTip( _("Merge a session file created by FreeRouter with the current board.") ); - - bLeftButtonsSizer->Add( m_buttonImport, 0, wxALL|wxEXPAND, 5 ); - - - bLeftSubSizerSizer->Add( bLeftButtonsSizer, 1, wxEXPAND, 5 ); - - - bLeftSizer->Add( bLeftSubSizerSizer, 1, wxALL|wxEXPAND, 5 ); - - - bUpperSizer->Add( bLeftSizer, 1, wxALL|wxEXPAND, 5 ); - - - bMainSizer->Add( bUpperSizer, 1, wxEXPAND, 5 ); - - m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - bMainSizer->Add( m_staticline1, 0, wxEXPAND|wxALL, 5 ); - - m_sdbSizer = new wxStdDialogButtonSizer(); - m_sdbSizerCancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizer->AddButton( m_sdbSizerCancel ); - m_sdbSizerHelp = new wxButton( this, wxID_HELP ); - m_sdbSizer->AddButton( m_sdbSizerHelp ); - m_sdbSizer->Realize(); - - bMainSizer->Add( m_sdbSizer, 0, wxEXPAND|wxALL, 5 ); - - - this->SetSizer( bMainSizer ); - this->Layout(); - bMainSizer->Fit( this ); - - // Connect Events - m_ExportDSN->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnExportButtonClick ), NULL, this ); - m_buttonLaunchFreeroute->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnLaunchButtonClick ), NULL, this ); - m_buttonImport->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnImportButtonClick ), NULL, this ); - m_sdbSizerHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnHelpButtonClick ), NULL, this ); -} - -DIALOG_FREEROUTE_BASE::~DIALOG_FREEROUTE_BASE() -{ - // Disconnect Events - m_ExportDSN->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnExportButtonClick ), NULL, this ); - m_buttonLaunchFreeroute->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnLaunchButtonClick ), NULL, this ); - m_buttonImport->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnImportButtonClick ), NULL, this ); - m_sdbSizerHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnHelpButtonClick ), NULL, this ); - -} diff --git a/pcbnew/dialogs/dialog_freeroute_exchange_base.fbp b/pcbnew/dialogs/dialog_freeroute_exchange_base.fbp deleted file mode 100644 index 34e46989ac..0000000000 --- a/pcbnew/dialogs/dialog_freeroute_exchange_base.fbp +++ /dev/null @@ -1,607 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - dialog_freeroute_exchange_base - 1000 - none - 1 - dialog_freeroute_exchange_base - - . - - 1 - 1 - 1 - 1 - UI - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - - DIALOG_FREEROUTE_BASE - - -1,-1 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - DIALOG_SHIM; dialog_shim.h - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bMainSizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - bUpperSizer - wxHORIZONTAL - none - - 5 - wxALL|wxEXPAND - 1 - - - bLeftSizer - wxVERTICAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,90,92,-1,70,0 - 0 - 0 - wxID_ANY - Export/Import to/from FreeRoute: - - 0 - - - 0 - - 1 - m_staticTextMsg - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - - bLeftSubSizerSizer - wxHORIZONTAL - none - - 5 - - 0 - - 20 - protected - 20 - - - - 5 - wxEXPAND - 1 - - - bLeftButtonsSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Export a Specctra Design (*.dsn) File - - 0 - - - 0 - - 1 - m_ExportDSN - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Export a Specctra DSN file (to FreeRouter) - - wxFILTER_NONE - wxDefaultValidator - - - - - OnExportButtonClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Export a Specctra Design and Launch FreeRoute - - 0 - - - 0 - - 1 - m_buttonLaunchFreeroute - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - FreeRouter can be run only if freeroute.jar is found in Kicad binaries folder - - wxFILTER_NONE - wxDefaultValidator - - - - - OnLaunchButtonClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Back Import the Specctra Session (*.ses) File - - 0 - - - 0 - - 1 - m_buttonImport - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Merge a session file created by FreeRouter with the current board. - - wxFILTER_NONE - wxDefaultValidator - - - - - OnImportButtonClick - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_staticline1 - 1 - - - protected - 1 - - Resizable - 1 - - wxLI_HORIZONTAL - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 0 - - 0 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - - m_sdbSizer - protected - - - - OnHelpButtonClick - - - - - - - - - - diff --git a/pcbnew/dialogs/dialog_freeroute_exchange_base.h b/pcbnew/dialogs/dialog_freeroute_exchange_base.h deleted file mode 100644 index e213cecdab..0000000000 --- a/pcbnew/dialogs/dialog_freeroute_exchange_base.h +++ /dev/null @@ -1,62 +0,0 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Aug 4 2017) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_FREEROUTE_EXCHANGE_BASE_H__ -#define __DIALOG_FREEROUTE_EXCHANGE_BASE_H__ - -#include -#include -#include -class DIALOG_SHIM; - -#include "dialog_shim.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_FREEROUTE_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_FREEROUTE_BASE : public DIALOG_SHIM -{ - private: - - protected: - wxStaticText* m_staticTextMsg; - wxButton* m_ExportDSN; - wxButton* m_buttonLaunchFreeroute; - wxButton* m_buttonImport; - wxStaticLine* m_staticline1; - wxStdDialogButtonSizer* m_sdbSizer; - wxButton* m_sdbSizerCancel; - wxButton* m_sdbSizerHelp; - - // Virtual event handlers, overide them in your derived class - virtual void OnExportButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnLaunchButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnImportButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnHelpButtonClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_FREEROUTE_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_FREEROUTE_BASE(); - -}; - -#endif //__DIALOG_FREEROUTE_EXCHANGE_BASE_H__ diff --git a/pcbnew/dialogs/dialog_freeroute_exchange_help.html b/pcbnew/dialogs/dialog_freeroute_exchange_help.html deleted file mode 100644 index 61eb6ff7ae..0000000000 --- a/pcbnew/dialogs/dialog_freeroute_exchange_help.html +++ /dev/null @@ -1,71 +0,0 @@ - - -

Freerouter Guidelines:

-
    -
  1. in pcbnew, using the Layers Setup dialog:

  2. -
  3. choose the number of layers, and enter the name of each layer.


  4. - These should look something like this (if a 6 layer board): -
      -
    • Front - signal
    • -
    • Ground - power
    • -
    • H1_Signal - signal
    • -
    • V2_Signal - signal
    • -
    • Power - power
    • -
    • Back - signal
    • -

    - Notice that after the layer name there is a layer type field, either 'signal' or 'power', typically. - Any layer identified as 'power' will be removed from the layer menu in Freerouter, - as this will be assumed to contain a power zone. -

    - -
  5. in pcbnew: establish board perimeter.

  6. - -
  7. in pcbnew: load in the netlist so you have all the components defined and instantiated.

  8. - -
  9. in pcbnew: establish any zones, inclusive of net association.

  10. - -
  11. in pcbnew: do the degree of component placements you are comfortable with. - It is a little easier to accurately position components in pcbnew than in - freerouter, but either will work.

  12. - -
  13. in pcbnew: set up the netclasses. Power traces might be a little thicker - than signal traces. If so, add a netclass called 'power'. - Make its traces thicker than what you establish for netclass 'Default'. - Set trace width, spacing and vias for each netclass.

  14. - -
  15. in pcbnew: export to DSN.

  16. - -
  17. load up freerouter (keep it running for any subsequent iterations of 5) through 16) here).

  18. - -
  19. in freerouter: load the project's *.dsn file. Immediately after a load, all - components and traces (if any) will initially be 'fixed'. This is a 'lock - in place' toggle that you can undo by selecting a region with your mouse - and then selecting 'Unfix' from the menu. Occasionally you may want to - re-fix a trace or a part, if only temporarily. This keeps it locked in - place. -

  20. - -
  21. useful, not mandatory: in freerouter: set your move snap modulus, which seems - to default to 1 internal unit. - 20 mils in x and in y is about reasonable.

  22. - -
  23. in freerouter: finish placing any components, you can change sides of a part - here also, rotate, whatever.

  24. - -
  25. in freerouter: route the board, and save frequently to a *.dsn file while - routing in case of power loss. Pick the menu option for saving a full *.dsn - file, not a session file (yet). The full freerouter *.dsn file is a superset - format, one that can be reloaded in the event of a power loss. Whereas the - *.ses file is not a complete design, but only with the *.brd file - constitutes a full design. So it is important to backup your work to a - *.dsn file while routing in case of power loss.

  26. - -
  27. in freerouter: when done, or when you want to back import, then save as a session file, *.ses.

  28. - -
  29. in pcbnew: backimport the session file

  30. - -
  31. in pcbnew: at this point the zones have to be refilled. One way to do that - is to simply run DRC.
  32. - -
-