Commit f98fd09f authored by charras's avatar charras

minor changes in pcbnew (see changelog)

parent 90721d13
...@@ -5,6 +5,15 @@ Started 2007-June-11 ...@@ -5,6 +5,15 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with
email address. email address.
2008-Aug-06 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
Removed an obsolete option in the plot menu, in gerber format.
Cleanup code.
Solved a minor bug: rastnest was not displayed after a move module
and if the command was aborted
2008-Juil-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> 2008-Juil-31 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================ ================================================================================
+eeschema: +eeschema:
......
...@@ -406,10 +406,6 @@ wxString ReturnPcbLayerName( int layer_number, bool is_filename = FAL ...@@ -406,10 +406,6 @@ wxString ReturnPcbLayerName( int layer_number, bool is_filename = FAL
* (not internatinalized, no space)*/ * (not internatinalized, no space)*/
/*********************/
/* PROJET_CONFIG.CPP */
/*********************/
/**************/ /**************/
/* DRAWTXT.CPP */ /* DRAWTXT.CPP */
/**************/ /**************/
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
enum PlotFormat { enum PlotFormat {
PLOT_FORMAT_HPGL, PLOT_FORMAT_HPGL,
PLOT_FORMAT_GERBER, PLOT_FORMAT_GERBER,
PLOT_FORMAT_POST, PLOT_FORMAT_POST
}; };
......
No preview for this file type
This diff is collapsed.
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
/* Fonctions locales */ /* Fonctions locales */
static int ChangeSideMaskLayer( int masque ); static int ChangeSideMaskLayer( int masque );
static void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC ); static void Abort_MoveOrCopyModule( WinEDA_DrawPanel* Panel, wxDC* DC );
/* Variables locales : */ /* Variables locales : */
static int ModuleInitOrient; // Lors des moves, val init de l'orient (pour annulation) static int ModuleInitOrient; // Lors des moves, val init de l'orient (pour annulation)
...@@ -122,11 +122,11 @@ void WinEDA_PcbFrame::StartMove_Module( MODULE* module, wxDC* DC ) ...@@ -122,11 +122,11 @@ void WinEDA_PcbFrame::StartMove_Module( MODULE* module, wxDC* DC )
m_Pcb->m_Status_Pcb |= DO_NOT_SHOW_GENERAL_RASTNEST; m_Pcb->m_Status_Pcb |= DO_NOT_SHOW_GENERAL_RASTNEST;
DrawPanel->ManageCurseur = Montre_Position_Empreinte; DrawPanel->ManageCurseur = Montre_Position_Empreinte;
DrawPanel->ForceCloseManageCurseur = Exit_Module; DrawPanel->ForceCloseManageCurseur = Abort_MoveOrCopyModule;
DrawPanel->m_AutoPAN_Request = TRUE; DrawPanel->m_AutoPAN_Request = TRUE;
// effacement module a l'ecran: // effacement module a l'ecran:
if ( DC ) if( DC )
{ {
int tmp = module->m_Flags; int tmp = module->m_Flags;
module->m_Flags |= DO_NOT_DRAW; module->m_Flags |= DO_NOT_DRAW;
...@@ -139,10 +139,12 @@ void WinEDA_PcbFrame::StartMove_Module( MODULE* module, wxDC* DC ) ...@@ -139,10 +139,12 @@ void WinEDA_PcbFrame::StartMove_Module( MODULE* module, wxDC* DC )
} }
/**************************************************/ /**************************************************************/
void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC ) void Abort_MoveOrCopyModule( WinEDA_DrawPanel* Panel, wxDC* DC )
/***************************************************/ /****************************************************************/
/* fonction de sortie de l'application */
/* Called on a move or copy module command abort
*/
{ {
DRAG_SEGM* pt_drag; DRAG_SEGM* pt_drag;
TRACK* pt_segm; TRACK* pt_segm;
...@@ -154,15 +156,17 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC ) ...@@ -154,15 +156,17 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC )
if( module ) if( module )
{ {
// effacement module a l'ecran: // Erase the current footprint on screen
DrawModuleOutlines( Panel, DC, module ); DrawModuleOutlines( Panel, DC, module );
/* restitution de l'empreinte si move ou effacement copie*/
if( module->m_Flags & IS_MOVED ) /* If a move command: return to old position
* If a copy command, delete the new footprint
*/
if( module->m_Flags & IS_MOVED ) // Move command
{ {
/* Move en cours : remise a l'etat d'origine */
if( g_Drag_Pistes_On ) if( g_Drag_Pistes_On )
{ {
/* Effacement des segments dragges */ /* Erase on screen dragged tracks */
pt_drag = g_DragSegmentList; pt_drag = g_DragSegmentList;
for( ; pt_drag != NULL; pt_drag = pt_drag->Pnext ) for( ; pt_drag != NULL; pt_drag = pt_drag->Pnext )
{ {
...@@ -171,7 +175,7 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC ) ...@@ -171,7 +175,7 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC )
} }
} }
/* Remise en etat d'origine des segments dragges */ /* Go to old position for dragged tracks */
pt_drag = g_DragSegmentList; pt_drag = g_DragSegmentList;
for( ; pt_drag != NULL; pt_drag = pt_drag->Pnext ) for( ; pt_drag != NULL; pt_drag = pt_drag->Pnext )
{ {
...@@ -184,9 +188,9 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC ) ...@@ -184,9 +188,9 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC )
module->m_Flags = 0; module->m_Flags = 0;
} }
if( module->m_Flags & IS_NEW ) if( module->m_Flags & IS_NEW ) // Copy command: delete new footprint
{ {
module ->DeleteStructure(); module->DeleteStructure();
module = NULL; module = NULL;
pcbframe->m_Pcb->m_Status_Pcb = 0; pcbframe->m_Pcb->m_Status_Pcb = 0;
pcbframe->build_liste_pads(); pcbframe->build_liste_pads();
...@@ -206,13 +210,23 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC ) ...@@ -206,13 +210,23 @@ void Exit_Module( WinEDA_DrawPanel* Panel, wxDC* DC )
Panel->ManageCurseur = NULL; Panel->ManageCurseur = NULL;
Panel->ForceCloseManageCurseur = NULL; Panel->ForceCloseManageCurseur = NULL;
pcbframe->SetCurItem( NULL ); pcbframe->SetCurItem( NULL );
pcbframe->m_Pcb->m_Status_Pcb &= ~DO_NOT_SHOW_GENERAL_RASTNEST; // Display ratsnest is allowed
if( g_Show_Ratsnest )
pcbframe->DrawGeneralRatsnest( DC );
} }
/**********************************************************/ /**********************************************************/
MODULE* WinEDA_BasePcbFrame::Copie_Module( MODULE* module ) MODULE* WinEDA_BasePcbFrame::Copie_Module( MODULE* module )
/**********************************************************/ /**********************************************************/
/* copie le module "module" en position courante */
/**
* Function Copie_Module
* Copy an existing footprint. The ne footprint is added in module list
* @param module = footprint to copy
* @return a pointer on the new footprint (the copy of the existing footprint)
*/
{ {
MODULE* newmodule; MODULE* newmodule;
...@@ -286,7 +300,7 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC, bool aAskBeforeDe ...@@ -286,7 +300,7 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC, bool aAskBeforeDe
/* Confirmation de l'effacement */ /* Confirmation de l'effacement */
module->Display_Infos( this ); module->Display_Infos( this );
if ( aAskBeforeDeleting ) if( aAskBeforeDeleting )
{ {
msg << _( "Delete Module" ) << wxT( " " ) << module->m_Reference->m_Text msg << _( "Delete Module" ) << wxT( " " ) << module->m_Reference->m_Text
<< wxT( " (" ) << _( "Value " ) << module->m_Value->m_Text << wxT( " (" ) << _( "Value " ) << module->m_Value->m_Text
...@@ -325,8 +339,9 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC, bool aAskBeforeDe ...@@ -325,8 +339,9 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC, bool aAskBeforeDe
m_Pcb->m_Status_Pcb = 0; m_Pcb->m_Status_Pcb = 0;
build_liste_pads(); build_liste_pads();
ReCompile_Ratsnest_After_Changes( DC ); ReCompile_Ratsnest_After_Changes( DC );
// redraw the area where the module was // redraw the area where the module was
if ( DC ) if( DC )
DrawPanel->PostDirtyRect( module->GetBoundingBox() ); DrawPanel->PostDirtyRect( module->GetBoundingBox() );
return TRUE; return TRUE;
} }
...@@ -513,7 +528,7 @@ void BOARD::Change_Side_Module( MODULE* Module, wxDC* DC ) ...@@ -513,7 +528,7 @@ void BOARD::Change_Side_Module( MODULE* Module, wxDC* DC )
/* calcul du rectangle d'encadrement */ /* calcul du rectangle d'encadrement */
Module->Set_Rectangle_Encadrement(); Module->Set_Rectangle_Encadrement();
if ( m_PcbFrame ) if( m_PcbFrame )
Module->Display_Infos( m_PcbFrame ); Module->Display_Infos( m_PcbFrame );
if( !(Module->m_Flags & IS_MOVED) ) /* Inversion simple */ if( !(Module->m_Flags & IS_MOVED) ) /* Inversion simple */
......
...@@ -688,14 +688,6 @@ static PARAM_CFG_BOOL HPGLcenterCfg //HPGL Org Coord ( 0 normal, 1 Centre) ...@@ -688,14 +688,6 @@ static PARAM_CFG_BOOL HPGLcenterCfg //HPGL Org Coord ( 0 normal, 1 Centre)
FALSE /* Default value */ FALSE /* Default value */
); );
static PARAM_CFG_INT GERBERSpotMiniCfg //Aperture Mini (mils)
(
wxT( "GERBmin" ), /* Keyword */
&spot_mini, /* Parameter address */
15, /* Default value */
1, 100 /* Min and max values*/
);
static PARAM_CFG_INT VernisEpargneGardeCfg static PARAM_CFG_INT VernisEpargneGardeCfg
( (
wxT( "VEgarde" ), /* Keyword */ wxT( "VEgarde" ), /* Keyword */
...@@ -736,14 +728,6 @@ static PARAM_CFG_INT ModuleSegmWidthCfg ...@@ -736,14 +728,6 @@ static PARAM_CFG_INT ModuleSegmWidthCfg
0, 0xFFFF /* Min and max values*/ 0, 0xFFFF /* Min and max values*/
); );
static PARAM_CFG_INT FormatPlotCfg
(
wxT( "ForPlot" ), /* Keyword */
&format_plot, /* Parameter address */
1, /* Default value */
0, 3 /* Min and max values*/
);
static PARAM_CFG_INT WTraitSerigraphiePlotCfg static PARAM_CFG_INT WTraitSerigraphiePlotCfg
( (
wxT( "WpenSer" ), /* Keyword */ wxT( "WpenSer" ), /* Keyword */
...@@ -926,13 +910,11 @@ PARAM_CFG_BASE* ParamCfgList[] = ...@@ -926,13 +910,11 @@ PARAM_CFG_BASE* ParamCfgList[] =
&HPGLspeedCfg, &HPGLspeedCfg,
&HPGLrecouvrementCfg, &HPGLrecouvrementCfg,
&HPGLcenterCfg, &HPGLcenterCfg,
&GERBERSpotMiniCfg,
&VernisEpargneGardeCfg, &VernisEpargneGardeCfg,
&DrawSegmLargeurCfg, &DrawSegmLargeurCfg,
&EdgeSegmLargeurCfg, &EdgeSegmLargeurCfg,
&TexteSegmLargeurCfg, &TexteSegmLargeurCfg,
&ModuleSegmWidthCfg, &ModuleSegmWidthCfg,
&FormatPlotCfg,
&WTraitSerigraphiePlotCfg, &WTraitSerigraphiePlotCfg,
&UserGrilleXCfg, &UserGrilleXCfg,
&UserGrilleYCfg, &UserGrilleYCfg,
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "common.h" #include "common.h"
#include "pcbnew.h" #include "pcbnew.h"
#include "plot_common.h"
#include "pcbplot.h" #include "pcbplot.h"
#include "autorout.h" #include "autorout.h"
#include "trigo.h" #include "trigo.h"
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#define OPTKEY_PADS_ON_SILKSCREEN wxT( "PlotPadsOnSilkscreen" ) #define OPTKEY_PADS_ON_SILKSCREEN wxT( "PlotPadsOnSilkscreen" )
#define OPTKEY_ALWAYS_PRINT_PADS wxT( "PlotAlwaysPads" ) #define OPTKEY_ALWAYS_PRINT_PADS wxT( "PlotAlwaysPads" )
#define OPTKEY_OUTPUT_FORMAT wxT( "PlotOutputFormat" ) #define OPTKEY_OUTPUT_FORMAT wxT( "PlotOutputFormat" )
#define OPTKEY_LINEWIDTH_VALUE wxT( "PlotLineWidth" )
static long s_SelectedLayers = CUIVRE_LAYER | CMP_LAYER | static long s_SelectedLayers = CUIVRE_LAYER | CMP_LAYER |
...@@ -83,11 +84,12 @@ public: ...@@ -83,11 +84,12 @@ public:
wxCheckBox* m_Plot_Pads_on_Silkscreen; wxCheckBox* m_Plot_Pads_on_Silkscreen;
wxCheckBox* m_Force_Plot_Pads; wxCheckBox* m_Force_Plot_Pads;
wxCheckBox* m_Plot_PS_Negative; wxCheckBox* m_Plot_PS_Negative;
WinEDA_ValueCtrl* m_GerbSpotSizeMinOpt;
WinEDA_ValueCtrl* m_LinesWidth; WinEDA_ValueCtrl* m_LinesWidth;
WinEDA_ValueCtrl* m_HPGLPenSizeOpt; WinEDA_ValueCtrl* m_HPGLPenSizeOpt;
WinEDA_ValueCtrl* m_HPGLPenSpeedOpt; WinEDA_ValueCtrl* m_HPGLPenSpeedOpt;
WinEDA_ValueCtrl* m_HPGLPenOverlayOpt; WinEDA_ValueCtrl* m_HPGLPenOverlayOpt;
wxStaticBox* m_HPGL_OptionsBox;
WinEDA_DFloatValueCtrl* m_FineAdjustXscaleOpt, * m_FineAdjustYscaleOpt; WinEDA_DFloatValueCtrl* m_FineAdjustXscaleOpt, * m_FineAdjustYscaleOpt;
double m_XScaleAdjust, m_YScaleAdjust; double m_XScaleAdjust, m_YScaleAdjust;
...@@ -108,14 +110,14 @@ public: ...@@ -108,14 +110,14 @@ public:
// change the A4 to the simple postscript, according to the PlotFormat enum // change the A4 to the simple postscript, according to the PlotFormat enum
if( radioNdx == 3 ) if( radioNdx == 3 )
radioNdx = 2; radioNdx = PLOT_FORMAT_POST;
return PlotFormat( radioNdx ); return PlotFormat( radioNdx );
} }
public: public:
WinEDA_PlotFrame( WinEDA_BasePcbFrame * parent ); WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent );
private: private:
void Plot( wxCommandEvent& event ); void Plot( wxCommandEvent& event );
void OnQuit( wxCommandEvent& event ); void OnQuit( wxCommandEvent& event );
...@@ -128,12 +130,12 @@ private: ...@@ -128,12 +130,12 @@ private:
}; };
BEGIN_EVENT_TABLE( WinEDA_PlotFrame, wxDialog ) BEGIN_EVENT_TABLE( WinEDA_PlotFrame, wxDialog )
EVT_CLOSE( WinEDA_PlotFrame::OnClose ) EVT_CLOSE( WinEDA_PlotFrame::OnClose )
EVT_BUTTON( wxID_CANCEL, WinEDA_PlotFrame::OnQuit ) EVT_BUTTON( wxID_CANCEL, WinEDA_PlotFrame::OnQuit )
EVT_BUTTON( ID_EXEC_PLOT, WinEDA_PlotFrame::Plot ) EVT_BUTTON( ID_EXEC_PLOT, WinEDA_PlotFrame::Plot )
EVT_BUTTON( ID_SAVE_OPT_PLOT, WinEDA_PlotFrame::SaveOptPlot ) EVT_BUTTON( ID_SAVE_OPT_PLOT, WinEDA_PlotFrame::SaveOptPlot )
EVT_BUTTON( ID_CREATE_DRILL_FILE, WinEDA_PlotFrame::CreateDrillFile ) EVT_BUTTON( ID_CREATE_DRILL_FILE, WinEDA_PlotFrame::CreateDrillFile )
EVT_RADIOBOX( ID_SEL_PLOT_FORMAT, WinEDA_PlotFrame::SetCommands ) EVT_RADIOBOX( ID_SEL_PLOT_FORMAT, WinEDA_PlotFrame::SetCommands )
END_EVENT_TABLE() END_EVENT_TABLE()
...@@ -190,51 +192,49 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) : ...@@ -190,51 +192,49 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) :
4, fmtmsg, 1, wxRA_SPECIFY_COLS ); 4, fmtmsg, 1, wxRA_SPECIFY_COLS );
MidRightBoxSizer->Add( m_PlotFormatOpt, 0, wxGROW | wxALL, 5 ); MidRightBoxSizer->Add( m_PlotFormatOpt, 0, wxGROW | wxALL, 5 );
int myFormatIndex = format_plot;
if( config ) if( config )
{ {
config->Read( OPTKEY_OUTPUT_FORMAT, &myFormatIndex ); config->Read( OPTKEY_OUTPUT_FORMAT, &g_PlotFormat );
config->Read( OPTKEY_LINEWIDTH_VALUE, &g_PlotLine_Width);
} }
m_PlotFormatOpt->SetSelection( myFormatIndex ); m_PlotFormatOpt->SetSelection( g_PlotFormat );
// Creation des menus d'option du format GERBER
m_GerbSpotSizeMinOpt = new WinEDA_ValueCtrl( this, _( "Spot min" ),
spot_mini, g_UnitMetric, MidRightBoxSizer,
UNITS_MILS );
// Creation des menus d'option du format HPGL // Creation des menus d'option du format HPGL
m_HPGLPenSizeOpt = new WinEDA_ValueCtrl( this, _( "Pen size" ), m_HPGL_OptionsBox = new wxStaticBox( this, wxID_ANY, _( "HPGL Options:" ) );
g_HPGL_Pen_Diam, g_UnitMetric, MidRightBoxSizer, wxStaticBoxSizer* HPGL_OptionsBoxSizer = new wxStaticBoxSizer( m_HPGL_OptionsBox, wxVERTICAL );
MidRightBoxSizer->Add( HPGL_OptionsBoxSizer, 0, wxGROW | wxALL, 5 );
m_HPGLPenSizeOpt = new WinEDA_ValueCtrl( this, _( "Pen Size" ),
g_HPGL_Pen_Diam, g_UnitMetric, HPGL_OptionsBoxSizer,
UNITS_MILS ); UNITS_MILS );
// unites standards = cm pour vitesse plume en HPGL // unites standards = cm pour vitesse plume en HPGL
m_HPGLPenSpeedOpt = new WinEDA_ValueCtrl( this, _( "Pen speed (cm/s)" ), m_HPGLPenSpeedOpt = new WinEDA_ValueCtrl( this, _( "Pen Speed (cm/s)" ),
g_HPGL_Pen_Speed, CENTIMETRE, MidRightBoxSizer, g_HPGL_Pen_Speed, CENTIMETRE, HPGL_OptionsBoxSizer,
1 ); 1 );
m_HPGLPenSpeedOpt->SetToolTip( _( "Set pen speed in cm/s" ) ); m_HPGLPenSpeedOpt->SetToolTip( _( "Set pen speed in cm/s" ) );
m_HPGLPenOverlayOpt = new WinEDA_ValueCtrl( this, _( "Pen ovr" ), m_HPGLPenOverlayOpt = new WinEDA_ValueCtrl( this, _( "Pen ovr" ),
g_HPGL_Pen_Recouvrement, g_UnitMetric, g_HPGL_Pen_Recouvrement, g_UnitMetric,
MidRightBoxSizer, UNITS_MILS ); HPGL_OptionsBoxSizer, UNITS_MILS );
m_HPGLPenOverlayOpt->SetToolTip( _( "Set plot overlay for filling" ) ); m_HPGLPenOverlayOpt->SetToolTip( _( "Set plot overlay for filling" ) );
m_LinesWidth = new WinEDA_ValueCtrl( this, _( "Lines width" ), m_LinesWidth = new WinEDA_ValueCtrl( this, _( "Lines Width" ),
g_PlotLine_Width, g_UnitMetric, MidRightBoxSizer, g_PlotLine_Width, g_UnitMetric, MidRightBoxSizer,
PCB_INTERNAL_UNIT ); PCB_INTERNAL_UNIT );
m_LinesWidth->SetToolTip( _( "Set width for lines in line plot mode" ) ); m_LinesWidth->SetToolTip( _( "Set lines width used to plot in sketch mode and plot pads outlines on silk screen layers" ) );
// Create the right column commands // Create the right column commands
static const wxString choice_plot_offset_msg[] = static const wxString choice_plot_offset_msg[] =
{ _( "Absolute" ), _( "Auxiliary axis" ) }; { _( "Absolute" ), _( "Auxiliary axis" ) };
m_Choice_Plot_Offset = new wxRadioBox( this, ID_SEL_PLOT_OFFSET_OPTION, m_Choice_Plot_Offset = new wxRadioBox( this, ID_SEL_PLOT_OFFSET_OPTION,
_( "Plot origin" ), _( "Plot Origin" ),
wxDefaultPosition, wxSize( -1, -1 ), wxDefaultPosition, wxSize( -1, -1 ),
2, choice_plot_offset_msg, 1, wxRA_SPECIFY_COLS ); 2, choice_plot_offset_msg, 1, wxRA_SPECIFY_COLS );
...@@ -259,7 +259,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) : ...@@ -259,7 +259,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) :
m_FineAdjustXscaleOpt->SetToolTip( _( "Set X scale adjust for exact scale plotting" ) ); m_FineAdjustXscaleOpt->SetToolTip( _( "Set X scale adjust for exact scale plotting" ) );
m_FineAdjustYscaleOpt = new WinEDA_DFloatValueCtrl( this, m_FineAdjustYscaleOpt = new WinEDA_DFloatValueCtrl( this,
_("Y scale adjust" ), m_YScaleAdjust, _( "Y scale adjust" ), m_YScaleAdjust,
RightBoxSizer ); RightBoxSizer );
m_FineAdjustYscaleOpt->SetToolTip( _( "Set Y scale adjust for exact scale plotting" ) ); m_FineAdjustYscaleOpt->SetToolTip( _( "Set Y scale adjust for exact scale plotting" ) );
...@@ -291,7 +291,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) : ...@@ -291,7 +291,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) :
LayersBoxSizer->Add( OneColumnLayerBoxSizer, 0, wxGROW | wxALL, 5 ); LayersBoxSizer->Add( OneColumnLayerBoxSizer, 0, wxGROW | wxALL, 5 );
int mask = 1; int mask = 1;
for( int layer=0; layer<NB_LAYERS; layer++, mask <<= 1 ) for( int layer = 0; layer<NB_LAYERS; layer++, mask <<= 1 )
{ {
if( layer == 16 ) if( layer == 16 )
{ {
...@@ -299,7 +299,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) : ...@@ -299,7 +299,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) :
LayersBoxSizer->Add( OneColumnLayerBoxSizer, 0, wxGROW | wxALL, 5 ); LayersBoxSizer->Add( OneColumnLayerBoxSizer, 0, wxGROW | wxALL, 5 );
} }
m_BoxSelectLayer[layer] = new wxCheckBox( this, -1, board->GetLayerName(layer) ); m_BoxSelectLayer[layer] = new wxCheckBox( this, -1, board->GetLayerName( layer ) );
if( mask & s_SelectedLayers ) if( mask & s_SelectedLayers )
m_BoxSelectLayer[layer]->SetValue( true ); m_BoxSelectLayer[layer]->SetValue( true );
...@@ -311,7 +311,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) : ...@@ -311,7 +311,7 @@ WinEDA_PlotFrame::WinEDA_PlotFrame( WinEDA_BasePcbFrame* parent ) :
{ {
wxString layerKey; wxString layerKey;
for( int layer=0; layer<NB_LAYERS; ++layer ) for( int layer = 0; layer<NB_LAYERS; ++layer )
{ {
bool option; bool option;
...@@ -503,9 +503,9 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event ) ...@@ -503,9 +503,9 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event )
m_Drill_Shape_Opt->Enable( true ); m_Drill_Shape_Opt->Enable( true );
m_PlotModeOpt->Enable( true ); m_PlotModeOpt->Enable( true );
m_PlotMirorOpt->Enable( true ); m_PlotMirorOpt->Enable( true );
m_GerbSpotSizeMinOpt->Enable( false );
m_Choice_Plot_Offset->Enable( false ); m_Choice_Plot_Offset->Enable( false );
m_LinesWidth->Enable( true ); m_LinesWidth->Enable( true );
m_HPGL_OptionsBox->Enable( false );
m_HPGLPenSizeOpt->Enable( false ); m_HPGLPenSizeOpt->Enable( false );
m_HPGLPenSpeedOpt->Enable( false ); m_HPGLPenSpeedOpt->Enable( false );
m_HPGLPenOverlayOpt->Enable( false ); m_HPGLPenOverlayOpt->Enable( false );
...@@ -522,9 +522,9 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event ) ...@@ -522,9 +522,9 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event )
m_Drill_Shape_Opt->Enable( false ); m_Drill_Shape_Opt->Enable( false );
m_PlotModeOpt->Enable( false ); m_PlotModeOpt->Enable( false );
m_PlotMirorOpt->Enable( false ); m_PlotMirorOpt->Enable( false );
m_GerbSpotSizeMinOpt->Enable( true );
m_Choice_Plot_Offset->Enable( true ); m_Choice_Plot_Offset->Enable( true );
m_LinesWidth->Enable( true ); m_LinesWidth->Enable( true );
m_HPGL_OptionsBox->Enable( false );
m_HPGLPenSizeOpt->Enable( false ); m_HPGLPenSizeOpt->Enable( false );
m_HPGLPenSpeedOpt->Enable( false ); m_HPGLPenSpeedOpt->Enable( false );
m_HPGLPenOverlayOpt->Enable( false ); m_HPGLPenOverlayOpt->Enable( false );
...@@ -541,9 +541,9 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event ) ...@@ -541,9 +541,9 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event )
m_PlotMirorOpt->Enable( true ); m_PlotMirorOpt->Enable( true );
m_Drill_Shape_Opt->Enable( false ); m_Drill_Shape_Opt->Enable( false );
m_PlotModeOpt->Enable( true ); m_PlotModeOpt->Enable( true );
m_GerbSpotSizeMinOpt->Enable( false );
m_Choice_Plot_Offset->Enable( false ); m_Choice_Plot_Offset->Enable( false );
m_LinesWidth->Enable( false ); m_LinesWidth->Enable( false );
m_HPGL_OptionsBox->Enable( true );
m_HPGLPenSizeOpt->Enable( true ); m_HPGLPenSizeOpt->Enable( true );
m_HPGLPenSpeedOpt->Enable( true ); m_HPGLPenSpeedOpt->Enable( true );
m_HPGLPenOverlayOpt->Enable( true ); m_HPGLPenOverlayOpt->Enable( true );
...@@ -557,7 +557,7 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event ) ...@@ -557,7 +557,7 @@ void WinEDA_PlotFrame::SetCommands( wxCommandEvent& event )
break; break;
} }
format_plot = format; g_PlotFormat = format;
} }
...@@ -589,7 +589,7 @@ void WinEDA_PlotFrame::SaveOptPlot( wxCommandEvent& event ) ...@@ -589,7 +589,7 @@ void WinEDA_PlotFrame::SaveOptPlot( wxCommandEvent& event )
g_PlotOrient = 0; g_PlotOrient = 0;
Plot_Mode = m_PlotModeOpt->GetSelection(); Plot_Mode = m_PlotModeOpt->GetSelection();
g_DrawViaOnMaskLayer = m_PlotNoViaOnMaskOpt->GetValue(); g_DrawViaOnMaskLayer = m_PlotNoViaOnMaskOpt->GetValue();
spot_mini = m_GerbSpotSizeMinOpt->GetValue();
g_HPGL_Pen_Diam = m_HPGLPenSizeOpt->GetValue(); g_HPGL_Pen_Diam = m_HPGLPenSizeOpt->GetValue();
g_HPGL_Pen_Speed = m_HPGLPenSpeedOpt->GetValue(); g_HPGL_Pen_Speed = m_HPGLPenSpeedOpt->GetValue();
g_HPGL_Pen_Recouvrement = m_HPGLPenOverlayOpt->GetValue(); g_HPGL_Pen_Recouvrement = m_HPGLPenOverlayOpt->GetValue();
...@@ -600,7 +600,7 @@ void WinEDA_PlotFrame::SaveOptPlot( wxCommandEvent& event ) ...@@ -600,7 +600,7 @@ void WinEDA_PlotFrame::SaveOptPlot( wxCommandEvent& event )
m_YScaleAdjust = m_FineAdjustYscaleOpt->GetValue(); m_YScaleAdjust = m_FineAdjustYscaleOpt->GetValue();
wxConfig* config = m_Parent->m_Parent->m_EDA_Config; wxConfig* config = m_Parent->m_Parent->m_EDA_Config;
if( config) if( config )
{ {
config->Write( OPTKEY_EDGELAYER_GERBER, g_Exclude_Edges_Pcb ); config->Write( OPTKEY_EDGELAYER_GERBER, g_Exclude_Edges_Pcb );
config->Write( OPTKEY_XFINESCALE_ADJ, m_XScaleAdjust ); config->Write( OPTKEY_XFINESCALE_ADJ, m_XScaleAdjust );
...@@ -611,8 +611,10 @@ void WinEDA_PlotFrame::SaveOptPlot( wxCommandEvent& event ) ...@@ -611,8 +611,10 @@ void WinEDA_PlotFrame::SaveOptPlot( wxCommandEvent& event )
int formatNdx = m_PlotFormatOpt->GetSelection(); int formatNdx = m_PlotFormatOpt->GetSelection();
config->Write( OPTKEY_OUTPUT_FORMAT, formatNdx ); config->Write( OPTKEY_OUTPUT_FORMAT, formatNdx );
config->Write( OPTKEY_LINEWIDTH_VALUE, g_PlotLine_Width );
wxString layerKey; wxString layerKey;
for( int layer=0; layer<NB_LAYERS; ++layer ) for( int layer = 0; layer<NB_LAYERS; ++layer )
{ {
layerKey.Printf( OPTKEY_LAYERBASE, layer ); layerKey.Printf( OPTKEY_LAYERBASE, layer );
config->Write( layerKey, m_BoxSelectLayer[layer]->IsChecked() ); config->Write( layerKey, m_BoxSelectLayer[layer]->IsChecked() );
......
...@@ -80,9 +80,6 @@ eda_global int g_HPGL_Pen_Speed /* vitesse en cm/s */ ...@@ -80,9 +80,6 @@ eda_global int g_HPGL_Pen_Speed /* vitesse en cm/s */
eda_global int g_HPGL_Pen_Diam; /* diametre en mils */ eda_global int g_HPGL_Pen_Diam; /* diametre en mils */
eda_global int g_HPGL_Pen_Recouvrement; /* recouvrement en mils ( pour remplissages */ eda_global int g_HPGL_Pen_Recouvrement; /* recouvrement en mils ( pour remplissages */
/* Gestion des ouvertures GERBER */
eda_global int spot_mini; /* Diametre mini de l'ouverture pour trace GERBER */
/* Gestion des cadrages et echelles de trace */ /* Gestion des cadrages et echelles de trace */
eda_global float Scale_X, Scale_Y ; /* coeff d'agrandissement en X et Y demandes */ eda_global float Scale_X, Scale_Y ; /* coeff d'agrandissement en X et Y demandes */
eda_global wxPoint g_PlotOffset; /* Offset de trace modifies par l'echelle */ eda_global wxPoint g_PlotOffset; /* Offset de trace modifies par l'echelle */
...@@ -91,7 +88,12 @@ eda_global int nb_plot_erreur ; ...@@ -91,7 +88,12 @@ eda_global int nb_plot_erreur ;
eda_global int nb_items; /* utilise pour decompter les objets traces */ eda_global int nb_items; /* utilise pour decompter les objets traces */
eda_global int g_PlotLine_Width; /* Largeur du trait en mode filaire (utilise en serigraphie, eda_global int g_PlotLine_Width; /* Largeur du trait en mode filaire (utilise en serigraphie,
pour traces en mode sketch et filaire) */ pour traces en mode sketch et filaire) */
eda_global int format_plot; /* numero de code du format de sortie */
eda_global int g_PlotFormat /* id for plot format (see enum PlotFormat in plot_common.h) */
#ifdef MAIN
= PLOT_FORMAT_GERBER
#endif
;
eda_global int g_PlotOrient; /* numero de code de l'orientation du trace ( voir eda_global int g_PlotOrient; /* numero de code de l'orientation du trace ( voir
defines precedents): defines precedents):
0 = normal 0 = normal
...@@ -160,7 +162,7 @@ void PlotMirePcb( MIREPCB* PtMire, int format_plot,int masque_layer ); ...@@ -160,7 +162,7 @@ void PlotMirePcb( MIREPCB* PtMire, int format_plot,int masque_layer );
void Plot_1_EdgeModule(int format_plot, EDGE_MODULE * PtEdge); void Plot_1_EdgeModule(int format_plot, EDGE_MODULE * PtEdge);
/* PLOTGERB.CPP */ /* PLOTGERB.CPP */
void PlotGERBERLine(wxPoint start, wxPoint end, int hauteur); void PlotGERBERLine(wxPoint start, wxPoint end, int width);
void PlotCircle_GERBER( wxPoint centre, int rayon, int width); void PlotCircle_GERBER( wxPoint centre, int rayon, int width);
void PlotPolygon_GERBER(int nb_segm, int * coord, bool fill); void PlotPolygon_GERBER(int nb_segm, int * coord, bool fill);
void trace_1_contour_GERBER(wxPoint pos, wxSize size, wxSize delta, void trace_1_contour_GERBER(wxPoint pos, wxSize size, wxSize delta,
......
...@@ -330,7 +330,7 @@ static void PlotTextModule( TEXTE_MODULE* pt_texte ) ...@@ -330,7 +330,7 @@ static void PlotTextModule( TEXTE_MODULE* pt_texte )
if( no_miroir == 0 ) if( no_miroir == 0 )
size.x = -size.x; // Text is mirrored size.x = -size.x; // Text is mirrored
Plot_1_texte( format_plot, pt_texte->m_Text, Plot_1_texte( g_PlotFormat, pt_texte->m_Text,
orient, thickness, orient, thickness,
pos.x, pos.y, size.x, size.y ); pos.x, pos.y, size.x, size.y );
} }
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
/* Variables locales : */ /* Variables locales : */
static int s_Last_D_code; static int s_Last_D_code;
static float Gerb_scale_plot; // Coeff de conversion d'unites des traces static float Gerb_scale_plot; // Coeff de conversion d'unites des traces
static int scale_spot_mini; // Ouverture mini (pour remplissages)
static D_CODE* s_DCodeList; // Pointeur sur la zone de stockage des D_CODES static D_CODE* s_DCodeList; // Pointeur sur la zone de stockage des D_CODES
wxString GerberFullFileName; wxString GerberFullFileName;
static double scale_x, scale_y; // echelles de convertion en X et Y (compte tenu static double scale_x, scale_y; // echelles de convertion en X et Y (compte tenu
...@@ -58,7 +57,6 @@ void WinEDA_BasePcbFrame::Genere_GERBER( const wxString& FullFileName, int Layer ...@@ -58,7 +57,6 @@ void WinEDA_BasePcbFrame::Genere_GERBER( const wxString& FullFileName, int Layer
/* Calcul des echelles de conversion */ /* Calcul des echelles de conversion */
Gerb_scale_plot = 1.0; /* pour unites gerber en 0,1 Mils, format 3.4 */ Gerb_scale_plot = 1.0; /* pour unites gerber en 0,1 Mils, format 3.4 */
scale_spot_mini = (int) (10 * spot_mini * Gerb_scale_plot);
scale_x = Scale_X * Gerb_scale_plot; scale_x = Scale_X * Gerb_scale_plot;
scale_y = Scale_Y * Gerb_scale_plot; scale_y = Scale_Y * Gerb_scale_plot;
g_PlotOffset.x = 0; g_PlotOffset.x = 0;
...@@ -615,10 +613,11 @@ void trace_1_pad_TRAPEZE_GERBER( wxPoint pos, wxSize size, wxSize delta, ...@@ -615,10 +613,11 @@ void trace_1_pad_TRAPEZE_GERBER( wxPoint pos, wxSize size, wxSize delta,
if( modetrace != FILLED ) if( modetrace != FILLED )
{ {
PlotGERBERLine( polygone[0], polygone[1], scale_spot_mini ); int plotLine_width = (int) (10 * g_PlotLine_Width * Gerb_scale_plot);
PlotGERBERLine( polygone[1], polygone[2], scale_spot_mini ); PlotGERBERLine( polygone[0], polygone[1], plotLine_width );
PlotGERBERLine( polygone[2], polygone[3], scale_spot_mini ); PlotGERBERLine( polygone[1], polygone[2], plotLine_width );
PlotGERBERLine( polygone[3], polygone[0], scale_spot_mini ); PlotGERBERLine( polygone[2], polygone[3], plotLine_width );
PlotGERBERLine( polygone[3], polygone[0], plotLine_width );
} }
else else
PlotPolygon_GERBER( 4, coord, TRUE ); PlotPolygon_GERBER( 4, coord, TRUE );
...@@ -626,7 +625,7 @@ void trace_1_pad_TRAPEZE_GERBER( wxPoint pos, wxSize size, wxSize delta, ...@@ -626,7 +625,7 @@ void trace_1_pad_TRAPEZE_GERBER( wxPoint pos, wxSize size, wxSize delta,
/**********************************************************/ /**********************************************************/
void PlotGERBERLine( wxPoint start, wxPoint end, int large ) void PlotGERBERLine( wxPoint start, wxPoint end, int width )
/**********************************************************/ /**********************************************************/
/* Trace 1 segment de piste : /* Trace 1 segment de piste :
...@@ -638,7 +637,7 @@ void PlotGERBERLine( wxPoint start, wxPoint end, int large ) ...@@ -638,7 +637,7 @@ void PlotGERBERLine( wxPoint start, wxPoint end, int large )
UserToDeviceCoordinate( start ); UserToDeviceCoordinate( start );
UserToDeviceCoordinate( end ); UserToDeviceCoordinate( end );
dcode_ptr = get_D_code( large, large, GERB_LINE, 0 ); dcode_ptr = get_D_code( width, width, GERB_LINE, 0 );
if( dcode_ptr->m_NumDcode != s_Last_D_code ) if( dcode_ptr->m_NumDcode != s_Last_D_code )
{ {
sprintf( cbuf, "G54D%d*\n", dcode_ptr->m_NumDcode ); sprintf( cbuf, "G54D%d*\n", dcode_ptr->m_NumDcode );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment