00001
00037 #ifndef __GLOBALS_INCLUDED__
00038 #define __GLOBALS_INCLUDED__
00039
00040
00044 typedef enum packages
00045 {
00046 NO_PACKAGE,
00047 BGA,
00048 CAPA,
00049 CAPAE,
00050 CAPC,
00051 CAPM,
00052 CAPMP,
00053 CAPPR,
00054 CON_DIL,
00055 CON_DIP,
00056 CON_HDR,
00057 CON_SIL,
00058 DIL,
00059 DIOM,
00060 DIOMELF,
00061 DIP,
00062 DIPS,
00063 DO,
00064 INDC,
00065 INDM,
00066 INDP,
00067 PGA,
00068 PLCC,
00069 QFN,
00070 QFP,
00071 RES,
00072 RESC,
00073 RESM,
00074 RESMELF,
00075 SIL,
00076 SIP,
00077 SO,
00078 SOT,
00079 TO,
00080 TO92,
00081 TO220,
00082 TO220S,
00083 TO220SW,
00084 TO220W
00085 } package_t;
00086
00090 typedef enum units
00091 {
00092 NO_UNITS,
00093 MIL,
00094 MIL_100,
00095 MM
00096 } units_t;
00097
00101 typedef enum status
00102 {
00103 NO_STATUS,
00104 EXPERIMENTAL,
00105 PRIVATE,
00106 PUBLIC,
00107 STABLE
00108 } status_t;
00109
00114 char *row_letters[] =
00115 {
00116 "A", "B", "C", "D", "E", "F", "G", "H", "J", "K",
00117 "L", "M", "N", "P", "R", "T", "U", "V", "W", "Y",
00118 "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AJ", "AK",
00119 "AL", "AM", "AN", "AP", "AR", "AT", "AU", "AV", "AW", "AY",
00120 "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BJ", "BK",
00121 "BL", "BM", "BN", "BP", "BR", "BT", "BU", "BV", "BW", "BY",
00122 "CA", "CB", "CC", "CD", "CE", "CF", "CG", "CH", "CJ", "CK",
00123 "CL", "CM", "CN", "CP", "CR", "CT", "CU", "CV", "CW", "CY"
00124 };
00125
00141 typedef enum locations
00142 {
00143 NO_LOCATION,
00144 UPPER_LEFT,
00145 MIDDLE_LEFT,
00146 LOWER_LEFT,
00147 UPPER_MIDDLE,
00148 MIDDLE_MIDDLE,
00149 LOWER_MIDDLE,
00150 UPPER_RIGHT,
00151 MIDDLE_RIGHT,
00152 LOWER_RIGHT,
00153 LEFT_TOP,
00154 RIGHT_TOP,
00155 LEFT_BOTTOM,
00156 RIGHT_BOTTOM
00157 } location_t;
00158
00162 typedef enum pad_shapes
00163 {
00164 NO_SHAPE,
00165 ROUND,
00166 SQUARE,
00167 OCTAGONAL,
00168 ROUND_ELONGATED
00169 } pad_shapes_t;
00170
00171
00172 #define THIN_DRAW 1
00174 #define MIL_TO_MM 0.025400000
00175 #define MM_TO_MIL 39.37007874
00178 gboolean debug = FALSE;
00179
00180 gboolean silent = FALSE;
00182 gboolean verbose = FALSE;
00185 FILE *fp;
00187 gchar *fpw_pathname = NULL;
00189 gchar *fpw_suffix = "fpw";
00191 gchar *footprint_filename = NULL;
00193 gchar *fp_suffix = "fp";
00195 gchar *footprint_name = NULL;
00197 gchar *footprint_type = NULL;
00199 package_t package_type = NO_PACKAGE;
00201 gchar *footprint_units = NULL;
00203 units_t units_type = NO_UNITS;
00206 gdouble multiplier;
00208 gchar *footprint_refdes = NULL;
00210 gchar *footprint_value = NULL;
00213 gdouble package_body_length;
00215 gdouble package_body_width;
00217 gdouble package_body_height;
00219 gboolean package_is_radial = FALSE;
00222 gchar *footprint_author = NULL;
00224 gchar *footprint_dist_license = "GPL";
00226 gchar *footprint_use_license = "unlimited";
00228 gchar *footprint_status = "Experimental";
00230 status_t status_type = NO_STATUS;
00233 gboolean license_in_footprint = TRUE;
00235 gboolean attributes_in_footprint;
00239 gint number_of_pins;
00241 gint number_of_columns;
00243 gint number_of_rows;
00245 gchar *pin_1_position = NULL;
00247 location_t pin1_location;
00249 gdouble pitch_x;
00251 gdouble pitch_y;
00253 gint count_x;
00255 gint count_y;
00257 gchar *pin_pad_exceptions_string = "";
00259 gint number_of_exceptions = 0;
00261 gdouble pin_drill_diameter;
00263 gdouble pad_diameter;
00265 gdouble pad_length;
00267 gdouble pad_width;
00269 gchar *pad_shape;
00271 pad_shapes_t pad_shapes_type = NO_SHAPE;
00274 gint pin_pad_type;
00276 gboolean pin1_square;
00278 gdouble pad_solder_mask_clearance;
00280 gdouble pad_clearance;
00283 gboolean silkscreen_package_outline;
00285 gboolean silkscreen_indicate_1;
00287 gdouble silkscreen_length;
00289 gdouble silkscreen_width;
00291 gdouble silkscreen_line_width;
00294 gboolean courtyard;
00296 gdouble courtyard_length;
00298 gdouble courtyard_width;
00300 gdouble courtyard_line_width;
00302 gdouble courtyard_clearance_with_package;
00305 gboolean thermal;
00307 gboolean thermal_nopaste;
00309 gdouble thermal_length;
00311 gdouble thermal_width;
00313 gdouble thermal_solder_mask_clearance;
00315 gdouble thermal_clearance;
00318 gboolean fiducial;
00320 gdouble fiducial_pad_diameter;
00322 gdouble fiducial_pad_clearance;
00324 gdouble fiducial_pad_solder_mask_clearance;
00327 gboolean c1_state = TRUE;
00329 gdouble c1;
00331 gboolean g1_state = FALSE;
00333 gdouble g1;
00335 gboolean z1_state = FALSE;
00337 gdouble z1;
00340 gboolean c2_state = TRUE;
00342 gdouble c2;
00344 gboolean g2_state = FALSE;
00346 gdouble g2;
00348 gboolean z2_state = FALSE;
00350 gdouble z2;
00353 gchar *dummy = NULL;
00356 #if GUI
00357 GtkWidget *widget;
00359 #endif
00360
00361
00362 #endif
00363
00364
00365