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,7 +143,8 @@ void MARKER::Display_Infos( WinEDA_DrawFrame* frame )
|
|||
txtA << DRC_ITEM::ShowCoord( rpt.GetPointA() ) << wxT(": ") << rpt.GetTextA();
|
||||
|
||||
wxString txtB;
|
||||
txtB << DRC_ITEM::ShowCoord( rpt.GetPointB() ) << wxT(": ") << rpt.GetTextB();
|
||||
if ( rpt.AsSecondItem() )
|
||||
txtB << DRC_ITEM::ShowCoord( rpt.GetPointB() ) << wxT(": ") << rpt.GetTextB();
|
||||
|
||||
text_pos = 25;
|
||||
Affiche_1_Parametre( frame, text_pos, txtA, txtB, DARKBROWN );
|
||||
|
|
|
@ -37,8 +37,18 @@ public:
|
|||
MARKER( int aErrorCode, const wxPoint& aMarkerPos,
|
||||
const wxString& aText, const wxPoint& aPos,
|
||||
const wxString& bText, const wxPoint& bPos );
|
||||
|
||||
~MARKER();
|
||||
/**
|
||||
* 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();
|
||||
|
||||
void UnLink();
|
||||
void Draw( WinEDA_DrawPanel* panel, wxDC* DC, int DrawMode );
|
||||
|
@ -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,21 +622,18 @@ 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
|
||||
if( drill_rayon < inner_rayon ) // We can show the via hole
|
||||
{
|
||||
GRCircle( &panel->m_ClipBox, DC, m_Start.x, m_Start.y,
|
||||
drill_rayon, color );
|
||||
|
@ -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 << "/>";
|
||||
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
|
||||
|
||||
// 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_THROUGH 3 /* Always a through hole via */
|
||||
#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..
|
||||
int m_Drill; // for vias: via drill (- 1 for default value)
|
||||
|
||||
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;
|
||||
|
||||
|
@ -64,20 +66,20 @@ public:
|
|||
{
|
||||
return m_Start; // it had to be start or end.
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* supprime du chainage la structure Struct */
|
||||
void UnLink();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function Save
|
||||
* writes the data structures for this object out to a FILE in "*.brd" format.
|
||||
* @param aFile The FILE to write to.
|
||||
* @return bool - true if success writing else false.
|
||||
*/
|
||||
bool Save( FILE* aFile ) const;
|
||||
|
||||
*/
|
||||
bool Save( FILE* aFile ) const;
|
||||
|
||||
/**
|
||||
* Function Insert
|
||||
* inserts a single TRACK, SEGVIA or SEGZONE, or a list of such,
|
||||
|
@ -90,13 +92,13 @@ public:
|
|||
* @param InsertPoint See above
|
||||
*/
|
||||
void Insert( BOARD* aPcb, BOARD_ITEM* InsertPoint );
|
||||
|
||||
|
||||
/**
|
||||
* Function GetBestInsertPoint
|
||||
* searches the "best" insertion point within the track linked list.
|
||||
* The best point is the begging of the corresponding net code section.
|
||||
* (The BOARD::m_Track and BOARD::m_Zone lists are sorted by netcode.)
|
||||
* @param aPcb The BOARD to search for the insertion point.
|
||||
* @param aPcb The BOARD to search for the insertion point.
|
||||
* @return TRACK* - the item found in the linked list (or NULL if no track)
|
||||
*/
|
||||
TRACK* GetBestInsertPoint( BOARD* aPcb );
|
||||
|
@ -134,8 +136,9 @@ public:
|
|||
*/
|
||||
double GetLength() const
|
||||
{
|
||||
int dx = m_Start.x - m_End.x;
|
||||
int dy = m_Start.y - m_End.y;
|
||||
int dx = m_Start.x - m_End.x;
|
||||
int dy = m_Start.y - m_End.y;
|
||||
|
||||
return hypot( dx, dy );
|
||||
}
|
||||
|
||||
|
@ -145,6 +148,32 @@ public:
|
|||
|
||||
/* divers */
|
||||
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
|
||||
|
@ -203,13 +232,13 @@ public:
|
|||
/**
|
||||
* Function HitTest (overlayed)
|
||||
* tests if the given wxRect intersect this object.
|
||||
* For now, an ending point must be inside this rect.
|
||||
* For now, an ending point must be inside this rect.
|
||||
* @param refPos A wxPoint to test
|
||||
* @return bool - true if a hit, else false
|
||||
*/
|
||||
bool HitTest( EDA_Rect& refArea );
|
||||
bool HitTest( EDA_Rect& refArea );
|
||||
|
||||
/**
|
||||
/**
|
||||
* Function GetClass
|
||||
* returns the class name.
|
||||
* @return wxString
|
||||
|
@ -284,12 +313,14 @@ public:
|
|||
* returns the position of this object.
|
||||
* @return const wxPoint& - The position of this object.
|
||||
*/
|
||||
wxPoint& GetPosition()
|
||||
{
|
||||
return m_Start;
|
||||
wxPoint& GetPosition()
|
||||
{
|
||||
return m_Start;
|
||||
}
|
||||
void SetPosition( const wxPoint& aPoint ) { m_Start=aPoint; m_End=aPoint; }
|
||||
|
||||
|
||||
|
||||
void SetPosition( const wxPoint& aPoint ) { m_Start = aPoint; m_End = aPoint; }
|
||||
|
||||
/**
|
||||
* Function GetClass
|
||||
* returns the class name.
|
||||
|
|
|
@ -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>
|
||||
|
@ -870,20 +851,29 @@
|
|||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"Spacer"</string>
|
||||
<string name="title">"wxStaticBoxSizer V"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"spacer"</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">"24/4/2006"</string>
|
||||
<string name="proxy-type">"wbSpacerProxy"</string>
|
||||
<long name="proxy-Width">5</long>
|
||||
<long name="proxy-Height">5</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">"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>
|
||||
|
@ -894,6 +884,403 @@
|
|||
<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>
|
||||
<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">"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">"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-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>
|
||||
|
@ -1379,20 +1766,86 @@
|
|||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
<bool name="proxy-wxTE_LINEWRAP">0</bool>
|
||||
</document>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxBoxSizer 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">"wbBoxSizerProxy"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</string>
|
||||
<string name="proxy-Member variable name">""</string>
|
||||
<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>
|
||||
<string name="title">"Spacer"</string>
|
||||
<string name="title">"wxButton: wxID_OK"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"spacer"</string>
|
||||
<string name="icon-name">"dialogcontrol"</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="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>
|
||||
<long name="proxy-Id value">5100</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxButton"</string>
|
||||
<string name="proxy-Base class">"wxButton"</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">""</string>
|
||||
<string name="proxy-Label">"&OK"</string>
|
||||
<bool name="proxy-Default">0</bool>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</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>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">"D20000"</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-wxBU_LEFT">0</bool>
|
||||
<bool name="proxy-wxBU_RIGHT">0</bool>
|
||||
<bool name="proxy-wxBU_TOP">0</bool>
|
||||
<bool name="proxy-wxBU_BOTTOM">0</bool>
|
||||
<bool name="proxy-wxBU_EXACTFIT">0</bool>
|
||||
<bool name="proxy-wxNO_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>
|
||||
|
@ -1403,22 +1856,63 @@
|
|||
<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>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
<document>
|
||||
<string name="title">"wxBoxSizer V"</string>
|
||||
<string name="title">"wxButton: wxID_CANCEL"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"sizer"</string>
|
||||
<string name="icon-name">"dialogcontrol"</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">"25/2/2006"</string>
|
||||
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||
<string name="proxy-Orientation">"Vertical"</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>
|
||||
<long name="proxy-Id value">5101</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxButton"</string>
|
||||
<string name="proxy-Base class">"wxButton"</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">""</string>
|
||||
<string name="proxy-AlignH">"Centre"</string>
|
||||
<string name="proxy-Label">"&Cancel"</string>
|
||||
<bool name="proxy-Default">0</bool>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</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>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">"0000FF"</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-wxBU_LEFT">1</bool>
|
||||
<bool name="proxy-wxBU_RIGHT">0</bool>
|
||||
<bool name="proxy-wxBU_TOP">0</bool>
|
||||
<bool name="proxy-wxBU_BOTTOM">0</bool>
|
||||
<bool name="proxy-wxBU_EXACTFIT">0</bool>
|
||||
<bool name="proxy-wxNO_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>
|
||||
|
@ -1429,141 +1923,8 @@
|
|||
<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">"wxButton: wxID_OK"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"dialogcontrol"</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">"25/2/2006"</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>
|
||||
<long name="proxy-Id value">5100</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxButton"</string>
|
||||
<string name="proxy-Base class">"wxButton"</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">""</string>
|
||||
<string name="proxy-Label">"&OK"</string>
|
||||
<bool name="proxy-Default">0</bool>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</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>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">"D20000"</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-wxBU_LEFT">0</bool>
|
||||
<bool name="proxy-wxBU_RIGHT">0</bool>
|
||||
<bool name="proxy-wxBU_TOP">0</bool>
|
||||
<bool name="proxy-wxBU_BOTTOM">0</bool>
|
||||
<bool name="proxy-wxBU_EXACTFIT">0</bool>
|
||||
<bool name="proxy-wxNO_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">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">"wxButton: wxID_CANCEL"</string>
|
||||
<string name="type">"dialog-control-document"</string>
|
||||
<string name="filename">""</string>
|
||||
<string name="icon-name">"dialogcontrol"</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">"25/2/2006"</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>
|
||||
<long name="proxy-Id value">5101</long>
|
||||
<string name="proxy-Name">""</string>
|
||||
<string name="proxy-Class">"wxButton"</string>
|
||||
<string name="proxy-Base class">"wxButton"</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">""</string>
|
||||
<string name="proxy-Label">"&Cancel"</string>
|
||||
<bool name="proxy-Default">0</bool>
|
||||
<string name="proxy-Help text">""</string>
|
||||
<string name="proxy-Tooltip text">""</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>
|
||||
<string name="proxy-Background colour">""</string>
|
||||
<string name="proxy-Foreground colour">"0000FF"</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-wxBU_LEFT">1</bool>
|
||||
<bool name="proxy-wxBU_RIGHT">0</bool>
|
||||
<bool name="proxy-wxBU_TOP">0</bool>
|
||||
<bool name="proxy-wxBU_BOTTOM">0</bool>
|
||||
<bool name="proxy-wxBU_EXACTFIT">0</bool>
|
||||
<bool name="proxy-wxNO_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">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>
|
||||
<string name="proxy-Custom arguments">""</string>
|
||||
<string name="proxy-Custom ctor arguments">""</string>
|
||||
</document>
|
||||
</document>
|
||||
</document>
|
||||
|
|
|
@ -215,8 +215,8 @@ void DRC::testTracks()
|
|||
if( !doTrackDrc( segm, segm->Next() ) )
|
||||
{
|
||||
wxASSERT( m_currentMarker );
|
||||
m_pcb->Add( m_currentMarker );
|
||||
m_currentMarker = 0;
|
||||
m_pcb->Add( m_currentMarker );
|
||||
m_currentMarker = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -367,13 +367,25 @@ MARKER* DRC::fillMarker( TRACK* aTrack, BOARD_ITEM* aItem, int aErrorCode, MARKE
|
|||
|
||||
|
||||
if( fillMe )
|
||||
fillMe->SetData( aErrorCode, position,
|
||||
{
|
||||
if ( aItem )
|
||||
fillMe->SetData( aErrorCode, position,
|
||||
textA, aTrack->GetPosition(),
|
||||
textB, posB );
|
||||
else
|
||||
fillMe->SetData( aErrorCode, position,
|
||||
textA, aTrack->GetPosition() );
|
||||
}
|
||||
else
|
||||
fillMe = new MARKER( aErrorCode, position,
|
||||
{
|
||||
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
|
||||
|
|
|
@ -34,28 +34,29 @@
|
|||
|
||||
|
||||
/// DRC error codes:
|
||||
#define DRCE_ 1 // not used yet
|
||||
#define DRCE_UNCONNECTED_PADS 2 ///< pads are unconnected
|
||||
#define DRCE_TRACK_NEAR_THROUGH_HOLE 3 ///< thru hole is too close to track
|
||||
#define DRCE_TRACK_NEAR_PAD 4 ///< pad too close to track
|
||||
#define DRCE_TRACK_NEAR_VIA 5 ///< track too close to via
|
||||
#define DRCE_VIA_NEAR_VIA 6 ///< via too close to via
|
||||
#define DRCE_VIA_NEAR_TRACK 7 ///< via too close to track
|
||||
#define DRCE_TRACK_ENDS1 8 ///< @todo say what this problem is
|
||||
#define DRCE_TRACK_ENDS2 9 ///< @todo say what this problem is
|
||||
#define DRCE_TRACK_ENDS3 10 ///< @todo say what this problem is
|
||||
#define DRCE_TRACK_ENDS4 11 ///< @todo say what this problem is
|
||||
#define DRCE_TRACK_UNKNOWN1 12 ///< @todo check source code and change this comment
|
||||
#define DRCE_TRACKS_CROSSING 13 ///< tracks are crossing
|
||||
#define DRCE_ENDS_PROBLEM1 14 ///< track ends are too close
|
||||
#define DRCE_ENDS_PROBLEM2 15 ///< track ends are too close
|
||||
#define DRCE_ENDS_PROBLEM3 16 ///< track ends are too close
|
||||
#define DRCE_ENDS_PROBLEM4 17 ///< track ends are too close
|
||||
#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_ 1 // not used yet
|
||||
#define DRCE_UNCONNECTED_PADS 2 ///< pads are unconnected
|
||||
#define DRCE_TRACK_NEAR_THROUGH_HOLE 3 ///< thru hole is too close to track
|
||||
#define DRCE_TRACK_NEAR_PAD 4 ///< pad too close to track
|
||||
#define DRCE_TRACK_NEAR_VIA 5 ///< track too close to via
|
||||
#define DRCE_VIA_NEAR_VIA 6 ///< via too close to via
|
||||
#define DRCE_VIA_NEAR_TRACK 7 ///< via too close to track
|
||||
#define DRCE_TRACK_ENDS1 8 ///< @todo say what this problem is
|
||||
#define DRCE_TRACK_ENDS2 9 ///< @todo say what this problem is
|
||||
#define DRCE_TRACK_ENDS3 10 ///< @todo say what this problem is
|
||||
#define DRCE_TRACK_ENDS4 11 ///< @todo say what this problem is
|
||||
#define DRCE_TRACK_UNKNOWN1 12 ///< @todo check source code and change this comment
|
||||
#define DRCE_TRACKS_CROSSING 13 ///< tracks are crossing
|
||||
#define DRCE_ENDS_PROBLEM1 14 ///< track ends are too close
|
||||
#define DRCE_ENDS_PROBLEM2 15 ///< track ends are too close
|
||||
#define DRCE_ENDS_PROBLEM3 16 ///< track ends are too close
|
||||
#define DRCE_ENDS_PROBLEM4 17 ///< track ends are too close
|
||||
#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 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,48 +65,67 @@
|
|||
* 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
|
||||
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
|
||||
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 (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:
|
||||
|
||||
DRC_ITEM() :
|
||||
m_ErrorCode(0)
|
||||
m_ErrorCode( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
DRC_ITEM( int aErrorCode, const wxPoint& aIssuePos,
|
||||
const wxString& aText, const wxString& bText,
|
||||
const wxPoint& aPos, const wxPoint& bPos )
|
||||
|
||||
DRC_ITEM( int aErrorCode, const wxPoint& aIssuePos,
|
||||
const wxString& aText, const wxString& bText,
|
||||
const wxPoint& aPos, const wxPoint& bPos )
|
||||
{
|
||||
SetData( aErrorCode, aIssuePos,
|
||||
SetData( aErrorCode, aIssuePos,
|
||||
aText, bText,
|
||||
aPos, bPos );
|
||||
}
|
||||
|
||||
void SetData( int aErrorCode, const wxPoint& aIssuePos,
|
||||
const wxString& aText, const wxString& bText,
|
||||
const wxPoint& aPos, const wxPoint& 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 )
|
||||
{
|
||||
m_ErrorCode = aErrorCode;
|
||||
m_Pos = aIssuePos;
|
||||
m_AText = aText;
|
||||
m_BText = bText;
|
||||
m_APos = aPos;
|
||||
m_BPos = bPos;
|
||||
m_Pos = aIssuePos;
|
||||
m_AText = aText;
|
||||
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
|
||||
|
@ -118,16 +138,16 @@ public:
|
|||
|
||||
// an html fragment for the entire message in the listbox. feel free
|
||||
// to add color if you want:
|
||||
ret.Printf( _("ErrType(%d): <b>%s</b><ul><li> %s: %s </li><li> %s: %s </li></ul>"),
|
||||
m_ErrorCode,
|
||||
GetErrorText().GetData(),
|
||||
ShowCoord( m_APos ).GetData(), m_AText.GetData(),
|
||||
ShowCoord( m_BPos ).GetData(), m_BText.GetData() );
|
||||
ret.Printf( _( "ErrType(%d): <b>%s</b><ul><li> %s: %s </li><li> %s: %s </li></ul>" ),
|
||||
m_ErrorCode,
|
||||
GetErrorText().GetData(),
|
||||
ShowCoord( m_APos ).GetData(), m_AText.GetData(),
|
||||
ShowCoord( m_BPos ).GetData(), m_BText.GetData() );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function ShowReport
|
||||
* translates this object into a text string suitable for saving
|
||||
|
@ -138,15 +158,16 @@ public:
|
|||
{
|
||||
wxString ret;
|
||||
|
||||
ret.Printf( wxT("ErrType(%d): %s\n %s: %s\n %s: %s\n"),
|
||||
m_ErrorCode,
|
||||
GetErrorText().GetData(),
|
||||
ShowCoord( m_APos ).GetData(), m_AText.GetData(),
|
||||
ShowCoord( m_BPos ).GetData(), m_BText.GetData() );
|
||||
|
||||
ret.Printf( wxT( "ErrType(%d): %s\n %s: %s\n %s: %s\n" ),
|
||||
m_ErrorCode,
|
||||
GetErrorText().GetData(),
|
||||
ShowCoord( m_APos ).GetData(), m_AText.GetData(),
|
||||
ShowCoord( m_BPos ).GetData(), m_BText.GetData() );
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function GetErrorCode
|
||||
* returns the error code.
|
||||
|
@ -156,7 +177,7 @@ public:
|
|||
return m_ErrorCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function GetErrorText
|
||||
* returns the string form of a drc error code.
|
||||
|
@ -167,33 +188,37 @@ public:
|
|||
{
|
||||
return m_AText;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const wxString& GetTextB() const
|
||||
{
|
||||
return m_BText;
|
||||
}
|
||||
|
||||
|
||||
const wxPoint& GetPointA() const
|
||||
|
||||
|
||||
const wxPoint& GetPointA() const
|
||||
{
|
||||
return m_APos;
|
||||
}
|
||||
|
||||
const wxPoint& GetPointB() const
|
||||
|
||||
|
||||
const wxPoint& GetPointB() const
|
||||
{
|
||||
return m_BPos;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function GetPosition
|
||||
* @return wxPoint& - the position of this report item within
|
||||
* @return wxPoint& - the position of this report item within
|
||||
* the drawing.
|
||||
*/
|
||||
const wxPoint& GetPosition() const
|
||||
const wxPoint& GetPosition() const
|
||||
{
|
||||
return m_Pos;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function ShowCoord
|
||||
* formats a coordinate or position to text.
|
||||
|
@ -225,7 +250,7 @@ public:
|
|||
* removes and deletes all the items in the list.
|
||||
*/
|
||||
virtual void DeleteAllItems() = 0;
|
||||
|
||||
|
||||
/**
|
||||
* Function GetItem
|
||||
* retrieves a DRC_ITEM by pointer. The actual item remains owned by the
|
||||
|
@ -233,12 +258,12 @@ public:
|
|||
* @param aIndex The 0 based index into the list of the desired item.
|
||||
* @return const DRC_ITEM* - the desired item or NULL if aIndex is out of range.
|
||||
*/
|
||||
virtual const DRC_ITEM* GetItem( int aIndex ) = 0;
|
||||
virtual const DRC_ITEM* GetItem( int aIndex ) = 0;
|
||||
|
||||
/**
|
||||
* Function DeleteAllItems
|
||||
* removes and deletes desired item from the list.
|
||||
* @param aIndex The 0 based index into the list of the desired item which
|
||||
* @param aIndex The 0 based index into the list of the desired item which
|
||||
* is to be deleted.
|
||||
*/
|
||||
virtual void DeleteItem( int aIndex ) = 0;
|
||||
|
@ -247,13 +272,13 @@ public:
|
|||
* Function GetCount
|
||||
* returns the number of items in the list.
|
||||
*/
|
||||
virtual int GetCount() = 0;
|
||||
|
||||
virtual ~DRC_ITEM_LIST() {}
|
||||
virtual int GetCount() = 0;
|
||||
|
||||
virtual ~DRC_ITEM_LIST() { }
|
||||
};
|
||||
|
||||
|
||||
typedef std::vector<DRC_ITEM*> DRC_LIST;
|
||||
typedef std::vector<DRC_ITEM*> DRC_LIST;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -264,88 +289,89 @@ typedef std::vector<DRC_ITEM*> DRC_LIST;
|
|||
* be sent to a text file on disk.
|
||||
* This class is given access to the windows and the BOARD
|
||||
* that it needs via its constructor or public access functions.
|
||||
*/
|
||||
*/
|
||||
class DRC
|
||||
{
|
||||
friend class DrcDialog;
|
||||
|
||||
private:
|
||||
// protected or private functions() are lowercase first character.
|
||||
|
||||
bool m_doPad2PadTest;
|
||||
bool m_doUnconnectedTest;
|
||||
bool m_doZonesTest;
|
||||
bool m_doCreateRptFile;
|
||||
|
||||
wxString m_rptFilename;
|
||||
|
||||
// int m_errorCount;
|
||||
|
||||
MARKER* m_currentMarker;
|
||||
|
||||
bool m_aboartDRC;
|
||||
bool m_drcInProgress;
|
||||
int m_spotcx;
|
||||
int m_spotcy;
|
||||
int m_finx;
|
||||
int m_finy; // coord relatives de l'extremite du segm de reference
|
||||
|
||||
int m_segmAngle; // angle d'inclinaison du segment de reference en 0,1 degre
|
||||
int m_segmLength; // length of the reference segment
|
||||
|
||||
int m_xcliplo;
|
||||
int m_ycliplo;
|
||||
int m_xcliphi;
|
||||
int m_ycliphi; // coord de la surface de securite du segment a comparer
|
||||
|
||||
WinEDA_PcbFrame* m_mainWindow;
|
||||
WinEDA_DrawPanel* m_drawPanel;
|
||||
BOARD* m_pcb;
|
||||
DrcDialog* m_ui;
|
||||
friend class DrcDialog;
|
||||
|
||||
DRC_LIST m_unconnected; ///< list of unconnected pads, as DRC_ITEMs
|
||||
|
||||
|
||||
/**
|
||||
private:
|
||||
|
||||
// protected or private functions() are lowercase first character.
|
||||
|
||||
bool m_doPad2PadTest;
|
||||
bool m_doUnconnectedTest;
|
||||
bool m_doZonesTest;
|
||||
bool m_doCreateRptFile;
|
||||
|
||||
wxString m_rptFilename;
|
||||
|
||||
// int m_errorCount;
|
||||
|
||||
MARKER* m_currentMarker;
|
||||
|
||||
bool m_aboartDRC;
|
||||
bool m_drcInProgress;
|
||||
int m_spotcx;
|
||||
int m_spotcy;
|
||||
int m_finx;
|
||||
int m_finy; // coord relatives de l'extremite du segm de reference
|
||||
|
||||
int m_segmAngle; // angle d'inclinaison du segment de reference en 0,1 degre
|
||||
int m_segmLength; // length of the reference segment
|
||||
|
||||
int m_xcliplo;
|
||||
int m_ycliplo;
|
||||
int m_xcliphi;
|
||||
int m_ycliphi; // coord de la surface de securite du segment a comparer
|
||||
|
||||
WinEDA_PcbFrame* m_mainWindow;
|
||||
WinEDA_DrawPanel* m_drawPanel;
|
||||
BOARD* m_pcb;
|
||||
DrcDialog* m_ui;
|
||||
|
||||
DRC_LIST m_unconnected; ///< list of unconnected pads, as DRC_ITEMs
|
||||
|
||||
|
||||
/**
|
||||
* Function updatePointers
|
||||
* is a private helper function used to update needed pointers from the
|
||||
* one pointer which is known not to change, m_mainWindow.
|
||||
*/
|
||||
void updatePointers();
|
||||
|
||||
void updatePointers();
|
||||
|
||||
|
||||
/**
|
||||
* Function fillMarker
|
||||
* optionally creates a marker and fills it in with information,
|
||||
* but does not add it to the BOARD. Use this to report any kind of
|
||||
* optionally creates a marker and fills it in with information,
|
||||
* but does not add it to the BOARD. Use this to report any kind of
|
||||
* DRC problem, or unconnected pad problem.
|
||||
*
|
||||
* @param aTrack The reference track
|
||||
* @param aItem Another item on the BOARD, such as a SEGVIA, SEGZONE,
|
||||
* @param aItem Another item on the BOARD, such as a SEGVIA, SEGZONE,
|
||||
* or TRACK.
|
||||
* @param aErrorCode A categorizing identifier for the particular type
|
||||
* of error that is being reported.
|
||||
* @param fillMe A MARKER* which is to be filled in, or NULL if one is to
|
||||
* @param fillMe A MARKER* which is to be filled in, or NULL if one is to
|
||||
* first be allocated, then filled.
|
||||
*/
|
||||
MARKER* fillMarker( TRACK* aTrack, BOARD_ITEM* aItem, int aErrorCode, MARKER* fillMe );
|
||||
|
||||
MARKER* fillMarker( D_PAD* aPad, D_PAD* bPad, int aErrorCode, MARKER* fillMe );
|
||||
|
||||
|
||||
//-----<categorical group tests>-----------------------------------------
|
||||
|
||||
void testTracks();
|
||||
|
||||
void testPad2Pad();
|
||||
|
||||
void testUnconnected();
|
||||
//-----<categorical group tests>-----------------------------------------
|
||||
|
||||
void testZones();
|
||||
void testTracks();
|
||||
|
||||
void testPad2Pad();
|
||||
|
||||
void testUnconnected();
|
||||
|
||||
void testZones();
|
||||
|
||||
|
||||
//-----<single "item" tests>-----------------------------------------
|
||||
|
||||
|
||||
//-----<single "item" tests>-----------------------------------------
|
||||
|
||||
/**
|
||||
* Function doPadToPadsDrc
|
||||
* tests the clearance between aRefPad and other pads.
|
||||
|
@ -355,18 +381,18 @@ private:
|
|||
* @param aEnd Marks the end of the list and is not included
|
||||
* @param max_size The size of the biggest pad (used to stop the test when the X distance is > max_size)
|
||||
*/
|
||||
bool doPadToPadsDrc( D_PAD* aRefPad, LISTE_PAD* aStart,
|
||||
LISTE_PAD* aEnd, int max_size );
|
||||
|
||||
bool doPadToPadsDrc( D_PAD* aRefPad, LISTE_PAD* aStart,
|
||||
LISTE_PAD* aEnd, int max_size );
|
||||
|
||||
/**
|
||||
* Function DoTrackDrc
|
||||
* tests the current segment.
|
||||
* tests the current segment.
|
||||
* @param aRefSeg The segment to test
|
||||
* @param aStart The head of a list of tracks to test against (usually BOARD::m_Track)
|
||||
* @return bool - true if no poblems, else false and m_currentMarker is
|
||||
* @return bool - true if no poblems, else false and m_currentMarker is
|
||||
* filled in with the problem information.
|
||||
*/
|
||||
bool doTrackDrc( TRACK* aRefSeg, TRACK* aStart );
|
||||
bool doTrackDrc( TRACK* aRefSeg, TRACK* aStart );
|
||||
|
||||
|
||||
//-----<single tests>----------------------------------------------
|
||||
|
@ -377,9 +403,9 @@ private:
|
|||
* @param aPad Another pad to check against
|
||||
* @return bool - true if clearance between aRefPad and pad is >= dist_min, else false
|
||||
*/
|
||||
bool checkClearancePadToPad( D_PAD* aRefPad, D_PAD* aPad, const int dist_min );
|
||||
|
||||
|
||||
bool checkClearancePadToPad( D_PAD* aRefPad, D_PAD* aPad, const int dist_min );
|
||||
|
||||
|
||||
/**
|
||||
* Function checkClearanceSegmToPad
|
||||
* check the distance from a pad to segment. This function uses several
|
||||
|
@ -390,30 +416,30 @@ private:
|
|||
* spot_cX, spot_cY = position of pad / origin of segment
|
||||
* @param pad_to_test Is the pad involved in the check
|
||||
* @param w_segm Hhalf width of the segment to test
|
||||
* @param dist_min Is the minimum clearance needed
|
||||
* @param dist_min Is the minimum clearance needed
|
||||
*
|
||||
* @return false distance >= dist_min,
|
||||
* true if distance < dist_min
|
||||
*/
|
||||
bool checkClearanceSegmToPad( const D_PAD* pad_to_test, int w_segm, int dist_min );
|
||||
bool checkClearanceSegmToPad( const D_PAD* pad_to_test, int w_segm, int dist_min );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function checkMarginToCircle
|
||||
* @todo this translation is no good, fix this:
|
||||
* calculates the distance from a circle (via or round end of track) to the
|
||||
* segment of reference on the right hand side.
|
||||
*
|
||||
*
|
||||
* @param cx The x coordinate of the circle's center
|
||||
* @param cy The y coordinate of the circle's center
|
||||
* @param radius A "keep out" radius centered over the circle
|
||||
* @param cy The y coordinate of the circle's center
|
||||
* @param radius A "keep out" radius centered over the circle
|
||||
* @param length The length of the segment (i.e. coordinate of end)
|
||||
* @return bool - true if distance >= radius, else
|
||||
* false when distance < radius
|
||||
*/
|
||||
static bool checkMarginToCircle( int cx, int cy, int radius, int length );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function checkLine
|
||||
* tests to see if one track is in contact with another track.
|
||||
|
@ -422,15 +448,15 @@ private:
|
|||
* dans le cadre (xcliplo,ycliplo xcliphi,ycliphi) (variables globales,
|
||||
* locales a ce fichier)
|
||||
*/
|
||||
bool checkLine( int x1, int y1, int x2, int y2 );
|
||||
|
||||
bool checkLine( int x1, int y1, int x2, int y2 );
|
||||
|
||||
//-----</single tests>---------------------------------------------
|
||||
|
||||
|
||||
public:
|
||||
DRC( WinEDA_PcbFrame* aPcbWindow );
|
||||
|
||||
~DRC();
|
||||
|
||||
|
||||
/**
|
||||
* Function Drc
|
||||
* tests the current segment and returns the result and displays the error
|
||||
|
@ -441,10 +467,10 @@ public:
|
|||
*/
|
||||
int Drc( TRACK* aRefSeg, TRACK* aList );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function DrcBlind
|
||||
* tests the current segment and returns the result. Any error is not
|
||||
* tests the current segment and returns the result. Any error is not
|
||||
* displayed in the status panel.
|
||||
* @param aRefSeg The current segment to test.
|
||||
* @param aList The track list to test (usually m_Pcb->m_Track)
|
||||
|
@ -453,18 +479,18 @@ public:
|
|||
int DrcBlind( TRACK* aRefSeg, TRACK* aList )
|
||||
{
|
||||
updatePointers();
|
||||
|
||||
|
||||
return doTrackDrc( aRefSeg, aList ) ? OK_DRC : BAD_DRC;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function ShowDialog
|
||||
* opens a dialog and prompts the user, then if a test run button is
|
||||
* opens a dialog and prompts the user, then if a test run button is
|
||||
* clicked, runs the test(s) and creates the MARKERS. The dialog is only
|
||||
* created if it is not already in existence.
|
||||
*/
|
||||
void ShowDialog();
|
||||
void ShowDialog();
|
||||
|
||||
|
||||
/**
|
||||
|
@ -473,9 +499,9 @@ public:
|
|||
* the state of the dialog's existence.
|
||||
* @param aReason Indication of which button was clicked to cause the destruction.
|
||||
*/
|
||||
void DestroyDialog( int aReason );
|
||||
void DestroyDialog( int aReason );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function SetSettings
|
||||
* saves all the UI or test settings and may be called before running the tests.
|
||||
|
@ -483,38 +509,36 @@ public:
|
|||
* @param aUnconnectedTest Tells whether to list unconnected pads.
|
||||
* @param aZonesTest Tells whether to test zones.
|
||||
* @param aReportName A string telling the disk file report name entered.
|
||||
* @param aSaveReport A boolean telling whether to generate disk file report.
|
||||
* @param aSaveReport A boolean telling whether to generate disk file report.
|
||||
*/
|
||||
void SetSettings( bool aPad2PadTest, bool aUnconnectedTest,
|
||||
bool aZonesTest, const wxString& aReportName, bool aSaveReport )
|
||||
void SetSettings( bool aPad2PadTest, bool aUnconnectedTest,
|
||||
bool aZonesTest, const wxString& aReportName, bool aSaveReport )
|
||||
{
|
||||
m_doPad2PadTest = aPad2PadTest;
|
||||
m_doUnconnectedTest = aUnconnectedTest;
|
||||
m_doZonesTest = aZonesTest;
|
||||
m_rptFilename = aReportName;
|
||||
m_doCreateRptFile = aSaveReport;
|
||||
m_doZonesTest = aZonesTest;
|
||||
m_rptFilename = aReportName;
|
||||
m_doCreateRptFile = aSaveReport;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function RunTests
|
||||
* will actually run all the tests specified with a previous call to
|
||||
* SetSettings()
|
||||
*/
|
||||
void RunTests();
|
||||
void RunTests();
|
||||
|
||||
|
||||
/**
|
||||
* Function ListUnconnectedPad
|
||||
* gathers a list of all the unconnected pads and shows them in the
|
||||
* gathers a list of all the unconnected pads and shows them in the
|
||||
* dialog, and optionally prints a report of such.
|
||||
*/
|
||||
void ListUnconnectedPads();
|
||||
|
||||
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,13 +384,17 @@ 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();
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_DELETE_TRACKSEG:
|
||||
case ID_POPUP_PCB_DELETE_TRACKSEG:
|
||||
if( GetCurItem() == NULL )
|
||||
break;
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
|
|
|
@ -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 )
|
||||
{
|
||||
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
|
||||
}
|
||||
switch ( Via->Shape() )
|
||||
{
|
||||
case VIA_BLIND_BURIED:
|
||||
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
|
||||
break;
|
||||
|
||||
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 if( Via->Shape() == VIA_BLIND ) //blind via
|
||||
{
|
||||
// A revoir! ( la via devrait deboucher sur 1 cote )
|
||||
Via->SetLayerPair( old_layer, GetScreen()->m_Active_Layer );
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
// Usual via is from copper to component; layer pair is 0 and 0x0F.
|
||||
Via->SetLayerPair( COPPER_LAYER_N, LAYER_CMP_N );
|
||||
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 :
|
||||
|
|
245
pcbnew/pcbcfg.h
245
pcbnew/pcbcfg.h
|
@ -20,21 +20,21 @@ static int Pcbdiv_grille; /* memorisation temporaire */
|
|||
static PARAM_CFG_WXSTRING UserLibDirBufCfg
|
||||
(
|
||||
wxT( "LibDir" ), /* Keyword */
|
||||
& g_UserLibDirBuffer, /* Parameter address */
|
||||
&g_UserLibDirBuffer, /* Parameter address */
|
||||
GROUPLIB
|
||||
);
|
||||
|
||||
static PARAM_CFG_LIBNAME_LIST LibNameBufCfg
|
||||
(
|
||||
wxT( "LibName" ), /* Keyword */
|
||||
& g_LibName_List, /* Parameter address */
|
||||
&g_LibName_List, /* Parameter address */
|
||||
GROUPLIB
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT PadDrillCfg
|
||||
(
|
||||
wxT( "PadDrlX" ), /* Keyword */
|
||||
& g_Pad_Master.m_Drill.x, /* Parameter address */
|
||||
&g_Pad_Master.m_Drill.x, /* Parameter address */
|
||||
320, /* Default value */
|
||||
0, 0x7FFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -42,7 +42,7 @@ static PARAM_CFG_INT PadDrillCfg
|
|||
static PARAM_CFG_INT PadDimHCfg //Pad Diameter / H Size
|
||||
(
|
||||
wxT( "PadDimH" ), /* Keyword */
|
||||
& g_Pad_Master.m_Size.x, /* Parameter address */
|
||||
&g_Pad_Master.m_Size.x, /* Parameter address */
|
||||
550, /* Default value */
|
||||
0, 0x7FFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -50,7 +50,7 @@ static PARAM_CFG_INT PadDimHCfg //Pad Diameter / H Size
|
|||
static PARAM_CFG_INT PadDimVCfg
|
||||
(
|
||||
wxT( "PadDimV" ), /* Keyword */
|
||||
& g_Pad_Master.m_Size.y, /* Parameter address */
|
||||
&g_Pad_Master.m_Size.y, /* Parameter address */
|
||||
550, /* Default value */
|
||||
0, 0x7FFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -59,7 +59,7 @@ static PARAM_CFG_INT PadDimVCfg
|
|||
static PARAM_CFG_INT PadFormeCfg
|
||||
(
|
||||
wxT( "PadForm" ), /* Keyword */
|
||||
& g_Pad_Master.m_PadShape, /* Parameter address */
|
||||
&g_Pad_Master.m_PadShape, /* Parameter address */
|
||||
PAD_CIRCLE, /* Default value */
|
||||
0, 0x7F /* Valeurs extremes */
|
||||
);
|
||||
|
@ -67,14 +67,14 @@ static PARAM_CFG_INT PadFormeCfg
|
|||
static PARAM_CFG_INT PadMasqueLayerCfg
|
||||
(
|
||||
wxT( "PadMask" ), /* Keyword */
|
||||
& g_Pad_Master.m_Masque_Layer, /* Parameter address */
|
||||
&g_Pad_Master.m_Masque_Layer, /* Parameter address */
|
||||
0x0000FFFF /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT ViaDiametreCfg
|
||||
(
|
||||
wxT( "ViaDiam" ), /* Keyword */
|
||||
& g_DesignSettings.m_CurrentViaSize, /* Parameter address */
|
||||
&g_DesignSettings.m_CurrentViaSize, /* Parameter address */
|
||||
450, /* Default value */
|
||||
0, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -82,15 +82,32 @@ static PARAM_CFG_INT ViaDiametreCfg
|
|||
static PARAM_CFG_INT ViaDrillCfg
|
||||
(
|
||||
wxT( "ViaDril" ), /* Keyword */
|
||||
& g_DesignSettings.m_ViaDrill, /* Parameter address */
|
||||
&g_DesignSettings.m_ViaDrill, /* Parameter address */
|
||||
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,
|
||||
wxT( "ViaSHole" ), /* Keyword */
|
||||
& DisplayOpt.m_DisplayViaMode, /* Parameter address */
|
||||
&DisplayOpt.m_DisplayViaMode, /* Parameter address */
|
||||
VIA_SPECIAL_HOLE_SHOW, /* Default value */
|
||||
VIA_HOLE_NOT_SHOW, /* Valeurs extremes */
|
||||
OPT_VIA_HOLE_END - 1 /* Valeurs extremes */
|
||||
|
@ -99,7 +116,7 @@ static PARAM_CFG_INT ViaShowHoleCfg
|
|||
static PARAM_CFG_INT TrackClearenceCfg
|
||||
(
|
||||
wxT( "Isol" ), /* Keyword */
|
||||
& g_DesignSettings.m_TrackClearence, /* Parameter address */
|
||||
&g_DesignSettings.m_TrackClearence, /* Parameter address */
|
||||
120, /* Default value */
|
||||
0, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -107,15 +124,15 @@ static PARAM_CFG_INT TrackClearenceCfg
|
|||
static PARAM_CFG_INT LayerCountCfg // Mask Working Layers
|
||||
(
|
||||
wxT( "Countlayer" ), /* Keyword */
|
||||
& g_DesignSettings.m_CopperLayerCount, /* Parameter address */
|
||||
&g_DesignSettings.m_CopperLayerCount, /* Parameter address */
|
||||
2, /* Default value */
|
||||
1, NB_COPPER_LAYERS /* Valeurs extremes */
|
||||
1, NB_COPPER_LAYERS /* Valeurs extremes */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT TrackWidthCfg
|
||||
(
|
||||
wxT( "Lpiste" ), /* Keyword */
|
||||
& g_DesignSettings.m_CurrentTrackWidth, /* Parameter address */
|
||||
&g_DesignSettings.m_CurrentTrackWidth, /* Parameter address */
|
||||
170, /* Default value */
|
||||
2, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -123,7 +140,7 @@ static PARAM_CFG_INT TrackWidthCfg
|
|||
static PARAM_CFG_INT RouteLayTopCfg // First current working layer
|
||||
(
|
||||
wxT( "RouteTo" ), /* Keyword */
|
||||
& Route_Layer_TOP, /* Parameter address */
|
||||
&Route_Layer_TOP, /* Parameter address */
|
||||
15, /* Default value */
|
||||
0, 15 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -131,7 +148,7 @@ static PARAM_CFG_INT RouteLayTopCfg // First current working layer
|
|||
static PARAM_CFG_INT RouteLayBotCfg // second current working layer
|
||||
(
|
||||
wxT( "RouteBo" ), /* Keyword */
|
||||
& Route_Layer_BOTTOM, /* Parameter address */
|
||||
&Route_Layer_BOTTOM, /* Parameter address */
|
||||
0, /* Default value */
|
||||
0, 15 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -139,7 +156,7 @@ static PARAM_CFG_INT RouteLayBotCfg // second current working layer
|
|||
static PARAM_CFG_INT TypeViaCfg
|
||||
(
|
||||
wxT( "TypeVia" ), /* Keyword */
|
||||
& g_DesignSettings.m_CurrentViaType, /* Parameter address */
|
||||
&g_DesignSettings.m_CurrentViaType, /* Parameter address */
|
||||
VIA_THROUGH, /* Default value */
|
||||
0, 3 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -147,70 +164,70 @@ static PARAM_CFG_INT TypeViaCfg
|
|||
static PARAM_CFG_BOOL Segm45Cfg // Segm Pistes a 0, 45, 90 degres uniquement
|
||||
(
|
||||
wxT( "Segm45" ), /* Keyword */
|
||||
& Track_45_Only, /* Parameter address */
|
||||
&Track_45_Only, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_BOOL Raccord45Cfg // Generation automatique des Raccords a 45 degres
|
||||
(
|
||||
wxT( "Racc45" ), /* Keyword */
|
||||
& g_Raccord_45_Auto, /* Parameter address */
|
||||
&g_Raccord_45_Auto, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT UnitCfg // Units: 0 inch, 1 mm
|
||||
(
|
||||
wxT( "Unite" ), /* Keyword */
|
||||
& g_UnitMetric, /* Parameter address */
|
||||
&g_UnitMetric, /* Parameter address */
|
||||
FALSE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_BOOL SegmFillCfg
|
||||
(
|
||||
wxT( "SegFill" ), /* Keyword */
|
||||
& DisplayOpt.DisplayPcbTrackFill, /* Parameter address */
|
||||
&DisplayOpt.DisplayPcbTrackFill, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_BOOL NewTrackAfficheGardeCfg
|
||||
(
|
||||
wxT( "NewAffG" ), /* Keyword */
|
||||
& g_ShowIsolDuringCreateTrack, /* Parameter address */
|
||||
&g_ShowIsolDuringCreateTrack, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_BOOL TrackAfficheGardeCfg
|
||||
(
|
||||
wxT( "SegAffG" ), /* Keyword */
|
||||
& DisplayOpt.DisplayTrackIsol, /* Parameter address */
|
||||
&DisplayOpt.DisplayTrackIsol, /* Parameter address */
|
||||
FALSE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_BOOL PadFillCfg
|
||||
(
|
||||
wxT( "PadFill" ), /* Keyword */
|
||||
& DisplayOpt.DisplayPadFill, /* Parameter address */
|
||||
&DisplayOpt.DisplayPadFill, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_BOOL PadAfficheGardeCfg
|
||||
(
|
||||
wxT( "PadAffG" ), /* Keyword */
|
||||
& DisplayOpt.DisplayPadIsol, /* Parameter address */
|
||||
&DisplayOpt.DisplayPadIsol, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_BOOL PadShowNumCfg
|
||||
(
|
||||
wxT( "PadSNum" ), /* Keyword */
|
||||
& DisplayOpt.DisplayPadNum, /* Parameter address */
|
||||
&DisplayOpt.DisplayPadNum, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT AfficheContourModuleCfg // Module Edges: fill/line/sketch
|
||||
(
|
||||
wxT( "ModAffC" ), /* Keyword */
|
||||
& DisplayOpt.DisplayModEdge, /* Parameter address */
|
||||
&DisplayOpt.DisplayModEdge, /* Parameter address */
|
||||
FILAIRE, /* Default value */
|
||||
0, 2 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -218,7 +235,7 @@ static PARAM_CFG_INT AfficheContourModuleCfg // Module Edges: fill/line/sketc
|
|||
static PARAM_CFG_INT AfficheTexteModuleCfg // Module Texts: fill/line/sketch
|
||||
(
|
||||
wxT( "ModAffT" ), /* Keyword */
|
||||
& DisplayOpt.DisplayModText, /* Parameter address */
|
||||
&DisplayOpt.DisplayModText, /* Parameter address */
|
||||
FILAIRE, /* Default value */
|
||||
0, 2 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -226,7 +243,7 @@ static PARAM_CFG_INT AfficheTexteModuleCfg // Module Texts: fill/line/sketch
|
|||
static PARAM_CFG_INT AfficheTextePcbCfg // PCB Texts: fill/line/sketch
|
||||
(
|
||||
wxT( "PcbAffT" ), /* Keyword */
|
||||
& DisplayOpt.DisplayDrawItems, /* Parameter address */
|
||||
&DisplayOpt.DisplayDrawItems, /* Parameter address */
|
||||
FILAIRE, /* Default value */
|
||||
0, 2 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -234,14 +251,14 @@ static PARAM_CFG_INT AfficheTextePcbCfg // PCB Texts: fill/line/sketch
|
|||
static PARAM_CFG_BOOL SegmPcb45Cfg // Force 45 degrees for segments
|
||||
(
|
||||
wxT( "SgPcb45" ), /* Keyword */
|
||||
& Segments_45_Only, /* Parameter address */
|
||||
&Segments_45_Only, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT TextePcbDimVCfg
|
||||
(
|
||||
wxT( "TxtPcbV" ), /* Keyword */
|
||||
& g_DesignSettings.m_PcbTextSize.y, /* Parameter address */
|
||||
&g_DesignSettings.m_PcbTextSize.y, /* Parameter address */
|
||||
600, /* Default value */
|
||||
10, 2000 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -249,7 +266,7 @@ static PARAM_CFG_INT TextePcbDimVCfg
|
|||
static PARAM_CFG_INT TextePcbDimHCfg
|
||||
(
|
||||
wxT( "TxtPcbH" ), /* Keyword */
|
||||
& g_DesignSettings.m_PcbTextSize.x, /* Parameter address */
|
||||
&g_DesignSettings.m_PcbTextSize.x, /* Parameter address */
|
||||
600, /* Default value */
|
||||
10, 2000 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -258,7 +275,7 @@ static PARAM_CFG_SETCOLOR ColorLayer0Cfg // CU Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay0" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[0], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[0], /* Parameter address */
|
||||
GREEN /* Default value */
|
||||
);
|
||||
|
||||
|
@ -266,7 +283,7 @@ static PARAM_CFG_SETCOLOR ColorLayer1Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay1" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[1], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[1], /* Parameter address */
|
||||
BLUE /* Default value */
|
||||
);
|
||||
|
||||
|
@ -274,7 +291,7 @@ static PARAM_CFG_SETCOLOR ColorLayer2Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay2" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[2], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[2], /* Parameter address */
|
||||
LIGHTGRAY /* Default value */
|
||||
);
|
||||
|
||||
|
@ -282,7 +299,7 @@ static PARAM_CFG_SETCOLOR ColorLayer3Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay3" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[3], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[3], /* Parameter address */
|
||||
5 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -290,7 +307,7 @@ static PARAM_CFG_SETCOLOR ColorLayer4Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay4" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[4], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[4], /* Parameter address */
|
||||
4 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -298,7 +315,7 @@ static PARAM_CFG_SETCOLOR ColorLayer5Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay5" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[5], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[5], /* Parameter address */
|
||||
5 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -306,7 +323,7 @@ static PARAM_CFG_SETCOLOR ColorLayer6Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay6" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[6], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[6], /* Parameter address */
|
||||
6 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -314,7 +331,7 @@ static PARAM_CFG_SETCOLOR ColorLayer7Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay7" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[7], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[7], /* Parameter address */
|
||||
5 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -322,7 +339,7 @@ static PARAM_CFG_SETCOLOR ColorLayer8Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay8" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[8], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[8], /* Parameter address */
|
||||
7 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -330,7 +347,7 @@ static PARAM_CFG_SETCOLOR ColorLayer9Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLay9" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[9], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[9], /* Parameter address */
|
||||
1 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -338,7 +355,7 @@ static PARAM_CFG_SETCOLOR ColorLayer10Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayA" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[10], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[10], /* Parameter address */
|
||||
2 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -346,7 +363,7 @@ static PARAM_CFG_SETCOLOR ColorLayer11Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayB" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[11], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[11], /* Parameter address */
|
||||
3 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -354,7 +371,7 @@ static PARAM_CFG_SETCOLOR ColorLayer12Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayC" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[12], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[12], /* Parameter address */
|
||||
12 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -362,7 +379,7 @@ static PARAM_CFG_SETCOLOR ColorLayer13Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayD" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[13], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[13], /* Parameter address */
|
||||
13 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -370,7 +387,7 @@ static PARAM_CFG_SETCOLOR ColorLayer14Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayE" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[14], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[14], /* Parameter address */
|
||||
14 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -378,7 +395,7 @@ static PARAM_CFG_SETCOLOR ColorLayer15Cfg // CMP Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayF" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[15], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[15], /* Parameter address */
|
||||
RED /* Default value */
|
||||
);
|
||||
|
||||
|
@ -386,7 +403,7 @@ static PARAM_CFG_SETCOLOR ColorLayer16Cfg // Adhesive CU Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayG" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[16], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[16], /* Parameter address */
|
||||
1 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -394,7 +411,7 @@ static PARAM_CFG_SETCOLOR ColorLayer17Cfg // Adhesive CMP Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayH" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[17], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[17], /* Parameter address */
|
||||
5 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -402,7 +419,7 @@ static PARAM_CFG_SETCOLOR ColorLayer18Cfg // Solder Mask CU Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayI" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[18], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[18], /* Parameter address */
|
||||
11 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -410,7 +427,7 @@ static PARAM_CFG_SETCOLOR ColorLayer19Cfg // Solder Mask CMP Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayJ" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[19], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[19], /* Parameter address */
|
||||
4 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -418,7 +435,7 @@ static PARAM_CFG_SETCOLOR ColorLayer20Cfg // Silk Screen CU Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayK" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[20], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[20], /* Parameter address */
|
||||
5 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -426,7 +443,7 @@ static PARAM_CFG_SETCOLOR ColorLayer21Cfg // Silk Screen CMP Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayL" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[21], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[21], /* Parameter address */
|
||||
3 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -434,7 +451,7 @@ static PARAM_CFG_SETCOLOR ColorLayer22Cfg // Mask CU Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayM" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[22], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[22], /* Parameter address */
|
||||
6 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -442,7 +459,7 @@ static PARAM_CFG_SETCOLOR ColorLayer23Cfg // Mask CMP Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayN" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[23], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[23], /* Parameter address */
|
||||
5 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -450,7 +467,7 @@ static PARAM_CFG_SETCOLOR ColorLayer24Cfg // DRAW Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayO" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[24], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[24], /* Parameter address */
|
||||
LIGHTGRAY /* Default value */
|
||||
);
|
||||
|
||||
|
@ -458,7 +475,7 @@ static PARAM_CFG_SETCOLOR ColorLayer25Cfg // Comment Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayP" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[25], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[25], /* Parameter address */
|
||||
1 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -466,7 +483,7 @@ static PARAM_CFG_SETCOLOR ColorLayer26Cfg // ECO1 Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayQ" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[26], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[26], /* Parameter address */
|
||||
2 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -474,7 +491,7 @@ static PARAM_CFG_SETCOLOR ColorLayer27Cfg //ECO2 Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayR" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[27], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[27], /* Parameter address */
|
||||
14 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -482,7 +499,7 @@ static PARAM_CFG_SETCOLOR ColorLayer28Cfg // EDGES Layer Color
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayS" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[28], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[28], /* Parameter address */
|
||||
YELLOW /* Default value */
|
||||
);
|
||||
|
||||
|
@ -490,7 +507,7 @@ static PARAM_CFG_SETCOLOR ColorLayer29Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayT" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[29], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[29], /* Parameter address */
|
||||
13 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -498,7 +515,7 @@ static PARAM_CFG_SETCOLOR ColorLayer30Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayU" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[30], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[30], /* Parameter address */
|
||||
14 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -506,7 +523,7 @@ static PARAM_CFG_SETCOLOR ColorLayer31Cfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "ColLayV" ), /* Keyword */
|
||||
& g_DesignSettings.m_LayerColor[31], /* Parameter address */
|
||||
&g_DesignSettings.m_LayerColor[31], /* Parameter address */
|
||||
7 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -514,7 +531,7 @@ static PARAM_CFG_SETCOLOR ColorTxtModCmpCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "CTxtMoC" ), /* Keyword */
|
||||
& g_ModuleTextCMPColor, /* Parameter address */
|
||||
&g_ModuleTextCMPColor, /* Parameter address */
|
||||
LIGHTGRAY /* Default value */
|
||||
);
|
||||
|
||||
|
@ -522,7 +539,7 @@ static PARAM_CFG_SETCOLOR ColorTxtModCuCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "CTxtMoS" ), /* Keyword */
|
||||
& g_ModuleTextCUColor, /* Parameter address */
|
||||
&g_ModuleTextCUColor, /* Parameter address */
|
||||
1 /* Default value */
|
||||
);
|
||||
|
||||
|
@ -530,14 +547,14 @@ static PARAM_CFG_SETCOLOR VisibleTxtModCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "CTxtVis" ), /* Keyword */
|
||||
& g_ModuleTextNOVColor, /* Parameter address */
|
||||
&g_ModuleTextNOVColor, /* Parameter address */
|
||||
DARKGRAY /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT TexteModDimVCfg
|
||||
(
|
||||
wxT( "TxtModV" ), /* Keyword */
|
||||
& ModuleTextSize.y, /* Parameter address */
|
||||
&ModuleTextSize.y, /* Parameter address */
|
||||
500, /* Default value */
|
||||
1, 20000 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -545,7 +562,7 @@ static PARAM_CFG_INT TexteModDimVCfg
|
|||
static PARAM_CFG_INT TexteModDimHCfg
|
||||
(
|
||||
wxT( "TxtModH" ), /* Keyword */
|
||||
& ModuleTextSize.x, /* Parameter address */
|
||||
&ModuleTextSize.x, /* Parameter address */
|
||||
500, /* Default value */
|
||||
1, 20000 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -553,7 +570,7 @@ static PARAM_CFG_INT TexteModDimHCfg
|
|||
static PARAM_CFG_INT TexteModWidthCfg
|
||||
(
|
||||
wxT( "TxtModW" ), /* Keyword */
|
||||
& ModuleTextWidth, /* Parameter address */
|
||||
&ModuleTextWidth, /* Parameter address */
|
||||
100, /* Default value */
|
||||
1, 10000 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -562,7 +579,7 @@ static PARAM_CFG_SETCOLOR ColorAncreModCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "CAncreM" ), /* Keyword */
|
||||
& g_AnchorColor, /* Parameter address */
|
||||
&g_AnchorColor, /* Parameter address */
|
||||
BLUE /* Default value */
|
||||
);
|
||||
|
||||
|
@ -570,7 +587,7 @@ static PARAM_CFG_SETCOLOR ColorPadCuCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "CoPadCu" ), /* Keyword */
|
||||
& g_PadCUColor, /* Parameter address */
|
||||
&g_PadCUColor, /* Parameter address */
|
||||
GREEN /* Default value */
|
||||
);
|
||||
|
||||
|
@ -578,39 +595,39 @@ static PARAM_CFG_SETCOLOR ColorPadCmpCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "CoPadCm" ), /* Keyword */
|
||||
& g_PadCMPColor, /* Parameter address */
|
||||
&g_PadCMPColor, /* Parameter address */
|
||||
RED /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_SETCOLOR ColorViaNormCfg
|
||||
static PARAM_CFG_SETCOLOR ColorViaThroughCfg
|
||||
(
|
||||
INSETUP,
|
||||
wxT( "CoViaNo" ), /* Keyword */
|
||||
& g_DesignSettings.m_ViaColor[VIA_THROUGH], /* Parameter address */
|
||||
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
|
||||
(
|
||||
INSETUP,
|
||||
wxT( "CoPcbGr" ), /* Keyword */
|
||||
& g_GridColor, /* Parameter address */
|
||||
&g_GridColor, /* Parameter address */
|
||||
DARKGRAY /* Default value */
|
||||
);
|
||||
|
||||
|
@ -618,14 +635,14 @@ static PARAM_CFG_SETCOLOR ColorCheveluCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "CoRatsN" ), /* Keyword */
|
||||
& g_DesignSettings.m_RatsnestColor, /* Parameter address */
|
||||
&g_DesignSettings.m_RatsnestColor, /* Parameter address */
|
||||
WHITE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT HPGLpenNumCfg
|
||||
(
|
||||
wxT( "HPGLnum" ), /* Keyword */
|
||||
& g_HPGL_Pen_Num, /* Parameter address */
|
||||
&g_HPGL_Pen_Num, /* Parameter address */
|
||||
1, /* Default value */
|
||||
1, 16 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -633,7 +650,7 @@ static PARAM_CFG_INT HPGLpenNumCfg
|
|||
static PARAM_CFG_INT HPGLdiamCfg // HPGL pen size (mils)
|
||||
(
|
||||
wxT( "HPGdiam" ), /* Keyword */
|
||||
& g_HPGL_Pen_Diam, /* Parameter address */
|
||||
&g_HPGL_Pen_Diam, /* Parameter address */
|
||||
15, /* Default value */
|
||||
0, 100 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -641,7 +658,7 @@ static PARAM_CFG_INT HPGLdiamCfg // HPGL pen size (mils)
|
|||
static PARAM_CFG_INT HPGLspeedCfg //HPGL pen speed (cm/s)
|
||||
(
|
||||
wxT( "HPGLSpd" ), /* Keyword */
|
||||
& g_HPGL_Pen_Speed, /* Parameter address */
|
||||
&g_HPGL_Pen_Speed, /* Parameter address */
|
||||
20, /* Default value */
|
||||
0, 1000 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -649,7 +666,7 @@ static PARAM_CFG_INT HPGLspeedCfg //HPGL pen speed (cm/s)
|
|||
static PARAM_CFG_INT HPGLrecouvrementCfg
|
||||
(
|
||||
wxT( "HPGLrec" ), /* Keyword */
|
||||
& g_HPGL_Pen_Recouvrement, /* Parameter address */
|
||||
&g_HPGL_Pen_Recouvrement, /* Parameter address */
|
||||
2, /* Default value */
|
||||
0, 0x100 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -657,14 +674,14 @@ static PARAM_CFG_INT HPGLrecouvrementCfg
|
|||
static PARAM_CFG_BOOL HPGLcenterCfg //HPGL Org Coord ( 0 normal, 1 Centre)
|
||||
(
|
||||
wxT( "HPGLorg" ), /* Keyword */
|
||||
& HPGL_Org_Centre, /* Parameter address */
|
||||
&HPGL_Org_Centre, /* Parameter address */
|
||||
FALSE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_INT GERBERSpotMiniCfg //Aperture Mini (mils)
|
||||
(
|
||||
wxT( "GERBmin" ), /* Keyword */
|
||||
& spot_mini, /* Parameter address */
|
||||
&spot_mini, /* Parameter address */
|
||||
15, /* Default value */
|
||||
1, 100 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -672,7 +689,7 @@ static PARAM_CFG_INT GERBERSpotMiniCfg //Aperture Mini (mils)
|
|||
static PARAM_CFG_INT VernisEpargneGardeCfg
|
||||
(
|
||||
wxT( "VEgarde" ), /* Keyword */
|
||||
& g_DesignSettings.m_MaskMargin, /* Parameter address */
|
||||
&g_DesignSettings.m_MaskMargin, /* Parameter address */
|
||||
100, /* Default value */
|
||||
0, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -680,7 +697,7 @@ static PARAM_CFG_INT VernisEpargneGardeCfg
|
|||
static PARAM_CFG_INT DrawSegmLargeurCfg
|
||||
(
|
||||
wxT( "DrawLar" ), /* Keyword */
|
||||
& g_DesignSettings.m_DrawSegmentWidth, /* Parameter address */
|
||||
&g_DesignSettings.m_DrawSegmentWidth, /* Parameter address */
|
||||
120, /* Default value */
|
||||
0, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -688,7 +705,7 @@ static PARAM_CFG_INT DrawSegmLargeurCfg
|
|||
static PARAM_CFG_INT EdgeSegmLargeurCfg
|
||||
(
|
||||
wxT( "EdgeLar" ), /* Keyword */
|
||||
& g_DesignSettings.m_EdgeSegmentWidth, /* Parameter address */
|
||||
&g_DesignSettings.m_EdgeSegmentWidth, /* Parameter address */
|
||||
120, /* Default value */
|
||||
0, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -696,7 +713,7 @@ static PARAM_CFG_INT EdgeSegmLargeurCfg
|
|||
static PARAM_CFG_INT TexteSegmLargeurCfg
|
||||
(
|
||||
wxT( "TxtLar" ), /* Keyword */
|
||||
& g_DesignSettings.m_PcbTextWidth, /* Parameter address */
|
||||
&g_DesignSettings.m_PcbTextWidth, /* Parameter address */
|
||||
120, /* Default value */
|
||||
0, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -704,7 +721,7 @@ static PARAM_CFG_INT TexteSegmLargeurCfg
|
|||
static PARAM_CFG_INT ModuleSegmWidthCfg
|
||||
(
|
||||
wxT( "MSegLar" ), /* Keyword */
|
||||
& ModuleSegmentWidth, /* Parameter address */
|
||||
&ModuleSegmentWidth, /* Parameter address */
|
||||
120, /* Default value */
|
||||
0, 0xFFFF /* Valeurs extremes */
|
||||
);
|
||||
|
@ -712,7 +729,7 @@ static PARAM_CFG_INT ModuleSegmWidthCfg
|
|||
static PARAM_CFG_INT FormatPlotCfg
|
||||
(
|
||||
wxT( "ForPlot" ), /* Keyword */
|
||||
& format_plot, /* Parameter address */
|
||||
&format_plot, /* Parameter address */
|
||||
1, /* Default value */
|
||||
0, 3 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -720,7 +737,7 @@ static PARAM_CFG_INT FormatPlotCfg
|
|||
static PARAM_CFG_INT WTraitSerigraphiePlotCfg
|
||||
(
|
||||
wxT( "WpenSer" ), /* Keyword */
|
||||
& g_PlotLine_Width, /* Parameter address */
|
||||
&g_PlotLine_Width, /* Parameter address */
|
||||
10, /* Default value */
|
||||
1, 10000 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -728,7 +745,7 @@ static PARAM_CFG_INT WTraitSerigraphiePlotCfg
|
|||
static PARAM_CFG_DOUBLE UserGrilleXCfg
|
||||
(
|
||||
wxT( "UserGrX" ), /* Keyword */
|
||||
& g_UserGrid.x, /* Parameter address */
|
||||
&g_UserGrid.x, /* Parameter address */
|
||||
0.01, /* Default value */
|
||||
0.0001, 100.0 /* Valeurs extremes (inches)*/
|
||||
);
|
||||
|
@ -736,7 +753,7 @@ static PARAM_CFG_DOUBLE UserGrilleXCfg
|
|||
static PARAM_CFG_DOUBLE UserGrilleYCfg
|
||||
(
|
||||
wxT( "UserGrY" ), /* Keyword */
|
||||
& g_UserGrid.y, /* Parameter address */
|
||||
&g_UserGrid.y, /* Parameter address */
|
||||
0.01, /* Default value */
|
||||
0.0001, 100.0 /* Valeurs extremes (inches)*/
|
||||
);
|
||||
|
@ -744,7 +761,7 @@ static PARAM_CFG_DOUBLE UserGrilleYCfg
|
|||
static PARAM_CFG_INT UserGrilleUnitCfg
|
||||
(
|
||||
wxT( "UserGrU" ), /* Keyword */
|
||||
& g_UserGrid_Unit, /* Parameter address */
|
||||
&g_UserGrid_Unit, /* Parameter address */
|
||||
1, /* Default value */
|
||||
0, 1 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -752,7 +769,7 @@ static PARAM_CFG_INT UserGrilleUnitCfg
|
|||
static PARAM_CFG_INT DivGrillePcbCfg
|
||||
(
|
||||
wxT( "DivGrPc" ), /* Keyword */
|
||||
& Pcbdiv_grille, /* Parameter address */
|
||||
&Pcbdiv_grille, /* Parameter address */
|
||||
1, /* Default value */
|
||||
1, 10 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -760,7 +777,7 @@ static PARAM_CFG_INT DivGrillePcbCfg
|
|||
static PARAM_CFG_INT TimeOutCfg //Duree entre Sauvegardes auto en secondes
|
||||
(
|
||||
wxT( "TimeOut" ), /* Keyword */
|
||||
& g_TimeOut, /* Parameter address */
|
||||
&g_TimeOut, /* Parameter address */
|
||||
600, /* Default value */
|
||||
0, 60000 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -769,7 +786,7 @@ static PARAM_CFG_BOOL DisplPolairCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "DPolair" ), /* Keyword */
|
||||
& DisplayOpt.DisplayPolarCood, /* Parameter address */
|
||||
&DisplayOpt.DisplayPolarCood, /* Parameter address */
|
||||
FALSE /* Default value */
|
||||
);
|
||||
|
||||
|
@ -777,7 +794,7 @@ static PARAM_CFG_INT CursorShapeCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "CuShape" ), /* Keyword */
|
||||
& g_CursorShape, /* Parameter address */
|
||||
&g_CursorShape, /* Parameter address */
|
||||
0, /* Default value */
|
||||
0, 1 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -785,7 +802,7 @@ static PARAM_CFG_INT CursorShapeCfg
|
|||
static PARAM_CFG_INT PrmMaxLinksShowed
|
||||
(
|
||||
wxT( "MaxLnkS" ), /* Keyword */
|
||||
& g_MaxLinksShowed, /* Parameter address */
|
||||
&g_MaxLinksShowed, /* Parameter address */
|
||||
3, /* Default value */
|
||||
0, 15 /* Valeurs extremes */
|
||||
);
|
||||
|
@ -793,14 +810,14 @@ static PARAM_CFG_INT PrmMaxLinksShowed
|
|||
static PARAM_CFG_BOOL ShowRatsnestCfg
|
||||
(
|
||||
wxT( "ShowRat" ), /* Keyword */
|
||||
& g_Show_Ratsnest, /* Parameter address */
|
||||
&g_Show_Ratsnest, /* Parameter address */
|
||||
FALSE /* Default value */
|
||||
);
|
||||
|
||||
static PARAM_CFG_BOOL ShowModuleRatsnestCfg
|
||||
(
|
||||
wxT( "ShowMRa" ), /* Keyword */
|
||||
& g_Show_Module_Ratsnest, /* Parameter address */
|
||||
&g_Show_Module_Ratsnest, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
|
@ -808,7 +825,7 @@ static PARAM_CFG_BOOL TwoSegmentTrackBuildCfg
|
|||
(
|
||||
INSETUP,
|
||||
wxT( "TwoSegT" ), /* Keyword */
|
||||
& g_TwoSegmentTrackBuild, /* Parameter address */
|
||||
&g_TwoSegmentTrackBuild, /* Parameter address */
|
||||
TRUE /* Default value */
|
||||
);
|
||||
|
||||
|
@ -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
|
||||
|
@ -157,9 +157,9 @@ bool inline IsModuleLayerVisible( int layer ) {
|
|||
|
||||
eda_global bool Track_45_Only; /* Flag pour limiter l'inclinaison
|
||||
* pistes a 45 degres seulement */
|
||||
eda_global bool Segments_45_Only;/* Flag pour limiter l'inclinaison
|
||||
eda_global bool Segments_45_Only; /* Flag pour limiter l'inclinaison
|
||||
* edge pcb a 45 degres seulement */
|
||||
eda_global wxString PcbExtBuffer // Board file extension
|
||||
eda_global wxString PcbExtBuffer // Board file extension
|
||||
#ifdef MAIN
|
||||
( wxT( ".brd" ) )
|
||||
#endif
|
||||
|
@ -169,13 +169,13 @@ eda_global wxString g_SaveFileName // File Name for periodic saving
|
|||
( wxT( "$savepcb" ) )
|
||||
#endif
|
||||
;
|
||||
eda_global wxString NetNameBuffer; // Netlist file extension
|
||||
eda_global wxString NetNameBuffer; // Netlist file extension
|
||||
eda_global wxString NetExtBuffer
|
||||
#ifdef MAIN
|
||||
( wxT( ".net" ) )
|
||||
#endif
|
||||
;
|
||||
eda_global wxString NetCmpExtBuffer // cmp/footprint association file extension
|
||||
eda_global wxString NetCmpExtBuffer // cmp/footprint association file extension
|
||||
#ifdef MAIN
|
||||
( wxT( ".cmp" ) )
|
||||
#endif
|
||||
|
@ -187,7 +187,7 @@ eda_global wxString LibExtBuffer
|
|||
( wxT( ".mod" ) )
|
||||
#endif
|
||||
;
|
||||
eda_global wxString g_Shapes3DExtBuffer //3D shape file extension
|
||||
eda_global wxString g_Shapes3DExtBuffer //3D shape file extension
|
||||
#ifdef MAIN
|
||||
( wxT( ".wrl" ) )
|
||||
#endif
|
||||
|
@ -237,7 +237,7 @@ eda_global class EDA_BoardDesignSettings g_DesignSettings;
|
|||
// Default values for pad editions
|
||||
#ifndef GERBVIEW
|
||||
#ifdef MAIN
|
||||
D_PAD g_Pad_Master( (MODULE*) NULL );
|
||||
D_PAD g_Pad_Master( (MODULE*) NULL );
|
||||
|
||||
#else
|
||||
extern D_PAD g_Pad_Master;
|
||||
|
@ -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,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**********************************************/
|
||||
/* vi_edit.cpp: som editing function for vias */
|
||||
/**********************************************/
|
||||
/**********************************************/
|
||||
/* vi_edit.cpp: som editing function for vias */
|
||||
/**********************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
|
@ -12,93 +12,102 @@
|
|||
|
||||
|
||||
/**********************************************************************************/
|
||||
void WinEDA_PcbFrame::Via_Edit_Control(wxDC * DC, int command_type, SEGVIA * via)
|
||||
void WinEDA_PcbFrame::Via_Edit_Control( wxDC* DC, int command_type, SEGVIA* via )
|
||||
/**********************************************************************************/
|
||||
/*
|
||||
Execute edit commands relative to vias
|
||||
*/
|
||||
{
|
||||
int ii;
|
||||
TRACK * via_struct ;
|
||||
|
||||
switch ( command_type )
|
||||
{
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE1:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE2:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE3:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE4:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE5:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE6:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE7:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE8: // selec the new current value for via size (via diameter)
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
ii = command_type - ID_POPUP_PCB_SELECT_VIASIZE1;
|
||||
g_DesignSettings.m_CurrentViaSize = g_DesignSettings.m_ViaSizeHistory[ii];
|
||||
DisplayTrackSettings();
|
||||
break;
|
||||
|
||||
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->Draw(DrawPanel, DC, GR_OR);
|
||||
GetScreen()->SetModify();
|
||||
}
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
via_struct->Draw(DrawPanel, DC, GR_XOR);
|
||||
via_struct->m_Drill = via->m_Drill;
|
||||
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->Draw(DrawPanel, DC, GR_OR);
|
||||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT: // Reset all via hole to default value
|
||||
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_Drill != -1 )
|
||||
{
|
||||
via_struct->Draw(DrawPanel, DC, GR_XOR);
|
||||
via_struct->m_Drill = -1;
|
||||
via_struct->Draw(DrawPanel, DC, GR_OR);
|
||||
}
|
||||
}
|
||||
}
|
||||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
||||
default:
|
||||
DisplayError( this, wxT("WinEDA_PcbFrame::Via_Edition() error: unknown command"));
|
||||
break;
|
||||
}
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
/*
|
||||
* Execute edit commands relative to vias
|
||||
*/
|
||||
{
|
||||
int ii;
|
||||
TRACK* via_struct;
|
||||
|
||||
switch( command_type )
|
||||
{
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE1:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE2:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE3:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE4:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE5:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE6:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE7:
|
||||
case ID_POPUP_PCB_SELECT_VIASIZE8: // selec the new current value for via size (via diameter)
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
ii = command_type - ID_POPUP_PCB_SELECT_VIASIZE1;
|
||||
g_DesignSettings.m_CurrentViaSize = g_DesignSettings.m_ViaSizeHistory[ii];
|
||||
DisplayTrackSettings();
|
||||
break;
|
||||
|
||||
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->SetDrillValue( g_ViaHoleLastValue );
|
||||
via->Draw( DrawPanel, DC, GR_OR );
|
||||
GetScreen()->SetModify();
|
||||
}
|
||||
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->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->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;
|
||||
via_struct->Draw( DrawPanel, DC, GR_XOR );
|
||||
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->SetDrillDefault();
|
||||
via->Draw( DrawPanel, DC, GR_OR );
|
||||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
||||
case ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT: // Reset all via hole to default value
|
||||
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->IsDrillDefault() )
|
||||
{
|
||||
via_struct->Draw( DrawPanel, DC, GR_XOR );
|
||||
via_struct->SetDrillDefault();
|
||||
via_struct->Draw( DrawPanel, DC, GR_OR );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
||||
default:
|
||||
DisplayError( this, wxT( "WinEDA_PcbFrame::Via_Edition() error: unknown command" ) );
|
||||
break;
|
||||
}
|
||||
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue