Commit 34d5dff9 authored by charras's avatar charras

added FreeRouter Dick's help

parent 801d4020
...@@ -41,6 +41,7 @@ set(PCBNEW_SRCS ...@@ -41,6 +41,7 @@ set(PCBNEW_SRCS
dialog_edit_module_text_base.cpp dialog_edit_module_text_base.cpp
dialog_exchange_modules_base.cpp dialog_exchange_modules_base.cpp
dialog_freeroute_exchange.cpp dialog_freeroute_exchange.cpp
dialog_freeroute_exchange_base.cpp
# dialog_gendrill.cpp # dialog_gendrill.cpp
dialog_general_options.cpp dialog_general_options.cpp
dialog_general_options_BoardEditor_base.cpp dialog_general_options_BoardEditor_base.cpp
......
This diff is collapsed.
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: dialog_freeroute_exchange.h // Name: dialog_freeroute_exchange.h
// Purpose:
// Author: jean-pierre Charras
// Modified by:
// Created: 14/03/2008 09:19:27
// RCS-ID:
// Copyright: kicad team
// Licence:
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 14/03/2008 09:19:27 // Generated by DialogBlocks (unregistered), 14/03/2008 09:19:27
...@@ -15,118 +7,34 @@ ...@@ -15,118 +7,34 @@
#ifndef _DIALOG_FREEROUTE_EXCHANGE_H_ #ifndef _DIALOG_FREEROUTE_EXCHANGE_H_
#define _DIALOG_FREEROUTE_EXCHANGE_H_ #define _DIALOG_FREEROUTE_EXCHANGE_H_
#include "dialog_freeroute_exchange_base.h"
/*! ///////////////////////////////////////////////////////////////////////////////
* Includes // Class DIALOG_FREEROUTE derived from wxFormBuilder class DIALOG_FREEROUTE_BASE
*/ ///////////////////////////////////////////////////////////////////////////////
class DIALOG_FREEROUTE : public DIALOG_FREEROUTE_BASE
////@begin includes
////@end includes
/*!
* Forward declarations
*/
////@begin forward declarations
////@end forward declarations
/*!
* Control identifiers
*/
////@begin control identifiers
#define ID_DIALOG_FREEROUTE_EXCHANGE 10000
#define ID_PANEL1 10001
#define ID_BUTTON4 10002
#define ID_BUTTON5 10003
#define ID_BUTTON6 10004
#define ID_BUTTON7 10005
#define ID_TEXTCTRL2 10006
#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_STYLE wxCAPTION|wxRESIZE_BORDER|wxCLOSE_BOX|wxTAB_TRAVERSAL
#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_TITLE _("dialog_freeroute_exchange")
#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_IDNAME ID_DIALOG_FREEROUTE_EXCHANGE
#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_SIZE wxSize(400, 300)
#define SYMBOL_DIALOG_FREEROUTE_EXCHANGE_POSITION wxDefaultPosition
////@end control identifiers
/*!
* dialog_freeroute_exchange class declaration
*/
class dialog_freeroute_exchange: public wxDialog
{ {
DECLARE_DYNAMIC_CLASS( dialog_freeroute_exchange ) private:
DECLARE_EVENT_TABLE() WinEDA_PcbFrame* m_Parent;
bool m_FreeRouteSetupChanged;
public:
/// Constructors
dialog_freeroute_exchange();
dialog_freeroute_exchange( wxWindow* parent, wxWindowID id = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_IDNAME, const wxString& caption = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_TITLE, const wxPoint& pos = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_POSITION, const wxSize& size = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_SIZE, long style = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_IDNAME, const wxString& caption = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_TITLE, const wxPoint& pos = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_POSITION, const wxSize& size = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_SIZE, long style = SYMBOL_DIALOG_FREEROUTE_EXCHANGE_STYLE );
/// Destructor
~dialog_freeroute_exchange();
/// Initialises member variables
void Init();
/// Creates the controls and sizers
void CreateControls();
////@begin dialog_freeroute_exchange event handler declarations
/// wxEVT_INIT_DIALOG event handler for ID_DIALOG_FREEROUTE_EXCHANGE
void OnInitDialog( wxInitDialogEvent& event );
/// wxEVT_CLOSE_WINDOW event handler for ID_DIALOG_FREEROUTE_EXCHANGE
void OnCloseWindow( wxCloseEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON4
void OnButton4Click( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON5
void OnButton5Click( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON6
void OnButton6Click( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON7
void OnButton7Click( wxCommandEvent& event );
/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL2 private:
// Virtual event handlers
void OnOKButtonClick( wxCommandEvent& event );
void OnExportButtonClick( wxCommandEvent& event );
void OnLaunchButtonClick( wxCommandEvent& event );
void OnImportButtonClick( wxCommandEvent& event );
void OnVisitButtonClick( wxCommandEvent& event );
void OnHelpButtonClick( wxCommandEvent& event );
void OnCancelButtonClick( wxCommandEvent& event );
void OnTextEditFrUrlUpdated( wxCommandEvent& event ); void OnTextEditFrUrlUpdated( wxCommandEvent& event );
void MyInit ( );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
void OnCancelClick( wxCommandEvent& event );
////@end dialog_freeroute_exchange event handler declarations
////@begin dialog_freeroute_exchange member function declarations public:
DIALOG_FREEROUTE( WinEDA_PcbFrame* parent );
bool GetFreeRouteSetupChanged() const { return m_FreeRouteSetupChanged ; } ~DIALOG_FREEROUTE() {};
void SetFreeRouteSetupChanged(bool value) { m_FreeRouteSetupChanged = value ; }
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end dialog_freeroute_exchange member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin dialog_freeroute_exchange member variables
wxButton* m_ExportDSN;
wxTextCtrl* m_FreerouteURLName;
private:
bool m_FreeRouteSetupChanged; // Flag set to true if Freeroute config changed
////@end dialog_freeroute_exchange member variables
WinEDA_PcbFrame* m_Parent;
}; };
#endif #endif
......
This diff is collapsed.
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008)
// 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 ) : wxDialog( 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_staticText2 = new wxStaticText( this, wxID_ANY, wxT("Export/Import to/from FreeRoute:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText2->Wrap( -1 );
m_staticText2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
bLeftSizer->Add( m_staticText2, 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, ID_BUTTON_EXPORT_DSN, wxT("Export a Specctra Design (*.dsn) File"), wxDefaultPosition, wxDefaultSize, 0 );
m_ExportDSN->SetToolTip( wxT("Export a Specctra DSN file (to FreeRouter)") );
bLeftButtonsSizer->Add( m_ExportDSN, 0, wxALL|wxEXPAND, 5 );
m_buttonLaunchFreeroute = new wxButton( this, wxID_BUTTON_LAUNCH, wxT("Launch FreeRouter via Java Web Start"), wxDefaultPosition, wxDefaultSize, 0 );
m_buttonLaunchFreeroute->SetToolTip( wxT("Use Java Web Start function to run FreeRouter via Internet (or your Browser if not found)") );
bLeftButtonsSizer->Add( m_buttonLaunchFreeroute, 0, wxALL|wxEXPAND, 5 );
m_buttonImport = new wxButton( this, wxID_BUTTON_IMPORT, wxT("Back Import the Specctra Session (*.ses) File"), wxDefaultPosition, wxDefaultSize, 0 );
m_buttonImport->SetToolTip( wxT("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, wxEXPAND, 5 );
bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 );
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
bUpperSizer->Add( m_staticline2, 0, wxALL|wxEXPAND, 5 );
wxBoxSizer* bRightSizer;
bRightSizer = new wxBoxSizer( wxVERTICAL );
m_staticText3 = new wxStaticText( this, wxID_ANY, wxT("FreeRoute Info:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText3->Wrap( -1 );
m_staticText3->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
bRightSizer->Add( m_staticText3, 0, wxALL, 5 );
wxBoxSizer* bRightSubSizer;
bRightSubSizer = new wxBoxSizer( wxHORIZONTAL );
bRightSubSizer->Add( 20, 20, 0, 0, 5 );
wxBoxSizer* bRightButtonsSizer;
bRightButtonsSizer = new wxBoxSizer( wxVERTICAL );
m_buttonVisit = new wxButton( this, wxID_BUTTON_VISIT, wxT("Visit the FreeRouting.net Website with your Browser"), wxDefaultPosition, wxDefaultSize, 0 );
bRightButtonsSizer->Add( m_buttonVisit, 0, wxALL|wxEXPAND, 5 );
m_staticText1 = new wxStaticText( this, wxID_ANY, wxT("FreeRouting.net URL"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText1->Wrap( -1 );
bRightButtonsSizer->Add( m_staticText1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_FreerouteURLName = new wxTextCtrl( this, wxID_TEXT_URL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_FreerouteURLName->SetToolTip( wxT("The URL of the FreeRouting.net website") );
bRightButtonsSizer->Add( m_FreerouteURLName, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_buttonHelp = new wxButton( this, wxID_BUTTON_HELP, wxT("Help"), wxDefaultPosition, wxDefaultSize, 0 );
bRightButtonsSizer->Add( m_buttonHelp, 0, wxALL|wxEXPAND, 5 );
bRightSubSizer->Add( bRightButtonsSizer, 1, wxEXPAND, 5 );
bRightSizer->Add( bRightSubSizer, 1, wxEXPAND, 5 );
bUpperSizer->Add( bRightSizer, 1, wxALIGN_CENTER_VERTICAL|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_sdbSizer1 = new wxStdDialogButtonSizer();
m_sdbSizer1OK = new wxButton( this, wxID_OK );
m_sdbSizer1->AddButton( m_sdbSizer1OK );
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
m_sdbSizer1->Realize();
bMainSizer->Add( m_sdbSizer1, 0, wxEXPAND|wxALL, 5 );
this->SetSizer( bMainSizer );
this->Layout();
// 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_buttonVisit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnVisitButtonClick ), NULL, this );
m_FreerouteURLName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnTextEditFrUrlUpdated ), NULL, this );
m_buttonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnHelpButtonClick ), NULL, this );
m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnCancelButtonClick ), NULL, this );
m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnOKButtonClick ), 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_buttonVisit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnVisitButtonClick ), NULL, this );
m_FreerouteURLName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnTextEditFrUrlUpdated ), NULL, this );
m_buttonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnHelpButtonClick ), NULL, this );
m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnCancelButtonClick ), NULL, this );
m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FREEROUTE_BASE::OnOKButtonClick ), NULL, this );
}
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_freeroute_exchange_base__
#define __dialog_freeroute_exchange_base__
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/button.h>
#include <wx/sizer.h>
#include <wx/statline.h>
#include <wx/textctrl.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
#define ID_BUTTON_EXPORT_DSN 1000
#define wxID_BUTTON_LAUNCH 1001
#define wxID_BUTTON_IMPORT 1002
#define wxID_BUTTON_VISIT 1003
#define wxID_TEXT_URL 1004
#define wxID_BUTTON_HELP 1005
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_FREEROUTE_BASE
///////////////////////////////////////////////////////////////////////////////
class DIALOG_FREEROUTE_BASE : public wxDialog
{
private:
protected:
wxStaticText* m_staticText2;
wxButton* m_ExportDSN;
wxButton* m_buttonLaunchFreeroute;
wxButton* m_buttonImport;
wxStaticLine* m_staticline2;
wxStaticText* m_staticText3;
wxButton* m_buttonVisit;
wxStaticText* m_staticText1;
wxTextCtrl* m_FreerouteURLName;
wxButton* m_buttonHelp;
wxStaticLine* m_staticline1;
wxStdDialogButtonSizer* m_sdbSizer1;
wxButton* m_sdbSizer1OK;
wxButton* m_sdbSizer1Cancel;
// 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 OnVisitButtonClick( wxCommandEvent& event ){ event.Skip(); }
virtual void OnTextEditFrUrlUpdated( wxCommandEvent& event ){ event.Skip(); }
virtual void OnHelpButtonClick( wxCommandEvent& event ){ event.Skip(); }
virtual void OnCancelButtonClick( wxCommandEvent& event ){ event.Skip(); }
virtual void OnOKButtonClick( 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( 631,211 ), long style = wxDEFAULT_DIALOG_STYLE );
~DIALOG_FREEROUTE_BASE();
};
#endif //__dialog_freeroute_exchange_base__
"<b>Guidelines:</b><br><br>\
<b>1)</b> in pcbnew: establish board perimeter.<br>\
<b>2)</b> in pcbnew: establish any zones, inclusive of net association.<br>\
<b>3)</b> in pcbnew: load in the netlist so you have all the components defined and instantiated.<br>\
<b>4)</b> in pcbnew: do the degree of component placements you are comfortable with.<br>\
It is a little easier to accurately position components in pcbnew than in freerouter, but either will work.<br>\
<b>5)</b> in pcbnew: set up the netclasses. power traces might be a little thicker.<br>\
so add a netclass called \"power\".<br>\
Make its traces thicker than what you establish for netclass \"Default\".<br>\
Set spacing and vias for each netclass.<br>\
<b>6)</b> in pcbnew: export to DSN.<br>\
<b>7)</b> load up freerouter (keep it running for any subsequent iterations of 6) through 14) here ).<br>\
<b>8)</b> in freerouter: load the project's *.dsn file.<br>\
<b>9)</b> useful, not mandatory: in freerouter: set your move snap modulus, which seems to default to 1 internal unit.<br>\
20 mils in x and in y is about reasonable.<br>\
<b>10)</b> in freerouter: finish placing any components, you can change sides of a part here also, rotate, whatever.<br>\
<b>11)</b> in freerouter: route the board, save frequently to a *.dsn file<br>\
while routing, in case of power loss, not yet a session file but a full *.dsn file.<br>\
The full freerouter *.dsn file is a superset format,\
one that fully defines the board and can be reloaded between power outages,\
whereas the *.ses file is not a complete design,\
but with the *.brd file constitutes a full design.<br>\
<b>12)</b> in freerouter: when done, or when you want to back import, then save as a session file, *.ses.<br>\
<b>13)</b> in pcbnew: backimport the session file<br>\
<b>14)</b> in pcbnew: at this point the zones have to be refilled. One way to do that is to simply run DRC."
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment