Merge trunk @ 5357
This commit is contained in:
commit
d0aeb87927
|
@ -0,0 +1,2 @@
|
|||
[core]
|
||||
excludesfile .bzrignore
|
|
@ -165,6 +165,51 @@ bool BASE_SCREEN::SetPreviousZoom()
|
|||
return false;
|
||||
}
|
||||
|
||||
/* Build the list of human readable grid list.
|
||||
* The list shows the grid size both in mils or mm.
|
||||
* aMmFirst = true to have mm first and mils after
|
||||
* false to have mils first and mm after
|
||||
*/
|
||||
int BASE_SCREEN::BuildGridsChoiceList( wxArrayString& aGridsList, bool aMmFirst) const
|
||||
{
|
||||
wxString msg;
|
||||
wxRealPoint curr_grid_size = GetGridSize();
|
||||
int idx = -1;
|
||||
int idx_usergrid = -1;
|
||||
|
||||
for( size_t i = 0; i < GetGridCount(); i++ )
|
||||
{
|
||||
const GRID_TYPE& grid = m_grids[i];
|
||||
double gridValueMils = To_User_Unit( INCHES, grid.m_Size.x ) * 1000;
|
||||
double gridValue_mm = To_User_Unit( MILLIMETRES, grid.m_Size.x );
|
||||
|
||||
if( grid.m_Id == ID_POPUP_GRID_USER )
|
||||
{
|
||||
msg = _( "User Grid" );
|
||||
idx_usergrid = i;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( aMmFirst )
|
||||
msg.Printf( _( "Grid: %.4f mm (%.2f mils)" ),
|
||||
gridValue_mm, gridValueMils );
|
||||
else
|
||||
msg.Printf( _( "Grid: %.2f mils (%.4f mm)" ),
|
||||
gridValueMils, gridValue_mm );
|
||||
}
|
||||
|
||||
aGridsList.Add( msg );
|
||||
|
||||
if( curr_grid_size == grid.m_Size )
|
||||
idx = i;
|
||||
}
|
||||
|
||||
if( idx < 0 )
|
||||
idx = idx_usergrid;
|
||||
|
||||
return idx;
|
||||
}
|
||||
|
||||
|
||||
void BASE_SCREEN::SetGridList( GRIDS& gridlist )
|
||||
{
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2014 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2008-2011 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 2014-2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2008-2015 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 1992-2015 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
|
||||
|
@ -305,6 +305,46 @@ wxConfigBase* GetNewConfig( const wxString& aProgName )
|
|||
return cfg;
|
||||
}
|
||||
|
||||
wxString GetKicadLockFilePath()
|
||||
{
|
||||
wxFileName lockpath;
|
||||
lockpath.AssignDir( wxGetHomeDir() ); // Default wx behavior
|
||||
|
||||
#if defined( __WXMAC__ )
|
||||
// In OSX use the standard per user cache directory
|
||||
lockpath.AppendDir( wxT( "Library" ) );
|
||||
lockpath.AppendDir( wxT( "Caches" ) );
|
||||
lockpath.AppendDir( wxT( "kicad" ) );
|
||||
#elif defined( __UNIX__ )
|
||||
wxString envstr;
|
||||
// Try first the standard XDG_RUNTIME_DIR, falling back to XDG_CACHE_HOME
|
||||
if( wxGetEnv( wxT( "XDG_RUNTIME_DIR" ), &envstr ) && !envstr.IsEmpty() )
|
||||
{
|
||||
lockpath.AssignDir( envstr );
|
||||
}
|
||||
else if( wxGetEnv( wxT( "XDG_CACHE_HOME" ), &envstr ) && !envstr.IsEmpty() )
|
||||
{
|
||||
lockpath.AssignDir( envstr );
|
||||
}
|
||||
else
|
||||
{
|
||||
// If all fails, just use ~/.cache
|
||||
lockpath.AppendDir( wxT( ".cache" ) );
|
||||
}
|
||||
|
||||
lockpath.AppendDir( wxT( "kicad" ) );
|
||||
#endif
|
||||
|
||||
#if defined( __WXMAC__ ) || defined( __UNIX__ )
|
||||
if( !lockpath.DirExists() )
|
||||
{
|
||||
// Lockfiles should be only readable by the user
|
||||
lockpath.Mkdir( 0700, wxPATH_MKDIR_FULL );
|
||||
}
|
||||
#endif
|
||||
return lockpath.GetPath();
|
||||
}
|
||||
|
||||
|
||||
wxString GetKicadConfigPath()
|
||||
{
|
||||
|
|
|
@ -128,6 +128,7 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( KIWAY* aKiway, wxWindow* aParent,
|
|||
m_snapToGrid = true;
|
||||
m_MsgFrameHeight = EDA_MSG_PANEL::GetRequiredHeight();
|
||||
m_movingCursorWithKeyboard = false;
|
||||
m_zoomLevelCoeff = 1.0;
|
||||
|
||||
m_auimgr.SetFlags(wxAUI_MGR_DEFAULT|wxAUI_MGR_LIVE_RESIZE);
|
||||
|
||||
|
@ -613,16 +614,7 @@ bool EDA_DRAW_FRAME::HandleBlockEnd( wxDC* DC )
|
|||
|
||||
void EDA_DRAW_FRAME::UpdateStatusBar()
|
||||
{
|
||||
wxString Line;
|
||||
BASE_SCREEN* screen = GetScreen();
|
||||
|
||||
if( !screen )
|
||||
return;
|
||||
|
||||
// Display Zoom level: zoom = zoom_coeff/ZoomScalar
|
||||
Line.Printf( wxT( "Z %g" ), screen->GetZoom() );
|
||||
|
||||
SetStatusText( Line, 1 );
|
||||
SetStatusText( GetZoomLevelIndicator(), 1 );
|
||||
|
||||
// Absolute and relative cursor positions are handled by overloading this function and
|
||||
// handling the internal to user units conversion at the appropriate level.
|
||||
|
@ -631,6 +623,22 @@ void EDA_DRAW_FRAME::UpdateStatusBar()
|
|||
DisplayUnitsMsg();
|
||||
}
|
||||
|
||||
const wxString EDA_DRAW_FRAME::GetZoomLevelIndicator() const
|
||||
{
|
||||
BASE_SCREEN* screen = GetScreen();
|
||||
wxString Line;
|
||||
|
||||
if( screen )
|
||||
{
|
||||
// returns a human readable value which can be displayed as zoom
|
||||
// level indicator in dialogs.
|
||||
double level = m_zoomLevelCoeff / (double)screen->GetZoom();
|
||||
Line.Printf( wxT( "Z %.2f" ), level );
|
||||
}
|
||||
|
||||
return Line;
|
||||
}
|
||||
|
||||
|
||||
void EDA_DRAW_FRAME::LoadSettings( wxConfigBase* aCfg )
|
||||
{
|
||||
|
|
|
@ -101,7 +101,7 @@ void FOOTPRINT_INFO::load()
|
|||
|
||||
std::auto_ptr<MODULE> m( fptable->FootprintLoad( m_nickname, m_fpname ) );
|
||||
|
||||
m_pad_count = m->GetPadCount( MODULE::DO_NOT_INCLUDE_NPTH );
|
||||
m_pad_count = m->GetPadCount( DO_NOT_INCLUDE_NPTH );
|
||||
m_keywords = m->GetKeywords();
|
||||
m_doc = m->GetDescription();
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2014 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||
* Copyright (C) 2014 KiCad Developers, see CHANGELOG.TXT for contributors.
|
||||
* Copyright (C) 2014-2015 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||
* Copyright (C) 2014-2015 KiCad Developers, see CHANGELOG.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
|
||||
|
@ -24,6 +24,7 @@
|
|||
|
||||
#include <wx/filename.h>
|
||||
#include <wx/snglinst.h>
|
||||
#include <common.h>
|
||||
|
||||
|
||||
wxSingleInstanceChecker* LockFile( const wxString& aFileName )
|
||||
|
@ -41,7 +42,8 @@ wxSingleInstanceChecker* LockFile( const wxString& aFileName )
|
|||
// We can have filenames coming from Windows, so also convert Windows separator
|
||||
lockFileName.Replace( wxT( "\\" ), wxT( "_" ) );
|
||||
|
||||
wxSingleInstanceChecker* p = new wxSingleInstanceChecker( lockFileName );
|
||||
wxSingleInstanceChecker* p = new wxSingleInstanceChecker( lockFileName,
|
||||
GetKicadLockFilePath() );
|
||||
|
||||
if( p->IsAnotherRunning() )
|
||||
{
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
|
||||
* Copyright (C) 2008-2011 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 2004-2015 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
|
||||
* Copyright (C) 2008-2015 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 1992-2015 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
|
||||
|
@ -353,7 +353,7 @@ bool PGM_BASE::initPgm()
|
|||
|
||||
wxInitAllImageHandlers();
|
||||
|
||||
m_pgm_checker = new wxSingleInstanceChecker( pgm_name.GetName().Lower() + wxT( "-" ) + wxGetUserId() );
|
||||
m_pgm_checker = new wxSingleInstanceChecker( pgm_name.GetName().Lower() + wxT( "-" ) + wxGetUserId(), GetKicadLockFilePath() );
|
||||
|
||||
if( m_pgm_checker->IsAnotherRunning() )
|
||||
{
|
||||
|
|
|
@ -251,7 +251,7 @@ void EDA_DRAW_FRAME::AddMenuZoomAndGrid( wxMenu* MasterMenu )
|
|||
// Populate zoom submenu.
|
||||
for( int i = 0; i < maxZoomIds; i++ )
|
||||
{
|
||||
msg.Printf( wxT( "%g" ), screen->m_ZoomList[i] );
|
||||
msg.Printf( wxT( "%.2f" ), m_zoomLevelCoeff / screen->m_ZoomList[i] );
|
||||
|
||||
zoom_choice->Append( ID_POPUP_ZOOM_LEVEL_START + i, _( "Zoom: " ) + msg,
|
||||
wxEmptyString, wxITEM_CHECK );
|
||||
|
@ -266,43 +266,16 @@ void EDA_DRAW_FRAME::AddMenuZoomAndGrid( wxMenu* MasterMenu )
|
|||
AddMenuItem( MasterMenu, gridMenu, ID_POPUP_GRID_SELECT,
|
||||
_( "Grid Select" ), KiBitmap( grid_select_xpm ) );
|
||||
|
||||
GRID_TYPE tmp;
|
||||
wxRealPoint grid = screen->GetGridSize();
|
||||
wxArrayString gridsList;
|
||||
int icurr = screen->BuildGridsChoiceList( gridsList, g_UserUnit != INCHES );
|
||||
|
||||
for( size_t i = 0; i < screen->GetGridCount(); i++ )
|
||||
for( unsigned i = 0; i < gridsList.GetCount(); i++ )
|
||||
{
|
||||
tmp = screen->GetGrid( i );
|
||||
double gridValueInch = To_User_Unit( INCHES, tmp.m_Size.x );
|
||||
double gridValue_mm = To_User_Unit( MILLIMETRES, tmp.m_Size.x );
|
||||
GRID_TYPE& grid = screen->GetGrid( i );
|
||||
gridMenu->Append( grid.m_Id, gridsList[i], wxEmptyString, true );
|
||||
|
||||
if( tmp.m_Id == ID_POPUP_GRID_USER )
|
||||
{
|
||||
msg = _( "User Grid" );
|
||||
}
|
||||
else
|
||||
{
|
||||
switch( g_UserUnit )
|
||||
{
|
||||
case INCHES:
|
||||
msg.Printf( wxT( "%.1f mils, (%.4f mm)" ),
|
||||
gridValueInch * 1000, gridValue_mm );
|
||||
break;
|
||||
|
||||
case MILLIMETRES:
|
||||
msg.Printf( wxT( "%.4f mm, (%.1f mils)" ),
|
||||
gridValue_mm, gridValueInch * 1000 );
|
||||
break;
|
||||
|
||||
case UNSCALED_UNITS:
|
||||
msg = wxT( "???" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gridMenu->Append( tmp.m_Id, msg, wxEmptyString, true );
|
||||
|
||||
if( grid == tmp.m_Size )
|
||||
gridMenu->Check( tmp.m_Id, true );
|
||||
if( (int)i == icurr )
|
||||
gridMenu->Check( grid.m_Id, true );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -442,17 +442,6 @@ bool CVPCB_MAINFRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, i
|
|||
return false;
|
||||
|
||||
m_NetlistFileName = aFileSet[0];
|
||||
ReadNetListAndLinkFiles();
|
||||
|
||||
UpdateTitle();
|
||||
|
||||
// Resize the components list box. This is needed in case the
|
||||
// contents have shrunk compared to the previous netlist.
|
||||
m_compListBox->UpdateWidth();
|
||||
|
||||
// OSX need it since some objects are "rebuild" just make aware AUI
|
||||
// Fixes #1258081
|
||||
m_auimgr.Update();
|
||||
|
||||
if( Kiface().IsSingle() )
|
||||
{
|
||||
|
@ -470,6 +459,18 @@ bool CVPCB_MAINFRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, i
|
|||
Prj().SetProjectFullName( pro.GetFullPath() );
|
||||
}
|
||||
|
||||
ReadNetListAndLinkFiles();
|
||||
|
||||
UpdateTitle();
|
||||
|
||||
// Resize the components list box. This is needed in case the
|
||||
// contents have shrunk compared to the previous netlist.
|
||||
m_compListBox->UpdateWidth();
|
||||
|
||||
// OSX need it since some objects are "rebuild" just make aware AUI
|
||||
// Fixes #1258081
|
||||
m_auimgr.Update();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Cmp-Mod V01 Created by Cvpcb (2014-12-31 BZR 5344)-product date = 01/01/2015 18:25:40
|
||||
Cmp-Mod V01 Created by Cvpcb (2014-12-31 BZR 5344)-product date = 01/01/2015 20:57:19
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = /4549F4BE;
|
||||
|
@ -102,7 +102,7 @@ BeginCmp
|
|||
TimeStamp = /48B4F266;
|
||||
Reference = U1;
|
||||
ValeurCmp = ECC83;
|
||||
IdModule = Valves:VALVE-ECC-83-1;
|
||||
IdModule = Valves:VALVE-ECC-83-2;
|
||||
EndCmp
|
||||
|
||||
EndListe
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
(kicad_pcb (version 4) (host pcbnew "(2014-12-31 BZR 5344)-product")
|
||||
|
||||
(general
|
||||
(links 20)
|
||||
(no_connects 0)
|
||||
(area 118.759514 89.3318 168.710429 133.6802)
|
||||
(links 21)
|
||||
(no_connects 1)
|
||||
(area 119.824499 90.614499 168.465501 132.905501)
|
||||
(thickness 1.6002)
|
||||
(drawings 4)
|
||||
(tracks 46)
|
||||
(tracks 49)
|
||||
(zones 0)
|
||||
(modules 15)
|
||||
(nets 14)
|
||||
|
@ -411,41 +411,6 @@
|
|||
)
|
||||
)
|
||||
|
||||
(module Valves:VALVE-ECC-83-1 (layer Dessus) (tedit 54A58223) (tstamp 54A5839D)
|
||||
(at 149.3 109.2)
|
||||
(path /48B4F266)
|
||||
(fp_text reference U1 (at 1.27 -11.43) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value ECC83 (at 0 11.43) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_circle (center 0 0) (end 10.16 1.27) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole circle (at 3.4544 4.75488) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 8 "Net-(R1-Pad1)"))
|
||||
(pad 2 thru_hole circle (at 5.60832 1.8288) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 5 "Net-(P1-Pad2)"))
|
||||
(pad 3 thru_hole circle (at 5.60832 -1.8288) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 9 "Net-(R2-Pad1)"))
|
||||
(pad 4 thru_hole circle (at 3.4544 -4.75488) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 6 "Net-(P4-Pad1)"))
|
||||
(pad 5 thru_hole circle (at 0 -5.8928) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 6 "Net-(P4-Pad1)"))
|
||||
(pad 6 thru_hole circle (at -3.4544 -4.75488) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 2 "Net-(C1-Pad1)"))
|
||||
(pad 7 thru_hole circle (at -5.60832 -1.8288) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 8 "Net-(R1-Pad1)"))
|
||||
(pad 8 thru_hole circle (at -5.60832 1.78816) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 4 "Net-(C2-Pad2)"))
|
||||
(pad 9 thru_hole circle (at -3.4544 4.75488) (size 2.032 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 7 "Net-(P4-Pad2)"))
|
||||
(model Valves/VALVE-ECC-83-1.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(module connect:1pin (layer Dessus) (tedit 54A58223) (tstamp 54A583D2)
|
||||
(at 123.19 93.98)
|
||||
(descr "module 1 pin (ou trou mecanique de percage)")
|
||||
|
@ -510,57 +475,97 @@
|
|||
(net 13 "Net-(P8-Pad1)"))
|
||||
)
|
||||
|
||||
(module Valves:VALVE-ECC-83-2 (layer Dessus) (tedit 54A5A61F) (tstamp 54A5A6B2)
|
||||
(at 149.3 109.2)
|
||||
(path /48B4F266)
|
||||
(fp_text reference U1 (at 0 -11.43) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value ECC83 (at 0 11.43) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_circle (center 0 0) (end 10.16 1.27) (layer F.SilkS) (width 0.15))
|
||||
(pad 1 thru_hole oval (at 3.4544 4.75488 306) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 8 "Net-(R1-Pad1)"))
|
||||
(pad 2 thru_hole oval (at 5.60832 1.8288 342) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 5 "Net-(P1-Pad2)"))
|
||||
(pad 3 thru_hole oval (at 5.60832 -1.8288 18) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 9 "Net-(R2-Pad1)"))
|
||||
(pad 4 thru_hole oval (at 3.4544 -4.75488 54) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 6 "Net-(P4-Pad1)"))
|
||||
(pad 5 thru_hole oval (at 0 -5.8928 90) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 6 "Net-(P4-Pad1)"))
|
||||
(pad 6 thru_hole oval (at -3.4544 -4.75488 306) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 2 "Net-(C1-Pad1)"))
|
||||
(pad 7 thru_hole oval (at -5.60832 -1.8288 342) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 8 "Net-(R1-Pad1)"))
|
||||
(pad 8 thru_hole oval (at -5.60832 1.78816 18) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 4 "Net-(C2-Pad2)"))
|
||||
(pad 9 thru_hole oval (at -3.4544 4.75488 54) (size 2.032 3.048) (drill oval 1.016 2.032) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 7 "Net-(P4-Pad2)"))
|
||||
(pad 2 thru_hole circle (at 0 0) (size 4.50088 4.50088) (drill 3.0988) (layers *.Cu *.Mask F.SilkS)
|
||||
(net 5 "Net-(P1-Pad2)"))
|
||||
(model Valves/VALVE-ECC-83-2.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(gr_line (start 168.275 132.715) (end 120.015 132.715) (angle 90) (layer Edge.Cuts) (width 0.381))
|
||||
(gr_line (start 168.275 90.805) (end 120.015 90.805) (angle 90) (layer Edge.Cuts) (width 0.381))
|
||||
(gr_line (start 168.275 90.805) (end 168.275 132.715) (angle 90) (layer Edge.Cuts) (width 0.381))
|
||||
(gr_line (start 120.015 90.805) (end 120.015 132.715) (angle 90) (layer Edge.Cuts) (width 0.381))
|
||||
|
||||
(segment (start 165.1 123.825) (end 165.354 123.825) (width 0.8636) (layer Dessous) (net 1) (status 30))
|
||||
(segment (start 125.73 101.6) (end 131.445 101.6) (width 0.8636) (layer Dessous) (net 2) (status 420))
|
||||
(segment (start 123.19 102.87) (end 124.46 102.87) (width 0.8636) (layer Dessous) (net 2) (status 810))
|
||||
(segment (start 142.90548 101.6) (end 145.7706 104.46512) (width 0.8636) (layer Dessous) (net 2) (status 420))
|
||||
(segment (start 131.445 101.6) (end 142.90548 101.6) (width 0.8636) (layer Dessous) (net 2) (status 810))
|
||||
(segment (start 124.46 102.87) (end 125.73 101.6) (width 0.8636) (layer Dessous) (net 2))
|
||||
(segment (start 124.46 114.935) (end 123.825 114.935) (width 0.8636) (layer Dessous) (net 3) (status 30))
|
||||
(segment (start 123.19 114.3) (end 123.19 111.125) (width 0.8636) (layer Dessous) (net 3) (status 20))
|
||||
(segment (start 123.825 114.935) (end 123.19 114.3) (width 0.8636) (layer Dessous) (net 3) (status 10))
|
||||
(segment (start 131.445 108.585) (end 128.905 111.125) (width 0.8636) (layer Dessous) (net 3) (status 810))
|
||||
(segment (start 131.445 101.6) (end 142.90548 101.6) (width 0.8636) (layer Dessous) (net 2) (status 810))
|
||||
(segment (start 142.90548 101.6) (end 145.7706 104.46512) (width 0.8636) (layer Dessous) (net 2) (status 420))
|
||||
(segment (start 123.19 102.87) (end 124.46 102.87) (width 0.8636) (layer Dessous) (net 2) (status 810))
|
||||
(segment (start 125.73 101.6) (end 131.445 101.6) (width 0.8636) (layer Dessous) (net 2) (status 420))
|
||||
(segment (start 128.905 111.125) (end 123.19 111.125) (width 0.8636) (layer Dessous) (net 3) (status 420))
|
||||
(segment (start 142.875 116.205) (end 143.51 116.84) (width 0.8636) (layer Dessous) (net 4))
|
||||
(segment (start 142.875 112.395) (end 142.875 116.205) (width 0.8636) (layer Dessous) (net 4))
|
||||
(segment (start 143.61668 111.65332) (end 142.875 112.395) (width 0.8636) (layer Dessous) (net 4) (status 10))
|
||||
(segment (start 140.97 128.905) (end 142.24 128.905) (width 0.8636) (layer Dessous) (net 4) (status 810))
|
||||
(segment (start 142.24 128.905) (end 143.51 127.635) (width 0.8636) (layer Dessous) (net 4))
|
||||
(segment (start 143.51 127.635) (end 143.51 116.84) (width 0.8636) (layer Dessous) (net 4))
|
||||
(segment (start 143.61668 111.00816) (end 143.61668 111.65332) (width 0.8636) (layer Dessous) (net 4) (status 830))
|
||||
(segment (start 131.445 108.585) (end 128.905 111.125) (width 0.8636) (layer Dessous) (net 3) (status 810))
|
||||
(segment (start 123.825 114.935) (end 123.19 114.3) (width 0.8636) (layer Dessous) (net 3) (status 10))
|
||||
(segment (start 123.19 114.3) (end 123.19 111.125) (width 0.8636) (layer Dessous) (net 3) (status 20))
|
||||
(segment (start 124.46 114.935) (end 123.825 114.935) (width 0.8636) (layer Dessous) (net 3) (status 30))
|
||||
(segment (start 131.445 128.905) (end 140.97 128.905) (width 0.8636) (layer Dessous) (net 4) (status C30))
|
||||
(segment (start 161.925 113.03) (end 165.1 113.03) (width 0.8636) (layer Dessous) (net 5) (status 420))
|
||||
(segment (start 159.9438 111.0488) (end 161.925 113.03) (width 0.8636) (layer Dessous) (net 5))
|
||||
(segment (start 165.1 113.03) (end 165.1 116.205) (width 0.8636) (layer Dessous) (net 5) (status C30))
|
||||
(segment (start 143.61668 111.00816) (end 143.61668 111.65332) (width 0.8636) (layer Dessous) (net 4) (status 830))
|
||||
(segment (start 143.51 127.635) (end 143.51 116.84) (width 0.8636) (layer Dessous) (net 4))
|
||||
(segment (start 142.24 128.905) (end 143.51 127.635) (width 0.8636) (layer Dessous) (net 4))
|
||||
(segment (start 140.97 128.905) (end 142.24 128.905) (width 0.8636) (layer Dessous) (net 4) (status 810))
|
||||
(segment (start 143.61668 111.65332) (end 142.875 112.395) (width 0.8636) (layer Dessous) (net 4) (status 10))
|
||||
(segment (start 142.875 112.395) (end 142.875 116.205) (width 0.8636) (layer Dessous) (net 4))
|
||||
(segment (start 142.875 116.205) (end 143.51 116.84) (width 0.8636) (layer Dessous) (net 4))
|
||||
(segment (start 154.83332 111.0488) (end 159.9438 111.0488) (width 0.8636) (layer Dessous) (net 5) (status 810))
|
||||
(segment (start 149.86 115.697) (end 149.86 107.33952) (width 0.8636) (layer Dessous) (net 6))
|
||||
(segment (start 149.86 107.33952) (end 152.7544 104.44512) (width 0.8636) (layer Dessous) (net 6) (tstamp 54A589AE) (status 20))
|
||||
(segment (start 149.86 115.697) (end 150.495 116.332) (width 0.8636) (layer Dessous) (net 6))
|
||||
(segment (start 149.225 103.3272) (end 151.54148 103.3272) (width 0.8636) (layer Dessous) (net 6) (status 10))
|
||||
(segment (start 151.54148 103.3272) (end 152.6794 104.46512) (width 0.8636) (layer Dessous) (net 6) (status 420))
|
||||
(segment (start 165.1 113.03) (end 165.1 116.205) (width 0.8636) (layer Dessous) (net 5) (status C30))
|
||||
(segment (start 159.9438 111.0488) (end 161.925 113.03) (width 0.8636) (layer Dessous) (net 5))
|
||||
(segment (start 161.925 113.03) (end 165.1 113.03) (width 0.8636) (layer Dessous) (net 5) (status 420))
|
||||
(segment (start 152.7544 104.44512) (end 152.7544 105.5456) (width 0.8636) (layer Dessous) (net 6) (status C00000))
|
||||
(segment (start 152.7544 105.5456) (end 152.5 105.8) (width 0.8636) (layer Dessous) (net 6) (tstamp 54A5A703) (status 400000))
|
||||
(segment (start 152.5 105.8) (end 152.5 110.7) (width 0.8636) (layer Dessous) (net 6) (tstamp 54A5A705))
|
||||
(segment (start 152.5 110.7) (end 149.86 113.34) (width 0.8636) (layer Dessous) (net 6) (tstamp 54A5A707))
|
||||
(segment (start 149.86 113.34) (end 149.86 115.697) (width 0.8636) (layer Dessous) (net 6) (tstamp 54A5A709))
|
||||
(segment (start 150.495 128.905) (end 150.495 116.332) (width 0.8636) (layer Dessous) (net 6) (status 810))
|
||||
(segment (start 147.955 128.905) (end 147.955 116.15928) (width 0.8636) (layer Dessous) (net 7) (status 810))
|
||||
(segment (start 151.54148 103.3272) (end 152.6794 104.46512) (width 0.8636) (layer Dessous) (net 6) (status 420))
|
||||
(segment (start 149.225 103.3272) (end 151.54148 103.3272) (width 0.8636) (layer Dessous) (net 6) (status 10))
|
||||
(segment (start 149.86 115.697) (end 150.495 116.332) (width 0.8636) (layer Dessous) (net 6))
|
||||
(segment (start 147.955 116.15928) (end 145.7706 113.97488) (width 0.8636) (layer Dessous) (net 7) (status 420))
|
||||
(segment (start 153.67 131.445) (end 154.94 130.175) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 130.175 131.445) (end 153.67 131.445) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 128.905 130.175) (end 130.175 131.445) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 128.905 127) (end 128.905 130.175) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 154.94 130.175) (end 154.94 116.23548) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 154.94 116.23548) (end 152.6794 113.97488) (width 0.8636) (layer Dessous) (net 8) (status 420))
|
||||
(segment (start 140.97 121.285) (end 140.97 123.825) (width 0.8636) (layer Dessous) (net 8) (status 810))
|
||||
(segment (start 142.1638 107.3912) (end 140.97 108.585) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 140.97 108.585) (end 140.97 121.285) (width 0.8636) (layer Dessous) (net 8) (status 420))
|
||||
(segment (start 143.61668 107.3912) (end 142.1638 107.3912) (width 0.8636) (layer Dessous) (net 8) (status 810))
|
||||
(segment (start 130.175 125.73) (end 128.905 127) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 139.065 125.73) (end 130.175 125.73) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 147.955 128.905) (end 147.955 116.15928) (width 0.8636) (layer Dessous) (net 7) (status 810))
|
||||
(segment (start 140.97 123.825) (end 139.065 125.73) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 154.83332 107.3912) (end 165.0238 107.3912) (width 0.8636) (layer Dessous) (net 9) (status 830))
|
||||
(segment (start 139.065 125.73) (end 130.175 125.73) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 130.175 125.73) (end 128.905 127) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 143.61668 107.3912) (end 142.1638 107.3912) (width 0.8636) (layer Dessous) (net 8) (status 810))
|
||||
(segment (start 140.97 108.585) (end 140.97 121.285) (width 0.8636) (layer Dessous) (net 8) (status 420))
|
||||
(segment (start 142.1638 107.3912) (end 140.97 108.585) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 140.97 121.285) (end 140.97 123.825) (width 0.8636) (layer Dessous) (net 8) (status 810))
|
||||
(segment (start 154.94 116.23548) (end 152.6794 113.97488) (width 0.8636) (layer Dessous) (net 8) (status 420))
|
||||
(segment (start 154.94 130.175) (end 154.94 116.23548) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 128.905 127) (end 128.905 130.175) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 128.905 130.175) (end 130.175 131.445) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 130.175 131.445) (end 153.67 131.445) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 153.67 131.445) (end 154.94 130.175) (width 0.8636) (layer Dessous) (net 8))
|
||||
(segment (start 165.0238 107.3912) (end 165.1 107.315) (width 0.8636) (layer Dessous) (net 9) (status 430))
|
||||
(segment (start 154.83332 107.3912) (end 165.0238 107.3912) (width 0.8636) (layer Dessous) (net 9) (status 830))
|
||||
|
||||
(zone (net 1) (net_name GND) (layer Dessous) (tstamp 4EED96A1) (hatch edge 0.508)
|
||||
(connect_pads (clearance 0.635))
|
||||
|
@ -618,53 +623,52 @@
|
|||
(xy 151.54148 102.1334) (xy 151.165771 102.1334) (xy 151.110021 102.049964) (xy 150.533196 101.664542) (xy 149.852785 101.5292)
|
||||
(xy 148.747215 101.5292) (xy 148.066804 101.664542) (xy 147.489979 102.049964) (xy 147.13985 102.573968) (xy 146.570951 102.364091)
|
||||
(xy 145.877744 102.391328) (xy 145.540546 102.546778) (xy 143.749624 100.755856) (xy 143.362328 100.497073) (xy 142.90548 100.4062)
|
||||
(xy 133.03253 100.4062) (xy 132.979992 100.279362) (xy 132.765638 100.065008) (xy 132.727151 100.049066) (xy 132.727151 96.701126)
|
||||
(xy 132.698867 96.196681) (xy 132.560239 95.862003) (xy 132.375891 95.763326) (xy 132.201674 95.937543) (xy 132.201674 95.589109)
|
||||
(xy 132.102997 95.404761) (xy 131.626126 95.237849) (xy 131.121681 95.266133) (xy 130.787003 95.404761) (xy 130.688326 95.589109)
|
||||
(xy 131.445 96.345783) (xy 132.201674 95.589109) (xy 132.201674 95.937543) (xy 131.619217 96.52) (xy 132.375891 97.276674)
|
||||
(xy 132.560239 97.177997) (xy 132.727151 96.701126) (xy 132.727151 100.049066) (xy 132.485571 99.949) (xy 132.201674 99.949)
|
||||
(xy 133.045192 100.4062) (xy 132.886808 100.165087) (xy 132.727151 100.057317) (xy 132.727151 96.701126) (xy 132.698867 96.196681)
|
||||
(xy 132.560239 95.862003) (xy 132.375891 95.763326) (xy 132.201674 95.937543) (xy 132.201674 95.589109) (xy 132.102997 95.404761)
|
||||
(xy 131.626126 95.237849) (xy 131.121681 95.266133) (xy 130.787003 95.404761) (xy 130.688326 95.589109) (xy 131.445 96.345783)
|
||||
(xy 132.201674 95.589109) (xy 132.201674 95.937543) (xy 131.619217 96.52) (xy 132.375891 97.276674) (xy 132.560239 97.177997)
|
||||
(xy 132.727151 96.701126) (xy 132.727151 100.057317) (xy 132.633568 99.994148) (xy 132.334 99.934072) (xy 132.201674 99.934072)
|
||||
(xy 132.201674 97.450891) (xy 131.445 96.694217) (xy 131.270783 96.868434) (xy 131.270783 96.52) (xy 130.514109 95.763326)
|
||||
(xy 130.329761 95.862003) (xy 130.162849 96.338874) (xy 130.191133 96.843319) (xy 130.329761 97.177997) (xy 130.514109 97.276674)
|
||||
(xy 131.270783 96.52) (xy 131.270783 96.868434) (xy 130.688326 97.450891) (xy 130.787003 97.635239) (xy 131.263874 97.802151)
|
||||
(xy 131.768319 97.773867) (xy 132.102997 97.635239) (xy 132.201674 97.450891) (xy 132.201674 99.949) (xy 132.182429 99.949)
|
||||
(xy 130.404429 99.949) (xy 130.124362 100.065008) (xy 129.910008 100.279362) (xy 129.857469 100.4062) (xy 125.73 100.4062)
|
||||
(xy 125.273152 100.497073) (xy 124.885856 100.755856) (xy 124.345603 101.296108) (xy 124.345603 100.480745) (xy 124.315325 100.02704)
|
||||
(xy 124.19995 99.7485) (xy 124.028783 99.665433) (xy 123.854567 99.839649) (xy 123.854567 99.491217) (xy 123.7715 99.32005)
|
||||
(xy 123.340745 99.174397) (xy 122.88704 99.204675) (xy 122.6085 99.32005) (xy 122.525433 99.491217) (xy 123.19 100.155783)
|
||||
(xy 123.854567 99.491217) (xy 123.854567 99.839649) (xy 123.364217 100.33) (xy 124.028783 100.994567) (xy 124.19995 100.9115)
|
||||
(xy 124.345603 100.480745) (xy 124.345603 101.296108) (xy 124.239435 101.402276) (xy 124.103571 101.346) (xy 123.800429 101.346)
|
||||
(xy 123.756894 101.346) (xy 123.7715 101.33995) (xy 123.854567 101.168783) (xy 123.19 100.504217) (xy 123.015783 100.678433)
|
||||
(xy 123.015783 100.33) (xy 122.351217 99.665433) (xy 122.18005 99.7485) (xy 122.034397 100.179255) (xy 122.064675 100.63296)
|
||||
(xy 122.18005 100.9115) (xy 122.351217 100.994567) (xy 123.015783 100.33) (xy 123.015783 100.678433) (xy 122.525433 101.168783)
|
||||
(xy 122.6085 101.33995) (xy 122.626392 101.346) (xy 122.276429 101.346) (xy 121.996362 101.462008) (xy 121.782008 101.676362)
|
||||
(xy 121.666 101.956429) (xy 121.666 102.259571) (xy 121.666 103.783571) (xy 121.782008 104.063638) (xy 121.996362 104.277992)
|
||||
(xy 122.276429 104.394) (xy 122.579571 104.394) (xy 124.103571 104.394) (xy 124.383638 104.277992) (xy 124.597992 104.063638)
|
||||
(xy 124.610309 104.033901) (xy 124.916847 103.972927) (xy 124.916848 103.972927) (xy 125.304144 103.714144) (xy 126.224488 102.7938)
|
||||
(xy 129.857469 102.7938) (xy 129.910008 102.920638) (xy 130.124362 103.134992) (xy 130.404429 103.251) (xy 130.707571 103.251)
|
||||
(xy 132.485571 103.251) (xy 132.765638 103.134992) (xy 132.979992 102.920638) (xy 133.03253 102.7938) (xy 142.410992 102.7938)
|
||||
(xy 131.768319 97.773867) (xy 132.102997 97.635239) (xy 132.201674 97.450891) (xy 132.201674 99.934072) (xy 130.556 99.934072)
|
||||
(xy 130.265452 99.990445) (xy 130.010087 100.158192) (xy 129.842679 100.4062) (xy 125.73 100.4062) (xy 125.273152 100.497073)
|
||||
(xy 124.885856 100.755856) (xy 124.345603 101.296108) (xy 124.345603 100.480745) (xy 124.315325 100.02704) (xy 124.19995 99.7485)
|
||||
(xy 124.028783 99.665433) (xy 123.854567 99.839649) (xy 123.854567 99.491217) (xy 123.7715 99.32005) (xy 123.340745 99.174397)
|
||||
(xy 122.88704 99.204675) (xy 122.6085 99.32005) (xy 122.525433 99.491217) (xy 123.19 100.155783) (xy 123.854567 99.491217)
|
||||
(xy 123.854567 99.839649) (xy 123.364217 100.33) (xy 124.028783 100.994567) (xy 124.19995 100.9115) (xy 124.345603 100.480745)
|
||||
(xy 124.345603 101.296108) (xy 124.250731 101.39098) (xy 123.952 101.331072) (xy 123.775808 101.331072) (xy 123.854567 101.168783)
|
||||
(xy 123.19 100.504217) (xy 123.015783 100.678433) (xy 123.015783 100.33) (xy 122.351217 99.665433) (xy 122.18005 99.7485)
|
||||
(xy 122.034397 100.179255) (xy 122.064675 100.63296) (xy 122.18005 100.9115) (xy 122.351217 100.994567) (xy 123.015783 100.33)
|
||||
(xy 123.015783 100.678433) (xy 122.525433 101.168783) (xy 122.604191 101.331072) (xy 122.428 101.331072) (xy 122.137452 101.387445)
|
||||
(xy 121.882087 101.555192) (xy 121.711148 101.808432) (xy 121.651072 102.108) (xy 121.651072 103.632) (xy 121.707445 103.922548)
|
||||
(xy 121.875192 104.177913) (xy 122.128432 104.348852) (xy 122.428 104.408928) (xy 123.952 104.408928) (xy 124.242548 104.352555)
|
||||
(xy 124.497913 104.184808) (xy 124.598142 104.036321) (xy 124.916847 103.972927) (xy 124.916848 103.972927) (xy 125.304144 103.714144)
|
||||
(xy 126.224488 102.7938) (xy 129.844807 102.7938) (xy 130.003192 103.034913) (xy 130.256432 103.205852) (xy 130.556 103.265928)
|
||||
(xy 132.334 103.265928) (xy 132.624548 103.209555) (xy 132.879913 103.041808) (xy 133.04732 102.7938) (xy 142.410992 102.7938)
|
||||
(xy 143.768082 104.15089) (xy 143.642278 104.4919) (xy 143.665741 105.089099) (xy 143.055305 105.261261) (xy 142.510498 105.690752)
|
||||
(xy 142.226761 106.1974) (xy 142.1638 106.1974) (xy 141.706952 106.288273) (xy 141.319656 106.547056) (xy 140.125856 107.740856)
|
||||
(xy 139.867073 108.128152) (xy 139.7762 108.585) (xy 139.7762 120.413059) (xy 139.73257 120.456613) (xy 139.509754 120.993214)
|
||||
(xy 139.509247 121.574237) (xy 139.731126 122.111226) (xy 139.7762 122.156378) (xy 139.7762 123.330512) (xy 138.570512 124.5362)
|
||||
(xy 133.096 124.5362) (xy 133.096 109.625571) (xy 133.096 109.322429) (xy 133.096 107.544429) (xy 132.979992 107.264362)
|
||||
(xy 132.765638 107.050008) (xy 132.485571 106.934) (xy 132.182429 106.934) (xy 130.404429 106.934) (xy 130.124362 107.050008)
|
||||
(xy 129.910008 107.264362) (xy 129.794 107.544429) (xy 129.794 107.847571) (xy 129.794 108.547712) (xy 128.410512 109.9312)
|
||||
(xy 124.59783 109.9312) (xy 124.383638 109.717008) (xy 124.345603 109.701253) (xy 124.345603 108.735745) (xy 124.315325 108.28204)
|
||||
(xy 124.19995 108.0035) (xy 124.028783 107.920433) (xy 123.854567 108.094649) (xy 123.854567 107.746217) (xy 123.7715 107.57505)
|
||||
(xy 123.340745 107.429397) (xy 122.88704 107.459675) (xy 122.6085 107.57505) (xy 122.525433 107.746217) (xy 123.19 108.410783)
|
||||
(xy 123.854567 107.746217) (xy 123.854567 108.094649) (xy 123.364217 108.585) (xy 124.028783 109.249567) (xy 124.19995 109.1665)
|
||||
(xy 124.345603 108.735745) (xy 124.345603 109.701253) (xy 124.103571 109.601) (xy 123.800429 109.601) (xy 123.756894 109.601)
|
||||
(xy 123.7715 109.59495) (xy 123.854567 109.423783) (xy 123.19 108.759217) (xy 123.015783 108.933433) (xy 123.015783 108.585)
|
||||
(xy 122.351217 107.920433) (xy 122.18005 108.0035) (xy 122.034397 108.434255) (xy 122.064675 108.88796) (xy 122.18005 109.1665)
|
||||
(xy 122.351217 109.249567) (xy 123.015783 108.585) (xy 123.015783 108.933433) (xy 122.525433 109.423783) (xy 122.6085 109.59495)
|
||||
(xy 122.626392 109.601) (xy 122.276429 109.601) (xy 121.996362 109.717008) (xy 121.782008 109.931362) (xy 121.666 110.211429)
|
||||
(xy 121.666 110.514571) (xy 121.666 112.038571) (xy 121.782008 112.318638) (xy 121.9962 112.53283) (xy 121.9962 114.3)
|
||||
(xy 122.087073 114.756848) (xy 122.345856 115.144144) (xy 122.980856 115.779144) (xy 123.368153 116.037927) (xy 123.529353 116.069991)
|
||||
(xy 123.631613 116.17243) (xy 124.168214 116.395246) (xy 124.749237 116.395753) (xy 125.286226 116.173874) (xy 125.69743 115.763387)
|
||||
(xy 125.920246 115.226786) (xy 125.920753 114.645763) (xy 125.698874 114.108774) (xy 125.288387 113.69757) (xy 124.751786 113.474754)
|
||||
(xy 124.3838 113.474432) (xy 124.3838 112.53283) (xy 124.59783 112.3188) (xy 128.905 112.3188) (xy 129.361847 112.227927)
|
||||
(xy 129.361848 112.227927) (xy 129.749144 111.969144) (xy 131.482288 110.236) (xy 132.485571 110.236) (xy 132.765638 110.119992)
|
||||
(xy 132.979992 109.905638) (xy 133.096 109.625571) (xy 133.096 124.5362) (xy 130.175 124.5362) (xy 129.718152 124.627073)
|
||||
(xy 133.110928 124.5362) (xy 133.110928 109.474) (xy 133.110928 107.696) (xy 133.054555 107.405452) (xy 132.886808 107.150087)
|
||||
(xy 132.633568 106.979148) (xy 132.334 106.919072) (xy 130.556 106.919072) (xy 130.265452 106.975445) (xy 130.010087 107.143192)
|
||||
(xy 129.839148 107.396432) (xy 129.779072 107.696) (xy 129.779072 108.56264) (xy 128.410512 109.9312) (xy 124.579767 109.9312)
|
||||
(xy 124.504808 109.817087) (xy 124.345603 109.709622) (xy 124.345603 108.735745) (xy 124.315325 108.28204) (xy 124.19995 108.0035)
|
||||
(xy 124.028783 107.920433) (xy 123.854567 108.094649) (xy 123.854567 107.746217) (xy 123.7715 107.57505) (xy 123.340745 107.429397)
|
||||
(xy 122.88704 107.459675) (xy 122.6085 107.57505) (xy 122.525433 107.746217) (xy 123.19 108.410783) (xy 123.854567 107.746217)
|
||||
(xy 123.854567 108.094649) (xy 123.364217 108.585) (xy 124.028783 109.249567) (xy 124.19995 109.1665) (xy 124.345603 108.735745)
|
||||
(xy 124.345603 109.709622) (xy 124.251568 109.646148) (xy 123.952 109.586072) (xy 123.775808 109.586072) (xy 123.854567 109.423783)
|
||||
(xy 123.19 108.759217) (xy 123.015783 108.933433) (xy 123.015783 108.585) (xy 122.351217 107.920433) (xy 122.18005 108.0035)
|
||||
(xy 122.034397 108.434255) (xy 122.064675 108.88796) (xy 122.18005 109.1665) (xy 122.351217 109.249567) (xy 123.015783 108.585)
|
||||
(xy 123.015783 108.933433) (xy 122.525433 109.423783) (xy 122.604191 109.586072) (xy 122.428 109.586072) (xy 122.137452 109.642445)
|
||||
(xy 121.882087 109.810192) (xy 121.711148 110.063432) (xy 121.651072 110.363) (xy 121.651072 111.887) (xy 121.707445 112.177548)
|
||||
(xy 121.875192 112.432913) (xy 121.9962 112.514594) (xy 121.9962 114.3) (xy 122.087073 114.756848) (xy 122.345856 115.144144)
|
||||
(xy 122.980856 115.779144) (xy 123.368153 116.037927) (xy 123.529353 116.069991) (xy 123.631613 116.17243) (xy 124.168214 116.395246)
|
||||
(xy 124.749237 116.395753) (xy 125.286226 116.173874) (xy 125.69743 115.763387) (xy 125.920246 115.226786) (xy 125.920753 114.645763)
|
||||
(xy 125.698874 114.108774) (xy 125.288387 113.69757) (xy 124.751786 113.474754) (xy 124.3838 113.474432) (xy 124.3838 112.514767)
|
||||
(xy 124.497913 112.439808) (xy 124.579594 112.3188) (xy 128.905 112.3188) (xy 129.361847 112.227927) (xy 129.361848 112.227927)
|
||||
(xy 129.749144 111.969144) (xy 131.46736 110.250928) (xy 132.334 110.250928) (xy 132.624548 110.194555) (xy 132.879913 110.026808)
|
||||
(xy 133.050852 109.773568) (xy 133.110928 109.474) (xy 133.110928 124.5362) (xy 130.175 124.5362) (xy 129.718152 124.627073)
|
||||
(xy 129.330856 124.885856) (xy 128.060856 126.155856) (xy 127.802073 126.543152) (xy 127.7112 127) (xy 127.7112 130.175)
|
||||
(xy 127.802073 130.631848) (xy 128.060856 131.019144) (xy 128.804212 131.7625) (xy 124.918382 131.7625) (xy 125.557257 131.12474)
|
||||
(xy 125.983514 130.098199) (xy 125.984484 128.986677) (xy 125.560019 127.959394) (xy 125.552271 127.951632) (xy 125.552271 122.69054)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
(export (version D)
|
||||
(design
|
||||
(source F:/kicad-launchpad/testing/demos/ecc83/ecc83-pp_v2.sch)
|
||||
(date "01/01/2015 18:25:50")
|
||||
(date "01/01/2015 20:57:24")
|
||||
(tool "Eeschema (2014-12-31 BZR 5344)-product"))
|
||||
(components
|
||||
(comp (ref U1)
|
||||
(value ECC83)
|
||||
(footprint Valves:VALVE-ECC-83-1)
|
||||
(footprint Valves:VALVE-ECC-83-2)
|
||||
(libsource (lib valves) (part ECC83))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 48B4F266))
|
||||
|
@ -95,18 +95,6 @@
|
|||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 54A58391)))
|
||||
(libparts
|
||||
(libpart (lib device) (part C)
|
||||
(description "Condensateur non polarise")
|
||||
(footprints
|
||||
(fp SM*)
|
||||
(fp C?)
|
||||
(fp C1-1))
|
||||
(fields
|
||||
(field (name Reference) C)
|
||||
(field (name Value) C))
|
||||
(pins
|
||||
(pin (num 1) (name ~) (type passive))
|
||||
(pin (num 2) (name ~) (type passive))))
|
||||
(libpart (lib device) (part R)
|
||||
(description Resistance)
|
||||
(footprints
|
||||
|
@ -138,6 +126,18 @@
|
|||
(pin (num 7) (name G) (type input))
|
||||
(pin (num 8) (name K) (type BiDi))
|
||||
(pin (num 9) (name F2) (type power_in))))
|
||||
(libpart (lib device) (part C)
|
||||
(description "Condensateur non polarise")
|
||||
(footprints
|
||||
(fp SM*)
|
||||
(fp C?)
|
||||
(fp C1-1))
|
||||
(fields
|
||||
(field (name Reference) C)
|
||||
(field (name Value) C))
|
||||
(pins
|
||||
(pin (num 1) (name ~) (type passive))
|
||||
(pin (num 2) (name ~) (type passive))))
|
||||
(libpart (lib conn) (part CONN_1)
|
||||
(description "1 pin")
|
||||
(fields
|
||||
|
|
|
@ -5,25 +5,6 @@ LIBS:valves
|
|||
LIBS:conn
|
||||
LIBS:linear
|
||||
LIBS:regul
|
||||
LIBS:74xx
|
||||
LIBS:cmos4000
|
||||
LIBS:adc-dac
|
||||
LIBS:memory
|
||||
LIBS:xilinx
|
||||
LIBS:special
|
||||
LIBS:microcontrollers
|
||||
LIBS:microchip
|
||||
LIBS:analog_switches
|
||||
LIBS:motorola
|
||||
LIBS:intel
|
||||
LIBS:audio
|
||||
LIBS:interface
|
||||
LIBS:digital-audio
|
||||
LIBS:philips
|
||||
LIBS:display
|
||||
LIBS:cypress
|
||||
LIBS:siliconi
|
||||
LIBS:contrib
|
||||
LIBS:ecc83-pp_v2-cache
|
||||
EELAYER 25 0
|
||||
EELAYER END
|
||||
|
@ -105,7 +86,7 @@ U 3 1 48B4F266
|
|||
P 2000 6100
|
||||
F 0 "U1" H 2130 6410 50 0000 C CNN
|
||||
F 1 "ECC83" H 2350 5800 50 0000 C CNN
|
||||
F 2 "Valves:VALVE-ECC-83-1" H 2450 5650 50 0000 C CNN
|
||||
F 2 "Valves:VALVE-ECC-83-2" V 1750 6100 30 0000 C CNN
|
||||
F 3 "" H 2000 6100 60 0001 C CNN
|
||||
3 2000 6100
|
||||
1 0 0 -1
|
||||
|
@ -116,7 +97,7 @@ U 2 1 48B4F263
|
|||
P 4950 4450
|
||||
F 0 "U1" H 5080 4760 50 0000 C CNN
|
||||
F 1 "ECC83" H 5150 4100 50 0000 C CNN
|
||||
F 2 "Valves:VALVE-ECC-83-1" H 5150 4000 50 0000 C CNN
|
||||
F 2 "Valves:VALVE-ECC-83-2" H 5150 4000 30 0000 C CNN
|
||||
F 3 "" H 4950 4450 60 0001 C CNN
|
||||
2 4950 4450
|
||||
1 0 0 -1
|
||||
|
@ -127,7 +108,7 @@ U 1 1 48B4F256
|
|||
P 5750 4450
|
||||
F 0 "U1" H 5880 4760 50 0000 C CNN
|
||||
F 1 "ECC83" H 5500 4150 50 0000 C CNN
|
||||
F 2 "Valves:VALVE-ECC-83-1" H 5750 3950 50 0000 C CNN
|
||||
F 2 "Valves:VALVE-ECC-83-2" H 5750 3950 30 0000 C CNN
|
||||
F 3 "" H 5750 4450 60 0001 C CNN
|
||||
1 5750 4450
|
||||
-1 0 0 -1
|
||||
|
@ -193,7 +174,7 @@ U 1 1 456A8ACC
|
|||
P 2000 7100
|
||||
F 0 "P4" V 1950 7100 40 0000 C CNN
|
||||
F 1 "CONN_2" V 2050 7100 40 0000 C CNN
|
||||
F 2 "pin_array:pin_array_1x02" V 2150 7100 60 0000 C CNN
|
||||
F 2 "pin_array:pin_array_1x02" V 2150 7100 30 0000 C CNN
|
||||
F 3 "" H 2000 7100 60 0001 C CNN
|
||||
1 2000 7100
|
||||
0 1 1 0
|
||||
|
@ -204,7 +185,7 @@ U 1 1 4549F4BE
|
|||
P 6700 4050
|
||||
F 0 "C1" H 6750 4150 50 0000 L CNN
|
||||
F 1 "10uF" H 6450 4150 50 0000 L CNN
|
||||
F 2 "discret:C2V10" H 6700 4050 60 0000 C CNN
|
||||
F 2 "discret:C2V10" H 6700 3950 30 0000 C CNN
|
||||
F 3 "" H 6700 4050 60 0001 C CNN
|
||||
1 6700 4050
|
||||
1 0 0 -1
|
||||
|
@ -237,7 +218,7 @@ U 1 1 4549F4A5
|
|||
P 7300 3950
|
||||
F 0 "P3" V 7250 3950 40 0000 C CNN
|
||||
F 1 "POWER" V 7350 3950 40 0000 C CNN
|
||||
F 2 "pin_array:pin_array_1x02" H 7300 4150 60 0000 C CNN
|
||||
F 2 "pin_array:pin_array_1x02" V 7450 3950 30 0000 C CNN
|
||||
F 3 "" H 7300 3950 60 0001 C CNN
|
||||
1 7300 3950
|
||||
1 0 0 -1
|
||||
|
@ -248,7 +229,7 @@ U 1 1 4549F46C
|
|||
P 7300 4900
|
||||
F 0 "P2" V 7250 4900 40 0000 C CNN
|
||||
F 1 "OUT" V 7350 4900 40 0000 C CNN
|
||||
F 2 "pin_array:pin_array_1x02" H 7300 5100 60 0000 C CNN
|
||||
F 2 "pin_array:pin_array_1x02" V 7450 4900 30 0000 C CNN
|
||||
F 3 "" H 7300 4900 60 0001 C CNN
|
||||
1 7300 4900
|
||||
1 0 0 -1
|
||||
|
@ -259,7 +240,7 @@ U 1 1 4549F464
|
|||
P 3800 4900
|
||||
F 0 "P1" V 3750 4900 40 0000 C CNN
|
||||
F 1 "IN" V 3850 4900 40 0000 C CNN
|
||||
F 2 "pin_array:pin_array_1x02" H 3750 4700 60 0000 C CNN
|
||||
F 2 "pin_array:pin_array_1x02" V 3950 4900 30 0000 C CNN
|
||||
F 3 "" H 3800 4900 60 0001 C CNN
|
||||
1 3800 4900
|
||||
-1 0 0 1
|
||||
|
@ -270,7 +251,7 @@ U 1 1 4549F3BE
|
|||
P 6500 4800
|
||||
F 0 "C2" H 6550 4900 50 0000 L CNN
|
||||
F 1 "680nF" H 6550 4700 50 0000 L CNN
|
||||
F 2 "discret:CP8" H 6400 4900 60 0000 C CNN
|
||||
F 2 "discret:CP8" V 6350 4800 30 0000 C CNN
|
||||
F 3 "" H 6500 4800 60 0001 C CNN
|
||||
1 6500 4800
|
||||
0 1 1 0
|
||||
|
@ -314,7 +295,7 @@ U 1 1 4549F38A
|
|||
P 6300 4250
|
||||
F 0 "R1" V 6380 4250 50 0000 C CNN
|
||||
F 1 "1.5K" V 6300 4250 50 0000 C CNN
|
||||
F 2 "discret:R3" H 6400 4150 60 0000 C CNN
|
||||
F 2 "discret:R3" V 6450 4250 30 0000 C CNN
|
||||
F 3 "" H 6300 4250 60 0001 C CNN
|
||||
1 6300 4250
|
||||
1 0 0 -1
|
||||
|
|
|
@ -419,8 +419,8 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
|
|||
|
||||
AddMenuItem( preferencesMenu,
|
||||
ID_CONFIG_READ,
|
||||
_( "&Read Preferences" ),
|
||||
_( "Read application preferences" ),
|
||||
_( "Load Prefe&rences" ),
|
||||
_( "Load application preferences" ),
|
||||
KiBitmap( read_setup_xpm ) );
|
||||
|
||||
// Menu Tools:
|
||||
|
@ -446,8 +446,8 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
|
|||
// ERC
|
||||
AddMenuItem( toolsMenu,
|
||||
ID_GET_ERC,
|
||||
_( "Electric Rules &Checker" ),
|
||||
_( "Perform electrical rule check" ),
|
||||
_( "Electrical Rules &Checker" ),
|
||||
_( "Perform electrical rules check" ),
|
||||
KiBitmap( erc_xpm ) );
|
||||
|
||||
AddMenuItem( toolsMenu,
|
||||
|
|
|
@ -35,6 +35,10 @@ SCH_BASE_FRAME::SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent,
|
|||
EDA_DRAW_FRAME( aKiway, aParent, aWindowType, aTitle, aPosition,
|
||||
aSize, aStyle, aFrameName )
|
||||
{
|
||||
m_zoomLevelCoeff = 11.0; // Adjusted to roughly displays zoom level = 1
|
||||
// when the screen shows a 1:1 image
|
||||
// obviously depends on the monitor,
|
||||
// but this is an acceptable value
|
||||
}
|
||||
|
||||
|
||||
|
@ -64,6 +68,10 @@ SCH_SCREEN* SCH_BASE_FRAME::GetScreen() const
|
|||
return (SCH_SCREEN*) EDA_DRAW_FRAME::GetScreen();
|
||||
}
|
||||
|
||||
const wxString SCH_BASE_FRAME::GetZoomLevelIndicator() const
|
||||
{
|
||||
return EDA_DRAW_FRAME::GetZoomLevelIndicator();
|
||||
}
|
||||
|
||||
void SCH_BASE_FRAME::SetPageSettings( const PAGE_INFO& aPageSettings )
|
||||
{
|
||||
|
|
|
@ -57,21 +57,13 @@
|
|||
|
||||
#define EESCHEMA_FILE_STAMP "EESchema"
|
||||
|
||||
/* Default Eeschema zoom values. Limited to 17 values to keep a decent size
|
||||
/* Default zoom values. Limited to these values to keep a decent size
|
||||
* to menus
|
||||
*/
|
||||
/* Please, note: wxMSW before version 2.9 seems have
|
||||
* problems with zoom values < 1 ( i.e. userscale > 1) and needs to be patched:
|
||||
* edit file <wxWidgets>/src/msw/dc.cpp
|
||||
* search for line static const int VIEWPORT_EXTENT = 1000;
|
||||
* and replace by static const int VIEWPORT_EXTENT = 10000;
|
||||
* see http://trac.wxwidgets.org/ticket/9554
|
||||
* This is a workaround that is not a full fix, but remaining artifacts are acceptable
|
||||
*/
|
||||
static double SchematicZoomList[] =
|
||||
{
|
||||
0.5, 0.7, 1.0, 1.5, 2.0, 3.0, 4.0, 6.0, 8.0,
|
||||
12.0, 16.0, 23.0, 32.0, 48.0, 64.0, 80.0, 128.0
|
||||
0.5, 0.7, 1.0, 1.5, 2.0, 3.0, 4.0, 6.0, 8.0, 11.0,
|
||||
13.0, 16.0, 20.0, 26.0, 32.0, 48.0, 64.0, 80.0, 128.0
|
||||
};
|
||||
|
||||
#define MM_TO_SCH_UNITS 1000.0 / 25.4 //schematic internal unites are mils
|
||||
|
|
|
@ -146,7 +146,7 @@ void SCH_EDIT_FRAME::ReCreateHToolbar()
|
|||
HELP_ANNOTATE );
|
||||
|
||||
m_mainToolBar->AddTool( ID_GET_ERC, wxEmptyString, KiBitmap( erc_xpm ),
|
||||
_( "Perform electrical rule check" ) );
|
||||
_( "Perform electrical rules check" ) );
|
||||
|
||||
m_mainToolBar->AddTool( ID_GET_NETLIST, wxEmptyString, KiBitmap( netlist_xpm ),
|
||||
_( "Generate netlist" ) );
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
static const double gbrZoomList[] =
|
||||
{
|
||||
ZOOM_FACTOR( 0.5 ),
|
||||
ZOOM_FACTOR( 0.75 ),
|
||||
ZOOM_FACTOR( 1.0 ),
|
||||
ZOOM_FACTOR( 1.5 ),
|
||||
ZOOM_FACTOR( 2.0 ),
|
||||
|
@ -58,7 +59,8 @@ static const double gbrZoomList[] =
|
|||
ZOOM_FACTOR( 35.0 ),
|
||||
ZOOM_FACTOR( 50.0 ),
|
||||
ZOOM_FACTOR( 80.0 ),
|
||||
ZOOM_FACTOR( 120.0 ),
|
||||
ZOOM_FACTOR( 110.0 ),
|
||||
ZOOM_FACTOR( 150.0 ),
|
||||
ZOOM_FACTOR( 200.0 ),
|
||||
ZOOM_FACTOR( 350.0 ),
|
||||
ZOOM_FACTOR( 500.0 ),
|
||||
|
|
|
@ -70,6 +70,11 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( KIWAY* aKiway, wxWindow* aParent ):
|
|||
{
|
||||
m_colorsSettings = &g_ColorsSettings;
|
||||
m_gerberLayout = NULL;
|
||||
m_zoomLevelCoeff = ZOOM_FACTOR( 110 ); // Adjusted to roughly displays zoom level = 1
|
||||
// when the screen shows a 1:1 image
|
||||
// obviously depends on the monitor,
|
||||
// but this is an acceptable value
|
||||
|
||||
PAGE_INFO pageInfo( wxT( "GERBER" ) );
|
||||
SetPageSettings( pageInfo );
|
||||
|
||||
|
@ -863,12 +868,12 @@ void GERBVIEW_FRAME::UpdateStatusBar()
|
|||
{
|
||||
case INCHES:
|
||||
absformatter = wxT( "X %.6f Y %.6f" );
|
||||
locformatter = wxT( "dx %.6f dy %.6f d %.6f" );
|
||||
locformatter = wxT( "dx %.6f dy %.6f dist %.4f" );
|
||||
break;
|
||||
|
||||
case MILLIMETRES:
|
||||
absformatter = wxT( "X %.5f Y %.5f" );
|
||||
locformatter = wxT( "dx %.5f dy %.5f d %.5f" );
|
||||
locformatter = wxT( "dx %.5f dy %.5f dist %.3f" );
|
||||
break;
|
||||
|
||||
case UNSCALED_UNITS:
|
||||
|
@ -894,3 +899,8 @@ void GERBVIEW_FRAME::UpdateStatusBar()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
const wxString GERBVIEW_FRAME::GetZoomLevelIndicator() const
|
||||
{
|
||||
return EDA_DRAW_FRAME::GetZoomLevelIndicator();
|
||||
}
|
||||
|
|
|
@ -235,6 +235,14 @@ public:
|
|||
double BestZoom();
|
||||
void UpdateStatusBar();
|
||||
|
||||
/**
|
||||
* Function GetZoomLevelIndicator
|
||||
* returns a human readable value which can be displayed as zoom
|
||||
* level indicator in dialogs.
|
||||
* Virtual from the base class
|
||||
*/
|
||||
const wxString GetZoomLevelIndicator() const;
|
||||
|
||||
/**
|
||||
* Function ReportMessage
|
||||
* Add a message (a string) in message list
|
||||
|
|
|
@ -452,6 +452,18 @@ public:
|
|||
return m_grids;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function BuildGridsChoiceList().
|
||||
* Build the human readable list of grid list, for menus or combo boxes
|
||||
* the list shows the grid size both in mils or mm.
|
||||
* @param aGridsList = a wxArrayString to populate
|
||||
* @param aMmFirst = true to have mm first and mils after
|
||||
* false to have mils first and mm after
|
||||
* @return the index of the curr grid in list, if found or -1
|
||||
*/
|
||||
int BuildGridsChoiceList( wxArrayString& aGridsList, bool aMmFirst) const;
|
||||
|
||||
|
||||
/**
|
||||
* Function GetClass
|
||||
* returns the class name.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2013 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2007-2013 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||
* Copyright (C) 2008-2013 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 1992-2013 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 2014-2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2007-2015 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||
* Copyright (C) 2008-2015 Wayne Stambaugh <stambaughw@verizon.net>
|
||||
* Copyright (C) 1992-2015 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
|
||||
|
@ -433,6 +433,12 @@ const wxString PrePendPath( const wxString& aEnvVar, const wxString& aPriorityPa
|
|||
*/
|
||||
wxConfigBase* GetNewConfig( const wxString& aProgName );
|
||||
|
||||
/**
|
||||
* Function GetKicadLockFilePath
|
||||
* @return A wxString containing the path for lockfiles in Kicad
|
||||
*/
|
||||
wxString GetKicadLockFilePath();
|
||||
|
||||
/**
|
||||
* Function GetKicadConfigPath
|
||||
* @return A wxString containing the config path for Kicad
|
||||
|
|
|
@ -65,6 +65,9 @@ protected:
|
|||
EDA_COLOR_T m_gridColor; // Grid color
|
||||
EDA_COLOR_T m_drawBgColor; ///< the background color of the draw canvas
|
||||
///< BLACK for Pcbnew, BLACK or WHITE for eeschema
|
||||
double m_zoomLevelCoeff; ///< a suitable value to convert the internal zoom scaling factor
|
||||
// to a zoom level value which rougly gives 1.0 when the board/schematic
|
||||
// is at scale = 1
|
||||
|
||||
/// The area to draw on.
|
||||
EDA_DRAW_PANEL* m_canvas;
|
||||
|
@ -329,6 +332,17 @@ public:
|
|||
*/
|
||||
virtual void AddMenuZoomAndGrid( wxMenu* aMasterMenu );
|
||||
|
||||
/**
|
||||
* Function GetZoomLevelIndicator
|
||||
* returns a human readable value which can be displayed as zoom
|
||||
* level indicator in dialogs.
|
||||
* this can be a percentage or other indicator.
|
||||
* it is virtual because it could be different for pcbnew, gerbview or eeschema
|
||||
* (different internal units and different purposes)
|
||||
* note also adjust m_zoomLevelCoeff is the way to adjust the displayed value
|
||||
*/
|
||||
virtual const wxString GetZoomLevelIndicator() const;
|
||||
|
||||
void EraseMsgBox();
|
||||
void Process_PageSettings( wxCommandEvent& event );
|
||||
|
||||
|
|
|
@ -200,12 +200,12 @@ public:
|
|||
* @param aColor = text color
|
||||
* @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode.
|
||||
* @param aDisplay_mode = LINE, FILLED or SKETCH
|
||||
* @param aAnchor_color = anchor color ( UNSPECIFIED = do not draw anchor ).
|
||||
* @param aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do not draw anchor ).
|
||||
*/
|
||||
void Draw( EDA_RECT* aClipBox, wxDC* aDC,
|
||||
const wxPoint& aOffset, EDA_COLOR_T aColor,
|
||||
GR_DRAWMODE aDrawMode, EDA_DRAW_MODE_T aDisplay_mode = LINE,
|
||||
EDA_COLOR_T aAnchor_color = UNSPECIFIED_COLOR );
|
||||
EDA_COLOR_T aAnchor_color = EDA_COLOR_T(UNSPECIFIED_COLOR) );
|
||||
|
||||
/**
|
||||
* Convert the text shape to a list of segment
|
||||
|
|
|
@ -54,6 +54,14 @@ public:
|
|||
|
||||
SCH_SCREEN* GetScreen() const; // overload EDA_DRAW_FRAME
|
||||
|
||||
/**
|
||||
* Function GetZoomLevelIndicator
|
||||
* returns a human readable value which can be displayed as zoom
|
||||
* level indicator in dialogs.
|
||||
* Virtual from the base class
|
||||
*/
|
||||
const wxString GetZoomLevelIndicator() const;
|
||||
|
||||
void SetPageSettings( const PAGE_INFO& aPageSettings ); // overload EDA_DRAW_FRAME
|
||||
const PAGE_INFO& GetPageSettings () const; // overload EDA_DRAW_FRAME
|
||||
const wxSize GetPageSizeIU() const; // overload EDA_DRAW_FRAME
|
||||
|
|
|
@ -201,6 +201,14 @@ public:
|
|||
*/
|
||||
virtual double BestZoom();
|
||||
|
||||
/**
|
||||
* Function GetZoomLevelIndicator
|
||||
* returns a human readable value which can be displayed as zoom
|
||||
* level indicator in dialogs.
|
||||
* Virtual from the base class
|
||||
*/
|
||||
const wxString GetZoomLevelIndicator() const;
|
||||
|
||||
virtual void Show3D_Frame( wxCommandEvent& event );
|
||||
|
||||
// Read/write functions:
|
||||
|
|
|
@ -52,8 +52,10 @@ static const double pl_editorZoomList[] =
|
|||
ZOOM_FACTOR( 50.0 ),
|
||||
ZOOM_FACTOR( 80.0 ),
|
||||
ZOOM_FACTOR( 120.0 ),
|
||||
ZOOM_FACTOR( 200.0 ),
|
||||
ZOOM_FACTOR( 350.0 ),
|
||||
ZOOM_FACTOR( 160.0 ),
|
||||
ZOOM_FACTOR( 230.0 ),
|
||||
ZOOM_FACTOR( 290.0 ),
|
||||
ZOOM_FACTOR( 380.0 ),
|
||||
ZOOM_FACTOR( 500.0 ),
|
||||
ZOOM_FACTOR( 750.0 ),
|
||||
ZOOM_FACTOR( 1000.0 ),
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
*/
|
||||
|
||||
#include <fctsys.h>
|
||||
//#include <pgm_base.h>
|
||||
#include <kiface_i.h>
|
||||
#include <class_drawpanel.h>
|
||||
#include <build_version.h>
|
||||
|
@ -58,6 +57,10 @@ PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, PL_EDITOR_FRAME_NAME )
|
||||
{
|
||||
m_FrameName = PL_EDITOR_FRAME_NAME;
|
||||
m_zoomLevelCoeff = 290.0; // Adjusted to roughly displays zoom level = 1
|
||||
// when the screen shows a 1:1 image
|
||||
// obviously depends on the monitor,
|
||||
// but this is an acceptable value
|
||||
|
||||
m_showAxis = false; // true to show X and Y axis on screen
|
||||
m_showGridAxis = true;
|
||||
|
@ -404,6 +407,9 @@ void PL_EDITOR_FRAME::UpdateStatusBar()
|
|||
if( !screen )
|
||||
return;
|
||||
|
||||
// Display Zoom level:
|
||||
EDA_DRAW_FRAME::UpdateStatusBar();
|
||||
|
||||
// coodinate origin can be the paper Top Left corner,
|
||||
// or each of 4 page corners
|
||||
// We know the origin, and the orientation of axis
|
||||
|
@ -491,10 +497,6 @@ void PL_EDITOR_FRAME::UpdateStatusBar()
|
|||
line.Printf( locformatter, dXpos, dYpos );
|
||||
SetStatusText( line, 3 );
|
||||
|
||||
// Display Zoom level: zoom = zoom_coeff/ZoomScalar
|
||||
line.Printf( wxT( "Z %.1f" ), screen->GetZoom() );
|
||||
SetStatusText( line, 1 );
|
||||
|
||||
// Display corner reference for coord origin
|
||||
line.Printf( _("coord origin: %s"),
|
||||
m_originSelectBox->GetString( m_originSelectChoice ). GetData() );
|
||||
|
@ -773,3 +775,9 @@ void PL_EDITOR_FRAME::OnNewPageLayout()
|
|||
Zoom_Automatique( true );
|
||||
m_canvas->Refresh();
|
||||
}
|
||||
|
||||
|
||||
const wxString PL_EDITOR_FRAME::GetZoomLevelIndicator() const
|
||||
{
|
||||
return EDA_DRAW_FRAME::GetZoomLevelIndicator();
|
||||
}
|
||||
|
|
|
@ -108,6 +108,14 @@ public:
|
|||
const PAGE_INFO& GetPageSettings () const; // overload EDA_DRAW_FRAME
|
||||
const wxSize GetPageSizeIU() const; // overload EDA_DRAW_FRAME
|
||||
|
||||
/**
|
||||
* Function GetZoomLevelIndicator
|
||||
* returns a human readable value which can be displayed as zoom
|
||||
* level indicator in dialogs.
|
||||
* Virtual from the base class
|
||||
*/
|
||||
const wxString GetZoomLevelIndicator() const;
|
||||
|
||||
PL_EDITOR_SCREEN* GetScreen() const // overload EDA_DRAW_FRAME
|
||||
{
|
||||
return (PL_EDITOR_SCREEN*) EDA_DRAW_FRAME::GetScreen();
|
||||
|
|
|
@ -116,6 +116,11 @@ PCB_BASE_FRAME::PCB_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrame
|
|||
m_FastGrid2 = 0;
|
||||
|
||||
m_auxiliaryToolBar = NULL;
|
||||
|
||||
m_zoomLevelCoeff = 110.0 * IU_PER_DECIMILS; // Adjusted to roughly displays zoom level = 1
|
||||
// when the screen shows a 1:1 image
|
||||
// obviously depends on the monitor,
|
||||
// but this is an acceptable value
|
||||
}
|
||||
|
||||
|
||||
|
@ -630,8 +635,6 @@ void PCB_BASE_FRAME::SetToolID( int aId, int aCursor, const wxString& aToolMsg )
|
|||
*/
|
||||
void PCB_BASE_FRAME::UpdateStatusBar()
|
||||
{
|
||||
EDA_DRAW_FRAME::UpdateStatusBar();
|
||||
|
||||
PCB_SCREEN* screen = GetScreen();
|
||||
|
||||
if( !screen )
|
||||
|
@ -644,6 +647,8 @@ void PCB_BASE_FRAME::UpdateStatusBar()
|
|||
wxString line;
|
||||
wxString locformatter;
|
||||
|
||||
EDA_DRAW_FRAME::UpdateStatusBar();
|
||||
|
||||
if( DisplayOpt.DisplayPolarCood ) // display polar coordinates
|
||||
{
|
||||
double theta, ro;
|
||||
|
@ -657,7 +662,6 @@ void PCB_BASE_FRAME::UpdateStatusBar()
|
|||
wxString formatter;
|
||||
switch( g_UserUnit )
|
||||
{
|
||||
#if defined( USE_PCBNEW_NANOMETRE )
|
||||
case INCHES:
|
||||
formatter = wxT( "Ro %.6f Th %.1f" );
|
||||
break;
|
||||
|
@ -665,15 +669,6 @@ void PCB_BASE_FRAME::UpdateStatusBar()
|
|||
case MILLIMETRES:
|
||||
formatter = wxT( "Ro %.6f Th %.1f" );
|
||||
break;
|
||||
#else
|
||||
case INCHES:
|
||||
formatter = wxT( "Ro %.4f Th %.1f" );
|
||||
break;
|
||||
|
||||
case MILLIMETRES:
|
||||
formatter = wxT( "Ro %.3f Th %.1f" );
|
||||
break;
|
||||
#endif
|
||||
|
||||
case UNSCALED_UNITS:
|
||||
formatter = wxT( "Ro %f Th %f" );
|
||||
|
@ -696,17 +691,17 @@ void PCB_BASE_FRAME::UpdateStatusBar()
|
|||
{
|
||||
case INCHES:
|
||||
absformatter = wxT( "X %.6f Y %.6f" );
|
||||
locformatter = wxT( "dx %.6f dy %.6f d %.6f" );
|
||||
locformatter = wxT( "dx %.6f dy %.6f dist %.4f" );
|
||||
break;
|
||||
|
||||
case MILLIMETRES:
|
||||
absformatter = wxT( "X %.6f Y %.6f" );
|
||||
locformatter = wxT( "dx %.6f dy %.6f d %.6f" );
|
||||
locformatter = wxT( "dx %.6f dy %.6f dist %.3f" );
|
||||
break;
|
||||
|
||||
case UNSCALED_UNITS:
|
||||
absformatter = wxT( "X %f Y %f" );
|
||||
locformatter = wxT( "dx %f dy %f d %f" );
|
||||
locformatter = wxT( "dx %f dy %f dist %f" );
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -800,6 +795,12 @@ void PCB_BASE_FRAME::OnModify()
|
|||
}
|
||||
|
||||
|
||||
const wxString PCB_BASE_FRAME::GetZoomLevelIndicator() const
|
||||
{
|
||||
return EDA_DRAW_FRAME::GetZoomLevelIndicator();
|
||||
}
|
||||
|
||||
|
||||
void PCB_BASE_FRAME::updateGridSelectBox()
|
||||
{
|
||||
UpdateStatusBar();
|
||||
|
@ -810,42 +811,16 @@ void PCB_BASE_FRAME::updateGridSelectBox()
|
|||
|
||||
// Update grid values with the current units setting.
|
||||
m_gridSelectBox->Clear();
|
||||
|
||||
wxString msg;
|
||||
wxString format = _( "Grid:");
|
||||
|
||||
switch( g_UserUnit )
|
||||
{
|
||||
case INCHES: // the grid size is displayed in mils
|
||||
case MILLIMETRES:
|
||||
format += wxT( " %.6f" );
|
||||
break;
|
||||
|
||||
case UNSCALED_UNITS:
|
||||
format += wxT( " %f" );
|
||||
break;
|
||||
}
|
||||
wxArrayString gridsList;
|
||||
int icurr = GetScreen()->BuildGridsChoiceList( gridsList, g_UserUnit != INCHES );
|
||||
|
||||
for( size_t i = 0; i < GetScreen()->GetGridCount(); i++ )
|
||||
{
|
||||
GRID_TYPE& grid = GetScreen()->GetGrid( i );
|
||||
double value = To_User_Unit( g_UserUnit, grid.m_Size.x );
|
||||
if( g_UserUnit == INCHES )
|
||||
value *= 1000;
|
||||
|
||||
if( grid.m_Id != ID_POPUP_GRID_USER )
|
||||
{
|
||||
msg.Printf( format.GetData(), value );
|
||||
StripTrailingZeros( msg );
|
||||
m_gridSelectBox->Append( gridsList[i], (void*) &grid.m_Id );
|
||||
}
|
||||
else
|
||||
msg = _( "User Grid" );
|
||||
|
||||
m_gridSelectBox->Append( msg, (void*) &grid.m_Id );
|
||||
|
||||
if( ( m_LastGridSizeId + ID_POPUP_GRID_LEVEL_1000 ) == GetScreen()->GetGrid( i ).m_Id )
|
||||
m_gridSelectBox->SetSelection( i );
|
||||
}
|
||||
m_gridSelectBox->SetSelection( icurr );
|
||||
}
|
||||
|
||||
void PCB_BASE_FRAME::updateZoomSelectBox()
|
||||
|
@ -856,19 +831,15 @@ void PCB_BASE_FRAME::updateZoomSelectBox()
|
|||
wxString msg;
|
||||
|
||||
m_zoomSelectBox->Clear();
|
||||
m_zoomSelectBox->Append( _( "Auto" ) );
|
||||
m_zoomSelectBox->Append( _( "Zoom Auto" ) );
|
||||
m_zoomSelectBox->SetSelection( 0 );
|
||||
|
||||
for( unsigned i = 0; i < GetScreen()->m_ZoomList.size(); ++i )
|
||||
{
|
||||
msg = _( "Zoom " );
|
||||
|
||||
wxString value = wxString::Format( wxT( "%g" ),
|
||||
|
||||
// @todo could do scaling here and show a "percentage"
|
||||
GetScreen()->m_ZoomList[i]
|
||||
);
|
||||
|
||||
double level = m_zoomLevelCoeff / (double)GetScreen()->m_ZoomList[i];
|
||||
wxString value = wxString::Format( wxT( "%.2f" ), level );
|
||||
msg += value;
|
||||
|
||||
m_zoomSelectBox->Append( msg );
|
||||
|
|
|
@ -52,6 +52,12 @@ class BOARD;
|
|||
class MSG_PANEL_ITEM;
|
||||
|
||||
|
||||
enum INCLUDE_NPTH_T
|
||||
{
|
||||
DO_NOT_INCLUDE_NPTH = false,
|
||||
INCLUDE_NPTH = true
|
||||
};
|
||||
|
||||
/**
|
||||
* Enum MODULE_ATTR_T
|
||||
* is the set of attributes allowed within a MODULE, using MODULE::SetAttributes()
|
||||
|
@ -425,12 +431,6 @@ public:
|
|||
*/
|
||||
D_PAD* GetPad( const wxPoint& aPosition, LSET aLayerMask = LSET::AllLayersMask() );
|
||||
|
||||
enum INCLUDE_NPTH_T
|
||||
{
|
||||
DO_NOT_INCLUDE_NPTH = false,
|
||||
INCLUDE_NPTH = true
|
||||
};
|
||||
|
||||
/**
|
||||
* GetPadCount
|
||||
* returns the number of pads.
|
||||
|
@ -439,7 +439,7 @@ public:
|
|||
* non-plated through holes when false.
|
||||
* @return the number of pads according to \a aIncludeNPTH.
|
||||
*/
|
||||
unsigned GetPadCount( INCLUDE_NPTH_T aIncludeNPTH = INCLUDE_NPTH ) const;
|
||||
unsigned GetPadCount( INCLUDE_NPTH_T aIncludeNPTH = INCLUDE_NPTH_T( INCLUDE_NPTH ) ) const;
|
||||
|
||||
double GetArea() const { return m_Surface; }
|
||||
|
||||
|
|
|
@ -62,6 +62,8 @@
|
|||
Zoom 5 and 10 can create artefacts when drawing (integer overflow in low level graphic
|
||||
functions )
|
||||
*/
|
||||
#define DEFAULT_ZOOM ZOOM_FACTOR( 120 )
|
||||
|
||||
static const double pcbZoomList[] =
|
||||
{
|
||||
ZOOM_FACTOR( 0.1 ),
|
||||
|
@ -73,17 +75,18 @@ static const double pcbZoomList[] =
|
|||
ZOOM_FACTOR( 2.0 ),
|
||||
ZOOM_FACTOR( 3.0 ),
|
||||
ZOOM_FACTOR( 4.5 ),
|
||||
ZOOM_FACTOR( 7.0 ),
|
||||
ZOOM_FACTOR( 10.0 ),
|
||||
ZOOM_FACTOR( 6.0 ),
|
||||
ZOOM_FACTOR( 8.0 ),
|
||||
ZOOM_FACTOR( 11.0 ),
|
||||
ZOOM_FACTOR( 15.0 ),
|
||||
ZOOM_FACTOR( 22.0 ),
|
||||
ZOOM_FACTOR( 35.0 ),
|
||||
ZOOM_FACTOR( 50.0 ),
|
||||
ZOOM_FACTOR( 80.0 ),
|
||||
ZOOM_FACTOR( 120.0 ),
|
||||
ZOOM_FACTOR( 110.0 ),
|
||||
ZOOM_FACTOR( 150.0 ),
|
||||
ZOOM_FACTOR( 200.0 ),
|
||||
ZOOM_FACTOR( 300.0 ),
|
||||
|
||||
/*
|
||||
The largest distance that wx can support is INT_MAX, since it represents
|
||||
distance often in a wxCoord or wxSize. As a scalar, a distance is always
|
||||
|
@ -179,7 +182,7 @@ PCB_SCREEN::PCB_SCREEN( const wxSize& aPageSizeIU ) :
|
|||
m_Route_Layer_TOP = F_Cu; // default layers pair for vias (bottom to top)
|
||||
m_Route_Layer_BOTTOM = B_Cu;
|
||||
|
||||
SetZoom( ZOOM_FACTOR( 120 ) ); // a default value for zoom
|
||||
SetZoom( DEFAULT_ZOOM ); // a default value for zoom
|
||||
|
||||
InitDataPoints( aPageSizeIU );
|
||||
}
|
||||
|
|
|
@ -714,7 +714,7 @@ void WIZARD_FPLIB_TABLE::selectLibsGithub() // select a set of library on Git
|
|||
wxArrayString urls;
|
||||
|
||||
// Run the web viewer and open the default URL: the default path
|
||||
// or our github library depos
|
||||
// or our github library repos
|
||||
wxString defaultURL = m_currLibDescr->m_DefaultPath;
|
||||
|
||||
if( defaultURL.IsEmpty() )
|
||||
|
|
|
@ -22,7 +22,7 @@ WIZARD_FPLIB_TABLE_BASE::WIZARD_FPLIB_TABLE_BASE( wxWindow* parent, wxWindowID i
|
|||
wxBoxSizer* bSizerPage1;
|
||||
bSizerPage1 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxString m_rbFpLibFormatChoices[] = { _("KiCad (*.Pretty folder containing .kicad_mod files)"), _("GitHub (.Pretty lib stored on GitHub depos)"), _("Legacy ( old *.mod lib file)"), _("Eagle V6 xml library file"), _("Geda footprint folder (folder containing *.fp files)") };
|
||||
wxString m_rbFpLibFormatChoices[] = { _("KiCad (*.Pretty folder containing .kicad_mod files)"), _("GitHub (.Pretty lib stored on GitHub repos)"), _("Legacy ( old *.mod lib file)"), _("Eagle V6 xml library file"), _("Geda footprint folder (folder containing *.fp files)") };
|
||||
int m_rbFpLibFormatNChoices = sizeof( m_rbFpLibFormatChoices ) / sizeof( wxString );
|
||||
m_rbFpLibFormat = new wxRadioBox( m_wizPage1, wxID_ANY, _("Library Format:"), wxDefaultPosition, wxDefaultSize, m_rbFpLibFormatNChoices, m_rbFpLibFormatChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_rbFpLibFormat->SetSelection( 0 );
|
||||
|
|
|
@ -153,7 +153,7 @@
|
|||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="choices">"KiCad (*.Pretty folder containing .kicad_mod files)" "GitHub (.Pretty lib stored on GitHub depos)" "Legacy ( old *.mod lib file)" "Eagle V6 xml library file" "Geda footprint folder (folder containing *.fp files)"</property>
|
||||
<property name="choices">"KiCad (*.Pretty folder containing .kicad_mod files)" "GitHub (.Pretty lib stored on GitHub repos)" "Legacy ( old *.mod lib file)" "Eagle V6 xml library file" "Geda footprint folder (folder containing *.fp files)"</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
|
|
|
@ -548,7 +548,7 @@ bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName, bool aUseThou )
|
|||
idfBoard.SetLibraryVersion( 0 );
|
||||
|
||||
std::ostringstream ostr;
|
||||
ostr << "Created by KiCad " << TO_UTF8( GetBuildVersion() );
|
||||
ostr << "KiCad " << TO_UTF8( GetBuildVersion() );
|
||||
idfBoard.SetIDFSource( ostr.str() );
|
||||
|
||||
try
|
||||
|
|
|
@ -52,7 +52,7 @@ bool PCB_EDIT_FRAME::Clear_Pcb( bool aQuery )
|
|||
GetScreen()->ClearUndoRedoList();
|
||||
GetScreen()->ClrModify();
|
||||
|
||||
// Items visibility flags will be set becuse a new board will be created.
|
||||
// Items visibility flags will be set because a new board will be created.
|
||||
// Grid and ratsnest can be left to their previous state
|
||||
bool showGrid = IsElementVisible( GRID_VISIBLE );
|
||||
bool showRats = IsElementVisible( RATSNEST_VISIBLE );
|
||||
|
@ -68,11 +68,7 @@ bool PCB_EDIT_FRAME::Clear_Pcb( bool aQuery )
|
|||
// clear filename, to avoid overwriting an old file
|
||||
GetBoard()->SetFileName( wxEmptyString );
|
||||
|
||||
// preserve grid size accross call to InitDataPoints()
|
||||
|
||||
// wxRealPoint gridsize = GetScreen()->GetGridSize();
|
||||
GetScreen()->InitDataPoints( GetPageSizeIU() );
|
||||
// GetScreen()->SetGrid( gridsize );
|
||||
|
||||
GetBoard()->ResetHighLight();
|
||||
|
||||
|
@ -82,9 +78,10 @@ bool PCB_EDIT_FRAME::Clear_Pcb( bool aQuery )
|
|||
// Default copper layers count set to 2: double layer board
|
||||
GetBoard()->SetCopperLayerCount( 2 );
|
||||
|
||||
// Update display
|
||||
// Update display (some options depend on the board setup)
|
||||
GetBoard()->SetVisibleLayers( LSET().set() );
|
||||
|
||||
ReCreateLayerBox();
|
||||
ReCreateAuxiliaryToolbar();
|
||||
ReFillLayerWidget();
|
||||
|
||||
Zoom_Automatique( false );
|
||||
|
@ -116,10 +113,7 @@ bool FOOTPRINT_EDIT_FRAME::Clear_Pcb( bool aQuery )
|
|||
|
||||
SetCurItem( NULL );
|
||||
|
||||
// preserve grid size accross call to InitDataPoints()
|
||||
// wxRealPoint gridsize = GetScreen()->GetGridSize();
|
||||
GetScreen()->InitDataPoints( GetPageSizeIU() );
|
||||
// GetScreen()->SetGrid( gridsize );
|
||||
|
||||
Zoom_Automatique( false );
|
||||
|
||||
|
|
|
@ -510,8 +510,8 @@ void PCB_EDIT_FRAME::ReCreateMenuBar()
|
|||
KiBitmap( save_setup_xpm ) );
|
||||
|
||||
AddMenuItem( configmenu, ID_CONFIG_READ,
|
||||
_( "&Read Preferences" ),
|
||||
_( "Read application preferences" ),
|
||||
_( "Load Prefe&rences" ),
|
||||
_( "Load application preferences" ),
|
||||
KiBitmap( read_setup_xpm ) );
|
||||
|
||||
//----- Tools menu ----------------------------------------------------------
|
||||
|
|
|
@ -731,8 +731,7 @@ void PCB_EDIT_FRAME::ShowDesignRulesEditor( wxCommandEvent& event )
|
|||
if( returncode == wxID_OK ) // New rules, or others changes.
|
||||
{
|
||||
ReCreateLayerBox();
|
||||
updateTraceWidthSelectBox();
|
||||
updateViaSizeSelectBox();
|
||||
ReCreateAuxiliaryToolbar();
|
||||
OnModify();
|
||||
}
|
||||
}
|
||||
|
@ -876,8 +875,7 @@ void PCB_EDIT_FRAME::unitsChangeRefresh()
|
|||
{
|
||||
PCB_BASE_FRAME::unitsChangeRefresh(); // Update the grid size select box.
|
||||
|
||||
updateTraceWidthSelectBox();
|
||||
updateViaSizeSelectBox();
|
||||
ReCreateAuxiliaryToolbar();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1064,8 +1062,7 @@ bool PCB_EDIT_FRAME::SetCurrentNetClass( const wxString& aNetClassName )
|
|||
|
||||
if( change )
|
||||
{
|
||||
updateTraceWidthSelectBox();
|
||||
updateViaSizeSelectBox();
|
||||
ReCreateAuxiliaryToolbar();
|
||||
}
|
||||
|
||||
return change;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
%extend BOARD
|
||||
{
|
||||
%pythoncode
|
||||
{
|
||||
%{
|
||||
def GetModules(self): return self.m_Modules
|
||||
def GetDrawings(self): return self.m_Drawings
|
||||
def GetTracks(self): return self.m_Track
|
||||
|
@ -48,7 +48,7 @@
|
|||
def Add(self,item):
|
||||
item.thisown=0
|
||||
self.AddNative(item)
|
||||
}
|
||||
%}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
%extend MODULE
|
||||
{
|
||||
%pythoncode
|
||||
{
|
||||
%{
|
||||
|
||||
#def SaveToLibrary(self,filename):
|
||||
# return SaveModuleToLibrary(filename,self)
|
||||
|
@ -51,7 +51,7 @@
|
|||
elif type(itemC) in [ TEXTE_PCB, DIMENSION, TEXTE_MODULE, DRAWSEGMENT,EDGE_MODULE]:
|
||||
item.thisown = 0
|
||||
self.GraphicalItems().PushBack(item)
|
||||
}
|
||||
%}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -296,11 +296,11 @@ class HelpfulFootprintWizardPlugin(pcbnew.FootprintWizardPlugin,
|
|||
fpid = pcbnew.FPID(self.module.GetValue()) # the name in library
|
||||
self.module.SetFPID(fpid)
|
||||
|
||||
self.BuildThisFootprint() # implementer's build function
|
||||
|
||||
self.SetModule3DModel() # add a 3d module if specified
|
||||
|
||||
thick = self.GetTextThickness()
|
||||
|
||||
self.module.Reference().SetThickness(thick)
|
||||
self.module.Value().SetThickness(thick)
|
||||
|
||||
self.BuildThisFootprint() # implementer's build function
|
||||
|
|
|
@ -51,8 +51,7 @@ void PCB_EDIT_FRAME::ToolOnRightClick( wxCommandEvent& event )
|
|||
|
||||
if( dlg.ShowModal() == wxID_OK )
|
||||
{
|
||||
updateTraceWidthSelectBox();
|
||||
updateViaSizeSelectBox();
|
||||
ReCreateAuxiliaryToolbar();
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -46,13 +46,6 @@
|
|||
|
||||
#include <wx/wupdlock.h>
|
||||
|
||||
|
||||
#ifdef __UNIX__
|
||||
#define LISTBOX_WIDTH 150
|
||||
#else
|
||||
#define LISTBOX_WIDTH 130
|
||||
#endif
|
||||
|
||||
#define SEL_LAYER_HELP _( \
|
||||
"Show active layer selections\nand select layer pair for route and place via" )
|
||||
|
||||
|
@ -551,7 +544,20 @@ void PCB_EDIT_FRAME::ReCreateAuxiliaryToolbar()
|
|||
wxWindowUpdateLocker dummy( this );
|
||||
|
||||
if( m_auxiliaryToolBar )
|
||||
{
|
||||
updateTraceWidthSelectBox();
|
||||
updateViaSizeSelectBox();
|
||||
|
||||
// combobox sizes can have changed: apply new best sizes
|
||||
wxAuiToolBarItem* item = m_auxiliaryToolBar->FindTool( ID_AUX_TOOLBAR_PCB_TRACK_WIDTH );
|
||||
item->SetMinSize( m_SelTrackWidthBox->GetBestSize() );
|
||||
item = m_auxiliaryToolBar->FindTool( ID_AUX_TOOLBAR_PCB_VIA_SIZE );
|
||||
item->SetMinSize( m_SelViaSizeBox->GetBestSize() );
|
||||
|
||||
m_auxiliaryToolBar->Realize();
|
||||
m_auimgr.Update();
|
||||
return;
|
||||
}
|
||||
|
||||
m_auxiliaryToolBar = new wxAuiToolBar( this, ID_AUX_TOOLBAR, wxDefaultPosition, wxDefaultSize,
|
||||
wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_HORZ_LAYOUT );
|
||||
|
@ -562,19 +568,19 @@ void PCB_EDIT_FRAME::ReCreateAuxiliaryToolbar()
|
|||
m_SelTrackWidthBox = new wxComboBox( m_auxiliaryToolBar,
|
||||
ID_AUX_TOOLBAR_PCB_TRACK_WIDTH,
|
||||
wxEmptyString,
|
||||
wxPoint( -1, -1 ),
|
||||
wxSize( LISTBOX_WIDTH, -1 ),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
0, NULL, wxCB_READONLY );
|
||||
updateTraceWidthSelectBox();
|
||||
m_auxiliaryToolBar->AddControl( m_SelTrackWidthBox );
|
||||
m_auxiliaryToolBar->AddSeparator();
|
||||
// m_auxiliaryToolBar->AddSeparator();
|
||||
|
||||
// Creates box to display and choose vias diameters:
|
||||
m_SelViaSizeBox = new wxComboBox( m_auxiliaryToolBar,
|
||||
ID_AUX_TOOLBAR_PCB_VIA_SIZE,
|
||||
wxEmptyString,
|
||||
wxPoint( -1, -1 ),
|
||||
wxSize( (LISTBOX_WIDTH*12)/10, -1 ),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
0, NULL, wxCB_READONLY );
|
||||
updateViaSizeSelectBox();
|
||||
m_auxiliaryToolBar->AddControl( m_SelViaSizeBox );
|
||||
m_auxiliaryToolBar->AddSeparator();
|
||||
|
||||
|
@ -591,9 +597,9 @@ an existing track use its width\notherwise, use current width setting" ),
|
|||
m_gridSelectBox = new wxComboBox( m_auxiliaryToolBar,
|
||||
ID_ON_GRID_SELECT,
|
||||
wxEmptyString,
|
||||
wxPoint( -1, -1 ),
|
||||
wxSize( LISTBOX_WIDTH, -1 ),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
0, NULL, wxCB_READONLY );
|
||||
updateGridSelectBox();
|
||||
m_auxiliaryToolBar->AddControl( m_gridSelectBox );
|
||||
|
||||
// Add the box to display and select the current Zoom
|
||||
|
@ -601,19 +607,14 @@ an existing track use its width\notherwise, use current width setting" ),
|
|||
m_zoomSelectBox = new wxComboBox( m_auxiliaryToolBar,
|
||||
ID_ON_ZOOM_SELECT,
|
||||
wxEmptyString,
|
||||
wxPoint( -1, -1 ),
|
||||
wxSize( LISTBOX_WIDTH, -1 ),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
0, NULL, wxCB_READONLY );
|
||||
m_auxiliaryToolBar->AddControl( m_zoomSelectBox );
|
||||
|
||||
updateZoomSelectBox();
|
||||
updateGridSelectBox();
|
||||
updateTraceWidthSelectBox();
|
||||
updateViaSizeSelectBox();
|
||||
m_auxiliaryToolBar->AddControl( m_zoomSelectBox );
|
||||
|
||||
// after adding the buttons to the toolbar, must call Realize()
|
||||
m_auxiliaryToolBar->Realize();
|
||||
m_auxiliaryToolBar->AddSeparator();
|
||||
// m_auxiliaryToolBar->AddSeparator();
|
||||
}
|
||||
|
||||
|
||||
|
@ -623,13 +624,25 @@ void PCB_EDIT_FRAME::updateTraceWidthSelectBox()
|
|||
return;
|
||||
|
||||
wxString msg;
|
||||
bool mmFirst = g_UserUnit != INCHES;
|
||||
|
||||
m_SelTrackWidthBox->Clear();
|
||||
|
||||
for( unsigned ii = 0; ii < GetDesignSettings().m_TrackWidthList.size(); ii++ )
|
||||
{
|
||||
msg = _( "Track " ) + CoordinateToString( GetDesignSettings().m_TrackWidthList[ii], true );
|
||||
int size = GetDesignSettings().m_TrackWidthList[ii];
|
||||
|
||||
double valueMils = To_User_Unit( INCHES, size ) * 1000;
|
||||
double value_mm = To_User_Unit( MILLIMETRES, size );
|
||||
|
||||
if( mmFirst )
|
||||
msg.Printf( _( "Track: %.3f mm (%.2f mils)" ),
|
||||
value_mm, valueMils );
|
||||
else
|
||||
msg.Printf( _( "Track: %.2f mils (%.3f mm)" ),
|
||||
valueMils, value_mm );
|
||||
|
||||
// Mark the netclass track width value (the first in list)
|
||||
if( ii == 0 )
|
||||
msg << wxT( " *" );
|
||||
|
||||
|
@ -651,16 +664,42 @@ void PCB_EDIT_FRAME::updateViaSizeSelectBox()
|
|||
wxString msg;
|
||||
|
||||
m_SelViaSizeBox->Clear();
|
||||
bool mmFirst = g_UserUnit != INCHES;
|
||||
|
||||
for( unsigned ii = 0; ii < GetDesignSettings().m_ViasDimensionsList.size(); ii++ )
|
||||
{
|
||||
msg = _( "Via " );
|
||||
msg << CoordinateToString( GetDesignSettings().m_ViasDimensionsList[ii].m_Diameter, true );
|
||||
int diam = GetDesignSettings().m_ViasDimensionsList[ii].m_Diameter;
|
||||
|
||||
if( GetDesignSettings().m_ViasDimensionsList[ii].m_Drill )
|
||||
msg << wxT("/ ")
|
||||
<< CoordinateToString( GetDesignSettings().m_ViasDimensionsList[ii].m_Drill, true );
|
||||
double valueMils = To_User_Unit( INCHES, diam ) * 1000;
|
||||
double value_mm = To_User_Unit( MILLIMETRES, diam );
|
||||
|
||||
if( mmFirst )
|
||||
msg.Printf( _( "Via: %.2f mm (%.1f mils)" ),
|
||||
value_mm, valueMils );
|
||||
else
|
||||
msg.Printf( _( "Via: %.1f mils (%.2f mm)" ),
|
||||
valueMils, value_mm );
|
||||
|
||||
int hole = GetDesignSettings().m_ViasDimensionsList[ii].m_Drill;
|
||||
|
||||
if( hole )
|
||||
{
|
||||
msg << wxT("/ ");
|
||||
wxString hole_str;
|
||||
double valueMils = To_User_Unit( INCHES, hole ) * 1000;
|
||||
double value_mm = To_User_Unit( MILLIMETRES, hole );
|
||||
|
||||
if( mmFirst )
|
||||
hole_str.Printf( _( "%.2f mm (%.1f mils)" ),
|
||||
value_mm, valueMils );
|
||||
else
|
||||
hole_str.Printf( _( "%.1f mils (%.2f mm)" ),
|
||||
valueMils, value_mm );
|
||||
|
||||
msg += hole_str;
|
||||
}
|
||||
|
||||
// Mark the netclass via size value (the first in list)
|
||||
if( ii == 0 )
|
||||
msg << wxT( " *" );
|
||||
|
||||
|
|
|
@ -37,7 +37,10 @@ if (len(lines)<4000):
|
|||
txt = ""
|
||||
|
||||
for l in lines:
|
||||
if l.startswith("if version_info >= (2,6,0):"):
|
||||
if l.startswith("if version_info >= (2,6,0):"): # ok with swig version <= 3.0.2
|
||||
l = l.replace("version_info >= (2,6,0)","False")
|
||||
doneOk = True
|
||||
elif l.startswith("if version_info >= (2, 6, 0):"): # needed with swig version 3.0.3
|
||||
l = l.replace("version_info >= (2, 6, 0)","False")
|
||||
doneOk = True
|
||||
elif l.startswith("if False:"): # it was already patched?
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
%extend DLIST
|
||||
{
|
||||
%pythoncode
|
||||
{
|
||||
%{
|
||||
class DLISTIter:
|
||||
def __init__(self,aList):
|
||||
self.last = aList # last item is the start of list
|
||||
|
@ -63,5 +63,5 @@
|
|||
def __iter__(self):
|
||||
return self.DLISTIter(self)
|
||||
|
||||
}
|
||||
%}
|
||||
}
|
||||
|
|
|
@ -136,7 +136,7 @@
|
|||
const char* Cast_to_CChar() { return (self->c_str()); }
|
||||
|
||||
%pythoncode
|
||||
{
|
||||
%{
|
||||
|
||||
# Get the char buffer of the UTF8 string
|
||||
def GetChars(self):
|
||||
|
@ -147,6 +147,6 @@
|
|||
def __str__(self):
|
||||
return self.GetChars()
|
||||
|
||||
}
|
||||
%}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue