184 lines
6.0 KiB
C
184 lines
6.0 KiB
C
/************/
|
|
/* pcbplot.h*/
|
|
/************/
|
|
|
|
#ifndef PCBPLOT_H
|
|
#define PCBPLOT_H
|
|
|
|
|
|
#ifndef eda_global
|
|
#define eda_global extern
|
|
#endif
|
|
|
|
/* 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" )
|
|
|
|
/* Constantes de conversion d'unites */
|
|
/* coeff de conversion dim en 0.1 mil -> dim en unite PS: (unite PS = pouce) */
|
|
#define SCALE_PS .0001
|
|
/* coeff de conversion dim en 0,1 mil -> dim en unite HPGL: */
|
|
#define SCALE_HPGL 0.102041
|
|
|
|
/* Options : */
|
|
eda_global bool g_Exclude_Edges_Pcb // True to exclude contents of Edges Pcb layer
|
|
#ifdef MAIN
|
|
= FALSE
|
|
#endif
|
|
;
|
|
eda_global bool g_Plot_Frame_Ref; // True to plot/print frame references
|
|
eda_global bool g_DrawViaOnMaskLayer; // True if vias are drawn on Mask layer (ie protected by mask)
|
|
eda_global int g_Plot_Mode // = FILAIRE, FILL or SKETCH
|
|
#ifdef MAIN
|
|
= FILLED
|
|
#endif
|
|
;
|
|
eda_global bool Plot_Set_MIROIR ;
|
|
eda_global bool Sel_Rotate_Window;
|
|
eda_global bool HPGL_Org_Centre; // TRUE si en HPGL, l'origine le centre de la feuille
|
|
eda_global int g_PlotPSColorOpt; // True for color Postscript output
|
|
eda_global bool g_Plot_PS_Negative; // True to create a negative board ps plot
|
|
|
|
|
|
/* Autorisation de trace des divers items en serigraphie */
|
|
eda_global bool Sel_Texte_Reference
|
|
#ifdef MAIN
|
|
= TRUE
|
|
#endif
|
|
;
|
|
eda_global bool Sel_Texte_Valeur
|
|
#ifdef MAIN
|
|
= TRUE
|
|
#endif
|
|
;
|
|
eda_global bool Sel_Texte_Divers
|
|
#ifdef MAIN
|
|
= TRUE
|
|
#endif
|
|
;
|
|
eda_global bool Sel_Texte_Invisible;
|
|
eda_global bool PlotPadsOnSilkLayer /* Plot pads sur couche serigraphie */
|
|
#ifdef MAIN
|
|
= TRUE
|
|
#endif
|
|
;
|
|
eda_global bool Plot_Pads_All_Layers; /* Plot pads meme n'appartenant pas a la
|
|
couche ( utile pour serigraphie) */
|
|
|
|
/* Variables utiles */
|
|
|
|
eda_global FILE * dest;
|
|
|
|
/* Gestion des plumes en plot format HPGL */
|
|
eda_global int g_HPGL_Pen_Num /* num de plume a charger */
|
|
#ifdef MAIN
|
|
= 1
|
|
#endif
|
|
;
|
|
eda_global int g_HPGL_Pen_Speed /* vitesse en cm/s */
|
|
#ifdef MAIN
|
|
= 40
|
|
#endif
|
|
;
|
|
eda_global int g_HPGL_Pen_Diam; /* diametre en mils */
|
|
eda_global int g_HPGL_Pen_Recouvrement; /* recouvrement en mils ( pour remplissages */
|
|
|
|
/* Gestion des cadrages et echelles de trace */
|
|
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 int g_PlotLine_Width; /* Largeur du trait en mode filaire (utilise en serigraphie,
|
|
pour traces en mode sketch et filaire) */
|
|
|
|
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
|
|
defines precedents):
|
|
0 = normal
|
|
PLOT_MIROIR = MIROIR
|
|
*/
|
|
eda_global int g_PlotScaleOpt // 0 = automatique, >=1 echelle specifiee
|
|
#ifdef MAIN
|
|
= 1
|
|
#endif
|
|
;
|
|
|
|
eda_global int g_DrillShapeOpt
|
|
#ifdef MAIN
|
|
= 1 // 0 = no drill mark, 1 = small mark, 2 = real drill
|
|
#endif
|
|
;
|
|
|
|
|
|
/*************************************/
|
|
/* Constantes utiles en trace GERBER */
|
|
/*************************************/
|
|
|
|
/* codes de type de forme d'outils */
|
|
#define GERB_CIRCLE 1
|
|
#define GERB_RECT 2
|
|
#define GERB_LINE 3
|
|
#define GERB_OVALE 4
|
|
#define GERB_DONUT 5
|
|
|
|
/* PLOT_RTN.CC */
|
|
void PlotTextePcb( TEXTE_PCB * pt_texte,int format_plot,int masque_layer);
|
|
/* Trace 1 Texte type PCB , c.a.d autre que les textes sur modules,
|
|
prepare les parametres de trace de texte */
|
|
void PlotArc(int format_plot, wxPoint centre, int start_angle,int end_angle,
|
|
int rayon,int width);
|
|
void PlotCircle(int format_plot,int width, wxPoint centre, int rayon);
|
|
void PlotFilledPolygon(int format_plot, int nbpoints, int * coord);
|
|
void PlotPolygon(int format_plot, int nbpoints, int * coord, int width);
|
|
|
|
void PlotDrawSegment( DRAWSEGMENT* PtSegm, int format_plot,int masque_layer );
|
|
|
|
void PlotCotation( COTATION * Cotation, int format_plot,int masque_layer );
|
|
|
|
void PlotMirePcb( MIREPCB* PtMire, int format_plot,int masque_layer );
|
|
|
|
void Plot_1_EdgeModule(int format_plot, EDGE_MODULE * PtEdge);
|
|
|
|
void PlotFilledAreas( ZONE_CONTAINER * aZone, int aFormat);
|
|
|
|
/* PLOTGERB.CPP */
|
|
void SelectD_CODE_For_LineDraw( int aSize );
|
|
void trace_1_contour_GERBER(wxPoint pos, wxSize size, wxSize delta,
|
|
int penwidth, int orient);
|
|
/* Trace 1 contour rectangulaire ou trapezoidal d'orientation quelconque
|
|
donne par son centre, ses dimensions,
|
|
ses variations, l'epaisseur du trait et son orientation orient */
|
|
|
|
/* PLOTHPGL.CC */
|
|
void trace_1_segment_HPGL(int pos_X0,int pos_Y0,int pos_X1,int pos_Y1,
|
|
int hauteur);
|
|
|
|
void trace_1_pad_TRAPEZE_HPGL(wxPoint padpos, wxSize size,wxSize delta,
|
|
int orient,int modetrace);
|
|
|
|
void trace_1_pastille_RONDE_HPGL(wxPoint padpos, int diametre,int modetrace) ;
|
|
void trace_1_pastille_OVALE_HPGL(wxPoint padpos, wxSize size, int orient, int modetrace);
|
|
void PlotRectangularPad_HPGL(wxPoint padpos, wxSize padsize, int orient,int modetrace);
|
|
|
|
/**************/
|
|
/* PLOTPS.CPP */
|
|
/**************/
|
|
void trace_1_pastille_OVALE_POST(wxPoint centre, wxSize size, int orient, int modetrace);
|
|
void trace_1_pastille_RONDE_POST(wxPoint centre, int diametre, int modetrace);
|
|
void trace_1_pad_rectangulaire_POST(wxPoint centre, wxSize size,int orient,
|
|
int modetrace);
|
|
void trace_1_contour_POST(wxPoint centre, wxSize size, wxSize delta,
|
|
int dim_trait, int orient);
|
|
void trace_1_pad_TRAPEZE_POST(wxPoint centre, wxSize size, wxSize delta,
|
|
int orient,int modetrace);
|
|
|
|
|
|
#endif /* #define PCBPLOT_H */
|
|
|