small bugs fixed. Added: Support for microvias (see changelog)
This commit is contained in:
parent
a5e2913ded
commit
e3a3d16af8
|
@ -250,7 +250,8 @@ double zpos, height;
|
|||
int color;
|
||||
|
||||
r = via->m_Width * g_Parm_3D_Visu.m_BoardScale / 2;
|
||||
hole = g_Parm_3D_Visu.m_BoardSettings->m_ViaDrill * g_Parm_3D_Visu.m_BoardScale / 2;
|
||||
hole = via->GetDrillValue();
|
||||
hole *= g_Parm_3D_Visu.m_BoardScale / 2;
|
||||
x = via->m_Start.x * g_Parm_3D_Visu.m_BoardScale;
|
||||
y = via->m_Start.y * g_Parm_3D_Visu.m_BoardScale;
|
||||
|
||||
|
|
|
@ -4,6 +4,16 @@ Started 2007-June-11
|
|||
Please add newer entries at the top, list the date and your name with
|
||||
email address.
|
||||
|
||||
2007-Dec-12 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||
================================================================================
|
||||
+eeschema:
|
||||
missing footprints in export netlist (bug 1867321)
|
||||
Affected: PadsPcb converter did not list all footprints
|
||||
|
||||
+pcbnew:
|
||||
fixed: memory not freeed in block copy (minor bug)
|
||||
Support for micro vias (generation of drill files not finished)
|
||||
|
||||
2008-jan-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||
================================================================================
|
||||
+pcbnew:
|
||||
|
|
|
@ -250,7 +250,8 @@ void Write_GENERIC_NetList( WinEDA_SchematicFrame* frame,
|
|||
|
||||
/* Create netlist module section */
|
||||
fprintf( tmpfile, "$BeginComponentList\n" );
|
||||
for( CurrScreen = ScreenSch; CurrScreen != NULL; CurrScreen = (BASE_SCREEN*) CurrScreen->Pnext )
|
||||
EDA_ScreenList ScreenList( NULL );
|
||||
for( CurrScreen = ScreenList.GetFirst(); CurrScreen != NULL; CurrScreen = ScreenList.GetNext() )
|
||||
{
|
||||
for( DrawList = CurrScreen->EEDrawList; DrawList != NULL; DrawList = DrawList->Pnext )
|
||||
{
|
||||
|
|
|
@ -181,7 +181,7 @@ static int SavePcbFormatAscii( WinEDA_GerberFrame* frame, FILE* aFile,
|
|||
|
||||
newtrack->SetLayer( 0x0F ); // Layers are 0 to 15 (Cu/Cmp)
|
||||
|
||||
newtrack->m_Drill = -1;
|
||||
newtrack->SetDrillDefault();
|
||||
|
||||
// Compute the via position from track position ( Via position is the
|
||||
// position of the middle of the track segment )
|
||||
|
|
|
@ -577,6 +577,7 @@ enum main_id {
|
|||
ID_POPUP_PCB_EDIT_COTATION,
|
||||
ID_POPUP_PCB_END_TRACK,
|
||||
ID_POPUP_PCB_PLACE_VIA,
|
||||
ID_POPUP_PCB_PLACE_MICROVIA,
|
||||
|
||||
ID_POPUP_PCB_IMPORT_PAD_SETTINGS,
|
||||
ID_POPUP_PCB_EXPORT_PAD_SETTINGS,
|
||||
|
|
|
@ -150,7 +150,10 @@ class EDA_BoardDesignSettings
|
|||
public:
|
||||
int m_CopperLayerCount; // Number of copper layers for this design
|
||||
int m_ViaDrill; // via drill (for the entire board)
|
||||
int m_MicroViaDrill; // micro via drill (for the entire board)
|
||||
int m_CurrentViaSize; // Current via size
|
||||
int m_CurrentMicroViaSize; // Current micro via size
|
||||
bool m_MicroViasAllowed; // true to allow micro vias
|
||||
int m_ViaSizeHistory[HIST0RY_NUMBER]; // Last HIST0RY_NUMBER used via sizes
|
||||
int m_CurrentViaType; // via type (BLIND, TROUGHT ...), bits 1 and 2 (not 0 and 1)
|
||||
int m_CurrentTrackWidth; // current track width
|
||||
|
@ -222,6 +225,14 @@ public:
|
|||
* @return BOARD_ITEM* - the one selected, or NULL.
|
||||
*/
|
||||
BOARD_ITEM* GetCurItem() const { return (BOARD_ITEM*) BASE_SCREEN::GetCurItem(); }
|
||||
|
||||
/* Return true if a microvia can be put on board
|
||||
* A microvia ia a small via restricted to 2 near neighbour layers
|
||||
* because its is hole is made by laser which can penetrate only one layer
|
||||
* It is mainly used to connect BGA to the first inner layer
|
||||
* And it is allowed from an external layer to the first inner layer
|
||||
*/
|
||||
bool IsMicroViaAcceptable(void);
|
||||
};
|
||||
|
||||
/**********************************/
|
||||
|
|
Binary file not shown.
2427
internat/fr/kicad.po
2427
internat/fr/kicad.po
File diff suppressed because it is too large
Load Diff
|
@ -110,6 +110,12 @@ void BOARD::UnLink()
|
|||
|
||||
void BOARD::Add( BOARD_ITEM* aBoardItem, int aControl )
|
||||
{
|
||||
if ( aBoardItem == NULL )
|
||||
{
|
||||
wxFAIL_MSG( wxT("BOARD::Add() param error: aBoardItem NULL") );
|
||||
return;
|
||||
}
|
||||
|
||||
switch( aBoardItem->Type() )
|
||||
{
|
||||
// this one uses a vector
|
||||
|
|
|
@ -199,10 +199,10 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
|
|||
text << _( "Via" ) << wxT( " " ) << via->ShowWidth();
|
||||
|
||||
int shape = via->Shape();
|
||||
if( shape == VIA_BURIED )
|
||||
text << wxT(" ") << _( "Blind" );
|
||||
else if( shape == VIA_BLIND )
|
||||
text << wxT(" ") << _("Buried");
|
||||
if( shape == VIA_BLIND_BURIED )
|
||||
text << wxT(" ") << _( "Blind/Buried" );
|
||||
else if( shape == VIA_MICROVIA )
|
||||
text << wxT(" ") << _("Micro Via");
|
||||
// else say nothing about normal (through) vias
|
||||
|
||||
net = aPcb->FindNet( via->GetNet() );
|
||||
|
|
|
@ -65,6 +65,8 @@ wxString DRC_ITEM::GetErrorText() const
|
|||
return wxString( _("Pad near pad") );
|
||||
case DRCE_VIA_HOLE_BIGGER:
|
||||
return wxString( _("Via hole > diameter"));
|
||||
case DRCE_MICRO_VIA_INCORRECT_LAYER_PAIR:
|
||||
return wxString( _("Micro Via: incorrect layer pairs (not adjacent)"));
|
||||
case COPPERAREA_INSIDE_COPPERAREA:
|
||||
return wxString( _("Copper area inside copper area"));
|
||||
case COPPERAREA_CLOSE_TO_COPPERAREA:
|
||||
|
|
|
@ -68,6 +68,16 @@ MARKER::MARKER( int aErrorCode, const wxPoint& aMarkerPos,
|
|||
bText, bPos );
|
||||
}
|
||||
|
||||
MARKER::MARKER( int aErrorCode, const wxPoint& aMarkerPos,
|
||||
const wxString& aText, const wxPoint& aPos ) :
|
||||
BOARD_ITEM( NULL, TYPEMARKER ) // parent set during BOARD::Add()
|
||||
{
|
||||
init();
|
||||
|
||||
SetData( aErrorCode, aMarkerPos,
|
||||
aText, aPos );
|
||||
}
|
||||
|
||||
|
||||
/* Effacement memoire de la structure */
|
||||
MARKER::~MARKER()
|
||||
|
@ -91,6 +101,17 @@ void MARKER::SetData( int aErrorCode, const wxPoint& aMarkerPos,
|
|||
}
|
||||
|
||||
|
||||
void MARKER::SetData( int aErrorCode, const wxPoint& aMarkerPos,
|
||||
const wxString& aText, const wxPoint& aPos )
|
||||
{
|
||||
m_drc.SetData( aErrorCode, aMarkerPos,
|
||||
aText, aPos );
|
||||
|
||||
// @todo: switch on error code to set error code specific color, and possibly bitmap.
|
||||
m_Color = WHITE;
|
||||
}
|
||||
|
||||
|
||||
/* supprime du chainage la structure Struct
|
||||
* les structures arrieres et avant sont chainees directement
|
||||
*/
|
||||
|
@ -122,6 +143,7 @@ void MARKER::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
txtA << DRC_ITEM::ShowCoord( rpt.GetPointA() ) << wxT(": ") << rpt.GetTextA();
|
||||
|
||||
wxString txtB;
|
||||
if ( rpt.AsSecondItem() )
|
||||
txtB << DRC_ITEM::ShowCoord( rpt.GetPointB() ) << wxT(": ") << rpt.GetTextB();
|
||||
|
||||
text_pos = 25;
|
||||
|
|
|
@ -37,6 +37,16 @@ public:
|
|||
MARKER( int aErrorCode, const wxPoint& aMarkerPos,
|
||||
const wxString& aText, const wxPoint& aPos,
|
||||
const wxString& bText, const wxPoint& bPos );
|
||||
/**
|
||||
* Constructor
|
||||
* @param aErrorCode The categorizing identifier for an error
|
||||
* @param aMarkerPos The position of the MARKER on the BOARD
|
||||
* @param aText Text describing the object
|
||||
* @param aPos The position of the object
|
||||
*/
|
||||
MARKER( int aErrorCode, const wxPoint& aMarkerPos,
|
||||
const wxString& aText, const wxPoint& aPos );
|
||||
|
||||
|
||||
~MARKER();
|
||||
|
||||
|
@ -78,6 +88,17 @@ public:
|
|||
const wxString& aText, const wxPoint& aPos,
|
||||
const wxString& bText, const wxPoint& bPos );
|
||||
|
||||
/**
|
||||
* Function SetData
|
||||
* fills in all the reportable data associated with a MARKER.
|
||||
* @param aErrorCode The categorizing identifier for an error
|
||||
* @param aMarkerPos The position of the MARKER on the BOARD
|
||||
* @param aText Text describing the object
|
||||
* @param aPos The position of the object
|
||||
*/
|
||||
void SetData( int aErrorCode, const wxPoint& aMarkerPos,
|
||||
const wxString& aText, const wxPoint& aPos );
|
||||
|
||||
|
||||
/**
|
||||
* Function GetReporter
|
||||
|
|
|
@ -52,7 +52,7 @@ TRACK::TRACK( BOARD_ITEM* StructFather, KICAD_T idtype ) :
|
|||
start = end = NULL;
|
||||
SetNet( 0 );
|
||||
SetSubNet( 0 );
|
||||
m_Drill = -1;
|
||||
SetDrillDefault();
|
||||
m_Param = 0;
|
||||
}
|
||||
|
||||
|
@ -131,6 +131,24 @@ TRACK* TRACK::Copy() const
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function GetDrillValue
|
||||
* calculate the drill value for vias (m-Drill if > 0, or default drill value for the board
|
||||
* @return real drill_value
|
||||
*/
|
||||
int TRACK::GetDrillValue(void)
|
||||
{
|
||||
if ( Type() != TYPEVIA ) return 0;
|
||||
|
||||
if ( m_Drill >= 0 ) return m_Drill;
|
||||
|
||||
if ( m_Shape == VIA_MICROVIA )
|
||||
return g_DesignSettings.m_MicroViaDrill;
|
||||
|
||||
return g_DesignSettings.m_ViaDrill;
|
||||
}
|
||||
|
||||
|
||||
/***********************/
|
||||
bool TRACK::IsNull()
|
||||
/***********************/
|
||||
|
@ -253,7 +271,7 @@ int TRACK::ReturnMaskLayer()
|
|||
if( via_type == VIA_THROUGH )
|
||||
return ALL_CU_LAYERS;
|
||||
|
||||
// VIA_BLIND or VIA_BURIED:
|
||||
// VIA_BLIND_BURIED or VIA_MICRVIA:
|
||||
|
||||
int bottom_layer, top_layer;
|
||||
|
||||
|
@ -522,33 +540,6 @@ TRACK* TRACK::GetEndNetCode( int NetCode )
|
|||
}
|
||||
|
||||
|
||||
#if 0 // replaced by Save()
|
||||
/********************************************/
|
||||
bool TRACK::WriteTrackDescr( FILE* File )
|
||||
/********************************************/
|
||||
/* write a via description on file
|
||||
*/
|
||||
{
|
||||
int type = 0;
|
||||
|
||||
if( Type() == TYPEVIA )
|
||||
type = 1;
|
||||
|
||||
if( GetState( DELETED ) )
|
||||
return FALSE;
|
||||
|
||||
fprintf( File, "Po %d %d %d %d %d %d %d\n", m_Shape,
|
||||
m_Start.x, m_Start.y, m_End.x, m_End.y, m_Width, m_Drill );
|
||||
|
||||
fprintf( File, "De %d %d %d %lX %X\n",
|
||||
m_Layer, type, GetNet(),
|
||||
m_TimeStamp, ReturnStatus() );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
bool TRACK::Save( FILE* aFile ) const
|
||||
{
|
||||
int type = 0;
|
||||
|
@ -631,20 +622,17 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode )
|
|||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y, rayon, color );
|
||||
if( rayon > (4 * zoom) )
|
||||
{
|
||||
int drill_rayon, inner_rayon = rayon - (2 * zoom);
|
||||
int drill_rayon = GetDrillValue() / 2;
|
||||
int inner_rayon = rayon - (2 * zoom);
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
inner_rayon, color );
|
||||
|
||||
// Draw the via hole if the display option allows it
|
||||
if( DisplayOpt.m_DisplayViaMode != VIA_HOLE_NOT_SHOW )
|
||||
{
|
||||
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW)
|
||||
|| ( m_Drill > 0 ) )
|
||||
if( (DisplayOpt.m_DisplayViaMode == ALL_VIA_HOLE_SHOW) || // Display all drill holes requested
|
||||
( (drill_rayon > 0 ) && ! IsDrillDefault() ) ) // Or Display non default holes requested
|
||||
{
|
||||
if( m_Drill > 0 )
|
||||
drill_rayon = m_Drill / 2;
|
||||
else
|
||||
drill_rayon = g_DesignSettings.m_ViaDrill / 2;
|
||||
if( drill_rayon < inner_rayon ) // We can show the via hole
|
||||
{
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
|
@ -656,6 +644,33 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode )
|
|||
if( DisplayOpt.DisplayTrackIsol )
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
rayon + g_DesignSettings.m_TrackClearence, color );
|
||||
// for Micro Vias, draw a partial cross :
|
||||
// X on component layer, or + on copper layer
|
||||
// (so we can see 2 superimposed microvias ):
|
||||
if ( Shape() == VIA_MICROVIA )
|
||||
{
|
||||
int ax, ay, bx, by;
|
||||
if ( IsOnLayer(COPPER_LAYER_N) )
|
||||
{
|
||||
ax = rayon; ay = 0;
|
||||
bx = drill_rayon; by = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ax = ay = (rayon * 707) / 1000;
|
||||
bx = by = (drill_rayon * 707) / 1000;
|
||||
}
|
||||
/* lines | or \ */
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - ax , m_Start.y - ay,
|
||||
m_Start.x - bx , m_Start.y - by, 0, color );
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x + bx , m_Start.y + by,
|
||||
m_Start.x + ax , m_Start.y + ay, 0, color );
|
||||
/* lines - or / */
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x + ay, m_Start.y - ax ,
|
||||
m_Start.x + by, m_Start.y - bx, 0, color );
|
||||
GRLine( &panel->m_ClipBox, DC, m_Start.x - by, m_Start.y + bx ,
|
||||
m_Start.x - ay, m_Start.y + ax, 0, color );
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -813,8 +828,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
{
|
||||
Affiche_1_Parametre( frame, text_pos, _( "Diam" ), msg, DARKCYAN );
|
||||
|
||||
int drill_value = m_Drill >= 0 ?
|
||||
m_Drill : g_DesignSettings.m_ViaDrill;
|
||||
int drill_value = GetDrillValue();
|
||||
|
||||
valeur_param( (unsigned) drill_value, msg );
|
||||
|
||||
|
@ -909,7 +923,7 @@ void TRACK::Show( int nestLevel, std::ostream& os )
|
|||
" layer=\"" << m_Layer << '"' <<
|
||||
" width=\"" << m_Width << '"' <<
|
||||
|
||||
// " drill=\"" << m_Drill << '"' <<
|
||||
// " drill=\"" << GetDrillValue() << '"' <<
|
||||
" netcode=\"" << GetNet() << "\">" <<
|
||||
"<start" << m_Start << "/>" <<
|
||||
"<end" << m_End << "/>";
|
||||
|
@ -935,12 +949,12 @@ void SEGVIA::Show( int nestLevel, std::ostream& os )
|
|||
cp = "through";
|
||||
break;
|
||||
|
||||
case VIA_BURIED:
|
||||
cp = "blind";
|
||||
case VIA_BLIND_BURIED:
|
||||
cp = "blind/buried";
|
||||
break;
|
||||
|
||||
case VIA_BLIND:
|
||||
cp = "buried";
|
||||
case VIA_MICROVIA:
|
||||
cp = "micro via";
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -959,7 +973,7 @@ void SEGVIA::Show( int nestLevel, std::ostream& os )
|
|||
" layers=\"" << ReturnPcbLayerName( topLayer ).Trim().mb_str() << ","
|
||||
<< ReturnPcbLayerName( botLayer ).Trim().mb_str() << '"' <<
|
||||
" width=\"" << m_Width << '"' <<
|
||||
" drill=\"" << m_Drill << '"' <<
|
||||
" drill=\"" << GetDrillValue() << '"' <<
|
||||
" netcode=\"" << GetNet() << "\">" <<
|
||||
"<pos" << m_Start << "/>";
|
||||
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
|
||||
// Via attributes (m_Shape parmeter)
|
||||
#define VIA_THROUGH 3 /* Always a through hole via */
|
||||
#define VIA_BURIED 2 /* this via can be on internal layers */
|
||||
#define VIA_BLIND 1 /* this via which connect from internal layers to an external layer */
|
||||
#define VIA_NOT_DEFINED 0 /* reserved (unused) */
|
||||
#define VIA_BLIND_BURIED 2 /* this via can be on internal layers */
|
||||
#define VIA_MICROVIA 1 /* this via which connect from an external layer to the near neightbour internal layer */
|
||||
#define VIA_NOT_DEFINED 0 /* not yet used */
|
||||
|
||||
/***/
|
||||
|
||||
|
@ -22,10 +22,12 @@ public:
|
|||
int m_Width; // 0 = line, > 0 = tracks, bus ...
|
||||
wxPoint m_Start; // Line start point
|
||||
wxPoint m_End; // Line end point
|
||||
|
||||
int m_Shape; // vias: shape and type, Track = shape..
|
||||
|
||||
protected:
|
||||
int m_Drill; // for vias: via drill (- 1 for default value)
|
||||
|
||||
public:
|
||||
BOARD_ITEM* start; // pointers to a connected item (pad or track)
|
||||
BOARD_ITEM* end;
|
||||
|
||||
|
@ -136,6 +138,7 @@ public:
|
|||
{
|
||||
int dx = m_Start.x - m_End.x;
|
||||
int dy = m_Start.y - m_End.y;
|
||||
|
||||
return hypot( dx, dy );
|
||||
}
|
||||
|
||||
|
@ -147,6 +150,32 @@ public:
|
|||
int Shape() const { return m_Shape & 0xFF; }
|
||||
|
||||
/**
|
||||
* Function SetDrillValue
|
||||
* Set the drill value for vias
|
||||
* @param drill_value = new drill value
|
||||
*/
|
||||
void SetDrillValue(int drill_value) { m_Drill = drill_value; }
|
||||
|
||||
/**
|
||||
* Function SetDrillDefault
|
||||
* Set the drill value for vias at default value (-1)
|
||||
*/
|
||||
void SetDrillDefault(void) { m_Drill = -1; }
|
||||
|
||||
/**
|
||||
* Function IsDrillDefault
|
||||
* @return true if the drill value is default value (-1)
|
||||
*/
|
||||
bool IsDrillDefault(void) { return m_Drill < 0; }
|
||||
|
||||
/**
|
||||
* Function GetDrillValue
|
||||
* calculate the drill value for vias (m-Drill if > 0, or default drill value for the board
|
||||
* @return real drill_value
|
||||
*/
|
||||
int GetDrillValue(void);
|
||||
|
||||
/**
|
||||
* Function ReturnMaskLayer
|
||||
* returns a "layer mask", which is a bitmap of all layers on which the
|
||||
* TRACK segment or SEGVIA physically resides.
|
||||
|
@ -288,6 +317,8 @@ public:
|
|||
{
|
||||
return m_Start;
|
||||
}
|
||||
|
||||
|
||||
void SetPosition( const wxPoint& aPoint ) { m_Start = aPoint; m_End = aPoint; }
|
||||
|
||||
/**
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
#include "trigo.h"
|
||||
|
||||
|
||||
|
||||
|
||||
/**************************************************************/
|
||||
void EDA_BaseStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC )
|
||||
/**************************************************************/
|
||||
|
@ -301,6 +303,29 @@ void PCB_SCREEN::Init()
|
|||
}
|
||||
|
||||
|
||||
/* Return true if a microvia can be put on board
|
||||
* A microvia ia a small via restricted to 2 near neighbour layers
|
||||
* because its is hole is made by laser which can penetrate only one layer
|
||||
* It is mainly used to connect BGA to the first inner layer
|
||||
* And it is allowed from an external layer to the first inner layer
|
||||
*/
|
||||
bool PCB_SCREEN::IsMicroViaAcceptable(void)
|
||||
{
|
||||
int copperlayercnt = g_DesignSettings.m_CopperLayerCount;
|
||||
|
||||
if ( ! g_DesignSettings.m_MicroViasAllowed )
|
||||
return false; // Obvious..
|
||||
if ( copperlayercnt < 4 )
|
||||
return false; // Only on multilayer boards..
|
||||
if ( (m_Active_Layer == COPPER_LAYER_N) ||
|
||||
(m_Active_Layer == LAYER_CMP_N) ||
|
||||
(m_Active_Layer == g_DesignSettings.m_CopperLayerCount - 2) ||
|
||||
(m_Active_Layer == LAYER_N_2) )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/* class DISPLAY_OPTIONS */
|
||||
/*************************/
|
||||
|
@ -381,8 +406,9 @@ EDA_BoardDesignSettings::EDA_BoardDesignSettings()
|
|||
m_LayerColor[ii] = default_layer_color[ii];
|
||||
|
||||
// Layer colors (tracks and graphic items)
|
||||
m_ViaColor[VIA_BLIND] = CYAN;
|
||||
m_ViaColor[VIA_BURIED] = BROWN;
|
||||
m_ViaColor[VIA_NOT_DEFINED] = DARKGRAY;
|
||||
m_ViaColor[VIA_MICROVIA] = CYAN;
|
||||
m_ViaColor[VIA_BLIND_BURIED] = BROWN;
|
||||
m_ViaColor[VIA_THROUGH] = WHITE;
|
||||
m_ModuleTextCMPColor = LIGHTGRAY; // Text module color for modules on the COMPONENT layer
|
||||
m_ModuleTextCUColor = MAGENTA; // Text module color for modules on the COPPER layer
|
||||
|
|
|
@ -49,6 +49,8 @@ BEGIN_EVENT_TABLE( WinEDA_PcbTracksDialog, wxDialog )
|
|||
////@begin WinEDA_PcbTracksDialog event table entries
|
||||
EVT_INIT_DIALOG( WinEDA_PcbTracksDialog::OnInitDialog )
|
||||
|
||||
EVT_CHECKBOX( ID_CHECKBOX_ALLOWS_MICROVIA, WinEDA_PcbTracksDialog::OnCheckboxAllowsMicroviaClick )
|
||||
|
||||
EVT_BUTTON( wxID_OK, WinEDA_PcbTracksDialog::OnOkClick )
|
||||
|
||||
EVT_BUTTON( wxID_CANCEL, WinEDA_PcbTracksDialog::OnCancelClick )
|
||||
|
@ -86,6 +88,11 @@ bool WinEDA_PcbTracksDialog::Create( wxWindow* parent, wxWindowID id, const wxSt
|
|||
m_ViaAltDrillValueTitle = NULL;
|
||||
m_OptCustomViaDrill = NULL;
|
||||
m_OptViaType = NULL;
|
||||
m_MicroViaSizeTitle = NULL;
|
||||
m_MicroViaSizeCtrl = NULL;
|
||||
m_MicroViaDrillTitle = NULL;
|
||||
m_MicroViaDrillCtrl = NULL;
|
||||
m_AllowMicroViaCtrl = NULL;
|
||||
m_TrackWidthTitle = NULL;
|
||||
m_OptTrackWidth = NULL;
|
||||
m_TrackClearanceTitle = NULL;
|
||||
|
@ -117,80 +124,101 @@ void WinEDA_PcbTracksDialog::CreateControls()
|
|||
SetFont(*g_DialogFont);
|
||||
|
||||
////@begin WinEDA_PcbTracksDialog content construction
|
||||
// Generated by DialogBlocks, Sun 25 Nov 2007 15:41:58 CST (unregistered)
|
||||
// Generated by DialogBlocks, 11/01/2008 21:51:48 (unregistered)
|
||||
|
||||
WinEDA_PcbTracksDialog* itemDialog1 = this;
|
||||
|
||||
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
|
||||
itemDialog1->SetSizer(itemBoxSizer2);
|
||||
|
||||
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxALL, 5);
|
||||
wxStaticBox* itemStaticBoxSizer3Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Vias:"));
|
||||
wxStaticBoxSizer* itemStaticBoxSizer3 = new wxStaticBoxSizer(itemStaticBoxSizer3Static, wxVERTICAL);
|
||||
itemBoxSizer2->Add(itemStaticBoxSizer3, 0, wxGROW|wxALL, 5);
|
||||
|
||||
m_ViaSizeTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Via Size"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer3->Add(m_ViaSizeTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
itemStaticBoxSizer3->Add(m_ViaSizeTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
|
||||
m_OptViaSize = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer3->Add(m_OptViaSize, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
itemStaticBoxSizer3->Add(m_OptViaSize, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
m_ViaDefaultDrillValueTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Default Via Drill"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer3->Add(m_ViaDefaultDrillValueTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
itemStaticBoxSizer3->Add(m_ViaDefaultDrillValueTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
|
||||
m_OptViaDrill = new wxTextCtrl( itemDialog1, ID_TEXTCTRL1, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer3->Add(m_OptViaDrill, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
itemStaticBoxSizer3->Add(m_OptViaDrill, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
m_ViaAltDrillValueTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Alternate Via Drill"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer3->Add(m_ViaAltDrillValueTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
itemStaticBoxSizer3->Add(m_ViaAltDrillValueTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
|
||||
m_OptCustomViaDrill = new wxTextCtrl( itemDialog1, ID_TEXTCTRL2, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer3->Add(m_OptCustomViaDrill, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
itemStaticBoxSizer3->Add(m_OptCustomViaDrill, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
wxArrayString m_OptViaTypeStrings;
|
||||
m_OptViaTypeStrings.Add(_("Blind Via"));
|
||||
m_OptViaTypeStrings.Add(_("Buried Via"));
|
||||
m_OptViaTypeStrings.Add(_("Standard Via"));
|
||||
m_OptViaType = new wxRadioBox( itemDialog1, ID_VIA_TYPE_SELECTION, _("Via Type"), wxDefaultPosition, wxDefaultSize, m_OptViaTypeStrings, 1, wxRA_SPECIFY_COLS );
|
||||
m_OptViaTypeStrings.Add(_("Through Via"));
|
||||
m_OptViaTypeStrings.Add(_("Blind or Buried Via "));
|
||||
m_OptViaType = new wxRadioBox( itemDialog1, ID_VIA_TYPE_SELECTION, _("Default Via Type"), wxDefaultPosition, wxDefaultSize, m_OptViaTypeStrings, 1, wxRA_SPECIFY_COLS );
|
||||
m_OptViaType->SetSelection(0);
|
||||
itemBoxSizer3->Add(m_OptViaType, 0, wxGROW|wxALL, 5);
|
||||
itemStaticBoxSizer3->Add(m_OptViaType, 0, wxGROW|wxALL, 5);
|
||||
|
||||
itemBoxSizer2->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
wxStaticBox* itemStaticBoxSizer11Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Micro Vias:"));
|
||||
wxStaticBoxSizer* itemStaticBoxSizer11 = new wxStaticBoxSizer(itemStaticBoxSizer11Static, wxVERTICAL);
|
||||
itemBoxSizer2->Add(itemStaticBoxSizer11, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer2->Add(itemBoxSizer13, 0, wxGROW|wxALL, 5);
|
||||
m_MicroViaSizeTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Micro Via Size"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemStaticBoxSizer11->Add(m_MicroViaSizeTitle, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
|
||||
|
||||
m_MicroViaSizeCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL7, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemStaticBoxSizer11->Add(m_MicroViaSizeCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
m_MicroViaDrillTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Micro Via Drill"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemStaticBoxSizer11->Add(m_MicroViaDrillTitle, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
|
||||
|
||||
m_MicroViaDrillCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL6, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemStaticBoxSizer11->Add(m_MicroViaDrillCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
itemStaticBoxSizer11->Add(5, 5, 0, wxGROW|wxALL, 5);
|
||||
|
||||
m_AllowMicroViaCtrl = new wxCheckBox( itemDialog1, ID_CHECKBOX_ALLOWS_MICROVIA, _("Allows Micro Vias"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_AllowMicroViaCtrl->SetValue(false);
|
||||
m_AllowMicroViaCtrl->SetHelpText(_("Allows use of micro vias\nThey are very small vias only from an external copper layer to its near neightbour\n"));
|
||||
if (WinEDA_PcbTracksDialog::ShowToolTips())
|
||||
m_AllowMicroViaCtrl->SetToolTip(_("Allows use of micro vias\nThey are very small vias only from an external copper layer to its near neightbour\n"));
|
||||
itemStaticBoxSizer11->Add(m_AllowMicroViaCtrl, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer18 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer2->Add(itemBoxSizer18, 0, wxGROW|wxALL, 5);
|
||||
|
||||
m_TrackWidthTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Track Width"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer13->Add(m_TrackWidthTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
itemBoxSizer18->Add(m_TrackWidthTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
|
||||
m_OptTrackWidth = new wxTextCtrl( itemDialog1, ID_TEXTCTRL3, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer13->Add(m_OptTrackWidth, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
itemBoxSizer18->Add(m_OptTrackWidth, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
m_TrackClearanceTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Clearance"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer13->Add(m_TrackClearanceTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
itemBoxSizer18->Add(m_TrackClearanceTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
|
||||
m_OptTrackClearance = new wxTextCtrl( itemDialog1, ID_TEXTCTRL4, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer13->Add(m_OptTrackClearance, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
itemBoxSizer18->Add(m_OptTrackClearance, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
m_MaskClearanceTitle = new wxStaticText( itemDialog1, wxID_STATIC, _("Mask clearance"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer13->Add(m_MaskClearanceTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
itemBoxSizer18->Add(m_MaskClearanceTitle, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
|
||||
m_OptMaskMargin = new wxTextCtrl( itemDialog1, ID_TEXTCTRL5, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer13->Add(m_OptMaskMargin, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
itemBoxSizer18->Add(m_OptMaskMargin, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
itemBoxSizer13->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer2->Add(itemBoxSizer25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxBoxSizer* itemBoxSizer21 = new wxBoxSizer(wxVERTICAL);
|
||||
itemBoxSizer13->Add(itemBoxSizer21, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
wxButton* itemButton26 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemButton26->SetForegroundColour(wxColour(210, 0, 0));
|
||||
itemBoxSizer25->Add(itemButton26, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxButton* itemButton22 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemButton22->SetForegroundColour(wxColour(210, 0, 0));
|
||||
itemBoxSizer21->Add(itemButton22, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxButton* itemButton23 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, wxBU_LEFT );
|
||||
itemButton23->SetForegroundColour(wxColour(0, 0, 255));
|
||||
itemBoxSizer21->Add(itemButton23, 0, wxGROW|wxALL, 5);
|
||||
wxButton* itemButton27 = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, wxBU_LEFT );
|
||||
itemButton27->SetForegroundColour(wxColour(0, 0, 255));
|
||||
itemBoxSizer25->Add(itemButton27, 0, wxGROW|wxALL, 5);
|
||||
|
||||
// Set validators
|
||||
m_AllowMicroViaCtrl->SetValidator( wxGenericValidator(& g_DesignSettings.m_MicroViasAllowed) );
|
||||
////@end WinEDA_PcbTracksDialog content construction
|
||||
SetDisplayValue();
|
||||
}
|
||||
|
@ -235,7 +263,9 @@ void WinEDA_PcbTracksDialog::SetDisplayValue()
|
|||
/*************************************************/
|
||||
{
|
||||
AddUnitSymbol(*m_ViaSizeTitle);
|
||||
AddUnitSymbol(*m_MicroViaSizeTitle);
|
||||
AddUnitSymbol(*m_ViaDefaultDrillValueTitle);
|
||||
AddUnitSymbol(*m_MicroViaDrillTitle);
|
||||
AddUnitSymbol(*m_ViaAltDrillValueTitle);
|
||||
AddUnitSymbol(*m_TrackWidthTitle);
|
||||
AddUnitSymbol(*m_TrackClearanceTitle);
|
||||
|
@ -243,32 +273,50 @@ void WinEDA_PcbTracksDialog::SetDisplayValue()
|
|||
|
||||
int Internal_Unit = m_Parent->m_InternalUnits;
|
||||
PutValueInLocalUnits(*m_OptViaSize, g_DesignSettings.m_CurrentViaSize, Internal_Unit);
|
||||
PutValueInLocalUnits(*m_MicroViaSizeCtrl, g_DesignSettings.m_CurrentMicroViaSize, Internal_Unit);
|
||||
PutValueInLocalUnits(*m_OptViaDrill, g_DesignSettings.m_ViaDrill, Internal_Unit);
|
||||
PutValueInLocalUnits(*m_MicroViaDrillCtrl, g_DesignSettings.m_MicroViaDrill, Internal_Unit);
|
||||
PutValueInLocalUnits(*m_OptCustomViaDrill, g_ViaHoleLastValue, Internal_Unit);
|
||||
PutValueInLocalUnits(*m_OptTrackWidth, g_DesignSettings.m_CurrentTrackWidth, Internal_Unit);
|
||||
PutValueInLocalUnits(*m_OptTrackClearance, g_DesignSettings.m_TrackClearence, Internal_Unit);
|
||||
PutValueInLocalUnits(*m_OptMaskMargin, g_DesignSettings.m_MaskMargin, Internal_Unit);
|
||||
m_OptViaType->SetSelection(g_DesignSettings.m_CurrentViaType - 1);
|
||||
if ( g_DesignSettings.m_CurrentViaType != VIA_THROUGH )
|
||||
m_OptViaType->SetSelection(1);
|
||||
|
||||
m_MicroViaSizeTitle->Enable(g_DesignSettings.m_MicroViasAllowed);
|
||||
m_MicroViaSizeCtrl->Enable(g_DesignSettings.m_MicroViasAllowed);
|
||||
|
||||
m_MicroViaDrillTitle->Enable(g_DesignSettings.m_MicroViasAllowed);
|
||||
m_MicroViaDrillCtrl->Enable(g_DesignSettings.m_MicroViasAllowed);
|
||||
}
|
||||
|
||||
/*******************************************************************/
|
||||
void WinEDA_PcbTracksDialog::AcceptPcbOptions(wxCommandEvent& event)
|
||||
/*******************************************************************/
|
||||
{
|
||||
g_DesignSettings.m_CurrentViaType = m_OptViaType->GetSelection() + 1;
|
||||
g_DesignSettings.m_CurrentViaType = VIA_THROUGH;
|
||||
if ( m_OptViaType->GetSelection() > 0 )
|
||||
g_DesignSettings.m_CurrentViaType = VIA_BLIND_BURIED;
|
||||
if ( g_DesignSettings.m_CurrentViaType != VIA_THROUGH )
|
||||
{
|
||||
if( ! IsOK(this,
|
||||
_("You have selected VIA Blind or VIA Buried\nWARNING: this feature is EXPERIMENTAL!!! Accept ?") ) )
|
||||
_("You have selected VIA Blind and Buried\nWARNING: this feature is EXPERIMENTAL!!! Accept ?") ) )
|
||||
g_DesignSettings.m_CurrentViaType = VIA_THROUGH;
|
||||
}
|
||||
|
||||
g_DesignSettings.m_CurrentViaSize =
|
||||
ReturnValueFromTextCtrl(*m_OptViaSize, m_Parent->m_InternalUnits);
|
||||
g_DesignSettings.m_CurrentMicroViaSize =
|
||||
ReturnValueFromTextCtrl(*m_MicroViaSizeCtrl, m_Parent->m_InternalUnits);
|
||||
|
||||
g_DesignSettings.m_MicroViaDrill =
|
||||
ReturnValueFromTextCtrl(*m_MicroViaDrillCtrl, m_Parent->m_InternalUnits);
|
||||
g_DesignSettings.m_ViaDrill =
|
||||
ReturnValueFromTextCtrl(*m_OptViaDrill, m_Parent->m_InternalUnits);
|
||||
g_ViaHoleLastValue =
|
||||
ReturnValueFromTextCtrl(*m_OptCustomViaDrill, m_Parent->m_InternalUnits);
|
||||
g_DesignSettings.m_MicroViasAllowed = m_AllowMicroViaCtrl->IsChecked();
|
||||
|
||||
g_DesignSettings.m_CurrentTrackWidth =
|
||||
ReturnValueFromTextCtrl(*m_OptTrackWidth, m_Parent->m_InternalUnits);
|
||||
g_DesignSettings.m_TrackClearence =
|
||||
|
@ -391,3 +439,17 @@ void WinEDA_PcbTracksDialog::OnInitDialog( wxInitDialogEvent& event )
|
|||
event.Skip();
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ALLOWS_MICROVIA
|
||||
*/
|
||||
|
||||
void WinEDA_PcbTracksDialog::OnCheckboxAllowsMicroviaClick( wxCommandEvent& event )
|
||||
{
|
||||
bool state = m_AllowMicroViaCtrl->IsChecked();
|
||||
m_MicroViaSizeTitle->Enable(state);
|
||||
m_MicroViaSizeCtrl->Enable(state);
|
||||
m_MicroViaDrillTitle->Enable(state);
|
||||
m_MicroViaDrillCtrl->Enable(state);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
|
||||
////@begin includes
|
||||
#include "wx/valgen.h"
|
||||
////@end includes
|
||||
|
||||
/*!
|
||||
|
@ -42,6 +43,9 @@
|
|||
#define ID_TEXTCTRL1 10002
|
||||
#define ID_TEXTCTRL2 10003
|
||||
#define ID_VIA_TYPE_SELECTION 10004
|
||||
#define ID_TEXTCTRL7 10008
|
||||
#define ID_TEXTCTRL6 10010
|
||||
#define ID_CHECKBOX_ALLOWS_MICROVIA 10009
|
||||
#define ID_TEXTCTRL3 10005
|
||||
#define ID_TEXTCTRL4 10006
|
||||
#define ID_TEXTCTRL5 10007
|
||||
|
@ -85,6 +89,9 @@ public:
|
|||
/// wxEVT_INIT_DIALOG event handler for ID_DIALOG
|
||||
void OnInitDialog( wxInitDialogEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ALLOWS_MICROVIA
|
||||
void OnCheckboxAllowsMicroviaClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
|
||||
void OnOkClick( wxCommandEvent& event );
|
||||
|
||||
|
@ -115,6 +122,11 @@ public:
|
|||
wxStaticText* m_ViaAltDrillValueTitle;
|
||||
wxTextCtrl* m_OptCustomViaDrill;
|
||||
wxRadioBox* m_OptViaType;
|
||||
wxStaticText* m_MicroViaSizeTitle;
|
||||
wxTextCtrl* m_MicroViaSizeCtrl;
|
||||
wxStaticText* m_MicroViaDrillTitle;
|
||||
wxTextCtrl* m_MicroViaDrillCtrl;
|
||||
wxCheckBox* m_AllowMicroViaCtrl;
|
||||
wxStaticText* m_TrackWidthTitle;
|
||||
wxTextCtrl* m_OptTrackWidth;
|
||||
wxStaticText* m_TrackClearanceTitle;
|
||||
|
|
|
@ -108,10 +108,12 @@
|
|||
<bool name="use_resource_archive">0</bool>
|
||||
<bool name="use_generated_xrc_cpp">0</bool>
|
||||
<bool name="always_generate_xrc">1</bool>
|
||||
<bool name="use_id_name_for_name">0</bool>
|
||||
<bool name="archive_xrc_files">1</bool>
|
||||
<bool name="archive_image_files">1</bool>
|
||||
<bool name="archive_all_image_files">0</bool>
|
||||
<bool name="xrc_retain_relative_paths">1</bool>
|
||||
<bool name="xrc_generate_id_tags">0</bool>
|
||||
</header>
|
||||
<data>
|
||||
<document>
|
||||
|
@ -247,7 +249,6 @@
|
|||
<bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool>
|
||||
<bool name="proxy-wxCAPTION">1</bool>
|
||||
<bool name="proxy-wxRESIZE_BORDER">0</bool>
|
||||
<bool name="proxy-wxTHICK_FRAME">0</bool>
|
||||
<bool name="proxy-wxSYSTEM_MENU">1</bool>
|
||||
<bool name="proxy-wxSTAY_ON_TOP">0</bool>
|
||||
<bool name="proxy-wxDIALOG_NO_PARENT">0</bool>
|
||||
|
@ -295,7 +296,7 @@
|
|||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<document>
|
||||
<string name="title">"wxBoxSizer V"</string>
|
||||
<string name="title">"wxStaticBoxSizer V"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"sizer"</string>
|
||||
|
@ -304,9 +305,18 @@
|
|||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</string>
|
||||
<string name="proxy-type">"wbStaticBoxSizerProxy"</string>
|
||||
<string name="proxy-Id name">"wxID_ANY"</string>
|
||||
<long name="proxy-Id value">-1</long>
|
||||
<string name="proxy-Label">"Vias:"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<string name="proxy-Sizer member variable name">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Static box class">"wxStaticBox"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</string>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Expand"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
|
@ -328,7 +338,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbStaticTextProxy"</string>
|
||||
<string name="proxy-Id name">"wxID_STATIC"</string>
|
||||
<long name="proxy-Id value">5105</long>
|
||||
|
@ -398,7 +408,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbTextCtrlProxy"</string>
|
||||
<string name="proxy-Id name">"ID_TEXTCTRL"</string>
|
||||
<long name="proxy-Id value">10001</long>
|
||||
|
@ -470,7 +480,6 @@
|
|||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
<bool name="proxy-wxTE_LINEWRAP">0</bool>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxStaticText: wxID_STATIC"</string>
|
||||
|
@ -481,7 +490,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbStaticTextProxy"</string>
|
||||
<string name="proxy-Id name">"wxID_STATIC"</string>
|
||||
<long name="proxy-Id value">5105</long>
|
||||
|
@ -551,7 +560,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbTextCtrlProxy"</string>
|
||||
<string name="proxy-Id name">"ID_TEXTCTRL1"</string>
|
||||
<long name="proxy-Id value">10002</long>
|
||||
|
@ -623,7 +632,6 @@
|
|||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
<bool name="proxy-wxTE_LINEWRAP">0</bool>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxStaticText: wxID_STATIC"</string>
|
||||
|
@ -634,7 +642,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbStaticTextProxy"</string>
|
||||
<string name="proxy-Id name">"wxID_STATIC"</string>
|
||||
<long name="proxy-Id value">5105</long>
|
||||
|
@ -704,7 +712,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbTextCtrlProxy"</string>
|
||||
<string name="proxy-Id name">"ID_TEXTCTRL2"</string>
|
||||
<long name="proxy-Id value">10003</long>
|
||||
|
@ -776,33 +784,6 @@
|
|||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
<bool name="proxy-wxTE_LINEWRAP">0</bool>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Spacer"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"spacer"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="proxy-type">"wbSpacerProxy"</string>
|
||||
<long name="proxy-Width">5</long>
|
||||
<long name="proxy-Height">5</long>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxRadioBox: ID_VIA_TYPE_SELECTION"</string>
|
||||
|
@ -813,7 +794,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbRadioBoxProxy"</string>
|
||||
<string name="proxy-Id name">"ID_VIA_TYPE_SELECTION"</string>
|
||||
<long name="proxy-Id value">10004</long>
|
||||
|
@ -825,9 +806,9 @@
|
|||
<string name="proxy-Implementation filename">""</string>
|
||||
<string name="proxy-Header filename">""</string>
|
||||
<string name="proxy-Member variable name">"m_OptViaType"</string>
|
||||
<string name="proxy-Label">"Via Type"</string>
|
||||
<string name="proxy-Label">"Default Via Type"</string>
|
||||
<long name="proxy-Major dimension count">1</long>
|
||||
<string name="proxy-Items">"Blind Via|Buried Via|Standard Via"</string>
|
||||
<string name="proxy-Items">"Through Via|Blind or Buried Via "</string>
|
||||
<long name="proxy-Initial value">0</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
|
@ -869,6 +850,344 @@
|
|||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxStaticBoxSizer V"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"sizer"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbStaticBoxSizerProxy"</string>
|
||||
<string name="proxy-Id name">"wxID_ANY"</string>
|
||||
<long name="proxy-Id value">-1</long>
|
||||
<string name="proxy-Label">"Micro Vias:"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<string name="proxy-Sizer member variable name">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Static box class">"wxStaticBox"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</string>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Expand"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<document>
|
||||
<string name="title">"wxStaticText: wxID_STATIC"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"statictext"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbStaticTextProxy"</string>
|
||||
<string name="proxy-Id name">"wxID_STATIC"</string>
|
||||
<long name="proxy-Id value">5105</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxStaticText"</string>
|
||||
<string name="proxy-Base class">"wxStaticText"</string>
|
||||
<bool name="proxy-External implementation">1</bool>
|
||||
<bool name="proxy-Separate files">0</bool>
|
||||
<string name="proxy-Implementation filename">""</string>
|
||||
<string name="proxy-Header filename">""</string>
|
||||
<string name="proxy-Member variable name">"m_MicroViaSizeTitle"</string>
|
||||
<string name="proxy-Label">"Micro Via Size"</string>
|
||||
<long name="proxy-Wrapping width">-1</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<string name="proxy-Data source">""</string>
|
||||
<string name="proxy-Data class name">""</string>
|
||||
<string name="proxy-Data class implementation filename">""</string>
|
||||
<string name="proxy-Data class header filename">""</string>
|
||||
<string name="proxy-Data class manager window">""</string>
|
||||
<bool name="proxy-wxALIGN_LEFT">0</bool>
|
||||
<bool name="proxy-wxALIGN_RIGHT">0</bool>
|
||||
<bool name="proxy-wxALIGN_CENTRE">0</bool>
|
||||
<bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
|
||||
<bool name="proxy-wxRAISED_BORDER">0</bool>
|
||||
<bool name="proxy-wxSTATIC_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Expand"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">0</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxTextCtrl: ID_TEXTCTRL7"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"textctrl"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbTextCtrlProxy"</string>
|
||||
<string name="proxy-Id name">"ID_TEXTCTRL7"</string>
|
||||
<long name="proxy-Id value">10008</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxTextCtrl"</string>
|
||||
<string name="proxy-Base class">"wxTextCtrl"</string>
|
||||
<bool name="proxy-External implementation">1</bool>
|
||||
<bool name="proxy-Separate files">0</bool>
|
||||
<string name="proxy-Implementation filename">""</string>
|
||||
<string name="proxy-Header filename">""</string>
|
||||
<string name="proxy-Member variable name">"m_MicroViaSizeCtrl"</string>
|
||||
<string name="proxy-Initial value">""</string>
|
||||
<long name="proxy-Max length">0</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<string name="proxy-Data source">""</string>
|
||||
<string name="proxy-Data class name">""</string>
|
||||
<string name="proxy-Data class implementation filename">""</string>
|
||||
<string name="proxy-Data class header filename">""</string>
|
||||
<string name="proxy-Data class manager window">""</string>
|
||||
<bool name="proxy-wxTE_MULTILINE">0</bool>
|
||||
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
|
||||
<bool name="proxy-wxTE_PROCESS_TAB">0</bool>
|
||||
<bool name="proxy-wxTE_PASSWORD">0</bool>
|
||||
<bool name="proxy-wxTE_READONLY">0</bool>
|
||||
<bool name="proxy-wxTE_RICH">0</bool>
|
||||
<bool name="proxy-wxTE_RICH2">0</bool>
|
||||
<bool name="proxy-wxTE_AUTO_URL">0</bool>
|
||||
<bool name="proxy-wxTE_NOHIDESEL">0</bool>
|
||||
<bool name="proxy-wxTE_LEFT">0</bool>
|
||||
<bool name="proxy-wxTE_CENTRE">0</bool>
|
||||
<bool name="proxy-wxTE_RIGHT">0</bool>
|
||||
<bool name="proxy-wxHSCROLL">0</bool>
|
||||
<bool name="proxy-wxTE_CHARWRAP">0</bool>
|
||||
<bool name="proxy-wxTE_WORDWRAP">0</bool>
|
||||
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
|
||||
<bool name="proxy-wxRAISED_BORDER">0</bool>
|
||||
<bool name="proxy-wxSTATIC_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Expand"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">0</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxStaticText: wxID_STATIC"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"statictext"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbStaticTextProxy"</string>
|
||||
<string name="proxy-Id name">"wxID_STATIC"</string>
|
||||
<long name="proxy-Id value">5105</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxStaticText"</string>
|
||||
<string name="proxy-Base class">"wxStaticText"</string>
|
||||
<bool name="proxy-External implementation">1</bool>
|
||||
<bool name="proxy-Separate files">0</bool>
|
||||
<string name="proxy-Implementation filename">""</string>
|
||||
<string name="proxy-Header filename">""</string>
|
||||
<string name="proxy-Member variable name">"m_MicroViaDrillTitle"</string>
|
||||
<string name="proxy-Label">"Micro Via Drill"</string>
|
||||
<long name="proxy-Wrapping width">-1</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<string name="proxy-Data source">""</string>
|
||||
<string name="proxy-Data class name">""</string>
|
||||
<string name="proxy-Data class implementation filename">""</string>
|
||||
<string name="proxy-Data class header filename">""</string>
|
||||
<string name="proxy-Data class manager window">""</string>
|
||||
<bool name="proxy-wxALIGN_LEFT">0</bool>
|
||||
<bool name="proxy-wxALIGN_RIGHT">0</bool>
|
||||
<bool name="proxy-wxALIGN_CENTRE">0</bool>
|
||||
<bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
|
||||
<bool name="proxy-wxRAISED_BORDER">0</bool>
|
||||
<bool name="proxy-wxSTATIC_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Expand"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">0</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxTextCtrl: ID_TEXTCTRL6"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"textctrl"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbTextCtrlProxy"</string>
|
||||
<string name="proxy-Id name">"ID_TEXTCTRL6"</string>
|
||||
<long name="proxy-Id value">10010</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxTextCtrl"</string>
|
||||
<string name="proxy-Base class">"wxTextCtrl"</string>
|
||||
<bool name="proxy-External implementation">1</bool>
|
||||
<bool name="proxy-Separate files">0</bool>
|
||||
<string name="proxy-Implementation filename">""</string>
|
||||
<string name="proxy-Header filename">""</string>
|
||||
<string name="proxy-Member variable name">"m_MicroViaDrillCtrl"</string>
|
||||
<string name="proxy-Initial value">""</string>
|
||||
<long name="proxy-Max length">0</long>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<string name="proxy-Data variable">""</string>
|
||||
<string name="proxy-Data validator">""</string>
|
||||
<string name="proxy-Data source">""</string>
|
||||
<string name="proxy-Data class name">""</string>
|
||||
<string name="proxy-Data class implementation filename">""</string>
|
||||
<string name="proxy-Data class header filename">""</string>
|
||||
<string name="proxy-Data class manager window">""</string>
|
||||
<bool name="proxy-wxTE_MULTILINE">0</bool>
|
||||
<bool name="proxy-wxTE_PROCESS_ENTER">0</bool>
|
||||
<bool name="proxy-wxTE_PROCESS_TAB">0</bool>
|
||||
<bool name="proxy-wxTE_PASSWORD">0</bool>
|
||||
<bool name="proxy-wxTE_READONLY">0</bool>
|
||||
<bool name="proxy-wxTE_RICH">0</bool>
|
||||
<bool name="proxy-wxTE_RICH2">0</bool>
|
||||
<bool name="proxy-wxTE_AUTO_URL">0</bool>
|
||||
<bool name="proxy-wxTE_NOHIDESEL">0</bool>
|
||||
<bool name="proxy-wxTE_LEFT">0</bool>
|
||||
<bool name="proxy-wxTE_CENTRE">0</bool>
|
||||
<bool name="proxy-wxTE_RIGHT">0</bool>
|
||||
<bool name="proxy-wxHSCROLL">0</bool>
|
||||
<bool name="proxy-wxTE_CHARWRAP">0</bool>
|
||||
<bool name="proxy-wxTE_WORDWRAP">0</bool>
|
||||
<bool name="proxy-wxTE_CAPITALIZE">0</bool>
|
||||
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
|
||||
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
|
||||
<bool name="proxy-wxRAISED_BORDER">0</bool>
|
||||
<bool name="proxy-wxSTATIC_BORDER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Expand"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">0</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Spacer"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
|
@ -878,11 +1197,11 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbSpacerProxy"</string>
|
||||
<long name="proxy-Width">5</long>
|
||||
<long name="proxy-Height">5</long>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignH">"Expand"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
|
@ -895,6 +1214,74 @@
|
|||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxCheckBox: ID_CHECKBOX_ALLOWS_MICROVIA"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"checkbox"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbCheckBoxProxy"</string>
|
||||
<string name="event-handler-0">"wxEVT_COMMAND_CHECKBOX_CLICKED|OnCheckboxAllowsMicroviaClick|NONE||WinEDA_PcbTracksDialog"</string>
|
||||
<string name="proxy-Id name">"ID_CHECKBOX_ALLOWS_MICROVIA"</string>
|
||||
<long name="proxy-Id value">10009</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxCheckBox"</string>
|
||||
<string name="proxy-Base class">"wxCheckBox"</string>
|
||||
<bool name="proxy-External implementation">1</bool>
|
||||
<bool name="proxy-Separate files">0</bool>
|
||||
<string name="proxy-Implementation filename">""</string>
|
||||
<string name="proxy-Header filename">""</string>
|
||||
<string name="proxy-Member variable name">"m_AllowMicroViaCtrl"</string>
|
||||
<string name="proxy-Label">"Allows Micro Vias"</string>
|
||||
<bool name="proxy-Initial value">0</bool>
|
||||
<string name="proxy-Help text">"Allows use of micro vias
|
||||
They are very small vias only from an external copper layer to its near neightbour
|
||||
"</string>
|
||||
<string name="proxy-Tooltip text">""</string>
|
||||
<string name="proxy-Data variable">"g_DesignSettings.m_MicroViasAllowed"</string>
|
||||
<string name="proxy-Data validator">"wxGenericValidator(& %VARIABLE%)"</string>
|
||||
<string name="proxy-Data source">""</string>
|
||||
<string name="proxy-Data class name">""</string>
|
||||
<string name="proxy-Data class implementation filename">""</string>
|
||||
<string name="proxy-Data class header filename">""</string>
|
||||
<string name="proxy-Data class manager window">""</string>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">""</string>
|
||||
<string name="proxy-Font">""</string>
|
||||
<bool name="proxy-Hidden">0</bool>
|
||||
<bool name="proxy-Enabled">1</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
<bool name="proxy-wxALIGN_RIGHT">0</bool>
|
||||
<bool name="proxy-wxCHK_2STATE">0</bool>
|
||||
<bool name="proxy-wxCHK_3STATE">0</bool>
|
||||
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
|
||||
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||
<string name="proxy-Custom styles">""</string>
|
||||
<long name="proxy-X">-1</long>
|
||||
<long name="proxy-Y">-1</long>
|
||||
<long name="proxy-Width">-1</long>
|
||||
<long name="proxy-Height">-1</long>
|
||||
<string name="proxy-AlignH">"Expand"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxBoxSizer V"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
|
@ -1379,31 +1766,6 @@
|
|||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
<bool name="proxy-wxTE_LINEWRAP">0</bool>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Spacer"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"spacer"</string>
|
||||
<long name="is-transient">0</long>
|
||||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"24/4/2006"</string>
|
||||
<string name="proxy-type">"wbSpacerProxy"</string>
|
||||
<long name="proxy-Width">5</long>
|
||||
<long name="proxy-Height">5</long>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-AlignV">"Centre"</string>
|
||||
<long name="proxy-Stretch factor">0</long>
|
||||
<long name="proxy-Border">5</long>
|
||||
<bool name="proxy-wxLEFT">1</bool>
|
||||
<bool name="proxy-wxRIGHT">1</bool>
|
||||
<bool name="proxy-wxTOP">1</bool>
|
||||
<bool name="proxy-wxBOTTOM">1</bool>
|
||||
<bool name="proxy-wxSHAPED">0</bool>
|
||||
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||
<string name="proxy-Platform">"<Any platform>"</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxBoxSizer V"</string>
|
||||
|
@ -1414,7 +1776,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"25/2/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
|
@ -1439,7 +1801,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"25/2/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbButtonProxy"</string>
|
||||
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnOkClick"</string>
|
||||
<string name="proxy-Id name">"wxID_OK"</string>
|
||||
|
@ -1506,7 +1868,7 @@
|
|||
<long name="owns-file">1</long>
|
||||
<long name="title-mode">0</long>
|
||||
<long name="locked">0</long>
|
||||
<string name="created">"25/2/2006"</string>
|
||||
<string name="created">"11/1/2008"</string>
|
||||
<string name="proxy-type">"wbButtonProxy"</string>
|
||||
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick"</string>
|
||||
<string name="proxy-Id name">"wxID_CANCEL"</string>
|
||||
|
@ -1568,7 +1930,6 @@
|
|||
</document>
|
||||
</document>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Sources"</string>
|
||||
<string name="type">"html-document"</string>
|
||||
|
|
|
@ -367,13 +367,25 @@ MARKER* DRC::fillMarker( TRACK* aTrack, BOARD_ITEM* aItem, int aErrorCode, MARKE
|
|||
|
||||
|
||||
if( fillMe )
|
||||
{
|
||||
if ( aItem )
|
||||
fillMe->SetData( aErrorCode, position,
|
||||
textA, aTrack->GetPosition(),
|
||||
textB, posB );
|
||||
else
|
||||
fillMe->SetData( aErrorCode, position,
|
||||
textA, aTrack->GetPosition() );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( aItem )
|
||||
fillMe = new MARKER( aErrorCode, position,
|
||||
textA, aTrack->GetPosition(),
|
||||
textB, posB );
|
||||
else
|
||||
fillMe = new MARKER( aErrorCode, position,
|
||||
textA, aTrack->GetPosition() );
|
||||
}
|
||||
|
||||
return fillMe;
|
||||
}
|
||||
|
@ -421,23 +433,41 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart )
|
|||
m_segmAngle = 0;
|
||||
|
||||
|
||||
// @todo: is this necessary?
|
||||
/**************************************************************/
|
||||
/* Phase 0 : test if via's hole is bigger than its diameter : */
|
||||
/**************************************************************/
|
||||
|
||||
/* Phase 0 : Test vias : */
|
||||
if( aRefSeg->Type() == TYPEVIA )
|
||||
{
|
||||
// test if via's hole is bigger than its diameter
|
||||
// This test seems necessary since the dialog box that displays the
|
||||
// desired via hole size and width does not enforce a hole size smaller
|
||||
// than the via's diameter.
|
||||
|
||||
if( aRefSeg->m_Drill > aRefSeg->m_Width )
|
||||
if( aRefSeg->GetDrillValue() > aRefSeg->m_Width )
|
||||
{
|
||||
m_currentMarker = fillMarker( aRefSeg, NULL,
|
||||
DRCE_VIA_HOLE_BIGGER, m_currentMarker );
|
||||
return false;
|
||||
}
|
||||
|
||||
// For microvias: test if they are blindvias and only between 2 layers
|
||||
// because they are used for very small drill size and are drill by laser
|
||||
// and **only** one layer can be drilled
|
||||
if( aRefSeg->Shape() == VIA_MICROVIA )
|
||||
{
|
||||
int layer1, layer2;
|
||||
bool err = true;
|
||||
((SEGVIA*)aRefSeg)->ReturnLayerPair(&layer1, &layer2);
|
||||
if (layer1> layer2 ) EXCHG(layer1,layer2);
|
||||
// test:
|
||||
if (layer1 == COPPER_LAYER_N && layer2 == LAYER_N_2 ) err = false;
|
||||
if (layer1 == (g_DesignSettings.m_CopperLayerCount - 2 ) && layer2 == LAYER_CMP_N ) err = false;
|
||||
if ( err )
|
||||
{
|
||||
m_currentMarker = fillMarker( aRefSeg, NULL,
|
||||
DRCE_MICRO_VIA_INCORRECT_LAYER_PAIR, m_currentMarker );
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// for a non horizontal or vertical segment Compute the segment angle
|
||||
|
|
|
@ -54,8 +54,9 @@
|
|||
#define DRCE_ENDS_PROBLEM5 18 ///< track ends are too close
|
||||
#define DRCE_PAD_NEAR_PAD1 19 ///< pad too close to pad
|
||||
#define DRCE_VIA_HOLE_BIGGER 20 ///< via's hole is bigger than its diameter
|
||||
#define COPPERAREA_INSIDE_COPPERAREA 21 ///< copper area outlines intersect
|
||||
#define COPPERAREA_CLOSE_TO_COPPERAREA 22 ///< copper area outlines are too close
|
||||
#define DRCE_MICRO_VIA_INCORRECT_LAYER_PAIR 21 ///< micro via's layer pair incorrect (layers must be adjacent)
|
||||
#define COPPERAREA_INSIDE_COPPERAREA 22 ///< copper area outlines intersect
|
||||
#define COPPERAREA_CLOSE_TO_COPPERAREA 23 ///< copper area outlines are too close
|
||||
|
||||
/**
|
||||
* Class DRC_ITEM
|
||||
|
@ -64,17 +65,18 @@
|
|||
* information held is the board coordinate and the MenuText for each item.
|
||||
* Also held is the type of error by number and the location of the MARKER.
|
||||
* A function is provided to translate that number into text.
|
||||
* Some errors involve only one item (item with an incorrect param) so m_AsSecondItem is set to false in this case
|
||||
*/
|
||||
class DRC_ITEM
|
||||
{
|
||||
|
||||
protected:
|
||||
int m_ErrorCode; ///< the error code's numeric value
|
||||
wxPoint m_Pos; ///< position of the issue
|
||||
wxString m_AText; ///< text for the first BOARD_ITEM
|
||||
wxString m_BText; ///< text for the second BOARD_ITEM
|
||||
wxPoint m_APos; ///< the location of the first BOARD_ITEM
|
||||
wxPoint m_BPos; ///< the location of the first BOARD_ITEM
|
||||
wxPoint m_APos; ///< the location of the first (or main ) BOARD_ITEM
|
||||
wxPoint m_BPos; ///< the location of the second BOARD_ITEM
|
||||
bool m_AsSecondItem; ///< true when 2 items create a DRC error, false if only one item
|
||||
|
||||
|
||||
public:
|
||||
|
@ -84,6 +86,7 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
|
||||
DRC_ITEM( int aErrorCode, const wxPoint& aIssuePos,
|
||||
const wxString& aText, const wxString& bText,
|
||||
const wxPoint& aPos, const wxPoint& bPos )
|
||||
|
@ -93,6 +96,22 @@ public:
|
|||
aPos, bPos );
|
||||
}
|
||||
|
||||
DRC_ITEM( int aErrorCode, const wxPoint& aIssuePos,
|
||||
const wxString& aText, const wxPoint& aPos )
|
||||
{
|
||||
SetData( aErrorCode, aIssuePos, aText, aPos );
|
||||
}
|
||||
|
||||
|
||||
void SetData( int aErrorCode, const wxPoint& aIssuePos,
|
||||
const wxString& aText, const wxPoint& aPos )
|
||||
{
|
||||
SetData( aErrorCode, aIssuePos,
|
||||
aText, aText,
|
||||
aPos, aPos );
|
||||
m_AsSecondItem = false;
|
||||
}
|
||||
|
||||
void SetData( int aErrorCode, const wxPoint& aIssuePos,
|
||||
const wxString& aText, const wxString& bText,
|
||||
const wxPoint& aPos, const wxPoint& bPos )
|
||||
|
@ -103,9 +122,10 @@ public:
|
|||
m_BText = bText;
|
||||
m_APos = aPos;
|
||||
m_BPos = bPos;
|
||||
m_AsSecondItem = true;
|
||||
}
|
||||
|
||||
|
||||
bool AsSecondItem(void) const { return m_AsSecondItem; }
|
||||
/**
|
||||
* Function ShowHtml
|
||||
* translates this object into a fragment of HTML suitable for the
|
||||
|
@ -147,6 +167,7 @@ public:
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function GetErrorCode
|
||||
* returns the error code.
|
||||
|
@ -168,6 +189,7 @@ public:
|
|||
return m_AText;
|
||||
}
|
||||
|
||||
|
||||
const wxString& GetTextB() const
|
||||
{
|
||||
return m_BText;
|
||||
|
@ -179,11 +201,13 @@ public:
|
|||
return m_APos;
|
||||
}
|
||||
|
||||
|
||||
const wxPoint& GetPointB() const
|
||||
{
|
||||
return m_BPos;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function GetPosition
|
||||
* @return wxPoint& - the position of this report item within
|
||||
|
@ -194,6 +218,7 @@ public:
|
|||
return m_Pos;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function ShowCoord
|
||||
* formats a coordinate or position to text.
|
||||
|
@ -270,6 +295,7 @@ class DRC
|
|||
friend class DrcDialog;
|
||||
|
||||
private:
|
||||
|
||||
// protected or private functions() are lowercase first character.
|
||||
|
||||
bool m_doPad2PadTest;
|
||||
|
@ -510,11 +536,9 @@ public:
|
|||
* dialog, and optionally prints a report of such.
|
||||
*/
|
||||
void ListUnconnectedPads();
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // _DRC_STUFF_H
|
||||
|
||||
//EOF
|
||||
|
|
|
@ -61,6 +61,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
case ID_POPUP_PCB_STOP_CURRENT_DRAWING:
|
||||
case ID_POPUP_PCB_END_TRACK:
|
||||
case ID_POPUP_PCB_PLACE_VIA:
|
||||
case ID_POPUP_PCB_PLACE_MICROVIA:
|
||||
case ID_POPUP_PCB_IMPORT_PAD_SETTINGS:
|
||||
case ID_POPUP_PCB_EXPORT_PAD_SETTINGS:
|
||||
case ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS:
|
||||
|
@ -372,6 +373,9 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
}
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_PLACE_MICROVIA:
|
||||
if ( ! GetScreen()->IsMicroViaAcceptable() )
|
||||
break;
|
||||
case ID_POPUP_PCB_PLACE_VIA:
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
if( GetCurItem()->m_Flags & IS_DRAGGED )
|
||||
|
@ -380,7 +384,11 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
}
|
||||
else
|
||||
{
|
||||
int v_type = g_DesignSettings.m_CurrentViaType;
|
||||
if ( id == ID_POPUP_PCB_PLACE_MICROVIA )
|
||||
g_DesignSettings.m_CurrentViaType = VIA_MICROVIA; // place micro via and switch layer
|
||||
Other_Layer_Route( (TRACK*) GetCurItem(), &dc );
|
||||
g_DesignSettings.m_CurrentViaType = v_type;
|
||||
if( DisplayOpt.ContrastModeDisplay )
|
||||
GetScreen()->SetRefreshReq();
|
||||
}
|
||||
|
|
|
@ -34,6 +34,8 @@ int WinEDA_PcbFrame::Edit_TrackSegm_Width( wxDC* DC, TRACK* pt_segm )
|
|||
if( pt_segm->Type() == TYPEVIA )
|
||||
{
|
||||
consigne = pt_segm->m_Width = g_DesignSettings.m_CurrentViaSize;
|
||||
if ( pt_segm->m_Shape == VIA_MICROVIA )
|
||||
consigne = pt_segm->m_Width = g_DesignSettings.m_CurrentMicroViaSize;
|
||||
}
|
||||
|
||||
if( old_w < consigne ) /* DRC utile puisque augm de dimension */
|
||||
|
|
|
@ -210,11 +210,10 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* track, wxDC* DC )
|
|||
/* create the via */
|
||||
Via = new SEGVIA( m_Pcb );
|
||||
Via->m_Flags = IS_NEW;
|
||||
Via->m_Width = g_DesignSettings.m_CurrentViaSize;
|
||||
Via->m_Shape = g_DesignSettings.m_CurrentViaType;
|
||||
Via->m_Width = g_DesignSettings.m_CurrentViaSize;
|
||||
Via->SetNet( g_HightLigth_NetCode );
|
||||
Via->m_Start = Via->m_End = g_CurrentTrackSegment->m_End;
|
||||
|
||||
int old_layer = GetScreen()->m_Active_Layer;
|
||||
|
||||
//swap the layers.
|
||||
|
@ -224,21 +223,30 @@ bool WinEDA_PcbFrame::Other_Layer_Route( TRACK* track, wxDC* DC )
|
|||
GetScreen()->m_Active_Layer = GetScreen()->m_Route_Layer_BOTTOM;
|
||||
|
||||
/* Adjust the via layer pair */
|
||||
if( Via->Shape() == VIA_BURIED )
|
||||
switch ( Via->Shape() )
|
||||
{
|
||||
case VIA_BLIND_BURIED:
|
||||
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
|
||||
}
|
||||
break;
|
||||
|
||||
else if( Via->Shape() == VIA_BLIND ) //blind via
|
||||
{
|
||||
// A revoir! ( la via devrait deboucher sur 1 cote )
|
||||
case VIA_MICROVIA: // from external to the near neghbour inner layer
|
||||
if ( old_layer == COPPER_LAYER_N )
|
||||
GetScreen()->m_Active_Layer = LAYER_N_2;
|
||||
else if ( old_layer == LAYER_CMP_N )
|
||||
GetScreen()->m_Active_Layer = m_Pcb->m_BoardSettings->m_CopperLayerCount - 2;
|
||||
else if ( old_layer == LAYER_N_2 )
|
||||
GetScreen()->m_Active_Layer = COPPER_LAYER_N;
|
||||
else if ( old_layer == m_Pcb->m_BoardSettings->m_CopperLayerCount - 2 )
|
||||
GetScreen()->m_Active_Layer = LAYER_CMP_N;
|
||||
// else error
|
||||
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
|
||||
}
|
||||
Via->m_Width = g_DesignSettings.m_CurrentMicroViaSize;
|
||||
break;
|
||||
|
||||
else
|
||||
{
|
||||
default:
|
||||
// Usual via is from copper to component; layer pair is 0 and 0x0F.
|
||||
Via->SetLayerPair( COPPER_LAYER_N, LAYER_CMP_N );
|
||||
break;
|
||||
}
|
||||
|
||||
if( Drc_On && BAD_DRC==m_drc->Drc( Via, m_Pcb->m_Track ) )
|
||||
|
|
|
@ -469,7 +469,7 @@ void WinEDA_DrillFrame::UpdatePrecisionOptions( wxCommandEvent& event )
|
|||
int WinEDA_DrillFrame::Gen_Drill_File_EXCELLON( FORET* buffer )
|
||||
/***************************************************************/
|
||||
|
||||
/* Create the drill file in EXECELLON format
|
||||
/* Create the drill file in EXCELLON format
|
||||
* Return hole count
|
||||
* buffer: Drill tools list
|
||||
*/
|
||||
|
@ -497,10 +497,10 @@ int WinEDA_DrillFrame::Gen_Drill_File_EXCELLON( FORET* buffer )
|
|||
{
|
||||
if( pt_piste->Type() != TYPEVIA )
|
||||
continue;
|
||||
if( pt_piste->m_Drill == 0 )
|
||||
int via_drill = pt_piste->GetDrillValue();
|
||||
if( via_drill == 0 )
|
||||
continue;
|
||||
int via_drill = ( pt_piste->m_Drill <
|
||||
0 ) ? g_DesignSettings.m_ViaDrill : pt_piste->m_Drill;
|
||||
|
||||
if( foret->m_Diameter != via_drill )
|
||||
continue;
|
||||
|
||||
|
@ -789,11 +789,9 @@ int WinEDA_DrillFrame::Gen_Liste_Forets( FORET* buffer, bool print_header )
|
|||
{
|
||||
if( pt_piste->Type() != TYPEVIA )
|
||||
continue;
|
||||
if( pt_piste->m_Drill == 0 )
|
||||
int via_drill = pt_piste->GetDrillValue();
|
||||
if( via_drill == 0 )
|
||||
continue;
|
||||
int via_drill = g_DesignSettings.m_ViaDrill;
|
||||
if( pt_piste->m_Drill > 0 ) // Drill value is not the default value
|
||||
via_drill = pt_piste->m_Drill;
|
||||
foret = GetOrAddForet( buffer, via_drill );
|
||||
if( foret )
|
||||
foret->m_TotalCount++;
|
||||
|
@ -1343,9 +1341,7 @@ int WinEDA_DrillFrame::Plot_Drill_PcbMap( FORET* buffer, int format )
|
|||
{
|
||||
if( pt_piste->Type() != TYPEVIA )
|
||||
continue;
|
||||
int via_drill = g_DesignSettings.m_ViaDrill;
|
||||
if( pt_piste->m_Drill >= 0 )
|
||||
via_drill = pt_piste->m_Drill;
|
||||
int via_drill = pt_piste->GetDrillValue();
|
||||
if( via_drill != foret->m_Diameter )
|
||||
continue;
|
||||
pos = pt_piste->m_Start;
|
||||
|
|
|
@ -69,7 +69,8 @@ static Ki_HotkeyInfo HkSavefile( wxT( "Save board" ), HK_SAVE_BOARD, 'S' + GR_KB
|
|||
static Ki_HotkeyInfo HkLoadfile( wxT( "Load board" ), HK_LOAD_BOARD, 'L' + GR_KB_CTRL );
|
||||
static Ki_HotkeyInfo HkFindItem( wxT( "Find Item" ), HK_FIND_ITEM, 'F' + GR_KB_CTRL );
|
||||
static Ki_HotkeyInfo HkBackspace( wxT( "Delete track segment" ), HK_BACK_SPACE, WXK_BACK );
|
||||
static Ki_HotkeyInfo HkAddVia( wxT( "Add Via" ), HK_ADD_VIA, 'V' );
|
||||
static Ki_HotkeyInfo HkAddMicroVia( wxT( "Add Via" ), HK_ADD_VIA, 'V' );
|
||||
static Ki_HotkeyInfo HkAddVia( wxT( "Add MicroVia" ), HK_ADD_MICROVIA, 'V' + GR_KB_CTRL );
|
||||
static Ki_HotkeyInfo HkEndTrack( wxT( "End Track" ), HK_END_TRACK, WXK_END );
|
||||
static Ki_HotkeyInfo HkFlipFootprint( wxT( "Flip Footprint" ), HK_FLIP_FOOTPRINT, 'F' );
|
||||
static Ki_HotkeyInfo HkRotateFootprint( wxT( "Rotate Footprint" ), HK_ROTATE_FOOTPRINT, 'R' );
|
||||
|
@ -105,7 +106,9 @@ Ki_HotkeyInfo* s_Common_Hotkey_List[] = {
|
|||
Ki_HotkeyInfo* s_board_edit_Hotkey_List[] = {
|
||||
&HkTrackDisplayMode,
|
||||
&HkDelete, &HkBackspace,
|
||||
&HkAddVia, &HkEndTrack,
|
||||
&HkAddVia,
|
||||
&HkAddMicroVia,
|
||||
&HkEndTrack,
|
||||
&HkMoveFootprint, &HkFlipFootprint,
|
||||
&HkRotateFootprint, &HkDragFootprint,
|
||||
&HkGetAndMoveFootprint,
|
||||
|
@ -382,6 +385,28 @@ void WinEDA_PcbFrame::OnHotKey( wxDC* DC, int hotkey,
|
|||
}
|
||||
break;
|
||||
|
||||
case HK_ADD_MICROVIA: // Place a micro via if a track is in progress
|
||||
if( m_ID_current_state != ID_TRACK_BUTT )
|
||||
return;
|
||||
if( ItemFree ) // no track in progress: nothing to do
|
||||
break;
|
||||
if( GetCurItem()->Type() != TYPETRACK ) // Should not occur
|
||||
return;
|
||||
if( (GetCurItem()->m_Flags & IS_NEW) == 0 )
|
||||
return;
|
||||
|
||||
// place micro via and switch layer
|
||||
if ( GetScreen()->IsMicroViaAcceptable() )
|
||||
{
|
||||
int v_type = g_DesignSettings.m_CurrentViaType;
|
||||
g_DesignSettings.m_CurrentViaType = VIA_MICROVIA;
|
||||
Other_Layer_Route( (TRACK*) GetCurItem(), DC );
|
||||
g_DesignSettings.m_CurrentViaType = v_type;
|
||||
if( DisplayOpt.ContrastModeDisplay )
|
||||
GetScreen()->SetRefreshReq();
|
||||
}
|
||||
break;
|
||||
|
||||
case HK_ADD_VIA: // Switch to alternate layer and Place a via if a track is in progress
|
||||
if( m_ID_current_state != ID_TRACK_BUTT )
|
||||
return;
|
||||
|
|
|
@ -22,7 +22,9 @@ enum hotkey_id_commnand {
|
|||
HK_FLIP_FOOTPRINT,
|
||||
HK_GET_AND_MOVE_FOOTPRINT,
|
||||
HK_LOCK_UNLOCK_FOOTPRINT,
|
||||
HK_ADD_VIA, HK_END_TRACK,
|
||||
HK_ADD_VIA,
|
||||
HK_ADD_MICROVIA,
|
||||
HK_END_TRACK,
|
||||
HK_SAVE_BOARD, HK_LOAD_BOARD,
|
||||
HK_SWITCH_UNITS,
|
||||
HK_SWITCH_TRACK_DISPLAY_MODE,
|
||||
|
|
|
@ -88,7 +88,7 @@ int WinEDA_BasePcbFrame::ReadListeSegmentDescr( FILE* File,
|
|||
* @return items count or - count if no end block ($End...) found.
|
||||
*/
|
||||
{
|
||||
int shape, width, layer, type, flags, net_code;
|
||||
int shape, width, drill, layer, type, flags, net_code;
|
||||
int ii = 0;
|
||||
char line1[256];
|
||||
char line2[256];
|
||||
|
@ -149,13 +149,15 @@ int WinEDA_BasePcbFrame::ReadListeSegmentDescr( FILE* File,
|
|||
int arg_count = sscanf( line1 + 2, " %d %d %d %d %d %d %d", &shape,
|
||||
&PtSegm->m_Start.x, &PtSegm->m_Start.y,
|
||||
&PtSegm->m_End.x, &PtSegm->m_End.y, &width,
|
||||
&PtSegm->m_Drill );
|
||||
&drill );
|
||||
|
||||
PtSegm->m_Width = width;
|
||||
PtSegm->m_Shape = shape;
|
||||
|
||||
if( arg_count < 7 )
|
||||
PtSegm->m_Drill = -1;
|
||||
if( arg_count < 7 || drill <= 0 )
|
||||
PtSegm->SetDrillDefault();
|
||||
else
|
||||
PtSegm->SetDrillValue(drill);
|
||||
|
||||
PtSegm->SetLayer( layer );
|
||||
PtSegm->SetNet( net_code );
|
||||
|
@ -399,6 +401,12 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum )
|
|||
continue;
|
||||
}
|
||||
|
||||
if( stricmp( Line, "MicroViaSize" ) == 0 )
|
||||
{
|
||||
g_DesignSettings.m_CurrentMicroViaSize = atoi( data );
|
||||
continue;
|
||||
}
|
||||
|
||||
if( stricmp( Line, "ViaSizeHistory" ) == 0 )
|
||||
{
|
||||
int tmp = atoi( data );
|
||||
|
@ -412,6 +420,18 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum )
|
|||
continue;
|
||||
}
|
||||
|
||||
if( stricmp( Line, "MicroViaDrill" ) == 0 )
|
||||
{
|
||||
g_DesignSettings.m_MicroViaDrill = atoi( data );
|
||||
continue;
|
||||
}
|
||||
|
||||
if( stricmp( Line, "MicroViasAllowed" ) == 0 )
|
||||
{
|
||||
g_DesignSettings.m_MicroViasAllowed = atoi( data );
|
||||
continue;
|
||||
}
|
||||
|
||||
if( stricmp( Line, "TextPcbWidth" ) == 0 )
|
||||
{
|
||||
g_DesignSettings.m_PcbTextWidth = atoi( data );
|
||||
|
@ -521,6 +541,10 @@ static int WriteSetup( FILE* File, WinEDA_BasePcbFrame* frame )
|
|||
fprintf( File, "ViaSizeHistory %d\n", g_DesignSettings.m_ViaSizeHistory[ii] );
|
||||
}
|
||||
|
||||
fprintf( File, "MicroViaSize %d\n", g_DesignSettings.m_CurrentMicroViaSize);
|
||||
fprintf( File, "MicroViaDrill %d\n", g_DesignSettings.m_MicroViaDrill);
|
||||
fprintf( File, "MicroViasAllowed %d\n", g_DesignSettings.m_MicroViasAllowed);
|
||||
|
||||
fprintf( File, "TextPcbWidth %d\n", g_DesignSettings.m_PcbTextWidth );
|
||||
fprintf( File, "TextPcbSize %d %d\n",
|
||||
g_DesignSettings.m_PcbTextSize.x, g_DesignSettings.m_PcbTextSize.y );
|
||||
|
|
|
@ -515,7 +515,7 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
|
|||
_( "Export via hole to others id vias" ), global_options_pad_xpm );
|
||||
ADD_MENUITEM( via_mnu, ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT,
|
||||
_( "Set ALL via holes to default" ), apply_xpm );
|
||||
if( Track->m_Drill <= 0 )
|
||||
if( ! Track->IsDrillDefault() )
|
||||
{
|
||||
via_mnu->Enable( ID_POPUP_PCB_VIA_HOLE_EXPORT, FALSE );
|
||||
}
|
||||
|
@ -559,6 +559,12 @@ void WinEDA_PcbFrame::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
|
|||
}
|
||||
msg = AddHotkeyName( _( "Place Via" ), s_Board_Editor_Hokeys_Descr, HK_ADD_VIA );
|
||||
PopMenu->Append( ID_POPUP_PCB_PLACE_VIA, msg );
|
||||
// See if we can place a Micro Via (4 or more layers, and start from an external layer):
|
||||
if ( GetScreen()->IsMicroViaAcceptable() )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Place Micro Via" ), s_Board_Editor_Hokeys_Descr, HK_ADD_MICROVIA );
|
||||
PopMenu->Append( ID_POPUP_PCB_PLACE_MICROVIA, msg );
|
||||
}
|
||||
}
|
||||
|
||||
// track Width control :
|
||||
|
|
|
@ -86,6 +86,23 @@ static PARAM_CFG_INT ViaDrillCfg
|
|||
250, /* Default value */
|
||||
0, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT MicroViaDiametreCfg
|
||||
(
|
||||
wxT( "MViaDia" ), /* Keyword */
|
||||
&g_DesignSettings.m_CurrentMicroViaSize, /* Parameter address */
|
||||
200, /* Default value */
|
||||
0, 1000 /* Valeurs extremes */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT MicroViaDrillCfg
|
||||
(
|
||||
wxT( "MViaDrl" ), /* Keyword */
|
||||
&g_DesignSettings.m_MicroViaDrill, /* Parameter address */
|
||||
80, /* Default value */
|
||||
0, 800 /* Valeurs extremes */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT ViaShowHoleCfg
|
||||
(
|
||||
INSETUP,
|
||||
|
@ -582,28 +599,28 @@ static PARAM_CFG_SETCOLOR ColorPadCmpCfg
|
|||
RED /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_SETCOLOR ColorViaNormCfg
|
||||
static PARAM_CFG_SETCOLOR ColorViaThroughCfg
|
||||
(
|
||||
INSETUP,
|
||||
wxT( "CoViaNo" ), /* Keyword */
|
||||
wxT( "CoViaTh" ), /* Keyword */
|
||||
&g_DesignSettings.m_ViaColor[VIA_THROUGH], /* Parameter address */
|
||||
LIGHTGRAY /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_SETCOLOR ColorViaborgneCfg
|
||||
static PARAM_CFG_SETCOLOR ColorViaBlindBuriedCfg
|
||||
(
|
||||
INSETUP,
|
||||
wxT( "CoViaBo" ), /* Keyword */
|
||||
& g_DesignSettings.m_ViaColor[VIA_BURIED], /* Parameter address */
|
||||
CYAN /* Default value */
|
||||
wxT( "CoViaBu" ), /* Keyword */
|
||||
&g_DesignSettings.m_ViaColor[VIA_BLIND_BURIED], /* Parameter address */
|
||||
BROWN /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_SETCOLOR ColorViaEnterreeCfg // Buried Via Color
|
||||
static PARAM_CFG_SETCOLOR ColorViaMicroViaCfg // Buried Via Color
|
||||
(
|
||||
INSETUP,
|
||||
wxT( "CoViaEn" ), /* Keyword */
|
||||
& g_DesignSettings.m_ViaColor[VIA_BLIND], /* Parameter address */
|
||||
BROWN /* Default value */
|
||||
wxT( "CoViaMi" ), /* Keyword */
|
||||
&g_DesignSettings.m_ViaColor[VIA_MICROVIA], /* Parameter address */
|
||||
CYAN /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_SETCOLOR ColorpcbGrilleCfg
|
||||
|
@ -823,6 +840,8 @@ PARAM_CFG_BASE* ParamCfgList[] =
|
|||
&PadMasqueLayerCfg,
|
||||
&ViaDiametreCfg,
|
||||
&ViaDrillCfg,
|
||||
&MicroViaDiametreCfg,
|
||||
&MicroViaDrillCfg,
|
||||
&ViaShowHoleCfg,
|
||||
&TrackClearenceCfg,
|
||||
&LayerCountCfg,
|
||||
|
@ -886,9 +905,9 @@ PARAM_CFG_BASE* ParamCfgList[] =
|
|||
&ColorAncreModCfg,
|
||||
&ColorPadCuCfg,
|
||||
&ColorPadCmpCfg,
|
||||
&ColorViaNormCfg,
|
||||
&ColorViaborgneCfg,
|
||||
&ColorViaEnterreeCfg,
|
||||
&ColorViaThroughCfg,
|
||||
&ColorViaBlindBuriedCfg,
|
||||
&ColorViaMicroViaCfg,
|
||||
&ColorpcbGrilleCfg,
|
||||
&ColorCheveluCfg,
|
||||
&HPGLpenNumCfg,
|
||||
|
|
|
@ -109,7 +109,7 @@ eda_global bool Drc_On
|
|||
#endif
|
||||
;
|
||||
eda_global bool g_AutoDeleteOldTrack /* Allows automatic deletion of the old track after
|
||||
creation of a new track */
|
||||
* creation of a new track */
|
||||
#ifdef MAIN
|
||||
= TRUE
|
||||
#endif
|
||||
|
@ -285,10 +285,10 @@ eda_global int g_TrackSegmentCount; // New created segment count
|
|||
eda_global wxString g_ViaType_Name[4]
|
||||
#if defined MAIN
|
||||
= {
|
||||
wxT( "???" ), // Unused
|
||||
_( "Blind Via" ), // from inner layer to external layer (TOP or BOTTOM)
|
||||
_( "Buried Via" ), // from inner to inner layer
|
||||
_( "Standard Via" ) // Usual via (from TOP to BOTTOM layer)
|
||||
_( "??? Via" ), // Not used yet
|
||||
_( "Micro Via" ), // from external layer (TOP or BOTTOM) from the near neightbour inner layer only
|
||||
_( "Blind/Buried Via" ), // from inner or external to inner or external layer (no restriction)
|
||||
_( "Through Via" ) // Usual via (from TOP to BOTTOM layer only )
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -464,12 +464,8 @@ static void PrintDrillMark( BOARD* Pcb )
|
|||
if( g_DrillShapeOpt == DRILL_MARK )
|
||||
diam.x = diam.y = SMALL_DRILL;
|
||||
else
|
||||
{
|
||||
if( pts->m_Drill < 0 )
|
||||
diam.x = diam.y = g_DesignSettings.m_ViaDrill;
|
||||
else
|
||||
diam.x = diam.y = pts->m_Drill;
|
||||
}
|
||||
diam.x = diam.y = pts->GetDrillValue();
|
||||
|
||||
trace_1_pastille_RONDE_POST( pos, diam.x, FILLED );
|
||||
}
|
||||
|
||||
|
|
|
@ -606,7 +606,7 @@ void WinEDA_PcbFrame::ReadAutoroutedTracks( wxDC* DC )
|
|||
if( NewVia->GetLayer() == 0x0F || NewVia->GetLayer() == 0xF0 )
|
||||
NewVia->m_Shape = VIA_THROUGH;
|
||||
else
|
||||
NewVia->m_Shape = VIA_BURIED;
|
||||
NewVia->m_Shape = VIA_BLIND_BURIED;
|
||||
|
||||
NewVia->Insert( m_Pcb, NULL );
|
||||
NbTrack++;
|
||||
|
|
|
@ -336,19 +336,19 @@ static ColorButton VIA_THROUGH_Butt =
|
|||
TRUE // Toggle ITEM_NOT_SHOW bit of the color variable
|
||||
};
|
||||
|
||||
static ColorButton Via_Aveugle_Butt =
|
||||
static ColorButton VIA_BLIND_BURIED_Butt =
|
||||
{
|
||||
wxT( "*" ),
|
||||
VIA_BLIND, // Layer
|
||||
&g_DesignSettings.m_ViaColor[VIA_BLIND], // Address of optional parameter
|
||||
VIA_BLIND_BURIED, // Layer
|
||||
&g_DesignSettings.m_ViaColor[VIA_BLIND_BURIED], // Address of optional parameter
|
||||
TRUE // Toggle ITEM_NOT_SHOW bit of the color variable
|
||||
};
|
||||
|
||||
static ColorButton BLIND_VIA_Butt =
|
||||
static ColorButton MICRO_VIA_Butt =
|
||||
{
|
||||
wxT( "*" ),
|
||||
VIA_BURIED, // Layer
|
||||
&g_DesignSettings.m_ViaColor[VIA_BURIED], // Address of optional parameter
|
||||
VIA_MICROVIA, // Layer
|
||||
&g_DesignSettings.m_ViaColor[VIA_MICROVIA], // Address of optional parameter
|
||||
TRUE // Toggle ITEM_NOT_SHOW bit of the color variable
|
||||
};
|
||||
|
||||
|
@ -491,8 +491,8 @@ static ColorButton* laytool_list[] = {
|
|||
// &Layer_32_Butt,
|
||||
|
||||
&VIA_THROUGH_Butt,
|
||||
&Via_Aveugle_Butt,
|
||||
&BLIND_VIA_Butt,
|
||||
&VIA_BLIND_BURIED_Butt,
|
||||
&MICRO_VIA_Butt,
|
||||
&Ratsnest_Butt,
|
||||
&Pad_Cu_Butt,
|
||||
&Pad_Cmp_Butt,
|
||||
|
|
|
@ -14,8 +14,9 @@
|
|||
/**********************************************************************************/
|
||||
void WinEDA_PcbFrame::Via_Edit_Control( wxDC* DC, int command_type, SEGVIA* via )
|
||||
/**********************************************************************************/
|
||||
|
||||
/*
|
||||
Execute edit commands relative to vias
|
||||
* Execute edit commands relative to vias
|
||||
*/
|
||||
{
|
||||
int ii;
|
||||
|
@ -40,41 +41,47 @@ TRACK * via_struct ;
|
|||
case ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE: // Enter a new alternate value for drill via
|
||||
InstallPcbOptionsFrame( wxDefaultPosition, DC, ID_PCB_TRACK_SIZE_SETUP );
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
|
||||
case ID_POPUP_PCB_VIA_HOLE_TO_VALUE: // Set the drill via to custom
|
||||
if( (g_ViaHoleLastValue > 0) && (g_ViaHoleLastValue < via->m_Width) )
|
||||
{
|
||||
via->Draw( DrawPanel, DC, GR_XOR );
|
||||
via->m_Drill = g_ViaHoleLastValue;
|
||||
via->SetDrillValue( g_ViaHoleLastValue );
|
||||
via->Draw( DrawPanel, DC, GR_OR );
|
||||
GetScreen()->SetModify();
|
||||
}
|
||||
else DisplayError(this, _("Incorrect value for Via drill. No via drill change"));
|
||||
else
|
||||
DisplayError( this, _( "Incorrect value for Via drill. No via drill change" ) );
|
||||
break;
|
||||
|
||||
|
||||
case ID_POPUP_PCB_VIA_HOLE_EXPORT: // Export the current drill value as the new custom value
|
||||
if ( via->m_Drill > 0 ) g_ViaHoleLastValue = via->m_Drill;
|
||||
if( via->GetDrillValue() > 0 )
|
||||
g_ViaHoleLastValue = via->GetDrillValue();
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS: // Export the current drill value to via which héave the same size
|
||||
if ( via->m_Drill > 0 ) g_ViaHoleLastValue = via->m_Drill;
|
||||
if( via->GetDrillValue() > 0 )
|
||||
g_ViaHoleLastValue = via->GetDrillValue();
|
||||
via_struct = m_Pcb->m_Track;
|
||||
for( ; via_struct != NULL; via_struct = (TRACK*) via_struct->Pnext )
|
||||
{
|
||||
if( via_struct->Type() == TYPEVIA ) /* mise a jour du diametre de la via */
|
||||
{
|
||||
if ( via_struct->m_Width != via->m_Width ) continue;
|
||||
if( via_struct->m_Width != via->m_Width )
|
||||
continue;
|
||||
via_struct->Draw( DrawPanel, DC, GR_XOR );
|
||||
via_struct->m_Drill = via->m_Drill;
|
||||
via_struct->SetDrillValue( via->GetDrillValue() );
|
||||
via_struct->Draw( DrawPanel, DC, GR_OR );
|
||||
}
|
||||
}
|
||||
|
||||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT:
|
||||
via->Draw( DrawPanel, DC, GR_XOR );
|
||||
via->m_Drill = -1;
|
||||
via->SetDrillDefault();
|
||||
via->Draw( DrawPanel, DC, GR_OR );
|
||||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
@ -85,14 +92,15 @@ TRACK * via_struct ;
|
|||
{
|
||||
if( via_struct->Type() == TYPEVIA ) /* mise a jour du diametre de la via */
|
||||
{
|
||||
if( via_struct->m_Drill != -1 )
|
||||
if( via_struct->IsDrillDefault() )
|
||||
{
|
||||
via_struct->Draw( DrawPanel, DC, GR_XOR );
|
||||
via_struct->m_Drill = -1;
|
||||
via_struct->SetDrillDefault();
|
||||
via_struct->Draw( DrawPanel, DC, GR_OR );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
||||
|
@ -100,5 +108,6 @@ TRACK * via_struct ;
|
|||
DisplayError( this, wxT( "WinEDA_PcbFrame::Via_Edition() error: unknown command" ) );
|
||||
break;
|
||||
}
|
||||
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue