fixed postscript plot broken. Better default values for pcbnew plot dialog

This commit is contained in:
charras 2009-08-28 18:03:22 +00:00
parent 3806557ff9
commit 0a58e6303f
5 changed files with 1110 additions and 1029 deletions

View File

@ -93,19 +93,24 @@ void PS_Plotter::set_color( int color )
(double) ColorRefs[color].m_Blue / 255 );
}
}
else /* B/W Mode - Use BLACK for all items */
else
/* B/W Mode - Use BLACK or WHITE for all items
* note the 2 colors are used in B&W mode, mainly by Pcbnew to draw holes in white on pads in black
*/
{
/* Why invert in this mode. Does anyway WHITE! */
int bwcolor = WHITE;
if( color != WHITE )
bwcolor = BLACK;
if (negative_mode)
fprintf( output_file, "%.3g %.3g %.3g setrgbcolor\n",
(double) 1.0-ColorRefs[BLACK].m_Red / 255,
(double) 1.0-ColorRefs[BLACK].m_Green / 255,
(double) 1.0-ColorRefs[BLACK].m_Blue / 255 );
(double) 1.0-ColorRefs[bwcolor].m_Red / 255,
(double) 1.0-ColorRefs[bwcolor].m_Green / 255,
(double) 1.0-ColorRefs[bwcolor].m_Blue / 255 );
else
fprintf( output_file, "%.3g %.3g %.3g setrgbcolor\n",
(double) ColorRefs[BLACK].m_Red / 255,
(double) ColorRefs[BLACK].m_Green / 255,
(double) ColorRefs[BLACK].m_Blue / 255 );
(double) ColorRefs[bwcolor].m_Red / 255,
(double) ColorRefs[bwcolor].m_Green / 255,
(double) ColorRefs[bwcolor].m_Blue / 255 );
}
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -29,6 +29,19 @@
#define MIN_SCALE 0.01
#define MAX_SCALE 100.0
// PCB_Plot_Options constructor: set the default values for plot options:
PCB_Plot_Options::PCB_Plot_Options()
{
Sel_Texte_Reference = true;
Sel_Texte_Valeur = true;
Sel_Texte_Divers = true;
DrillShapeOpt = PCB_Plot_Options::SMALL_DRILL_SHAPE;
Trace_Mode = FILLED;
Scale = 1.0;
ScaleAdjX = 1.0;
ScaleAdjY = 1.0;
PlotScaleOpt = 1;
}
static long s_SelectedLayers = CUIVRE_LAYER | CMP_LAYER |
SILKSCREEN_LAYER_CMP | SILKSCREEN_LAYER_CU;

View File

@ -7,11 +7,11 @@
/* Shared Config keys for plot and print */
#define OPTKEY_PLOT_LINEWIDTH_VALUE wxT( "PlotLineWidth" )
#define OPTKEY_LAYERBASE wxT( "PlotLayer_%d" )
#define OPTKEY_PRINT_X_FINESCALE_ADJ wxT( "PrintXFineScaleAdj" )
#define OPTKEY_PRINT_Y_FINESCALE_ADJ wxT( "PrintYFineScaleAdj" )
#define OPTKEY_PRINT_SCALE wxT( "PrintScale" )
#define OPTKEY_PLOT_LINEWIDTH_VALUE wxT( "PlotLineWidth" )
#define OPTKEY_LAYERBASE wxT( "PlotLayer_%d" )
#define OPTKEY_PRINT_X_FINESCALE_ADJ wxT( "PrintXFineScaleAdj" )
#define OPTKEY_PRINT_Y_FINESCALE_ADJ wxT( "PrintYFineScaleAdj" )
#define OPTKEY_PRINT_SCALE wxT( "PrintScale" )
/* Constantes de conversion d'unites */
/* coeff de conversion dim en 0.1 mil -> dim en unite PS: (unite PS = pouce) */
@ -20,42 +20,47 @@
#define SCALE_HPGL 0.102041
/* Plot Options : */
struct PCB_Plot_Options {
bool Exclude_Edges_Pcb;
int PlotLine_Width;
bool Plot_Frame_Ref; // True to plot/print frame references
bool DrawViaOnMaskLayer; // True if vias are drawn on Mask layer (ie protected by mask)
class PCB_Plot_Options
{
public:
bool Exclude_Edges_Pcb;
int PlotLine_Width;
bool Plot_Frame_Ref; // True to plot/print frame references
bool DrawViaOnMaskLayer; // True if vias are drawn on Mask layer (ie protected by mask)
GRTraceMode Trace_Mode;
bool Plot_Set_MIROIR;
int HPGL_Pen_Num;
int HPGL_Pen_Speed;
int HPGL_Pen_Diam;
int HPGL_Pen_Recouvrement;
int PlotPSColorOpt; // True for color Postscript output
bool Plot_PS_Negative; // True to create a negative board ps plot
bool Plot_Set_MIROIR;
int HPGL_Pen_Num;
int HPGL_Pen_Speed;
int HPGL_Pen_Diam;
int HPGL_Pen_Recouvrement;
int PlotPSColorOpt; // True for color Postscript output
bool Plot_PS_Negative; // True to create a negative board ps plot
/* Autorisation de trace des divers items en serigraphie */
bool Sel_Texte_Reference;
bool Sel_Texte_Valeur;
bool Sel_Texte_Divers;
bool Sel_Texte_Invisible;
bool PlotPadsOnSilkLayer;
bool Plot_Pads_All_Layers; /* Plot pads meme n'appartenant pas a la
couche ( utile pour serigraphie) */
bool Sel_Texte_Reference;
bool Sel_Texte_Valeur;
bool Sel_Texte_Divers;
bool Sel_Texte_Invisible;
bool PlotPadsOnSilkLayer;
bool Plot_Pads_All_Layers; /* Plot pads meme n'appartenant pas a la
* couche ( utile pour serigraphie) */
/* id for plot format (see enum PlotFormat in plot_common.h) */
int PlotFormat;
int PlotOrient;
int PlotScaleOpt;
enum DrillShapeOptT {
NO_DRILL_SHAPE = 0,
SMALL_DRILL_SHAPE = 1,
FULL_DRILL_SHAPE = 2
NO_DRILL_SHAPE = 0,
SMALL_DRILL_SHAPE = 1,
FULL_DRILL_SHAPE = 2
};
DrillShapeOptT DrillShapeOpt;
double Scale;
double ScaleAdjX;
double ScaleAdjY;
double Scale;
double ScaleAdjX;
double ScaleAdjY;
public:
PCB_Plot_Options();
};
extern PCB_Plot_Options g_pcb_plot_options;
@ -65,29 +70,29 @@ extern PCB_Plot_Options g_pcb_plot_options;
/*************************************/
/* PLOT_RTN.CC */
void PlotTextePcb(Plotter *plotter, TEXTE_PCB* pt_texte, int masque_layer,
GRTraceMode trace_mode);
void PlotTextePcb( Plotter* plotter, TEXTE_PCB* pt_texte, int masque_layer,
GRTraceMode trace_mode );
/* Trace 1 Texte type PCB , c.a.d autre que les textes sur modules,
* prepare les parametres de trace de texte */
* prepare les parametres de trace de texte */
void PlotDrawSegment(Plotter *plotter, DRAWSEGMENT* PtSegm, int masque_layer,
GRTraceMode trace_mode);
void PlotDrawSegment( Plotter* plotter, DRAWSEGMENT* PtSegm, int masque_layer,
GRTraceMode trace_mode );
void PlotCotation(Plotter *plotter, COTATION* Cotation, int masque_layer ,
GRTraceMode trace_mode);
void PlotCotation( Plotter* plotter, COTATION* Cotation, int masque_layer,
GRTraceMode trace_mode );
void PlotMirePcb(Plotter *plotter, MIREPCB* PtMire, int masque_layer ,
GRTraceMode trace_mode);
void PlotMirePcb( Plotter* plotter, MIREPCB* PtMire, int masque_layer,
GRTraceMode trace_mode );
void Plot_1_EdgeModule(Plotter *plotter, EDGE_MODULE* PtEdge ,
GRTraceMode trace_mode);
void Plot_1_EdgeModule( Plotter* plotter, EDGE_MODULE* PtEdge,
GRTraceMode trace_mode );
void PlotFilledAreas(Plotter *plotter, ZONE_CONTAINER* aZone,
GRTraceMode trace_mode);
void PlotFilledAreas( Plotter* plotter, ZONE_CONTAINER* aZone,
GRTraceMode trace_mode );
/* PLOTGERB.CPP */
void SelectD_CODE_For_LineDraw(Plotter *plotter, int aSize );
void SelectD_CODE_For_LineDraw( Plotter* plotter, int aSize );
#endif /* #define PCBPLOT_H */