Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
ea603c4d
Commit
ea603c4d
authored
Dec 18, 2012
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pcbnew: fix minor bugs. Fix bug 1091593 and 1091693 . Minor code cleaning
parent
63b88455
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
270 additions
and
153 deletions
+270
-153
wxPcbStruct.h
include/wxPcbStruct.h
+12
-3
dialog_cleaning_options.cpp
pcbnew/dialogs/dialog_cleaning_options.cpp
+1
-1
dialog_copper_zones.cpp
pcbnew/dialogs/dialog_copper_zones.cpp
+1
-1
dialog_netlist.cpp
pcbnew/dialogs/dialog_netlist.cpp
+148
-16
dialog_netlist.h
pcbnew/dialogs/dialog_netlist.h
+44
-24
dialog_netlist_fbp.cpp
pcbnew/dialogs/dialog_netlist_fbp.cpp
+24
-24
dialog_netlist_fbp.fbp
pcbnew/dialogs/dialog_netlist_fbp.fbp
+10
-10
dialog_netlist_fbp.h
pcbnew/dialogs/dialog_netlist_fbp.h
+6
-6
netlist.cpp
pcbnew/netlist.cpp
+20
-66
pcb_parser.cpp
pcbnew/pcb_parser.cpp
+1
-0
zones_convert_brd_items_to_polygons_with_Boost.cpp
pcbnew/zones_convert_brd_items_to_polygons_with_Boost.cpp
+3
-2
No files found.
include/wxPcbStruct.h
View file @
ea603c4d
...
@@ -404,9 +404,18 @@ public:
...
@@ -404,9 +404,18 @@ public:
* 1 - duplicate footprints on board
* 1 - duplicate footprints on board
* 2 - missing footprints (found in netlist but not on board)
* 2 - missing footprints (found in netlist but not on board)
* 3 - footprints not in netlist but on board
* 3 - footprints not in netlist but on board
* @param aNetlistFullFilename = the full filename netlist
* @param aFilename = the full filename netlist
*/
* @param aDuplicate = the list of duplicate modules to populate
void
Test_Duplicate_Missing_And_Extra_Footprints
(
const
wxString
&
aNetlistFullFilename
);
* @param aMissing = the list of missing module references and values
* to populate. For each missing item, the first string is the ref,
* the second is the value.
* @param aNotInNetlist = the list of not-in-netlist modules to populate
* @return true if the netlist was read, or false
*/
bool
Test_Duplicate_Missing_And_Extra_Footprints
(
const
wxString
&
aFilename
,
std
::
vector
<
MODULE
*>&
aDuplicate
,
wxArrayString
&
aMissing
,
std
::
vector
<
MODULE
*>&
aNotInNetlist
);
/**
/**
* Function OnHotKey.
* Function OnHotKey.
...
...
pcbnew/dialogs/dialog_cleaning_options.cpp
View file @
ea603c4d
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
/*
/*
* This program source code file is part of KiCad, a free EDA CAD application.
* This program source code file is part of KiCad, a free EDA CAD application.
*
*
* Copyright (C) 1992-201
1
2 KiCad Developers, see change_log.txt for contributors.
* Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* modify it under the terms of the GNU General Public License
...
...
pcbnew/dialogs/dialog_copper_zones.cpp
View file @
ea603c4d
...
@@ -448,7 +448,7 @@ bool DIALOG_COPPER_ZONE::AcceptOptions( bool aPromptForErrors, bool aUseExportab
...
@@ -448,7 +448,7 @@ bool DIALOG_COPPER_ZONE::AcceptOptions( bool aPromptForErrors, bool aUseExportab
if
(
m_settings
.
m_ThermalReliefCopperBridge
<=
m_settings
.
m_ZoneMinThickness
)
if
(
m_settings
.
m_ThermalReliefCopperBridge
<=
m_settings
.
m_ZoneMinThickness
)
{
{
DisplayError
(
this
,
DisplayError
(
this
,
_
(
"Thermal relief spoke width is
larg
er than the minimum width."
)
);
_
(
"Thermal relief spoke width is
small
er than the minimum width."
)
);
return
false
;
return
false
;
}
}
...
...
pcbnew/dialogs/dialog_netlist.cpp
View file @
ea603c4d
/////////////////////////////////////////////////////////////////////////////
/**
// Name: dialog_netlist.cpp
* @file dialog_netlist.cpp
// Author: jean-pierre Charras
*/
// Licence: GPL
/////////////////////////////////////////////////////////////////////////////
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <fctsys.h>
#include <fctsys.h>
#include <appl_wxstruct.h>
#include <appl_wxstruct.h>
#include <confirm.h>
#include <confirm.h>
#include <pcbnew.h>
#include <dialog_helpers.h>
#include <html_messagebox.h>
#include <base_units.h>
#include <wxPcbStruct.h>
#include <wxPcbStruct.h>
#include <macros.h>
#include <pcbcommon.h>
#include <pcbcommon.h>
#include <pcbnew_config.h>
#include <pcbnew_config.h>
#include <class_board_design_settings.h>
#include <class_board_design_settings.h>
#include <class_board.h>
#include <class_board.h>
#include <class_module.h>
#include <wildcards_and_files_ext.h>
#include <wildcards_and_files_ext.h>
#include <dialog_netlist.h>
#include <dialog_netlist.h>
...
@@ -53,12 +76,12 @@ void PCB_EDIT_FRAME::InstallNetlistFrame( wxDC* DC )
...
@@ -53,12 +76,12 @@ void PCB_EDIT_FRAME::InstallNetlistFrame( wxDC* DC )
DIALOG_NETLIST
::
DIALOG_NETLIST
(
PCB_EDIT_FRAME
*
aParent
,
wxDC
*
aDC
,
DIALOG_NETLIST
::
DIALOG_NETLIST
(
PCB_EDIT_FRAME
*
aParent
,
wxDC
*
aDC
,
const
wxString
&
aNetlistFull
_
Filename
)
const
wxString
&
aNetlistFullFilename
)
:
DIALOG_NETLIST_FBP
(
aParent
)
:
DIALOG_NETLIST_FBP
(
aParent
)
{
{
m_
P
arent
=
aParent
;
m_
p
arent
=
aParent
;
m_
DC
=
aDC
;
m_
dc
=
aDC
;
m_NetlistFilenameCtrl
->
SetValue
(
aNetlistFull
_
Filename
);
m_NetlistFilenameCtrl
->
SetValue
(
aNetlistFullFilename
);
Init
();
Init
();
...
@@ -71,10 +94,10 @@ void DIALOG_NETLIST::Init()
...
@@ -71,10 +94,10 @@ void DIALOG_NETLIST::Init()
SetFocus
();
SetFocus
();
}
}
void
DIALOG_NETLIST
::
OnOpenNelistClick
(
wxCommandEvent
&
event
)
void
DIALOG_NETLIST
::
OnOpenNe
t
listClick
(
wxCommandEvent
&
event
)
{
{
wxString
lastPath
=
wxFileName
::
GetCwd
();
wxString
lastPath
=
wxFileName
::
GetCwd
();
wxString
lastNetlistRead
=
m_
P
arent
->
GetLastNetListRead
();
wxString
lastNetlistRead
=
m_
p
arent
->
GetLastNetListRead
();
if
(
!
lastNetlistRead
.
IsEmpty
()
&&
!
wxFileName
::
FileExists
(
lastNetlistRead
)
)
if
(
!
lastNetlistRead
.
IsEmpty
()
&&
!
wxFileName
::
FileExists
(
lastNetlistRead
)
)
{
{
...
@@ -105,7 +128,7 @@ void DIALOG_NETLIST::OnReadNetlistFileClick( wxCommandEvent& event )
...
@@ -105,7 +128,7 @@ void DIALOG_NETLIST::OnReadNetlistFileClick( wxCommandEvent& event )
wxFileName
fn
=
m_NetlistFilenameCtrl
->
GetValue
();
wxFileName
fn
=
m_NetlistFilenameCtrl
->
GetValue
();
fn
.
SetExt
(
ComponentFileExtension
);
fn
.
SetExt
(
ComponentFileExtension
);
m_
P
arent
->
ReadPcbNetlist
(
m_NetlistFilenameCtrl
->
GetValue
(),
m_
p
arent
->
ReadPcbNetlist
(
m_NetlistFilenameCtrl
->
GetValue
(),
fn
.
GetFullPath
(),
m_MessageWindow
,
fn
.
GetFullPath
(),
m_MessageWindow
,
m_ChangeExistingFootprintCtrl
->
GetSelection
()
==
1
?
true
:
false
,
m_ChangeExistingFootprintCtrl
->
GetSelection
()
==
1
?
true
:
false
,
m_DeleteBadTracks
->
GetSelection
()
==
1
?
true
:
false
,
m_DeleteBadTracks
->
GetSelection
()
==
1
?
true
:
false
,
...
@@ -116,7 +139,116 @@ void DIALOG_NETLIST::OnReadNetlistFileClick( wxCommandEvent& event )
...
@@ -116,7 +139,116 @@ void DIALOG_NETLIST::OnReadNetlistFileClick( wxCommandEvent& event )
void
DIALOG_NETLIST
::
OnTestFootprintsClick
(
wxCommandEvent
&
event
)
void
DIALOG_NETLIST
::
OnTestFootprintsClick
(
wxCommandEvent
&
event
)
{
{
m_Parent
->
Test_Duplicate_Missing_And_Extra_Footprints
(
m_NetlistFilenameCtrl
->
GetValue
()
);
if
(
m_parent
->
GetBoard
()
->
m_Modules
==
NULL
)
{
DisplayInfoMessage
(
this
,
_
(
"No modules"
)
);
return
;
}
// Lists of duplicates, missing references and not in netlist footprints:
std
::
vector
<
MODULE
*>
duplicate
;
wxArrayString
missing
;
std
::
vector
<
MODULE
*>
notInNetlist
;
wxString
netlistFilename
=
m_NetlistFilenameCtrl
->
GetValue
();
if
(
!
m_parent
->
Test_Duplicate_Missing_And_Extra_Footprints
(
netlistFilename
,
duplicate
,
missing
,
notInNetlist
)
)
{
wxMessageBox
(
_
(
"Netlist file not found!"
)
);
return
;
}
#define ERR_CNT_MAX 100 // Max number of errors to output in dialog
// to avoid a too long message list
wxString
list
;
// The messages to display
m_parent
->
SetLastNetListRead
(
netlistFilename
);
int
err_cnt
=
0
;
// Search for duplicate footprints.
if
(
duplicate
.
size
()
==
0
)
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"No duplicate."
)
<<
wxT
(
"</b></p>"
);
else
{
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"Duplicates:"
)
<<
wxT
(
"</b></p>"
);
for
(
unsigned
ii
=
0
;
ii
<
duplicate
.
size
();
ii
++
)
{
MODULE
*
module
=
duplicate
[
ii
];
if
(
module
->
m_Reference
->
m_Text
.
IsEmpty
()
)
list
<<
wxT
(
"<br>"
)
<<
wxT
(
"[noref)"
);
else
list
<<
wxT
(
"<br>"
)
<<
module
->
m_Reference
->
m_Text
;
list
<<
wxT
(
" (<i>"
)
<<
module
->
m_Value
->
m_Text
<<
wxT
(
"</i>)"
);
list
<<
wxT
(
" @ "
);
list
<<
CoordinateToString
(
module
->
GetPosition
().
x
),
list
<<
wxT
(
", "
)
<<
CoordinateToString
(
module
->
GetPosition
().
y
),
err_cnt
++
;
if
(
ERR_CNT_MAX
<
err_cnt
)
break
;
}
}
// Search for missing modules on board.
if
(
missing
.
size
()
==
0
)
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"No missing modules."
)
<<
wxT
(
"</b></p>"
);
else
{
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"Missing:"
)
<<
wxT
(
"</b></p>"
);
for
(
unsigned
ii
=
0
;
ii
<
missing
.
size
();
ii
+=
2
)
{
list
<<
wxT
(
"<br>"
)
<<
missing
[
ii
];
list
<<
wxT
(
" (<i>"
)
<<
missing
[
ii
+
1
]
<<
wxT
(
"</i>)"
);
err_cnt
++
;
if
(
ERR_CNT_MAX
<
err_cnt
)
break
;
}
}
// Search for modules found on board but not in net list.
if
(
notInNetlist
.
size
()
==
0
)
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"No extra modules."
)
<<
wxT
(
"</b></p>"
);
else
{
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"Not in Netlist:"
)
<<
wxT
(
"</b></p>"
);
for
(
unsigned
ii
=
0
;
ii
<
notInNetlist
.
size
();
ii
++
)
{
MODULE
*
module
=
notInNetlist
[
ii
];
if
(
module
->
m_Reference
->
m_Text
.
IsEmpty
()
)
list
<<
wxT
(
"<br>"
)
<<
wxT
(
"[noref)"
);
else
list
<<
wxT
(
"<br>"
)
<<
module
->
m_Reference
->
m_Text
;
list
<<
wxT
(
" (<i>"
)
<<
module
->
m_Value
->
m_Text
<<
wxT
(
"</i>)"
);
list
<<
wxT
(
" @ "
);
list
<<
CoordinateToString
(
module
->
GetPosition
().
x
),
list
<<
wxT
(
", "
)
<<
CoordinateToString
(
module
->
GetPosition
().
y
),
err_cnt
++
;
if
(
ERR_CNT_MAX
<
err_cnt
)
break
;
}
}
if
(
ERR_CNT_MAX
<
err_cnt
)
{
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"Too many errors: some are skipped"
)
<<
wxT
(
"</b></p>"
);
}
HTML_MESSAGE_BOX
dlg
(
this
,
_
(
"Check Modules"
)
);
dlg
.
AddHTML_Text
(
list
);
dlg
.
ShowModal
();
}
}
...
@@ -126,7 +258,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event )
...
@@ -126,7 +258,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event )
void
DIALOG_NETLIST
::
OnCompileRatsnestClick
(
wxCommandEvent
&
event
)
void
DIALOG_NETLIST
::
OnCompileRatsnestClick
(
wxCommandEvent
&
event
)
{
{
m_
Parent
->
Compile_Ratsnest
(
m_DC
,
true
);
m_
parent
->
Compile_Ratsnest
(
m_dc
,
true
);
}
}
...
...
pcbnew/dialogs/dialog_netlist.h
View file @
ea603c4d
/////////////////////////////////////////////////////////////////////////////
/**
// Name: dialog_netlist.h
* @file dialog_netlist.h
/// Author: jean-pierre Charras
*/
// Licence: GPL
/////////////////////////////////////////////////////////////////////////////
/*
* This program source code file is part of KiCad, a free EDA CAD application.
// Generated by DialogBlocks (unregistered), 26/02/2006 17:42:19
*
* Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _DIALOG_NETLIST_H_
#ifndef _DIALOG_NETLIST_H_
#define _DIALOG_NETLIST_H_
#define _DIALOG_NETLIST_H_
...
@@ -14,23 +33,24 @@
...
@@ -14,23 +33,24 @@
class
DIALOG_NETLIST
:
public
DIALOG_NETLIST_FBP
class
DIALOG_NETLIST
:
public
DIALOG_NETLIST_FBP
{
{
private
:
private
:
PCB_EDIT_FRAME
*
m_Parent
;
PCB_EDIT_FRAME
*
m_parent
;
wxDC
*
m_DC
;
wxDC
*
m_dc
;
public
:
public
:
DIALOG_NETLIST
(
PCB_EDIT_FRAME
*
aParent
,
wxDC
*
aDC
,
DIALOG_NETLIST
(
PCB_EDIT_FRAME
*
aParent
,
wxDC
*
aDC
,
const
wxString
&
aNetlistFull_Filename
);
const
wxString
&
aNetlistFullFilename
);
~
DIALOG_NETLIST
()
{};
~
DIALOG_NETLIST
()
{};
void
Init
();
private
:
// Virtual event handlers, overide them in your derived class
void
Init
();
void
OnOpenNelistClick
(
wxCommandEvent
&
event
);
// Virtual event handlers, overide them in your derived class
void
OnReadNetlistFileClick
(
wxCommandEvent
&
event
);
void
OnOpenNetlistClick
(
wxCommandEvent
&
event
);
void
OnTestFootprintsClick
(
wxCommandEvent
&
event
);
void
OnReadNetlistFileClick
(
wxCommandEvent
&
event
);
void
OnCompileRatsnestClick
(
wxCommandEvent
&
event
);
void
OnTestFootprintsClick
(
wxCommandEvent
&
event
);
void
OnCancelClick
(
wxCommandEvent
&
event
);
void
OnCompileRatsnestClick
(
wxCommandEvent
&
event
);
void
OnCancelClick
(
wxCommandEvent
&
event
);
};
};
...
...
pcbnew/dialogs/dialog_netlist_fbp.cpp
View file @
ea603c4d
...
@@ -66,27 +66,27 @@ DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id, const w
...
@@ -66,27 +66,27 @@ DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id, const w
wxBoxSizer
*
bRightSizerButtons
;
wxBoxSizer
*
bRightSizerButtons
;
bRightSizerButtons
=
new
wxBoxSizer
(
wxVERTICAL
);
bRightSizerButtons
=
new
wxBoxSizer
(
wxVERTICAL
);
m_button
1
=
new
wxButton
(
this
,
ID_OPEN_NELIST
,
_
(
"Browse Netlist Files"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_button
Browse
=
new
wxButton
(
this
,
ID_OPEN_NELIST
,
_
(
"Browse Netlist Files"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
bRightSizerButtons
->
Add
(
m_button
1
,
0
,
wxALL
|
wxEXPAND
,
5
);
bRightSizerButtons
->
Add
(
m_button
Browse
,
0
,
wxEXPAND
|
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_button
2
=
new
wxButton
(
this
,
ID_READ_NETLIST_FILE
,
_
(
"Read Current Netlist"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_button
Read
=
new
wxButton
(
this
,
ID_READ_NETLIST_FILE
,
_
(
"Read Current Netlist"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_button
2
->
SetDefault
();
m_button
Read
->
SetDefault
();
m_button
2
->
SetToolTip
(
_
(
"Read the current netlist and update connections and connectivity info"
)
);
m_button
Read
->
SetToolTip
(
_
(
"Read the current netlist and update connections and connectivity info"
)
);
bRightSizerButtons
->
Add
(
m_button
2
,
0
,
wxALL
|
wxEXPAND
,
5
);
bRightSizerButtons
->
Add
(
m_button
Read
,
0
,
wxEXPAND
|
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_button
3
=
new
wxButton
(
this
,
ID_TEST_NETLIST
,
_
(
"Footprints Test"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_button
FPTest
=
new
wxButton
(
this
,
ID_TEST_NETLIST
,
_
(
"Footprints Test"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_button
3
->
SetToolTip
(
_
(
"Read the current neltist file and list missing and extra footprints"
)
);
m_button
FPTest
->
SetToolTip
(
_
(
"Read the current neltist file and list missing and extra footprints"
)
);
bRightSizerButtons
->
Add
(
m_button
3
,
0
,
wxALL
|
wxEXPAND
,
5
);
bRightSizerButtons
->
Add
(
m_button
FPTest
,
0
,
wxEXPAND
|
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_button
4
=
new
wxButton
(
this
,
ID_COMPILE_RATSNEST
,
_
(
"Rebuild Board Connectivity"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_button
Rebild
=
new
wxButton
(
this
,
ID_COMPILE_RATSNEST
,
_
(
"Rebuild Board Connectivity"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_button
4
->
SetToolTip
(
_
(
"Rebuild the full ratsnest (usefull after a manual pad netname edition)"
)
);
m_button
Rebild
->
SetToolTip
(
_
(
"Rebuild the full ratsnest (usefull after a manual pad netname edition)"
)
);
bRightSizerButtons
->
Add
(
m_button
4
,
0
,
wxALL
|
wxEXPAND
,
5
);
bRightSizerButtons
->
Add
(
m_button
Rebild
,
0
,
wxEXPAND
|
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_button
5
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Close"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_button
Close
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Close"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
bRightSizerButtons
->
Add
(
m_button
5
,
0
,
wxALL
|
wxEXPAND
,
5
);
bRightSizerButtons
->
Add
(
m_button
Close
,
0
,
wxALL
|
wxEXPAND
,
5
);
bUpperSizer
->
Add
(
bRightSizerButtons
,
0
,
wxALIGN_CENTER_VERTICAL
,
5
);
bUpperSizer
->
Add
(
bRightSizerButtons
,
0
,
wxALIGN_CENTER_VERTICAL
,
5
);
...
@@ -118,20 +118,20 @@ DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id, const w
...
@@ -118,20 +118,20 @@ DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP( wxWindow* parent, wxWindowID id, const w
this
->
Layout
();
this
->
Layout
();
// Connect Events
// Connect Events
m_button
1
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnOpenNe
listClick
),
NULL
,
this
);
m_button
Browse
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnOpenNet
listClick
),
NULL
,
this
);
m_button
2
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnReadNetlistFileClick
),
NULL
,
this
);
m_button
Read
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnReadNetlistFileClick
),
NULL
,
this
);
m_button
3
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnTestFootprintsClick
),
NULL
,
this
);
m_button
FPTest
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnTestFootprintsClick
),
NULL
,
this
);
m_button
4
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnCompileRatsnestClick
),
NULL
,
this
);
m_button
Rebild
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnCompileRatsnestClick
),
NULL
,
this
);
m_button
5
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnCancelClick
),
NULL
,
this
);
m_button
Close
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnCancelClick
),
NULL
,
this
);
}
}
DIALOG_NETLIST_FBP
::~
DIALOG_NETLIST_FBP
()
DIALOG_NETLIST_FBP
::~
DIALOG_NETLIST_FBP
()
{
{
// Disconnect Events
// Disconnect Events
m_button
1
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnOpenNe
listClick
),
NULL
,
this
);
m_button
Browse
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnOpenNet
listClick
),
NULL
,
this
);
m_button
2
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnReadNetlistFileClick
),
NULL
,
this
);
m_button
Read
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnReadNetlistFileClick
),
NULL
,
this
);
m_button
3
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnTestFootprintsClick
),
NULL
,
this
);
m_button
FPTest
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnTestFootprintsClick
),
NULL
,
this
);
m_button
4
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnCompileRatsnestClick
),
NULL
,
this
);
m_button
Rebild
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnCompileRatsnestClick
),
NULL
,
this
);
m_button
5
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnCancelClick
),
NULL
,
this
);
m_button
Close
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_NETLIST_FBP
::
OnCancelClick
),
NULL
,
this
);
}
}
pcbnew/dialogs/dialog_netlist_fbp.fbp
View file @
ea603c4d
...
@@ -493,7 +493,7 @@
...
@@ -493,7 +493,7 @@
<property
name=
"permission"
>
none
</property>
<property
name=
"permission"
>
none
</property>
<object
class=
"sizeritem"
expanded=
"1"
>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
5
</property>
<property
name=
"border"
>
5
</property>
<property
name=
"flag"
>
wx
ALL|wxEXPAND
</property>
<property
name=
"flag"
>
wx
EXPAND|wxTOP|wxRIGHT|wxLEFT
</property>
<property
name=
"proportion"
>
0
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxButton"
expanded=
"1"
>
<object
class=
"wxButton"
expanded=
"1"
>
<property
name=
"BottomDockable"
>
1
</property>
<property
name=
"BottomDockable"
>
1
</property>
...
@@ -532,7 +532,7 @@
...
@@ -532,7 +532,7 @@
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"name"
>
m_button
1
</property>
<property
name=
"name"
>
m_button
Browse
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_size"
></property>
<property
name=
"pane_size"
></property>
...
@@ -553,7 +553,7 @@
...
@@ -553,7 +553,7 @@
<property
name=
"window_extra_style"
></property>
<property
name=
"window_extra_style"
></property>
<property
name=
"window_name"
></property>
<property
name=
"window_name"
></property>
<property
name=
"window_style"
></property>
<property
name=
"window_style"
></property>
<event
name=
"OnButtonClick"
>
OnOpenNelistClick
</event>
<event
name=
"OnButtonClick"
>
OnOpenNe
t
listClick
</event>
<event
name=
"OnChar"
></event>
<event
name=
"OnChar"
></event>
<event
name=
"OnEnterWindow"
></event>
<event
name=
"OnEnterWindow"
></event>
<event
name=
"OnEraseBackground"
></event>
<event
name=
"OnEraseBackground"
></event>
...
@@ -581,7 +581,7 @@
...
@@ -581,7 +581,7 @@
</object>
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
5
</property>
<property
name=
"border"
>
5
</property>
<property
name=
"flag"
>
wx
ALL|wxEXPAND
</property>
<property
name=
"flag"
>
wx
EXPAND|wxTOP|wxRIGHT|wxLEFT
</property>
<property
name=
"proportion"
>
0
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxButton"
expanded=
"1"
>
<object
class=
"wxButton"
expanded=
"1"
>
<property
name=
"BottomDockable"
>
1
</property>
<property
name=
"BottomDockable"
>
1
</property>
...
@@ -620,7 +620,7 @@
...
@@ -620,7 +620,7 @@
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"name"
>
m_button
2
</property>
<property
name=
"name"
>
m_button
Read
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_size"
></property>
<property
name=
"pane_size"
></property>
...
@@ -669,7 +669,7 @@
...
@@ -669,7 +669,7 @@
</object>
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
5
</property>
<property
name=
"border"
>
5
</property>
<property
name=
"flag"
>
wx
ALL|wxEXPAND
</property>
<property
name=
"flag"
>
wx
EXPAND|wxTOP|wxRIGHT|wxLEFT
</property>
<property
name=
"proportion"
>
0
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxButton"
expanded=
"1"
>
<object
class=
"wxButton"
expanded=
"1"
>
<property
name=
"BottomDockable"
>
1
</property>
<property
name=
"BottomDockable"
>
1
</property>
...
@@ -708,7 +708,7 @@
...
@@ -708,7 +708,7 @@
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"name"
>
m_button
3
</property>
<property
name=
"name"
>
m_button
FPTest
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_size"
></property>
<property
name=
"pane_size"
></property>
...
@@ -757,7 +757,7 @@
...
@@ -757,7 +757,7 @@
</object>
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
5
</property>
<property
name=
"border"
>
5
</property>
<property
name=
"flag"
>
wx
ALL|wxEXPAND
</property>
<property
name=
"flag"
>
wx
EXPAND|wxTOP|wxRIGHT|wxLEFT
</property>
<property
name=
"proportion"
>
0
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxButton"
expanded=
"1"
>
<object
class=
"wxButton"
expanded=
"1"
>
<property
name=
"BottomDockable"
>
1
</property>
<property
name=
"BottomDockable"
>
1
</property>
...
@@ -796,7 +796,7 @@
...
@@ -796,7 +796,7 @@
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"name"
>
m_button
4
</property>
<property
name=
"name"
>
m_button
Rebild
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_size"
></property>
<property
name=
"pane_size"
></property>
...
@@ -884,7 +884,7 @@
...
@@ -884,7 +884,7 @@
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"moveable"
>
1
</property>
<property
name=
"name"
>
m_button
5
</property>
<property
name=
"name"
>
m_button
Close
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_border"
>
1
</property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_position"
></property>
<property
name=
"pane_size"
></property>
<property
name=
"pane_size"
></property>
...
...
pcbnew/dialogs/dialog_netlist_fbp.h
View file @
ea603c4d
...
@@ -47,11 +47,11 @@ class DIALOG_NETLIST_FBP : public DIALOG_SHIM
...
@@ -47,11 +47,11 @@ class DIALOG_NETLIST_FBP : public DIALOG_SHIM
wxRadioBox
*
m_ChangeExistingFootprintCtrl
;
wxRadioBox
*
m_ChangeExistingFootprintCtrl
;
wxRadioBox
*
m_DeleteBadTracks
;
wxRadioBox
*
m_DeleteBadTracks
;
wxRadioBox
*
m_RemoveExtraFootprintsCtrl
;
wxRadioBox
*
m_RemoveExtraFootprintsCtrl
;
wxButton
*
m_button
1
;
wxButton
*
m_button
Browse
;
wxButton
*
m_button
2
;
wxButton
*
m_button
Read
;
wxButton
*
m_button
3
;
wxButton
*
m_button
FPTest
;
wxButton
*
m_button
4
;
wxButton
*
m_button
Rebild
;
wxButton
*
m_button
5
;
wxButton
*
m_button
Close
;
wxStaticLine
*
m_staticline1
;
wxStaticLine
*
m_staticline1
;
wxStaticText
*
m_staticTextNetfilename
;
wxStaticText
*
m_staticTextNetfilename
;
wxTextCtrl
*
m_NetlistFilenameCtrl
;
wxTextCtrl
*
m_NetlistFilenameCtrl
;
...
@@ -59,7 +59,7 @@ class DIALOG_NETLIST_FBP : public DIALOG_SHIM
...
@@ -59,7 +59,7 @@ class DIALOG_NETLIST_FBP : public DIALOG_SHIM
wxTextCtrl
*
m_MessageWindow
;
wxTextCtrl
*
m_MessageWindow
;
// Virtual event handlers, overide them in your derived class
// Virtual event handlers, overide them in your derived class
virtual
void
OnOpenNelistClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnOpenNe
t
listClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnReadNetlistFileClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnReadNetlistFileClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnTestFootprintsClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnTestFootprintsClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnCompileRatsnestClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnCompileRatsnestClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
...
...
pcbnew/netlist.cpp
View file @
ea603c4d
...
@@ -65,7 +65,6 @@
...
@@ -65,7 +65,6 @@
#include <class_module.h>
#include <class_module.h>
#include <pcbnew.h>
#include <pcbnew.h>
#include <dialog_netlist.h>
#include <dialog_netlist.h>
#include <html_messagebox.h>
#include <netlist_reader.h>
#include <netlist_reader.h>
...
@@ -251,46 +250,33 @@ MODULE* PCB_EDIT_FRAME::ListAndSelectModuleName( void )
...
@@ -251,46 +250,33 @@ MODULE* PCB_EDIT_FRAME::ListAndSelectModuleName( void )
* 1 - duplicate footprints on board
* 1 - duplicate footprints on board
* 2 - missing footprints (found in netlist but not on board)
* 2 - missing footprints (found in netlist but not on board)
* 3 - footprints not in netlist but on board
* 3 - footprints not in netlist but on board
* @param aNetlistFullFilename = the full filename netlist
* param aFilename = the full filename netlist
* param aDuplicate = the list of duplicate modules to populate
* param aMissing = the list of missing module references and values
* to populate. For each missing item, the first string is the ref,
* the second is the value.
* param aNotInNetlist = the list of not-in-netlist modules to populate
*/
*/
void
PCB_EDIT_FRAME
::
Test_Duplicate_Missing_And_Extra_Footprints
(
bool
PCB_EDIT_FRAME
::
Test_Duplicate_Missing_And_Extra_Footprints
(
const
wxString
&
aNetlistFullFilename
)
const
wxString
&
aFilename
,
std
::
vector
<
MODULE
*>&
aDuplicate
,
wxArrayString
&
aMissing
,
std
::
vector
<
MODULE
*>&
aNotInNetlist
)
{
{
#define ERR_CNT_MAX 100 // Max number of errors to output in dialog
FILE
*
netfile
=
OpenNetlistFile
(
aFilename
);
// to avoid a too long calculation time
wxString
list
;
// The messages to display
if
(
GetBoard
()
->
m_Modules
==
NULL
)
{
DisplayInfoMessage
(
this
,
_
(
"No modules"
)
);
return
;
}
FILE
*
netfile
=
OpenNetlistFile
(
aNetlistFullFilename
);
if
(
!
netfile
)
if
(
!
netfile
)
return
;
return
false
;
SetLastNetListRead
(
aNetlistFullFilename
);
// Build the list of references of the net list modules.
// Build the list of references of the net list modules.
NETLIST_READER
netList_Reader
(
this
);
NETLIST_READER
netList_Reader
(
this
);
netList_Reader
.
SetFilesnames
(
a
NetlistFull
Filename
,
wxEmptyString
);
netList_Reader
.
SetFilesnames
(
aFilename
,
wxEmptyString
);
netList_Reader
.
BuildModuleListOnlySetOpt
(
true
);
netList_Reader
.
BuildModuleListOnlySetOpt
(
true
);
if
(
!
netList_Reader
.
ReadNetList
(
netfile
)
)
if
(
!
netList_Reader
.
ReadNetList
(
netfile
)
)
return
;
// error
return
false
;
// error
COMPONENT_INFO_LIST
&
moduleInfoList
=
netList_Reader
.
GetComponentInfoList
();
COMPONENT_INFO_LIST
&
moduleInfoList
=
netList_Reader
.
GetComponentInfoList
();
if
(
moduleInfoList
.
size
()
==
0
)
{
wxMessageBox
(
_
(
"No modules in NetList"
)
);
return
;
}
// Search for duplicate footprints.
// Search for duplicate footprints.
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"Duplicates:"
)
<<
wxT
(
"</b></p>"
);
int
err_cnt
=
0
;
MODULE
*
module
=
GetBoard
()
->
m_Modules
;
MODULE
*
module
=
GetBoard
()
->
m_Modules
;
for
(
;
module
!=
NULL
;
module
=
module
->
Next
()
)
for
(
;
module
!=
NULL
;
module
=
module
->
Next
()
)
{
{
...
@@ -300,40 +286,25 @@ void PCB_EDIT_FRAME::Test_Duplicate_Missing_And_Extra_Footprints(
...
@@ -300,40 +286,25 @@ void PCB_EDIT_FRAME::Test_Duplicate_Missing_And_Extra_Footprints(
{
{
if
(
module
->
m_Reference
->
m_Text
.
CmpNoCase
(
altmodule
->
m_Reference
->
m_Text
)
==
0
)
if
(
module
->
m_Reference
->
m_Text
.
CmpNoCase
(
altmodule
->
m_Reference
->
m_Text
)
==
0
)
{
{
if
(
module
->
m_Reference
->
m_Text
.
IsEmpty
()
)
aDuplicate
.
push_back
(
module
);
list
<<
wxT
(
"<br>"
)
<<
wxT
(
"[noref)"
);
else
list
<<
wxT
(
"<br>"
)
<<
module
->
m_Reference
->
m_Text
;
list
<<
wxT
(
" (<i>"
)
<<
module
->
m_Value
->
m_Text
<<
wxT
(
"</i>)"
);
err_cnt
++
;
break
;
break
;
}
}
}
}
if
(
ERR_CNT_MAX
<
err_cnt
)
break
;
}
}
// Search for missing modules on board.
// Search for missing modules on board.
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"Missing:"
)
<<
wxT
(
"</b></p>"
);
for
(
unsigned
ii
=
0
;
ii
<
moduleInfoList
.
size
();
ii
++
)
for
(
unsigned
ii
=
0
;
ii
<
moduleInfoList
.
size
();
ii
++
)
{
{
COMPONENT_INFO
*
cmp_info
=
moduleInfoList
[
ii
];
COMPONENT_INFO
*
cmp_info
=
moduleInfoList
[
ii
];
module
=
GetBoard
()
->
FindModuleByReference
(
cmp_info
->
m_Reference
);
module
=
GetBoard
()
->
FindModuleByReference
(
cmp_info
->
m_Reference
);
if
(
module
==
NULL
)
// Module missing, not found in board
if
(
module
==
NULL
)
// Module missing, not found in board
{
{
list
<<
wxT
(
"<br>"
)
<<
cmp_info
->
m_Reference
;
aMissing
.
Add
(
cmp_info
->
m_Reference
);
list
<<
wxT
(
" (<i>"
)
<<
cmp_info
->
m_Value
<<
wxT
(
"</i>)"
);
aMissing
.
Add
(
cmp_info
->
m_Value
);
err_cnt
++
;
}
}
if
(
ERR_CNT_MAX
<
err_cnt
)
break
;
}
}
// Search for modules found on board but not in net list.
// Search for modules found on board but not in net list.
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"Not in Netlist:"
)
<<
wxT
(
"</b></p>"
);
module
=
GetBoard
()
->
m_Modules
;
module
=
GetBoard
()
->
m_Modules
;
for
(
;
module
!=
NULL
;
module
=
module
->
Next
()
)
for
(
;
module
!=
NULL
;
module
=
module
->
Next
()
)
{
{
...
@@ -346,25 +317,8 @@ void PCB_EDIT_FRAME::Test_Duplicate_Missing_And_Extra_Footprints(
...
@@ -346,25 +317,8 @@ void PCB_EDIT_FRAME::Test_Duplicate_Missing_And_Extra_Footprints(
}
}
if
(
ii
==
moduleInfoList
.
size
()
)
// Module not found in netlist
if
(
ii
==
moduleInfoList
.
size
()
)
// Module not found in netlist
{
aNotInNetlist
.
push_back
(
module
);
if
(
module
->
m_Reference
->
m_Text
.
IsEmpty
()
)
list
<<
wxT
(
"<br>"
)
<<
wxT
(
"[noref)"
);
else
list
<<
wxT
(
"<br>"
)
<<
module
->
m_Reference
->
m_Text
;
list
<<
wxT
(
" (<i>"
)
<<
module
->
m_Value
->
m_Text
<<
wxT
(
"</i>)"
);
err_cnt
++
;
}
if
(
ERR_CNT_MAX
<
err_cnt
)
break
;
}
if
(
ERR_CNT_MAX
<
err_cnt
)
{
list
<<
wxT
(
"<p><b>"
)
<<
_
(
"Too many errors: some are skipped"
)
<<
wxT
(
"</b></p>"
);
}
}
HTML_MESSAGE_BOX
dlg
(
this
,
_
(
"Check Modules"
)
);
return
true
;
dlg
.
AddHTML_Text
(
list
);
dlg
.
ShowModal
();
}
}
pcbnew/pcb_parser.cpp
View file @
ea603c4d
...
@@ -1406,6 +1406,7 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
...
@@ -1406,6 +1406,7 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
{
{
TEXTE_PCB
*
text
=
parseTEXTE_PCB
();
TEXTE_PCB
*
text
=
parseTEXTE_PCB
();
dimension
->
m_Text
=
*
text
;
dimension
->
m_Text
=
*
text
;
dimension
->
SetPosition
(
text
->
GetPosition
()
);
delete
text
;
delete
text
;
break
;
break
;
}
}
...
...
pcbnew/zones_convert_brd_items_to_polygons_with_Boost.cpp
View file @
ea603c4d
...
@@ -443,8 +443,9 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
...
@@ -443,8 +443,9 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb )
cornerBufferPolysToSubstract
.
clear
();
cornerBufferPolysToSubstract
.
clear
();
// Test thermal stubs connections and add polygons to remove unconnected stubs.
// Test thermal stubs connections and add polygons to remove unconnected stubs.
BuildUnconnectedThermalStubsPolygonList
(
cornerBufferPolysToSubstract
,
aPcb
,
this
,
if
(
GetNet
()
>
0
)
s_Correction
,
s_thermalRot
);
BuildUnconnectedThermalStubsPolygonList
(
cornerBufferPolysToSubstract
,
aPcb
,
this
,
s_Correction
,
s_thermalRot
);
// remove copper areas
// remove copper areas
if
(
cornerBufferPolysToSubstract
.
size
()
)
if
(
cornerBufferPolysToSubstract
.
size
()
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment