00001
00025 #include "register_functions.c"
00026 #include "con_sil.h"
00027
00028
00035 int
00036 con_sil_create_element ()
00037 {
00038 gdouble xmax;
00039 gdouble xmin;
00040 gdouble ymax;
00041 gdouble ymin;
00042 gdouble x_text;
00043 gdouble y_text;
00044 gint i;
00045 gint pin_number;
00046 gchar *pin_pad_name = g_strdup ("");
00047 FlagType pad_flag;
00048 ElementTypePtr element;
00049
00050 if (!element)
00051 {
00052 if (verbose)
00053 {
00054 g_log ("", G_LOG_LEVEL_WARNING,
00055 _("could not create a valid element pointer for a %s package."),
00056 footprint_type);
00057 }
00058 return (EXIT_FAILURE);
00059 }
00060
00061
00062 element->MarkX = 0;
00063 element->MarkY = 0;
00064
00065
00066
00067
00068
00069 if ((multiplier * ((-package_body_length / 2.0) - courtyard_clearance_with_package)) < xmin)
00070 {
00071 xmin = (multiplier * ((-package_body_length / 2.0) - courtyard_clearance_with_package));
00072 }
00073 if ((multiplier * ((package_body_length / 2.0) + courtyard_clearance_with_package)) > xmax)
00074 {
00075 xmax = (multiplier * ((package_body_length / 2.0) + courtyard_clearance_with_package));
00076 }
00077 if ((multiplier * ((-package_body_width / 2.0) - courtyard_clearance_with_package)) < ymin)
00078 {
00079 ymin = (multiplier * ((-package_body_width / 2.0) - courtyard_clearance_with_package));
00080 }
00081 if ((multiplier * ((package_body_width / 2.0) + courtyard_clearance_with_package)) > ymax)
00082 {
00083 ymax = (multiplier * ((package_body_width / 2.0) + courtyard_clearance_with_package));
00084 }
00085
00086 if (multiplier * (-courtyard_length / 2.0) < xmin)
00087 {
00088 xmin = multiplier * (-courtyard_length / 2.0);
00089 }
00090 if (multiplier * (courtyard_length / 2.0) > xmax)
00091 {
00092 xmax = multiplier * (courtyard_length / 2.0);
00093 }
00094 if (multiplier * (-courtyard_width / 2.0) < ymin)
00095 {
00096 ymin = multiplier * (-courtyard_width / 2.0);
00097 }
00098 if (multiplier * (courtyard_width / 2.0) > ymax)
00099 {
00100 ymax = multiplier * (courtyard_width / 2.0);
00101 }
00102
00103 element->Name[1].Scale = 100;
00104 element->Name[1].X = 0.0 ;
00105 element->Name[1].Y = (ymin - 10000.0);
00106 element->Name[1].TextString = footprint_name;
00107 element->Name[1].Element = element;
00108 element->Name[1].Direction = EAST;
00109 element->Name[1].ID = ID++;
00110
00111 element->Name[2].Scale = 100;
00112 element->Name[2].X = 0.0 ;
00113 element->Name[2].Y = (ymin - 10000.0);
00114 element->Name[2].TextString = footprint_refdes;
00115 element->Name[2].Element = element;
00116 element->Name[2].Direction = EAST;
00117 element->Name[2].ID = ID++;
00118
00119 element->Name[3].Scale = 100;
00120 element->Name[3].X = 0.0 ;
00121 element->Name[3].Y = (ymin - 10000.0);
00122 element->Name[3].TextString = footprint_value;
00123 element->Name[3].Element = element;
00124 element->Name[3].Direction = EAST;
00125 element->Name[3].ID = ID++;
00126
00127 for (i = 0; (i < number_of_rows); i++)
00128 {
00129 pin_number = 1 + i;
00130 if (pad_shapes_type == SQUARE)
00131 {
00132 pad_flag.f = SQUARE;
00133 }
00134 else if (pin1_square && (pin_number == 1))
00135 {
00136 pad_flag.f = SQUARE;
00137 }
00138 else
00139 {
00140 pad_flag.f = CLEAR;
00141 }
00142 create_new_pin
00143 (
00144 element,
00145 (int) (multiplier * (-pitch_x / 2.0)),
00146 (int) (multiplier * ((((-number_of_rows - 1) / 2.0) +1 + i) * pitch_y)),
00147 (int) (multiplier * pad_diameter),
00148 (int) (multiplier * 2 * pad_clearance),
00149 (int) (multiplier * (pad_diameter + (2 * pad_solder_mask_clearance))),
00150 (int) (multiplier * pin_drill_diameter),
00151 pin_pad_name,
00152 g_strdup_printf ("%d", pin_number),
00153 pad_flag
00154 );
00155 if (!strcmp (pad_shape, "rounded pad, elongated"))
00156 {
00157 pad_flag.f = ONSOLDER;
00158 create_new_pad
00159 (
00160 element,
00161 (int) (multiplier * (-pitch_x - pad_width + pad_length) / 2.0),
00162 (int) (multiplier * ((((-number_of_rows - 1) / 2.0) + 1 + i) * pitch_y)),
00163 (int) (multiplier * (-pitch_x + pad_width - pad_length) / 2.0),
00164 (int) (multiplier * ((((-number_of_rows - 1) / 2.0) + 1 + i) * pitch_y)),
00165 (int) (multiplier * pad_width),
00166 (int) (multiplier * 2 * pad_clearance),
00167 (int) (multiplier * (pad_width + (2 * pad_solder_mask_clearance))),
00168 "",
00169 g_strdup_printf ("%d", pin_number),
00170 pad_flag
00171 );
00172 }
00173 }
00174
00175 if (silkscreen_package_outline)
00176 {
00177 create_new_line
00178 (
00179 element,
00180 (int) (multiplier * (-package_body_length / 2.0)),
00181 (int) (multiplier * (-package_body_width / 2.0)),
00182 (int) (multiplier * (-package_body_length / 2.0)),
00183 (int) (multiplier * (package_body_width / 2.0)),
00184 (int) (multiplier * silkscreen_line_width)
00185 );
00186 create_new_line
00187 (
00188 element,
00189 (int) (multiplier * (package_body_length / 2.0)),
00190 (int) (multiplier * (-package_body_width / 2.0)),
00191 (int) (multiplier * (package_body_length / 2.0)),
00192 (int) (multiplier * (package_body_width / 2.0)),
00193 (int) (multiplier * silkscreen_line_width)
00194 );
00195 create_new_line
00196 (
00197 element,
00198 (int) (multiplier * (-package_body_length / 2.0)),
00199 (int) (multiplier * (-package_body_width / 2.0)),
00200 (int) (multiplier * (package_body_length / 2.0)),
00201 (int) (multiplier * (-package_body_width / 2.0)),
00202 (int) (multiplier * silkscreen_line_width)
00203 );
00204 create_new_line
00205 (
00206 element,
00207 (int) (multiplier * (package_body_length / 2.0)),
00208 (int) (multiplier * (package_body_width / 2.0)),
00209 (int) (multiplier * (-package_body_length / 2.0)),
00210 (int) (multiplier * (package_body_width / 2.0)),
00211 (int) (multiplier * silkscreen_line_width)
00212 );
00213 }
00214
00215 if (silkscreen_indicate_1)
00216 {
00217
00218 create_new_line
00219 (
00220 element,
00221 (int) (multiplier * (-package_body_length / 2.0)),
00222 (int) (multiplier * ((((-number_of_rows - 1) / 2.0) + 1.5) * pitch_y)),
00223 (int) (multiplier * (package_body_length / 2.0)),
00224 (int) (multiplier * ((((-number_of_rows - 1) / 2.0) + 1.5) * pitch_y)),
00225 (int) (multiplier * silkscreen_line_width)
00226 );
00227
00228 if (xmax > ((multiplier * package_body_length) / 2))
00229 {
00230 create_new_line
00231 (
00232 element,
00233 (int) (multiplier * (-package_body_length / 2.0)),
00234 (int) (multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)),
00235 (int) ((multiplier * (-package_body_length / 2.0)) - 2500),
00236 (int) ((multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)) - 1250),
00237 (int) (multiplier * silkscreen_line_width)
00238 );
00239 create_new_line
00240 (
00241 element,
00242 (int) (multiplier * (-package_body_length / 2.0)),
00243 (int) (multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)),
00244 (int) ((multiplier * (-package_body_length / 2.0)) - 2500),
00245 (int) ((multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)) + 1250),
00246 (int) (multiplier * silkscreen_line_width)
00247 );
00248 create_new_line
00249 (
00250 element,
00251 (int) ((multiplier * (-package_body_length / 2.0)) - 2500),
00252 (int) ((multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)) - 1250),
00253 (int) ((multiplier * (-package_body_length / 2.0)) - 2500),
00254 (int) ((multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)) + 1250),
00255 (int) (multiplier * silkscreen_line_width)
00256 );
00257 }
00258 }
00259
00260 if (courtyard)
00261 {
00262 create_new_line
00263 (
00264 element,
00265 (int) (xmin),
00266 (int) (ymin),
00267 (int) (xmin),
00268 (int) (ymax),
00269 (int) (multiplier * courtyard_line_width)
00270 );
00271 create_new_line
00272 (
00273 element,
00274 (int) (xmax),
00275 (int) (ymin),
00276 (int) (xmax),
00277 (int) (ymax),
00278 (int) (multiplier * courtyard_line_width)
00279 );
00280 create_new_line
00281 (
00282 element,
00283 (int) (xmin),
00284 (int) (ymin),
00285 (int) (xmax),
00286 (int) (ymin),
00287 (int) (multiplier * courtyard_line_width)
00288 );
00289 create_new_line
00290 (
00291 element,
00292 (int) (xmax),
00293 (int) (ymax),
00294 (int) (xmin),
00295 (int) (ymax),
00296 (int) (multiplier * courtyard_line_width)
00297 );
00298 }
00299
00300 if (attributes_in_footprint)
00301 {
00302 element = create_attributes_in_element (element);
00303 }
00304
00305 if (verbose)
00306 {
00307 g_log ("", G_LOG_LEVEL_INFO,
00308 _("created an element for a %s package: %s."),
00309 footprint_type,
00310 footprint_filename);
00311 }
00312 current_element = (ElementTypePtr) &element;
00313 return (EXIT_SUCCESS);
00314 }
00315
00316
00326 int
00327 con_sil_create_packages_list ()
00328 {
00329 g_list_free (packages_list);
00330 packages_list = g_list_append (packages_list, "CON_SIL-127P-2N");
00331 packages_list = g_list_append (packages_list, "CON_SIL-127P-3N");
00332 packages_list = g_list_append (packages_list, "CON_SIL-127P-4N");
00333 packages_list = g_list_append (packages_list, "CON_SIL-127P-5N");
00334 packages_list = g_list_append (packages_list, "CON_SIL-127P-6N");
00335 packages_list = g_list_append (packages_list, "CON_SIL-127P-7N");
00336 packages_list = g_list_append (packages_list, "CON_SIL-127P-8N");
00337 packages_list = g_list_append (packages_list, "CON_SIL-127P-9N");
00338 packages_list = g_list_append (packages_list, "CON_SIL-127P-10N");
00339 packages_list = g_list_append (packages_list, "CON_SIL-127P-12N");
00340 packages_list = g_list_append (packages_list, "CON_SIL-127P-20N");
00341 packages_list = g_list_append (packages_list, "CON_SIL-254P-24N");
00342 packages_list = g_list_append (packages_list, "CON_SIL-127P-31N");
00343 packages_list = g_list_append (packages_list, "CON_SIL-127P-36N");
00344 packages_list = g_list_append (packages_list, "CON_SIL-127P-40N");
00345 packages_list = g_list_append (packages_list, "CON_SIL-127P-50N");
00346 packages_list = g_list_append (packages_list, "CON_SIL-254P-2N");
00347 packages_list = g_list_append (packages_list, "CON_SIL-254P-3N");
00348 packages_list = g_list_append (packages_list, "CON_SIL-254P-4N");
00349 packages_list = g_list_append (packages_list, "CON_SIL-254P-5N");
00350 packages_list = g_list_append (packages_list, "CON_SIL-254P-6N");
00351 packages_list = g_list_append (packages_list, "CON_SIL-254P-7N");
00352 packages_list = g_list_append (packages_list, "CON_SIL-254P-8N");
00353 packages_list = g_list_append (packages_list, "CON_SIL-254P-9N");
00354 packages_list = g_list_append (packages_list, "CON_SIL-254P-10N");
00355 packages_list = g_list_append (packages_list, "CON_SIL-254P-12N");
00356 packages_list = g_list_append (packages_list, "CON_SIL-254P-20N");
00357 packages_list = g_list_append (packages_list, "CON_SIL-254P-24N");
00358 packages_list = g_list_append (packages_list, "CON_SIL-254P-31N");
00359 packages_list = g_list_append (packages_list, "CON_SIL-254P-36N");
00360 packages_list = g_list_append (packages_list, "CON_SIL-254P-40N");
00361 packages_list = g_list_append (packages_list, "CON_SIL-254P-50N");
00362 packages_list = g_list_append (packages_list, "CON_SIL-350P-2N");
00363 packages_list = g_list_append (packages_list, "CON_SIL-350P-3N");
00364 packages_list = g_list_append (packages_list, "CON_SIL-350P-4N");
00365 packages_list = g_list_append (packages_list, "CON_SIL-350P-5N");
00366 packages_list = g_list_append (packages_list, "CON_SIL-350P-6N");
00367 packages_list = g_list_append (packages_list, "CON_SIL-350P-7N");
00368 packages_list = g_list_append (packages_list, "CON_SIL-350P-8N");
00369 packages_list = g_list_append (packages_list, "CON_SIL-350P-10N");
00370 packages_list = g_list_append (packages_list, "CON_SIL-350P-12N");
00371 packages_list = g_list_append (packages_list, "CON_SIL-508P-2N");
00372 packages_list = g_list_append (packages_list, "CON_SIL-508P-3N");
00373 packages_list = g_list_append (packages_list, "CON_SIL-508P-4N");
00374 packages_list = g_list_append (packages_list, "CON_SIL-508P-5N");
00375 packages_list = g_list_append (packages_list, "CON_SIL-508P-6N");
00376 packages_list = g_list_append (packages_list, "CON_SIL-508P-7N");
00377 packages_list = g_list_append (packages_list, "CON_SIL-508P-8N");
00378 packages_list = g_list_append (packages_list, "CON_SIL-508P-9N");
00379 packages_list = g_list_append (packages_list, "CON_SIL-508P-10N");
00380 packages_list = g_list_append (packages_list, "CON_SIL-508P-12N");
00381 packages_list = g_list_append (packages_list, "CON_SIL-508P-24N");
00382 return (EXIT_SUCCESS);
00383 }
00384
00385
00418 int
00419 con_sil_drc ()
00420 {
00421 int result = EXIT_SUCCESS;
00422 if (verbose)
00423 {
00424 g_log ("", G_LOG_LEVEL_INFO,
00425 (_("[%s] DRC Check: checking package %s.")),
00426 footprint_type, footprint_name);
00427 }
00428
00429 if (number_of_rows < 1)
00430 {
00431 if (verbose)
00432 {
00433 g_log ("", G_LOG_LEVEL_WARNING,
00434 (_("[%s] DRC Error: number of rows < 1.")),
00435 footprint_type);
00436 }
00437 result = EXIT_FAILURE;
00438 }
00439
00440 if (number_of_columns != 1)
00441 {
00442 if (verbose)
00443 {
00444 g_log ("", G_LOG_LEVEL_WARNING,
00445 (_("[%s] DRC Error: number of columns is > 1.")),
00446 footprint_type);
00447 }
00448 number_of_columns = 1;
00449 result = EXIT_FAILURE;
00450 }
00451
00452 if (pitch_x != 0.0)
00453 {
00454 if (verbose)
00455 {
00456 g_log ("", G_LOG_LEVEL_WARNING,
00457 (_("[%s] DRC Error: pitch (X-direction) should be 0.")),
00458 footprint_type);
00459 }
00460 pitch_x = 0.0;
00461 result = EXIT_FAILURE;
00462 }
00463
00464 switch (pad_shapes_type)
00465 {
00466 case NO_SHAPE:
00467 {
00468 if (verbose)
00469 {
00470 g_log ("", G_LOG_LEVEL_WARNING,
00471 (_("[%s] DRC Error: NO_SHAPE specified for check for allowed pad shapes.")),
00472 footprint_type);
00473 }
00474 result = EXIT_FAILURE;
00475 break;
00476 }
00477 case ROUND:
00478 {
00479 break;
00480 }
00481 case SQUARE:
00482 {
00483 break;
00484 }
00485 case OCTAGONAL:
00486 {
00487 if (verbose)
00488 {
00489 g_log ("", G_LOG_LEVEL_WARNING,
00490 (_("[%s] DRC Error: octagonal pad shape specified for check for allowed pad shapes.")),
00491 footprint_type);
00492 }
00493 result = EXIT_FAILURE;
00494 break;
00495 }
00496 case ROUND_ELONGATED:
00497 {
00498 if (verbose)
00499 {
00500 g_log ("", G_LOG_LEVEL_WARNING,
00501 (_("[%s] DRC Error: round elongated pad shape specified for check for allowed pad shapes.")),
00502 footprint_type);
00503 }
00504 result = EXIT_FAILURE;
00505 break;
00506 }
00507 default:
00508 {
00509 if (verbose)
00510 {
00511 g_log ("", G_LOG_LEVEL_WARNING,
00512 (_("[%s] DRC Error: no valid pad shape type specified.")),
00513 footprint_type);
00514 }
00515 result = EXIT_FAILURE;
00516 break;
00517 }
00518 }
00519
00520 if (package_body_length <= 0.0)
00521 {
00522 if (verbose)
00523 {
00524 g_log ("", G_LOG_LEVEL_WARNING,
00525 (_("[%s] DRC Error: specified package body length is too small.")),
00526 footprint_type);
00527 }
00528 result = EXIT_FAILURE;
00529 }
00530 if (package_body_width <= 0.0)
00531 {
00532 if (verbose)
00533 {
00534 g_log ("", G_LOG_LEVEL_WARNING,
00535 (_("[%s] DRC Error: specified package body width is too small.")),
00536 footprint_type);
00537 }
00538 result = EXIT_FAILURE;
00539 }
00540 if (package_body_height <= 0.0)
00541 {
00542 if (verbose)
00543 {
00544 g_log ("", G_LOG_LEVEL_WARNING,
00545 (_("[%s] DRC Error: specified package body height is too small.")),
00546 footprint_type);
00547 }
00548 result = EXIT_FAILURE;
00549 }
00550
00551 if (courtyard_length <= 0.0)
00552 {
00553 if (verbose)
00554 {
00555 g_log ("", G_LOG_LEVEL_WARNING,
00556 (_("[%s] DRC Error: specified courtyard length is too small.")),
00557 footprint_type);
00558 }
00559 result = EXIT_FAILURE;
00560 }
00561 if (courtyard_width <= 0.0)
00562 {
00563 if (verbose)
00564 {
00565 g_log ("", G_LOG_LEVEL_WARNING,
00566 (_("[%s] DRC Error: specified courtyard width is too small.")),
00567 footprint_type);
00568 }
00569 result = EXIT_FAILURE;
00570 }
00571
00572 if (pitch_y - pad_diameter < pad_clearance)
00573 {
00574 if (verbose)
00575 {
00576 g_log ("", G_LOG_LEVEL_WARNING,
00577 (_("[%s] DRC Error: minimum clearance between copper (Y-direction) is too small.")),
00578 footprint_type);
00579 }
00580 result = EXIT_FAILURE;
00581 }
00582 if (pitch_y - pad_width < pad_clearance)
00583 {
00584 if (verbose)
00585 {
00586 g_log ("", G_LOG_LEVEL_WARNING,
00587 (_("[%s] DRC Error: minimum clearance between copper (Y-direction) is too small.")),
00588 footprint_type);
00589 }
00590 result = EXIT_FAILURE;
00591 }
00592
00593 if (fiducial)
00594 {
00595 if (verbose)
00596 {
00597 g_log ("", G_LOG_LEVEL_WARNING,
00598 (_("[%s] DRC Error: package should not have any fiducials.")),
00599 footprint_type);
00600 }
00601 result = EXIT_FAILURE;
00602 }
00603
00604
00605 if (package_body_length - courtyard_length < courtyard_clearance_with_package)
00606 {
00607 if (verbose)
00608 {
00609 g_log ("", G_LOG_LEVEL_WARNING,
00610 (_("[%s] DRC Error: clearance of the package length with regard to the courtyard dimensions is too small.")),
00611 footprint_type);
00612 }
00613 result = EXIT_FAILURE;
00614 }
00615
00616
00617 if (package_body_width - courtyard_width < courtyard_clearance_with_package)
00618 {
00619 if (verbose)
00620 {
00621 g_log ("", G_LOG_LEVEL_WARNING,
00622 (_("[%s] DRC Error: clearance of the package width with regard to the courtyard dimensions is too small.")),
00623 footprint_type);
00624 }
00625 result = EXIT_FAILURE;
00626 }
00632
00633 if (silkscreen_package_outline && (silkscreen_line_width == 0.0))
00634 {
00635 if (verbose)
00636 {
00637 g_log ("", G_LOG_LEVEL_WARNING,
00638 (_("[%s] DRC Error: silkscreen line width is too small.")),
00639 footprint_type);
00640 }
00641 result = EXIT_FAILURE;
00642 }
00643 switch (units_type)
00644 {
00645 case NO_UNITS:
00646 {
00647 if (verbose)
00648 {
00649 g_log ("", G_LOG_LEVEL_WARNING,
00650 (_("[%s] DRC Error: no units specified.")),
00651 footprint_type);
00652 }
00653 result = EXIT_FAILURE;
00654 break;
00655 }
00656 case MIL:
00657 if (silkscreen_package_outline && (silkscreen_line_width > 40.0))
00658 {
00659 if (verbose)
00660 {
00661 g_log ("", G_LOG_LEVEL_WARNING,
00662 (_("[%s] DRC Error: silkscreen line width too wide.")),
00663 footprint_type);
00664 }
00665 result = EXIT_FAILURE;
00666 break;
00667 }
00668 case MIL_100:
00669 if (silkscreen_package_outline && (silkscreen_line_width > 4000.0))
00670 {
00671 if (verbose)
00672 {
00673 g_log ("", G_LOG_LEVEL_WARNING,
00674 (_("[%s] DRC Error: silkscreen line width too wide.")),
00675 footprint_type);
00676 }
00677 result = EXIT_FAILURE;
00678 break;
00679 }
00680 case MM:
00681 if (silkscreen_package_outline && (silkscreen_line_width > 1.0))
00682 {
00683 if (verbose)
00684 {
00685 g_log ("", G_LOG_LEVEL_WARNING,
00686 (_("[%s] DRC Error: silkscreen line width too wide.")),
00687 footprint_type);
00688 }
00689 result = EXIT_FAILURE;
00690 break;
00691 }
00692 default:
00693 {
00694 if (verbose)
00695 {
00696 g_log ("", G_LOG_LEVEL_WARNING,
00697 (_("[%s] DRC Error: no valid units type specified.")),
00698 footprint_type);
00699 }
00700 result = EXIT_FAILURE;
00701 break;
00702 }
00703 }
00704
00705 if (verbose && (result == EXIT_SUCCESS))
00706 {
00707 g_log ("", G_LOG_LEVEL_INFO,
00708 (_("[%s] DRC Check: no errors while checking package %s.")),
00709 footprint_type, footprint_name);
00710 }
00711 return (result);
00712 }
00713
00714
00779 int
00780 con_sil_get_default_footprint_values ()
00781 {
00782 if (!strcmp (footprint_name, "?CON_SIL-127P-2N"))
00783 {
00784 footprint_units = g_strdup ("mil");
00785 package_body_length = 100;
00786 package_body_width = 100;
00787 package_body_height = 78;
00788 package_is_radial = FALSE;
00789 number_of_pins = 2;
00790 number_of_columns = 1;
00791 number_of_rows = number_of_pins;
00792 pitch_x = 0;
00793 pitch_y = 50;
00794 count_x = 0;
00795 count_y = 0;
00796 pad_shape = g_strdup ("circular pad");
00797 pin_drill_diameter = 28;
00798 pad_diameter = 60;
00799 thermal = FALSE;
00800 thermal_length = 0.0;
00801 thermal_width = 0.0;
00802 fiducial = FALSE;
00803 fiducial_pad_diameter = 0.00;
00804 fiducial_pad_solder_mask_clearance = 0.00;
00805 silkscreen_package_outline = TRUE;
00806 silkscreen_length = package_body_length;
00807 silkscreen_width = package_body_width;
00808 silkscreen_line_width = 10;
00809 courtyard = FALSE;
00810 courtyard_length = package_body_length;
00811 courtyard_width = package_body_width;
00812 courtyard_line_width = 1;
00813 g_free (footprint_name);
00814 footprint_name = g_strdup ("CON_SIL-127P-2N");
00815 return (EXIT_SUCCESS);
00816 }
00817 else if (!strcmp (footprint_name, "?CON_SIL-127P-3N"))
00818 {
00819 footprint_units = g_strdup ("mil");
00820 package_body_length = 100;
00821 package_body_width = 150;
00822 package_body_height = 78;
00823 package_is_radial = FALSE;
00824 number_of_pins = 3;
00825 number_of_columns = 1;
00826 number_of_rows = number_of_pins;
00827 pitch_x = 0;
00828 pitch_y = 50;
00829 count_x = 0;
00830 count_y = 0;
00831 pad_shape = g_strdup ("circular pad");
00832 pin_drill_diameter = 28;
00833 pad_diameter = 60;
00834 thermal = FALSE;
00835 thermal_length = 0.0;
00836 thermal_width = 0.0;
00837 fiducial = FALSE;
00838 fiducial_pad_diameter = 0.00;
00839 fiducial_pad_solder_mask_clearance = 0.00;
00840 silkscreen_package_outline = TRUE;
00841 silkscreen_length = package_body_length;
00842 silkscreen_width = package_body_width;
00843 silkscreen_line_width = 10;
00844 courtyard = FALSE;
00845 courtyard_length = package_body_length;
00846 courtyard_width = package_body_width;
00847 courtyard_line_width = 1;
00848 g_free (footprint_name);
00849 footprint_name = g_strdup ("CON_SIL-127P-3N");
00850 return (EXIT_SUCCESS);
00851 }
00852 if (!strcmp (footprint_name, "?CON_SIL-127P-4N"))
00853 {
00854 footprint_units = g_strdup ("mil");
00855 package_body_length = 100;
00856 package_body_width = 200;
00857 package_body_height = 78;
00858 package_is_radial = FALSE;
00859 number_of_pins = 4;
00860 number_of_columns = 1;
00861 number_of_rows = number_of_pins;
00862 pitch_x = 0;
00863 pitch_y = 50;
00864 count_x = 0;
00865 count_y = 0;
00866 pad_shape = g_strdup ("circular pad");
00867 pin_drill_diameter = 28;
00868 pad_diameter = 60;
00869 thermal = FALSE;
00870 thermal_length = 0.0;
00871 thermal_width = 0.0;
00872 fiducial = FALSE;
00873 fiducial_pad_diameter = 0.00;
00874 fiducial_pad_solder_mask_clearance = 0.00;
00875 silkscreen_package_outline = TRUE;
00876 silkscreen_length = package_body_length;
00877 silkscreen_width = package_body_width;
00878 silkscreen_line_width = 10;
00879 courtyard = FALSE;
00880 courtyard_length = package_body_length;
00881 courtyard_width = package_body_width;
00882 courtyard_line_width = 1;
00883 g_free (footprint_name);
00884 footprint_name = g_strdup ("CON_SIL-127P-4N");
00885 return (EXIT_SUCCESS);
00886 }
00887 if (!strcmp (footprint_name, "?CON_SIL-127P-5N"))
00888 {
00889 footprint_units = g_strdup ("mil");
00890 package_body_length = 100;
00891 package_body_width = 250;
00892 package_body_height = 78;
00893 package_is_radial = FALSE;
00894 number_of_pins = 5;
00895 number_of_columns = 1;
00896 number_of_rows = number_of_pins;
00897 pitch_x = 0;
00898 pitch_y = 50;
00899 count_x = 0;
00900 count_y = 0;
00901 pad_shape = g_strdup ("circular pad");
00902 pin_drill_diameter = 28;
00903 pad_diameter = 60;
00904 thermal = FALSE;
00905 thermal_length = 0.0;
00906 thermal_width = 0.0;
00907 fiducial = FALSE;
00908 fiducial_pad_diameter = 0.00;
00909 fiducial_pad_solder_mask_clearance = 0.00;
00910 silkscreen_package_outline = TRUE;
00911 silkscreen_length = package_body_length;
00912 silkscreen_width = package_body_width;
00913 silkscreen_line_width = 10;
00914 courtyard = FALSE;
00915 courtyard_length = package_body_length;
00916 courtyard_width = package_body_width;
00917 courtyard_line_width = 1;
00918 g_free (footprint_name);
00919 footprint_name = g_strdup ("CON_SIL-127P-5N");
00920 return (EXIT_SUCCESS);
00921 }
00922 if (!strcmp (footprint_name, "?CON_SIL-127P-6N"))
00923 {
00924 footprint_units = g_strdup ("mil");
00925 package_body_length = 100;
00926 package_body_width = 300;
00927 package_body_height = 78;
00928 package_is_radial = FALSE;
00929 number_of_pins = 6;
00930 number_of_columns = 1;
00931 number_of_rows = number_of_pins;
00932 pitch_x = 0;
00933 pitch_y = 50;
00934 count_x = 0;
00935 count_y = 0;
00936 pad_shape = g_strdup ("circular pad");
00937 pin_drill_diameter = 28;
00938 pad_diameter = 60;
00939 thermal = FALSE;
00940 thermal_length = 0.0;
00941 thermal_width = 0.0;
00942 fiducial = FALSE;
00943 fiducial_pad_diameter = 0.00;
00944 fiducial_pad_solder_mask_clearance = 0.00;
00945 silkscreen_package_outline = TRUE;
00946 silkscreen_length = package_body_length;
00947 silkscreen_width = package_body_width;
00948 silkscreen_line_width = 10;
00949 courtyard = FALSE;
00950 courtyard_length = package_body_length;
00951 courtyard_width = package_body_width;
00952 courtyard_line_width = 1;
00953 g_free (footprint_name);
00954 footprint_name = g_strdup ("CON_SIL-127P-6N");
00955 return (EXIT_SUCCESS);
00956 }
00957 if (!strcmp (footprint_name, "?CON_SIL-127P-7N"))
00958 {
00959 footprint_units = g_strdup ("mil");
00960 package_body_length = 100;
00961 package_body_width = 350;
00962 package_body_height = 78;
00963 package_is_radial = FALSE;
00964 number_of_pins = 7;
00965 number_of_columns = 1;
00966 number_of_rows = number_of_pins;
00967 pitch_x = 0;
00968 pitch_y = 50;
00969 count_x = 0;
00970 count_y = 0;
00971 pad_shape = g_strdup ("circular pad");
00972 pin_drill_diameter = 28;
00973 pad_diameter = 60;
00974 thermal = FALSE;
00975 thermal_length = 0.0;
00976 thermal_width = 0.0;
00977 fiducial = FALSE;
00978 fiducial_pad_diameter = 0.00;
00979 fiducial_pad_solder_mask_clearance = 0.00;
00980 silkscreen_package_outline = TRUE;
00981 silkscreen_length = package_body_length;
00982 silkscreen_width = package_body_width;
00983 silkscreen_line_width = 10;
00984 courtyard = FALSE;
00985 courtyard_length = package_body_length;
00986 courtyard_width = package_body_width;
00987 courtyard_line_width = 1;
00988 g_free (footprint_name);
00989 footprint_name = g_strdup ("CON_SIL-127P-7N");
00990 return (EXIT_SUCCESS);
00991 }
00992 if (!strcmp (footprint_name, "?CON_SIL-127P-8N"))
00993 {
00994 footprint_units = g_strdup ("mil");
00995 package_body_length = 100;
00996 package_body_width = 400;
00997 package_body_height = 78;
00998 package_is_radial = FALSE;
00999 number_of_pins = 8;
01000 number_of_columns = 1;
01001 number_of_rows = number_of_pins;
01002 pitch_x = 0;
01003 pitch_y = 50;
01004 count_x = 0;
01005 count_y = 0;
01006 pad_shape = g_strdup ("circular pad");
01007 pin_drill_diameter = 28;
01008 pad_diameter = 60;
01009 thermal = FALSE;
01010 thermal_length = 0.0;
01011 thermal_width = 0.0;
01012 fiducial = FALSE;
01013 fiducial_pad_diameter = 0.00;
01014 fiducial_pad_solder_mask_clearance = 0.00;
01015 silkscreen_package_outline = TRUE;
01016 silkscreen_length = package_body_length;
01017 silkscreen_width = package_body_width;
01018 silkscreen_line_width = 10;
01019 courtyard = FALSE;
01020 courtyard_length = package_body_length;
01021 courtyard_width = package_body_width;
01022 courtyard_line_width = 1;
01023 g_free (footprint_name);
01024 footprint_name = g_strdup ("CON_SIL-127P-8N");
01025 return (EXIT_SUCCESS);
01026 }
01027 if (!strcmp (footprint_name, "?CON_SIL-127P-9N"))
01028 {
01029 footprint_units = g_strdup ("mil");
01030 package_body_length = 100;
01031 package_body_width = 450;
01032 package_body_height = 78;
01033 package_is_radial = FALSE;
01034 number_of_pins = 9;
01035 number_of_columns = 1;
01036 number_of_rows = number_of_pins;
01037 pitch_x = 0;
01038 pitch_y = 50;
01039 count_x = 0;
01040 count_y = 0;
01041 pad_shape = g_strdup ("circular pad");
01042 pin_drill_diameter = 28;
01043 pad_diameter = 60;
01044 thermal = FALSE;
01045 thermal_length = 0.0;
01046 thermal_width = 0.0;
01047 fiducial = FALSE;
01048 fiducial_pad_diameter = 0.00;
01049 fiducial_pad_solder_mask_clearance = 0.00;
01050 silkscreen_package_outline = TRUE;
01051 silkscreen_length = package_body_length;
01052 silkscreen_width = package_body_width;
01053 silkscreen_line_width = 10;
01054 courtyard = FALSE;
01055 courtyard_length = package_body_length;
01056 courtyard_width = package_body_width;
01057 courtyard_line_width = 1;
01058 g_free (footprint_name);
01059 footprint_name = g_strdup ("CON_SIL-127P-9N");
01060 return (EXIT_SUCCESS);
01061 }
01062 if (!strcmp (footprint_name, "?CON_SIL-127P-10N"))
01063 {
01064 footprint_units = g_strdup ("mil");
01065 package_body_length = 100;
01066 package_body_width = 500;
01067 package_body_height = 78;
01068 package_is_radial = FALSE;
01069 number_of_pins = 10;
01070 number_of_columns = 1;
01071 number_of_rows = number_of_pins;
01072 pitch_x = 0;
01073 pitch_y = 50;
01074 count_x = 0;
01075 count_y = 0;
01076 pad_shape = g_strdup ("circular pad");
01077 pin_drill_diameter = 28;
01078 pad_diameter = 60;
01079 thermal = FALSE;
01080 thermal_length = 0.0;
01081 thermal_width = 0.0;
01082 fiducial = FALSE;
01083 fiducial_pad_diameter = 0.00;
01084 fiducial_pad_solder_mask_clearance = 0.00;
01085 silkscreen_package_outline = TRUE;
01086 silkscreen_length = package_body_length;
01087 silkscreen_width = package_body_width;
01088 silkscreen_line_width = 10;
01089 courtyard = FALSE;
01090 courtyard_length = package_body_length;
01091 courtyard_width = package_body_width;
01092 courtyard_line_width = 1;
01093 g_free (footprint_name);
01094 footprint_name = g_strdup ("CON_SIL-127P-10N");
01095 return (EXIT_SUCCESS);
01096 }
01097 if (!strcmp (footprint_name, "?CON_SIL-127P-12N"))
01098 {
01099 footprint_units = g_strdup ("mil");
01100 package_body_length = 100;
01101 package_body_width = 600;
01102 package_body_height = 78;
01103 package_is_radial = FALSE;
01104 number_of_pins = 12;
01105 number_of_columns = 1;
01106 number_of_rows = number_of_pins;
01107 pitch_x = 0;
01108 pitch_y = 50;
01109 count_x = 0;
01110 count_y = 0;
01111 pad_shape = g_strdup ("circular pad");
01112 pin_drill_diameter = 28;
01113 pad_diameter = 60;
01114 thermal = FALSE;
01115 thermal_length = 0.0;
01116 thermal_width = 0.0;
01117 fiducial = FALSE;
01118 fiducial_pad_diameter = 0.00;
01119 fiducial_pad_solder_mask_clearance = 0.00;
01120 silkscreen_package_outline = TRUE;
01121 silkscreen_length = package_body_length;
01122 silkscreen_width = package_body_width;
01123 silkscreen_line_width = 10;
01124 courtyard = FALSE;
01125 courtyard_length = package_body_length;
01126 courtyard_width = package_body_width;
01127 courtyard_line_width = 1;
01128 g_free (footprint_name);
01129 footprint_name = g_strdup ("CON_SIL-127P-12N");
01130 return (EXIT_SUCCESS);
01131 }
01132 if (!strcmp (footprint_name, "?CON_SIL-127P-20N"))
01133 {
01134 footprint_units = g_strdup ("mil");
01135 package_body_length = 100;
01136 package_body_width = 1000;
01137 package_body_height = 78;
01138 package_is_radial = FALSE;
01139 number_of_pins = 20;
01140 number_of_columns = 1;
01141 number_of_rows = number_of_pins;
01142 pitch_x = 0;
01143 pitch_y = 50;
01144 count_x = 0;
01145 count_y = 0;
01146 pad_shape = g_strdup ("circular pad");
01147 pin_drill_diameter = 28;
01148 pad_diameter = 60;
01149 thermal = FALSE;
01150 thermal_length = 0.0;
01151 thermal_width = 0.0;
01152 fiducial = FALSE;
01153 fiducial_pad_diameter = 0.00;
01154 fiducial_pad_solder_mask_clearance = 0.00;
01155 silkscreen_package_outline = TRUE;
01156 silkscreen_length = package_body_length;
01157 silkscreen_width = package_body_width;
01158 silkscreen_line_width = 10;
01159 courtyard = FALSE;
01160 courtyard_length = package_body_length;
01161 courtyard_width = package_body_width;
01162 courtyard_line_width = 1;
01163 g_free (footprint_name);
01164 footprint_name = g_strdup ("CON_SIL-127P-20N");
01165 return (EXIT_SUCCESS);
01166 }
01167 else if (!strcmp (footprint_name, "?CON_SIL-254P-2N"))
01168 {
01169 footprint_units = g_strdup ("mil");
01170 package_body_length = 100;
01171 package_body_width = 200;
01172 package_body_height = 200;
01173 package_is_radial = FALSE;
01174 number_of_pins = 2;
01175 number_of_columns = 1;
01176 number_of_rows = number_of_pins;
01177 pitch_x = 0;
01178 pitch_y = 100;
01179 count_x = 0;
01180 count_y = 0;
01181 pad_shape = g_strdup ("circular pad");
01182 pin_drill_diameter = 28;
01183 pad_diameter = 60;
01184 thermal = FALSE;
01185 thermal_length = 0.0;
01186 thermal_width = 0.0;
01187 fiducial = FALSE;
01188 fiducial_pad_diameter = 0.00;
01189 fiducial_pad_solder_mask_clearance = 0.00;
01190 silkscreen_package_outline = TRUE;
01191 silkscreen_length = package_body_length;
01192 silkscreen_width = package_body_width;
01193 silkscreen_line_width = 10;
01194 courtyard = FALSE;
01195 courtyard_length = package_body_length;
01196 courtyard_width = package_body_width;
01197 courtyard_line_width = 1;
01198 g_free (footprint_name);
01199 footprint_name = g_strdup ("CON_SIL-254P-2N");
01200 return (EXIT_SUCCESS);
01201 }
01202 else if (!strcmp (footprint_name, "?CON_SIL-254P-3N"))
01203 {
01204 footprint_units = g_strdup ("mil");
01205 package_body_length = 100;
01206 package_body_width = 300;
01207 package_body_height = 200;
01208 package_is_radial = FALSE;
01209 number_of_pins = 3;
01210 number_of_columns = 1;
01211 number_of_rows = number_of_pins;
01212 pitch_x = 0;
01213 pitch_y = 100;
01214 count_x = 0;
01215 count_y = 0;
01216 pad_shape = g_strdup ("circular pad");
01217 pin_drill_diameter = 28;
01218 pad_diameter = 60;
01219 thermal = FALSE;
01220 thermal_length = 0.0;
01221 thermal_width = 0.0;
01222 fiducial = FALSE;
01223 fiducial_pad_diameter = 0.00;
01224 fiducial_pad_solder_mask_clearance = 0.00;
01225 silkscreen_package_outline = TRUE;
01226 silkscreen_length = package_body_length;
01227 silkscreen_width = package_body_width;
01228 silkscreen_line_width = 10;
01229 courtyard = FALSE;
01230 courtyard_length = package_body_length;
01231 courtyard_width = package_body_width;
01232 courtyard_line_width = 1;
01233 g_free (footprint_name);
01234 footprint_name = g_strdup ("CON_SIL-254P-3N");
01235 return (EXIT_SUCCESS);
01236 }
01237 else if (!strcmp (footprint_name, "?CON_SIL-254P-4N"))
01238 {
01239 footprint_units = g_strdup ("mil");
01240 package_body_length = 100;
01241 package_body_width = 400;
01242 package_body_height = 200;
01243 package_is_radial = FALSE;
01244 number_of_pins = 4;
01245 number_of_columns = 1;
01246 number_of_rows = number_of_pins;
01247 pitch_x = 0;
01248 pitch_y = 100;
01249 count_x = 0;
01250 count_y = 0;
01251 pad_shape = g_strdup ("circular pad");
01252 pin_drill_diameter = 28;
01253 pad_diameter = 60;
01254 thermal = FALSE;
01255 thermal_length = 0.0;
01256 thermal_width = 0.0;
01257 fiducial = FALSE;
01258 fiducial_pad_diameter = 0.00;
01259 fiducial_pad_solder_mask_clearance = 0.00;
01260 silkscreen_package_outline = TRUE;
01261 silkscreen_length = package_body_length;
01262 silkscreen_width = package_body_width;
01263 silkscreen_line_width = 10;
01264 courtyard = FALSE;
01265 courtyard_length = package_body_length;
01266 courtyard_width = package_body_width;
01267 courtyard_line_width = 1;
01268 g_free (footprint_name);
01269 footprint_name = g_strdup ("CON_SIL-254P-4N");
01270 return (EXIT_SUCCESS);
01271 }
01272 else if (!strcmp (footprint_name, "?CON_SIL-254P-5N"))
01273 {
01274 footprint_units = g_strdup ("mil");
01275 package_body_length = 100;
01276 package_body_width = 500;
01277 package_body_height = 200;
01278 package_is_radial = FALSE;
01279 number_of_pins = 5;
01280 number_of_columns = 1;
01281 number_of_rows = number_of_pins;
01282 pitch_x = 0;
01283 pitch_y = 100;
01284 count_x = 0;
01285 count_y = 0;
01286 pad_shape = g_strdup ("circular pad");
01287 pin_drill_diameter = 28;
01288 pad_diameter = 60;
01289 thermal = FALSE;
01290 thermal_length = 0.0;
01291 thermal_width = 0.0;
01292 fiducial = FALSE;
01293 fiducial_pad_diameter = 0.00;
01294 fiducial_pad_solder_mask_clearance = 0.00;
01295 silkscreen_package_outline = TRUE;
01296 silkscreen_length = package_body_length;
01297 silkscreen_width = package_body_width;
01298 silkscreen_line_width = 10;
01299 courtyard = FALSE;
01300 courtyard_length = package_body_length;
01301 courtyard_width = package_body_width;
01302 courtyard_line_width = 1;
01303 g_free (footprint_name);
01304 footprint_name = g_strdup ("CON_SIL-254P-5N");
01305 return (EXIT_SUCCESS);
01306 }
01307 else if (!strcmp (footprint_name, "?CON_SIL-254P-6N"))
01308 {
01309 footprint_units = g_strdup ("mil");
01310 package_body_length = 100;
01311 package_body_width = 600;
01312 package_body_height = 200;
01313 package_is_radial = FALSE;
01314 number_of_pins = 6;
01315 number_of_columns = 1;
01316 number_of_rows = number_of_pins;
01317 pitch_x = 0;
01318 pitch_y = 100;
01319 count_x = 0;
01320 count_y = 0;
01321 pad_shape = g_strdup ("circular pad");
01322 pin_drill_diameter = 28;
01323 pad_diameter = 60;
01324 thermal = FALSE;
01325 thermal_length = 0.0;
01326 thermal_width = 0.0;
01327 fiducial = FALSE;
01328 fiducial_pad_diameter = 0.00;
01329 fiducial_pad_solder_mask_clearance = 0.00;
01330 silkscreen_package_outline = TRUE;
01331 silkscreen_length = package_body_length;
01332 silkscreen_width = package_body_width;
01333 silkscreen_line_width = 10;
01334 courtyard = FALSE;
01335 courtyard_length = package_body_length;
01336 courtyard_width = package_body_width;
01337 courtyard_line_width = 1;
01338 g_free (footprint_name);
01339 footprint_name = g_strdup ("CON_SIL-254P-6N");
01340 return (EXIT_SUCCESS);
01341 }
01342 else if (!strcmp (footprint_name, "?CON_SIL-254P-7N"))
01343 {
01344 footprint_units = g_strdup ("mil");
01345 package_body_length = 100;
01346 package_body_width = 700;
01347 package_body_height = 200;
01348 package_is_radial = FALSE;
01349 number_of_pins = 7;
01350 number_of_columns = 1;
01351 number_of_rows = number_of_pins;
01352 pitch_x = 0;
01353 pitch_y = 100;
01354 count_x = 0;
01355 count_y = 0;
01356 pad_shape = g_strdup ("circular pad");
01357 pin_drill_diameter = 28;
01358 pad_diameter = 60;
01359 thermal = FALSE;
01360 thermal_length = 0.0;
01361 thermal_width = 0.0;
01362 fiducial = FALSE;
01363 fiducial_pad_diameter = 0.00;
01364 fiducial_pad_solder_mask_clearance = 0.00;
01365 silkscreen_package_outline = TRUE;
01366 silkscreen_length = package_body_length;
01367 silkscreen_width = package_body_width;
01368 silkscreen_line_width = 10;
01369 courtyard = FALSE;
01370 courtyard_length = package_body_length;
01371 courtyard_width = package_body_width;
01372 courtyard_line_width = 1;
01373 g_free (footprint_name);
01374 footprint_name = g_strdup ("CON_SIL-254P-7N");
01375 return (EXIT_SUCCESS);
01376 }
01377 else if (!strcmp (footprint_name, "?CON_SIL-254P-8N"))
01378 {
01379 footprint_units = g_strdup ("mil");
01380 package_body_length = 100;
01381 package_body_width = 800;
01382 package_body_height = 200;
01383 package_is_radial = FALSE;
01384 number_of_pins = 8;
01385 number_of_columns = 1;
01386 number_of_rows = number_of_pins;
01387 pitch_x = 0;
01388 pitch_y = 100;
01389 count_x = 0;
01390 count_y = 0;
01391 pad_shape = g_strdup ("circular pad");
01392 pin_drill_diameter = 28;
01393 pad_diameter = 60;
01394 thermal = FALSE;
01395 thermal_length = 0.0;
01396 thermal_width = 0.0;
01397 fiducial = FALSE;
01398 fiducial_pad_diameter = 0.00;
01399 fiducial_pad_solder_mask_clearance = 0.00;
01400 silkscreen_package_outline = TRUE;
01401 silkscreen_length = package_body_length;
01402 silkscreen_width = package_body_width;
01403 silkscreen_line_width = 10;
01404 courtyard = FALSE;
01405 courtyard_length = package_body_length;
01406 courtyard_width = package_body_width;
01407 courtyard_line_width = 1;
01408 g_free (footprint_name);
01409 footprint_name = g_strdup ("CON_SIL-254P-8N");
01410 return (EXIT_SUCCESS);
01411 }
01412 else if (!strcmp (footprint_name, "?CON_SIL-254P-9N"))
01413 {
01414 footprint_units = g_strdup ("mil");
01415 package_body_length = 100;
01416 package_body_width = 900;
01417 package_body_height = 200;
01418 package_is_radial = FALSE;
01419 number_of_columns = 1;
01420 number_of_rows = number_of_pins;
01421 number_of_pins = 9;
01422 pitch_x = 0;
01423 pitch_y = 100;
01424 count_x = 0;
01425 count_y = 0;
01426 pad_shape = g_strdup ("circular pad");
01427 pin_drill_diameter = 28;
01428 pad_diameter = 60;
01429 thermal = FALSE;
01430 thermal_length = 0.0;
01431 thermal_width = 0.0;
01432 fiducial = FALSE;
01433 fiducial_pad_diameter = 0.00;
01434 fiducial_pad_solder_mask_clearance = 0.00;
01435 silkscreen_package_outline = TRUE;
01436 silkscreen_length = package_body_length;
01437 silkscreen_width = package_body_width;
01438 silkscreen_line_width = 10;
01439 courtyard = FALSE;
01440 courtyard_length = package_body_length;
01441 courtyard_width = package_body_width;
01442 courtyard_line_width = 1;
01443 g_free (footprint_name);
01444 footprint_name = g_strdup ("CON_SIL-254P-9N");
01445 return (EXIT_SUCCESS);
01446 }
01447 else if (!strcmp (footprint_name, "?CON_SIL-254P-10N"))
01448 {
01449 footprint_units = g_strdup ("mil");
01450 package_body_length = 100;
01451 package_body_width = 1000;
01452 package_body_height = 200;
01453 package_is_radial = FALSE;
01454 number_of_pins = 10;
01455 number_of_columns = 1;
01456 number_of_rows = number_of_pins;
01457 pitch_x = 0;
01458 pitch_y = 100;
01459 count_x = 0;
01460 count_y = 0;
01461 pad_shape = g_strdup ("circular pad");
01462 pin_drill_diameter = 28;
01463 pad_diameter = 60;
01464 thermal = FALSE;
01465 thermal_length = 0.0;
01466 thermal_width = 0.0;
01467 fiducial = FALSE;
01468 fiducial_pad_diameter = 0.00;
01469 fiducial_pad_solder_mask_clearance = 0.00;
01470 silkscreen_package_outline = TRUE;
01471 silkscreen_length = package_body_length;
01472 silkscreen_width = package_body_width;
01473 silkscreen_line_width = 10;
01474 courtyard = FALSE;
01475 courtyard_length = package_body_length;
01476 courtyard_width = package_body_width;
01477 courtyard_line_width = 1;
01478 g_free (footprint_name);
01479 footprint_name = g_strdup ("CON_SIL-254P-10N");
01480 return (EXIT_SUCCESS);
01481 }
01482 else if (!strcmp (footprint_name, "?CON_SIL-254P-12N"))
01483 {
01484 footprint_units = g_strdup ("mil");
01485 package_body_length = 100;
01486 package_body_width = 1200;
01487 package_body_height = 200;
01488 package_is_radial = FALSE;
01489 number_of_pins = 12;
01490 number_of_columns = 1;
01491 number_of_rows = number_of_pins;
01492 pitch_x = 0;
01493 pitch_y = 100;
01494 count_x = 0;
01495 count_y = 0;
01496 pad_shape = g_strdup ("circular pad");
01497 pin_drill_diameter = 28;
01498 pad_diameter = 60;
01499 thermal = FALSE;
01500 thermal_length = 0.0;
01501 thermal_width = 0.0;
01502 fiducial = FALSE;
01503 fiducial_pad_diameter = 0.00;
01504 fiducial_pad_solder_mask_clearance = 0.00;
01505 silkscreen_package_outline = TRUE;
01506 silkscreen_length = package_body_length;
01507 silkscreen_width = package_body_width;
01508 silkscreen_line_width = 10;
01509 courtyard = FALSE;
01510 courtyard_length = package_body_length;
01511 courtyard_width = package_body_width;
01512 courtyard_line_width = 1;
01513 g_free (footprint_name);
01514 footprint_name = g_strdup ("CON_SIL-254P-12N");
01515 return (EXIT_SUCCESS);
01516 }
01517 else if (!strcmp (footprint_name, "?CON_SIL-254P-20N"))
01518 {
01519 footprint_units = g_strdup ("mil");
01520 package_body_length = 100;
01521 package_body_width = 2000;
01522 package_body_height = 200;
01523 package_is_radial = FALSE;
01524 number_of_pins = 20;
01525 number_of_columns = 1;
01526 number_of_rows = number_of_pins;
01527 pitch_x = 0;
01528 pitch_y = 100;
01529 count_x = 0;
01530 count_y = 0;
01531 pad_shape = g_strdup ("circular pad");
01532 pin_drill_diameter = 28;
01533 thermal = FALSE;
01534 thermal_length = 0.0;
01535 thermal_width = 0.0;
01536 fiducial = FALSE;
01537 fiducial_pad_diameter = 0.00;
01538 fiducial_pad_solder_mask_clearance = 0.00;
01539 silkscreen_package_outline = TRUE;
01540 silkscreen_length = package_body_length;
01541 silkscreen_width = package_body_width;
01542 silkscreen_line_width = 10;
01543 courtyard = FALSE;
01544 courtyard_length = package_body_length;
01545 courtyard_width = package_body_width;
01546 courtyard_line_width = 1;
01547 pad_solder_mask_clearance = 6;
01548 g_free (footprint_name);
01549 footprint_name = g_strdup ("CON_SIL-254P-20N");
01550 return (EXIT_SUCCESS);
01551 }
01552 else if (!strcmp (footprint_name, "?CON_SIL-254P-24N"))
01553 {
01554 footprint_units = g_strdup ("mil");
01555 package_body_length = 100;
01556 package_body_width = 2400;
01557 package_body_height = 200;
01558 package_is_radial = FALSE;
01559 number_of_pins = 24;
01560 number_of_columns = 1;
01561 number_of_rows = number_of_pins;
01562 pitch_x = 0;
01563 pitch_y = 100;
01564 count_x = 0;
01565 count_y = 0;
01566 pad_shape = g_strdup ("circular pad");
01567 pin_drill_diameter = 28;
01568 pad_diameter = 60;
01569 thermal = FALSE;
01570 thermal_length = 0.0;
01571 thermal_width = 0.0;
01572 fiducial = FALSE;
01573 fiducial_pad_diameter = 0.00;
01574 fiducial_pad_solder_mask_clearance = 0.00;
01575 silkscreen_package_outline = TRUE;
01576 silkscreen_length = package_body_length;
01577 silkscreen_width = package_body_width;
01578 silkscreen_line_width = 10;
01579 courtyard = FALSE;
01580 courtyard_length = package_body_length;
01581 courtyard_width = package_body_width;
01582 courtyard_line_width = 1;
01583 g_free (footprint_name);
01584 footprint_name = g_strdup ("CON_SIL-254P-24N");
01585 return (EXIT_SUCCESS);
01586 }
01587 else if (!strcmp (footprint_name, "?CON_SIL-254P-31N"))
01588 {
01589 footprint_units = g_strdup ("mil");
01590 package_body_length = 100;
01591 package_body_width = 3100;
01592 package_body_height = 200;
01593 package_is_radial = FALSE;
01594 number_of_pins = 31;
01595 number_of_columns = 1;
01596 number_of_rows = number_of_pins;
01597 pitch_x = 0;
01598 pitch_y = 100;
01599 count_x = 0;
01600 count_y = 0;
01601 pad_shape = g_strdup ("circular pad");
01602 pin_drill_diameter = 28;
01603 pad_diameter = 60;
01604 thermal = FALSE;
01605 thermal_length = 0.0;
01606 thermal_width = 0.0;
01607 fiducial = FALSE;
01608 fiducial_pad_diameter = 0.00;
01609 fiducial_pad_solder_mask_clearance = 0.00;
01610 silkscreen_package_outline = TRUE;
01611 silkscreen_length = package_body_length;
01612 silkscreen_width = package_body_width;
01613 silkscreen_line_width = 10;
01614 courtyard = FALSE;
01615 courtyard_length = package_body_length;
01616 courtyard_width = package_body_width;
01617 courtyard_line_width = 1;
01618 g_free (footprint_name);
01619 footprint_name = g_strdup ("CON_SIL-254P-31N");
01620 return (EXIT_SUCCESS);
01621 }
01622 else if (!strcmp (footprint_name, "?CON_SIL-254P-36N"))
01623 {
01624 footprint_units = g_strdup ("mil");
01625 package_body_length = 100;
01626 package_body_width = 3600;
01627 package_body_height = 200;
01628 package_is_radial = FALSE;
01629 number_of_pins = 36;
01630 number_of_columns = 1;
01631 number_of_rows = number_of_pins;
01632 pitch_x = 0;
01633 pitch_y = 100;
01634 count_x = 0;
01635 count_y = 0;
01636 pad_shape = g_strdup ("circular pad");
01637 pin_drill_diameter = 28;
01638 pad_diameter = 60;
01639 thermal = FALSE;
01640 thermal_length = 0.0;
01641 thermal_width = 0.0;
01642 fiducial = FALSE;
01643 fiducial_pad_diameter = 0.00;
01644 fiducial_pad_solder_mask_clearance = 0.00;
01645 silkscreen_package_outline = TRUE;
01646 silkscreen_length = package_body_length;
01647 silkscreen_width = package_body_width;
01648 silkscreen_line_width = 10;
01649 courtyard = FALSE;
01650 courtyard_length = package_body_length;
01651 courtyard_width = package_body_width;
01652 courtyard_line_width = 1;
01653 g_free (footprint_name);
01654 footprint_name = g_strdup ("CON_SIL-254P-36N");
01655 return (EXIT_SUCCESS);
01656 }
01657 else if (!strcmp (footprint_name, "?CON_SIL-254P-40N"))
01658 {
01659 footprint_units = g_strdup ("mil");
01660 package_body_length = 100;
01661 package_body_width = 4000;
01662 package_body_height = 200;
01663 package_is_radial = FALSE;
01664 number_of_pins = 40;
01665 number_of_columns = 1;
01666 number_of_rows = number_of_pins;
01667 pitch_x = 0;
01668 pitch_y = 100;
01669 count_x = 0;
01670 count_y = 0;
01671 pad_shape = g_strdup ("circular pad");
01672 pin_drill_diameter = 28;
01673 pad_diameter = 60;
01674 thermal = FALSE;
01675 thermal_length = 0.0;
01676 thermal_width = 0.0;
01677 fiducial = FALSE;
01678 fiducial_pad_diameter = 0.00;
01679 fiducial_pad_solder_mask_clearance = 0.00;
01680 silkscreen_package_outline = TRUE;
01681 silkscreen_length = package_body_length;
01682 silkscreen_width = package_body_width;
01683 silkscreen_line_width = 10;
01684 courtyard = FALSE;
01685 courtyard_length = package_body_length;
01686 courtyard_width = package_body_width;
01687 courtyard_line_width = 1;
01688 g_free (footprint_name);
01689 footprint_name = g_strdup ("CON_SIL-254P-40N");
01690 return (EXIT_SUCCESS);
01691 }
01692 else if (!strcmp (footprint_name, "?CON_SIL-254P-50N"))
01693 {
01694 footprint_units = g_strdup ("mil");
01695 package_body_length = 100;
01696 package_body_width = 5000;
01697 package_body_height = 200;
01698 package_is_radial = FALSE;
01699 number_of_pins = 50;
01700 number_of_columns = 1;
01701 number_of_rows = number_of_pins;
01702 pitch_x = 0;
01703 pitch_y = 100;
01704 count_x = 0;
01705 count_y = 0;
01706 pad_shape = g_strdup ("circular pad");
01707 pin_drill_diameter = 28;
01708 pad_diameter = 60;
01709 thermal = FALSE;
01710 thermal_length = 0.0;
01711 thermal_width = 0.0;
01712 fiducial = FALSE;
01713 fiducial_pad_diameter = 0.00;
01714 fiducial_pad_solder_mask_clearance = 0.00;
01715 silkscreen_package_outline = TRUE;
01716 silkscreen_length = package_body_length;
01717 silkscreen_width = package_body_width;
01718 silkscreen_line_width = 10;
01719 courtyard = FALSE;
01720 courtyard_length = package_body_length;
01721 courtyard_width = package_body_width;
01722 courtyard_line_width = 1;
01723 g_free (footprint_name);
01724 footprint_name = g_strdup ("CON_SIL-254P-50N");
01725 return (EXIT_SUCCESS);
01726 }
01727 else if (!strcmp (footprint_name, "?CON_SIL-350P-2N"))
01728 {
01729 footprint_units = g_strdup ("mm");
01730 package_body_length = 2.70;
01731 package_body_width = 3.50;
01732 package_body_height = 1.60;
01733 package_is_radial = FALSE;
01734 number_of_pins = 2;
01735 number_of_columns = 1;
01736 number_of_rows = number_of_pins;
01737 pitch_x = 0;
01738 pitch_y = 3.50;
01739 count_x = 0;
01740 count_y = 0;
01741 pad_shape = g_strdup ("circular pad");
01742 pin_drill_diameter = 1.30;
01743 pad_diameter = 1.80;
01744 thermal = FALSE;
01745 thermal_length = 0.0;
01746 thermal_width = 0.0;
01747 fiducial = FALSE;
01748 fiducial_pad_diameter = 0.00;
01749 fiducial_pad_solder_mask_clearance = 0.00;
01750 silkscreen_package_outline = TRUE;
01751 silkscreen_length = package_body_length;
01752 silkscreen_width = package_body_width;
01753 silkscreen_line_width = 0.20;
01754 courtyard = FALSE;
01755 courtyard_length = package_body_length;
01756 courtyard_width = package_body_width;
01757 courtyard_line_width = 0.05;
01758 g_free (footprint_name);
01759 footprint_name = g_strdup ("CON_SIL-350P-2N");
01760 return (EXIT_SUCCESS);
01761 }
01762 else if (!strcmp (footprint_name, "?CON_SIL-350P-3N"))
01763 {
01764 footprint_units = g_strdup ("mm");
01765 package_body_length = 2.70;
01766 package_body_width = 7.00;
01767 package_body_height = 1.60;
01768 package_is_radial = FALSE;
01769 number_of_pins = 3;
01770 number_of_columns = 1;
01771 number_of_rows = number_of_pins;
01772 pitch_x = 0;
01773 pitch_y = 3.50;
01774 count_x = 0;
01775 count_y = 0;
01776 pad_shape = g_strdup ("circular pad");
01777 pin_drill_diameter = 1.30;
01778 pad_diameter = 1.80;
01779 thermal = FALSE;
01780 thermal_length = 0.0;
01781 thermal_width = 0.0;
01782 fiducial = FALSE;
01783 fiducial_pad_diameter = 0.00;
01784 fiducial_pad_solder_mask_clearance = 0.00;
01785 silkscreen_package_outline = TRUE;
01786 silkscreen_length = package_body_length;
01787 silkscreen_width = package_body_width;
01788 silkscreen_line_width = 0.20;
01789 courtyard = FALSE;
01790 courtyard_length = package_body_length;
01791 courtyard_width = package_body_width;
01792 courtyard_line_width = 0.05;
01793 g_free (footprint_name);
01794 footprint_name = g_strdup ("CON_SIL-350P-3N");
01795 return (EXIT_SUCCESS);
01796 }
01797 else if (!strcmp (footprint_name, "?CON_SIL-350P-4N"))
01798 {
01799 footprint_units = g_strdup ("mm");
01800 package_body_length = 2.70;
01801 package_body_width = 10.50;
01802 package_body_height = 1.60;
01803 package_is_radial = FALSE;
01804 number_of_pins = 4;
01805 number_of_columns = 1;
01806 number_of_rows = number_of_pins;
01807 pitch_x = 0;
01808 pitch_y = 3.50;
01809 count_x = 0;
01810 count_y = 0;
01811 pad_shape = g_strdup ("circular pad");
01812 pin_drill_diameter = 1.30;
01813 pad_diameter = 1.80;
01814 thermal = FALSE;
01815 thermal_length = 0.0;
01816 thermal_width = 0.0;
01817 fiducial = FALSE;
01818 fiducial_pad_diameter = 0.00;
01819 fiducial_pad_solder_mask_clearance = 0.00;
01820 silkscreen_package_outline = TRUE;
01821 silkscreen_length = package_body_length;
01822 silkscreen_width = package_body_width;
01823 silkscreen_line_width = 0.20;
01824 courtyard = FALSE;
01825 courtyard_length = package_body_length;
01826 courtyard_width = package_body_width;
01827 courtyard_line_width = 0.05;
01828 g_free (footprint_name);
01829 footprint_name = g_strdup ("CON_SIL-350P-4N");
01830 return (EXIT_SUCCESS);
01831 }
01832 else if (!strcmp (footprint_name, "?CON_SIL-350P-5N"))
01833 {
01834 footprint_units = g_strdup ("mm");
01835 package_body_length = 2.70;
01836 package_body_width = 14.00;
01837 package_body_height = 1.60;
01838 package_is_radial = FALSE;
01839 number_of_pins = 5;
01840 number_of_columns = 1;
01841 number_of_rows = number_of_pins;
01842 pitch_x = 0;
01843 pitch_y = 3.50;
01844 count_x = 0;
01845 count_y = 0;
01846 pad_shape = g_strdup ("circular pad");
01847 pin_drill_diameter = 1.30;
01848 pad_diameter = 1.80;
01849 thermal = FALSE;
01850 thermal_length = 0.0;
01851 thermal_width = 0.0;
01852 fiducial = FALSE;
01853 fiducial_pad_diameter = 0.00;
01854 fiducial_pad_solder_mask_clearance = 0.00;
01855 silkscreen_package_outline = TRUE;
01856 silkscreen_length = package_body_length;
01857 silkscreen_width = package_body_width;
01858 silkscreen_line_width = 0.20;
01859 courtyard = FALSE;
01860 courtyard_length = package_body_length;
01861 courtyard_width = package_body_width;
01862 courtyard_line_width = 0.05;
01863 g_free (footprint_name);
01864 footprint_name = g_strdup ("CON_SIL-350P-5N");
01865 return (EXIT_SUCCESS);
01866 }
01867 else if (!strcmp (footprint_name, "?CON_SIL-350P-6N"))
01868 {
01869 footprint_units = g_strdup ("mm");
01870 package_body_length = 2.70;
01871 package_body_width = 17.50;
01872 package_body_height = 1.60;
01873 package_is_radial = FALSE;
01874 number_of_pins = 6;
01875 number_of_columns = 1;
01876 number_of_rows = number_of_pins;
01877 pitch_x = 0;
01878 pitch_y = 3.50;
01879 count_x = 0;
01880 count_y = 0;
01881 pad_shape = g_strdup ("circular pad");
01882 pin_drill_diameter = 1.30;
01883 pad_diameter = 1.80;
01884 thermal = FALSE;
01885 thermal_length = 0.0;
01886 thermal_width = 0.0;
01887 fiducial = FALSE;
01888 fiducial_pad_diameter = 0.00;
01889 fiducial_pad_solder_mask_clearance = 0.00;
01890 silkscreen_package_outline = TRUE;
01891 silkscreen_length = package_body_length;
01892 silkscreen_width = package_body_width;
01893 silkscreen_line_width = 0.20;
01894 courtyard = FALSE;
01895 courtyard_length = package_body_length;
01896 courtyard_width = package_body_width;
01897 courtyard_line_width = 0.05;
01898 g_free (footprint_name);
01899 footprint_name = g_strdup ("CON_SIL-350P-6N");
01900 return (EXIT_SUCCESS);
01901 }
01902 else if (!strcmp (footprint_name, "?CON_SIL-350P-7N"))
01903 {
01904 footprint_units = g_strdup ("mm");
01905 package_body_length = 2.70;
01906 package_body_width = 21.00;
01907 package_body_height = 1.60;
01908 package_is_radial = FALSE;
01909 number_of_pins = 7;
01910 number_of_columns = 1;
01911 number_of_rows = number_of_pins;
01912 pitch_x = 0;
01913 pitch_y = 3.50;
01914 count_x = 0;
01915 count_y = 0;
01916 pad_shape = g_strdup ("circular pad");
01917 pin_drill_diameter = 1.30;
01918 pad_diameter = 1.80;
01919 thermal = FALSE;
01920 thermal_length = 0.0;
01921 thermal_width = 0.0;
01922 fiducial = FALSE;
01923 fiducial_pad_diameter = 0.00;
01924 fiducial_pad_solder_mask_clearance = 0.00;
01925 silkscreen_package_outline = TRUE;
01926 silkscreen_length = package_body_length;
01927 silkscreen_width = package_body_width;
01928 silkscreen_line_width = 0.20;
01929 courtyard = FALSE;
01930 courtyard_length = package_body_length;
01931 courtyard_width = package_body_width;
01932 courtyard_line_width = 0.05;
01933 g_free (footprint_name);
01934 footprint_name = g_strdup ("CON_SIL-350P-7N");
01935 return (EXIT_SUCCESS);
01936 }
01937 else if (!strcmp (footprint_name, "?CON_SIL-350P-8N"))
01938 {
01939 footprint_units = g_strdup ("mm");
01940 package_body_length = 2.70;
01941 package_body_width = 24.50;
01942 package_body_height = 1.60;
01943 package_is_radial = FALSE;
01944 number_of_pins = 8;
01945 number_of_columns = 1;
01946 number_of_rows = number_of_pins;
01947 pitch_x = 0;
01948 pitch_y = 3.50;
01949 count_x = 0;
01950 count_y = 0;
01951 pad_shape = g_strdup ("circular pad");
01952 pin_drill_diameter = 1.30;
01953 pad_diameter = 1.80;
01954 thermal = FALSE;
01955 thermal_length = 0.0;
01956 thermal_width = 0.0;
01957 fiducial = FALSE;
01958 fiducial_pad_diameter = 0.00;
01959 fiducial_pad_solder_mask_clearance = 0.00;
01960 silkscreen_package_outline = TRUE;
01961 silkscreen_length = package_body_length;
01962 silkscreen_width = package_body_width;
01963 silkscreen_line_width = 0.20;
01964 courtyard = FALSE;
01965 courtyard_length = package_body_length;
01966 courtyard_width = package_body_width;
01967 courtyard_line_width = 0.05;
01968 g_free (footprint_name);
01969 footprint_name = g_strdup ("CON_SIL-350P-8N");
01970 return (EXIT_SUCCESS);
01971 }
01972 else if (!strcmp (footprint_name, "?CON_SIL-350P-10N"))
01973 {
01974 footprint_units = g_strdup ("mm");
01975 package_body_length = 2.70;
01976 package_body_width = 31.50;
01977 package_body_height = 1.60;
01978 package_is_radial = FALSE;
01979 number_of_pins = 10;
01980 number_of_columns = 1;
01981 number_of_rows = number_of_pins;
01982 pitch_x = 0;
01983 pitch_y = 3.50;
01984 count_x = 0;
01985 count_y = 0;
01986 pad_shape = g_strdup ("circular pad");
01987 pin_drill_diameter = 1.30;
01988 pad_diameter = 1.80;
01989 thermal = FALSE;
01990 thermal_length = 0.0;
01991 thermal_width = 0.0;
01992 fiducial = FALSE;
01993 fiducial_pad_diameter = 0.00;
01994 fiducial_pad_solder_mask_clearance = 0.00;
01995 silkscreen_package_outline = TRUE;
01996 silkscreen_length = package_body_length;
01997 silkscreen_width = package_body_width;
01998 silkscreen_line_width = 0.20;
01999 courtyard = FALSE;
02000 courtyard_length = package_body_length;
02001 courtyard_width = package_body_width;
02002 courtyard_line_width = 0.05;
02003 g_free (footprint_name);
02004 footprint_name = g_strdup ("CON_SIL-350P-10N");
02005 return (EXIT_SUCCESS);
02006 }
02007 else if (!strcmp (footprint_name, "?CON_SIL-350P-12N"))
02008 {
02009 footprint_units = g_strdup ("mm");
02010 package_body_length = 2.70;
02011 package_body_width = 38.50;
02012 package_body_height = 1.60;
02013 package_is_radial = FALSE;
02014 number_of_pins = 12;
02015 number_of_columns = 1;
02016 number_of_rows = number_of_pins;
02017 pitch_x = 0;
02018 pitch_y = 3.50;
02019 count_x = 0;
02020 count_y = 0;
02021 pad_shape = g_strdup ("circular pad");
02022 pin_drill_diameter = 1.30;
02023 pad_diameter = 1.80;
02024 thermal = FALSE;
02025 thermal_length = 0.0;
02026 thermal_width = 0.0;
02027 fiducial = FALSE;
02028 fiducial_pad_diameter = 0.00;
02029 fiducial_pad_solder_mask_clearance = 0.00;
02030 silkscreen_package_outline = TRUE;
02031 silkscreen_length = package_body_length;
02032 silkscreen_width = package_body_width;
02033 silkscreen_line_width = 0.20;
02034 courtyard = FALSE;
02035 courtyard_length = package_body_length;
02036 courtyard_width = package_body_width;
02037 courtyard_line_width = 0.05;
02038 g_free (footprint_name);
02039 footprint_name = g_strdup ("CON_SIL-350P-12N");
02040 return (EXIT_SUCCESS);
02041 }
02042 else if (!strcmp (footprint_name, "?CON_SIL-508P-2N"))
02043 {
02044 footprint_units = g_strdup ("mil");
02045 package_body_length = 110;
02046 package_body_width = 400;
02047 package_body_height = 200;
02048 package_is_radial = FALSE;
02049 number_of_pins = 2;
02050 number_of_columns = 1;
02051 number_of_rows = number_of_pins;
02052 pitch_x = 0;
02053 pitch_y = 200;
02054 count_x = 0;
02055 count_y = 0;
02056 pad_shape = g_strdup ("circular pad");
02057 pin_drill_diameter = 36;
02058 pad_diameter = 76;
02059 thermal = FALSE;
02060 thermal_length = 0.0;
02061 thermal_width = 0.0;
02062 fiducial = FALSE;
02063 fiducial_pad_diameter = 0.00;
02064 fiducial_pad_solder_mask_clearance = 0.00;
02065 silkscreen_package_outline = TRUE;
02066 silkscreen_length = package_body_length;
02067 silkscreen_width = package_body_width;
02068 silkscreen_line_width = 10;
02069 courtyard = FALSE;
02070 courtyard_length = package_body_length;
02071 courtyard_width = package_body_width;
02072 courtyard_line_width = 1;
02073 g_free (footprint_name);
02074 footprint_name = g_strdup ("CON_SIL-508P-2N");
02075 return (EXIT_SUCCESS);
02076 }
02077 else if (!strcmp (footprint_name, "?CON_SIL-508P-3N"))
02078 {
02079 footprint_units = g_strdup ("mil");
02080 package_body_length = 110;
02081 package_body_width = 600;
02082 package_body_height = 200;
02083 package_is_radial = FALSE;
02084 number_of_pins = 3;
02085 number_of_columns = 1;
02086 number_of_rows = number_of_pins;
02087 pitch_x = 0;
02088 pitch_y = 200;
02089 count_x = 0;
02090 count_y = 0;
02091 pad_shape = g_strdup ("circular pad");
02092 pin_drill_diameter = 36;
02093 pad_diameter = 76;
02094 thermal = FALSE;
02095 thermal_length = 0.0;
02096 thermal_width = 0.0;
02097 fiducial = FALSE;
02098 fiducial_pad_diameter = 0.00;
02099 fiducial_pad_solder_mask_clearance = 0.00;
02100 silkscreen_package_outline = TRUE;
02101 silkscreen_length = package_body_length;
02102 silkscreen_width = package_body_width;
02103 silkscreen_line_width = 10;
02104 courtyard = FALSE;
02105 courtyard_length = package_body_length;
02106 courtyard_width = package_body_width;
02107 courtyard_line_width = 1;
02108 g_free (footprint_name);
02109 footprint_name = g_strdup ("CON_SIL-508P-3N");
02110 return (EXIT_SUCCESS);
02111 }
02112 else if (!strcmp (footprint_name, "?CON_SIL-508P-4N"))
02113 {
02114 footprint_units = g_strdup ("mil");
02115 package_body_length = 110;
02116 package_body_width = 800;
02117 package_body_height = 200;
02118 package_is_radial = FALSE;
02119 number_of_pins = 4;
02120 number_of_columns = 1;
02121 number_of_rows = number_of_pins;
02122 pitch_x = 0;
02123 pitch_y = 200;
02124 count_x = 0;
02125 count_y = 0;
02126 pad_shape = g_strdup ("circular pad");
02127 pin_drill_diameter = 36;
02128 pad_diameter = 76;
02129 thermal = FALSE;
02130 thermal_length = 0.0;
02131 thermal_width = 0.0;
02132 fiducial = FALSE;
02133 fiducial_pad_diameter = 0.00;
02134 fiducial_pad_solder_mask_clearance = 0.00;
02135 silkscreen_package_outline = TRUE;
02136 silkscreen_length = package_body_length;
02137 silkscreen_width = package_body_width;
02138 silkscreen_line_width = 10;
02139 courtyard = FALSE;
02140 courtyard_length = package_body_length;
02141 courtyard_width = package_body_width;
02142 courtyard_line_width = 1;
02143 g_free (footprint_name);
02144 footprint_name = g_strdup ("CON_SIL-508P-4N");
02145 return (EXIT_SUCCESS);
02146 }
02147 else if (!strcmp (footprint_name, "?CON_SIL-508P-5N"))
02148 {
02149 footprint_units = g_strdup ("mil");
02150 package_body_length = 110;
02151 package_body_width = 1000;
02152 package_body_height = 200;
02153 package_is_radial = FALSE;
02154 number_of_pins = 5;
02155 number_of_columns = 1;
02156 number_of_rows = number_of_pins;
02157 pitch_x = 0;
02158 pitch_y = 200;
02159 count_x = 0;
02160 count_y = 0;
02161 pad_shape = g_strdup ("circular pad");
02162 pin_drill_diameter = 36;
02163 pad_diameter = 76;
02164 thermal = FALSE;
02165 thermal_length = 0.0;
02166 thermal_width = 0.0;
02167 fiducial = FALSE;
02168 fiducial_pad_diameter = 0.00;
02169 fiducial_pad_solder_mask_clearance = 0.00;
02170 silkscreen_package_outline = TRUE;
02171 silkscreen_length = package_body_length;
02172 silkscreen_width = package_body_width;
02173 silkscreen_line_width = 10;
02174 courtyard = FALSE;
02175 courtyard_length = package_body_length;
02176 courtyard_width = package_body_width;
02177 courtyard_line_width = 1;
02178 g_free (footprint_name);
02179 footprint_name = g_strdup ("CON_SIL-508P-5N");
02180 return (EXIT_SUCCESS);
02181 }
02182 else if (!strcmp (footprint_name, "?CON_SIL-508P-6N"))
02183 {
02184 footprint_units = g_strdup ("mil");
02185 package_body_length = 110;
02186 package_body_width = 1200;
02187 package_body_height = 200;
02188 package_is_radial = FALSE;
02189 number_of_pins = 6;
02190 number_of_columns = 1;
02191 number_of_rows = number_of_pins;
02192 pitch_x = 0;
02193 pitch_y = 200;
02194 count_x = 0;
02195 count_y = 0;
02196 pad_shape = g_strdup ("circular pad");
02197 pin_drill_diameter = 36;
02198 pad_diameter = 76;
02199 thermal = FALSE;
02200 thermal_length = 0.0;
02201 thermal_width = 0.0;
02202 fiducial = FALSE;
02203 fiducial_pad_diameter = 0.00;
02204 fiducial_pad_solder_mask_clearance = 0.00;
02205 silkscreen_package_outline = TRUE;
02206 silkscreen_length = package_body_length;
02207 silkscreen_width = package_body_width;
02208 silkscreen_line_width = 10;
02209 courtyard = FALSE;
02210 courtyard_length = package_body_length;
02211 courtyard_width = package_body_width;
02212 courtyard_line_width = 1;
02213 g_free (footprint_name);
02214 footprint_name = g_strdup ("CON_SIL-508P-6N");
02215 return (EXIT_SUCCESS);
02216 }
02217 else if (!strcmp (footprint_name, "?CON_SIL-508P-7N"))
02218 {
02219 footprint_units = g_strdup ("mil");
02220 package_body_length = 110;
02221 package_body_width = 1400;
02222 package_body_height = 200;
02223 package_is_radial = FALSE;
02224 number_of_pins = 7;
02225 number_of_columns = 1;
02226 number_of_rows = number_of_pins;
02227 pitch_x = 0;
02228 pitch_y = 200;
02229 count_x = 0;
02230 count_y = 0;
02231 pad_shape = g_strdup ("circular pad");
02232 pin_drill_diameter = 36;
02233 pad_diameter = 76;
02234 thermal = FALSE;
02235 thermal_length = 0.0;
02236 thermal_width = 0.0;
02237 fiducial = FALSE;
02238 fiducial_pad_diameter = 0.00;
02239 fiducial_pad_solder_mask_clearance = 0.00;
02240 silkscreen_package_outline = TRUE;
02241 silkscreen_length = package_body_length;
02242 silkscreen_width = package_body_width;
02243 silkscreen_line_width = 10;
02244 courtyard = FALSE;
02245 courtyard_length = package_body_length;
02246 courtyard_width = package_body_width;
02247 courtyard_line_width = 1;
02248 g_free (footprint_name);
02249 footprint_name = g_strdup ("CON_SIL-508P-7N");
02250 return (EXIT_SUCCESS);
02251 }
02252 else if (!strcmp (footprint_name, "?CON_SIL-508P-8N"))
02253 {
02254 footprint_units = g_strdup ("mil");
02255 package_body_length = 110;
02256 package_body_width = 1600;
02257 package_body_height = 200;
02258 package_is_radial = FALSE;
02259 number_of_pins = 8;
02260 number_of_columns = 1;
02261 number_of_rows = number_of_pins;
02262 pitch_x = 0;
02263 pitch_y = 200;
02264 count_x = 0;
02265 count_y = 0;
02266 pad_shape = g_strdup ("circular pad");
02267 pin_drill_diameter = 36;
02268 pad_diameter = 76;
02269 thermal = FALSE;
02270 thermal_length = 0.0;
02271 thermal_width = 0.0;
02272 fiducial = FALSE;
02273 fiducial_pad_diameter = 0.00;
02274 fiducial_pad_solder_mask_clearance = 0.00;
02275 silkscreen_package_outline = TRUE;
02276 silkscreen_length = package_body_length;
02277 silkscreen_width = package_body_width;
02278 silkscreen_line_width = 10;
02279 courtyard = FALSE;
02280 courtyard_length = package_body_length;
02281 courtyard_width = package_body_width;
02282 courtyard_line_width = 1;
02283 g_free (footprint_name);
02284 footprint_name = g_strdup ("CON_SIL-508P-8N");
02285 return (EXIT_SUCCESS);
02286 }
02287 else if (!strcmp (footprint_name, "?CON_SIL-508P-9N"))
02288 {
02289 footprint_units = g_strdup ("mil");
02290 package_body_length = 110;
02291 package_body_width = 1800;
02292 package_body_height = 200;
02293 package_is_radial = FALSE;
02294 number_of_pins = 9;
02295 number_of_columns = 1;
02296 number_of_rows = number_of_pins;
02297 pitch_x = 0;
02298 pitch_y = 200;
02299 count_x = 0;
02300 count_y = 0;
02301 pad_shape = g_strdup ("circular pad");
02302 pin_drill_diameter = 36;
02303 pad_diameter = 76;
02304 thermal = FALSE;
02305 thermal_length = 0.0;
02306 thermal_width = 0.0;
02307 fiducial = FALSE;
02308 fiducial_pad_diameter = 0.00;
02309 fiducial_pad_solder_mask_clearance = 0.00;
02310 silkscreen_package_outline = TRUE;
02311 silkscreen_length = package_body_length;
02312 silkscreen_width = package_body_width;
02313 silkscreen_line_width = 10;
02314 courtyard = FALSE;
02315 courtyard_length = package_body_length;
02316 courtyard_width = package_body_width;
02317 courtyard_line_width = 1;
02318 g_free (footprint_name);
02319 footprint_name = g_strdup ("CON_SIL-508P-9N");
02320 return (EXIT_SUCCESS);
02321 }
02322 else if (!strcmp (footprint_name, "?CON_SIL-508P-10N"))
02323 {
02324 footprint_units = g_strdup ("mil");
02325 package_body_length = 110;
02326 package_body_width = 2000;
02327 package_body_height = 200;
02328 package_is_radial = FALSE;
02329 number_of_pins = 10;
02330 number_of_columns = 1;
02331 number_of_rows = number_of_pins;
02332 pitch_x = 0;
02333 pitch_y = 200;
02334 count_x = 0;
02335 count_y = 0;
02336 pad_shape = g_strdup ("circular pad");
02337 pin_drill_diameter = 36;
02338 pad_diameter = 76;
02339 thermal = FALSE;
02340 thermal_length = 0.0;
02341 thermal_width = 0.0;
02342 fiducial = FALSE;
02343 fiducial_pad_diameter = 0.00;
02344 fiducial_pad_solder_mask_clearance = 0.00;
02345 silkscreen_package_outline = TRUE;
02346 silkscreen_length = package_body_length;
02347 silkscreen_width = package_body_width;
02348 silkscreen_line_width = 10;
02349 courtyard = FALSE;
02350 courtyard_length = package_body_length;
02351 courtyard_width = package_body_width;
02352 courtyard_line_width = 1;
02353 g_free (footprint_name);
02354 footprint_name = g_strdup ("CON_SIL-508P-10N");
02355 return (EXIT_SUCCESS);
02356 }
02357 else if (!strcmp (footprint_name, "?CON_SIL-508P-12N"))
02358 {
02359 footprint_units = g_strdup ("mil");
02360 package_body_length = 110;
02361 package_body_width = 2400;
02362 package_body_height = 200;
02363 package_is_radial = FALSE;
02364 number_of_pins = 12;
02365 number_of_columns = 1;
02366 number_of_rows = number_of_pins;
02367 pitch_x = 0;
02368 pitch_y = 200;
02369 count_x = 0;
02370 count_y = 0;
02371 pad_shape = g_strdup ("circular pad");
02372 pin_drill_diameter = 36;
02373 pad_diameter = 76;
02374 thermal = FALSE;
02375 thermal_length = 0.0;
02376 thermal_width = 0.0;
02377 fiducial = FALSE;
02378 fiducial_pad_diameter = 0.00;
02379 fiducial_pad_solder_mask_clearance = 0.00;
02380 silkscreen_package_outline = TRUE;
02381 silkscreen_length = package_body_length;
02382 silkscreen_width = package_body_width;
02383 silkscreen_line_width = 10;
02384 courtyard = FALSE;
02385 courtyard_length = package_body_length;
02386 courtyard_width = package_body_width;
02387 courtyard_line_width = 1;
02388 g_free (footprint_name);
02389 footprint_name = g_strdup ("CON_SIL-508P-12N");
02390 return (EXIT_SUCCESS);
02391 }
02392 else if (!strcmp (footprint_name, "?CON_SIL-508P-24N"))
02393 {
02394 footprint_units = g_strdup ("mil");
02395 package_body_length = 110;
02396 package_body_width = 4800;
02397 package_body_height = 200;
02398 package_is_radial = FALSE;
02399 number_of_pins = 24;
02400 number_of_columns = 1;
02401 number_of_rows = number_of_pins;
02402 pitch_x = 0;
02403 pitch_y = 200;
02404 count_x = 0;
02405 count_y = 0;
02406 pad_shape = g_strdup ("circular pad");
02407 pin_drill_diameter = 36;
02408 pad_diameter = 76;
02409 thermal = FALSE;
02410 thermal_length = 0.0;
02411 thermal_width = 0.0;
02412 fiducial = FALSE;
02413 fiducial_pad_diameter = 0.00;
02414 fiducial_pad_solder_mask_clearance = 0.00;
02415 silkscreen_package_outline = TRUE;
02416 silkscreen_length = package_body_length;
02417 silkscreen_width = package_body_width;
02418 silkscreen_line_width = 10;
02419 courtyard = FALSE;
02420 courtyard_length = package_body_length;
02421 courtyard_width = package_body_width;
02422 courtyard_line_width = 1;
02423 g_free (footprint_name);
02424 footprint_name = g_strdup ("CON_SIL-508P-24N");
02425 return (EXIT_SUCCESS);
02426 }
02427 else
02428 {
02429 fprintf (stderr,
02430 _("WARNING: default values for footprint %s not found.\n"),
02431 footprint_name);
02432 return (EXIT_FAILURE);
02433 }
02434 return (EXIT_SUCCESS);
02435 }
02436
02437
02445 #if GUI
02446 int
02447 con_sil_set_gui_constraints ()
02448 {
02449
02450 GtkWidget *package_is_radial_checkbutton = lookup_widget (GTK_WIDGET (widget),
02451 "package_is_radial_checkbutton");
02452 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (package_is_radial_checkbutton), FALSE);
02453 gtk_widget_set_sensitive (package_is_radial_checkbutton, FALSE);
02454
02455
02456 GtkWidget *number_of_columns_entry = lookup_widget (GTK_WIDGET (widget),
02457 "number_of_columns_entry");
02458 gtk_entry_set_text (GTK_ENTRY (number_of_columns_entry), "1");
02459 gtk_widget_set_sensitive (number_of_columns_entry, FALSE);
02460 GtkWidget *number_of_rows_entry = lookup_widget (GTK_WIDGET (widget),
02461 "number_of_rows_entry");
02462 gtk_entry_set_text (GTK_ENTRY (number_of_rows_entry), "");
02463 gtk_widget_set_sensitive (number_of_rows_entry, TRUE);
02464 GtkWidget *count_x_entry = lookup_widget (GTK_WIDGET (widget),
02465 "count_x_entry");
02466 gtk_entry_set_text (GTK_ENTRY (count_x_entry), "");
02467 gtk_widget_set_sensitive (count_x_entry, FALSE);
02468 GtkWidget *count_y_entry = lookup_widget (GTK_WIDGET (widget),
02469 "count_y_entry");
02470 gtk_entry_set_text (GTK_ENTRY (count_y_entry), "");
02471 gtk_widget_set_sensitive (count_y_entry, FALSE);
02472 GtkWidget *number_1_position_entry = lookup_widget (GTK_WIDGET (widget),
02473 "number_1_position_entry");
02474 gtk_combo_box_set_active (GTK_COMBO_BOX (number_1_position_entry), UPPER_LEFT);
02475 gtk_widget_set_sensitive (number_1_position_entry, FALSE);
02476
02477
02478 gui_constraints_disable_thermal_tab_widgets (widget);
02479
02480
02481 gui_constraints_disable_heel_and_toe_goals_tab_widgets (widget);
02482 return (EXIT_SUCCESS);
02483 }
02484 #endif
02485
02486
02499 int
02500 con_sil_write_footprint ()
02501 {
02502 gdouble xmax;
02503 gdouble xmin;
02504 gdouble ymax;
02505 gdouble ymin;
02506 gdouble x_text;
02507 gdouble y_text;
02508 gint pin_number;
02509 gchar *pin_pad_name = g_strdup ("");
02510 gchar *pin_pad_flags = g_strdup ("");
02511 gint i;
02512
02513 number_of_columns = 1;
02514
02515 fp = fopen (footprint_filename, "w");
02516 if (!fp)
02517 {
02518 g_log ("", G_LOG_LEVEL_WARNING,
02519 _("could not open file for %s footprint: %s."),
02520 footprint_type, footprint_filename);
02521 fclose (fp);
02522 return (EXIT_FAILURE);
02523 }
02524
02525 if (license_in_footprint)
02526 {
02527 write_license ();
02528 }
02529
02530
02531 xmin = multiplier *
02532 (
02533 (((pad_diameter > pad_length) ? pad_diameter : pad_length) / -2.0) - pad_solder_mask_clearance
02534 );
02535 xmax = multiplier *
02536 (
02537 (((pad_diameter > pad_length) ? pad_diameter : pad_length) / 2.0) + pad_solder_mask_clearance
02538 );
02539 ymin = multiplier *
02540 (
02541 (((-number_of_rows + 1) / 2.0) * pitch_y) -
02542 (((pad_diameter > pad_width) ? pad_diameter : pad_width) / 2.0) -
02543 pad_solder_mask_clearance
02544 );
02545 ymax = multiplier *
02546 (
02547 (((number_of_rows - 1 ) / 2.0) * pitch_y) +
02548 (((pad_diameter > pad_width) ? pad_diameter : pad_width) / 2.0) +
02549 pad_solder_mask_clearance
02550 );
02551
02552
02553 if ((multiplier * ((-package_body_length / 2.0) - courtyard_clearance_with_package)) < xmin)
02554 {
02555 xmin = (multiplier * ((-package_body_length / 2.0) - courtyard_clearance_with_package));
02556 }
02557 if ((multiplier * ((package_body_length / 2.0) + courtyard_clearance_with_package)) > xmax)
02558 {
02559 xmax = (multiplier * ((package_body_length / 2.0) + courtyard_clearance_with_package));
02560 }
02561 if ((multiplier * ((-package_body_width / 2.0) - courtyard_clearance_with_package)) < ymin)
02562 {
02563 ymin = (multiplier * ((-package_body_width / 2.0) - courtyard_clearance_with_package));
02564 }
02565 if ((multiplier * ((package_body_width / 2.0) + courtyard_clearance_with_package)) > ymax)
02566 {
02567 ymax = (multiplier * ((package_body_width / 2.0) + courtyard_clearance_with_package));
02568 }
02569
02570 if (multiplier * (-courtyard_length / 2.0) < xmin)
02571 {
02572 xmin = multiplier * (-courtyard_length / 2.0);
02573 }
02574 if (multiplier * (courtyard_length / 2.0) > xmax)
02575 {
02576 xmax = multiplier * (courtyard_length / 2.0);
02577 }
02578 if (multiplier * (-courtyard_width / 2.0) < ymin)
02579 {
02580 ymin = multiplier * (-courtyard_width / 2.0);
02581 }
02582 if (multiplier * (courtyard_width / 2.0) > ymax)
02583 {
02584 ymax = multiplier * (courtyard_width / 2.0);
02585 }
02586
02587
02588 x_text = 0.0 ;
02589 y_text = (ymin - 10000.0);
02590 write_element_header (x_text, y_text);
02591
02592 for (i = 0; (i < number_of_rows); i++)
02593 {
02594 pin_number = 1 + i;
02595 write_pin
02596 (
02597 pin_number,
02598 pin_pad_name,
02599 0,
02600 multiplier * ((((-number_of_rows - 1) / 2.0) +1 + i) * pitch_y),
02601 multiplier * pad_diameter,
02602 multiplier * 2 * pad_clearance,
02603 multiplier * (pad_diameter + (2 * pad_solder_mask_clearance)),
02604 multiplier * pin_drill_diameter,
02605 (pin1_square && (pin_number == 1)) ? "square" : pin_pad_flags
02606 );
02607 if (!strcmp (pad_shape, "rounded pad, elongated"))
02608 {
02609 if (!strcmp (pin_pad_flags, ""))
02610 pin_pad_flags = g_strconcat (pin_pad_flags, "onsolder", NULL);
02611 else
02612 pin_pad_flags = g_strconcat (pin_pad_flags, ",onsolder", NULL);
02613 write_pad
02614 (
02615 pin_number,
02616 pin_pad_name,
02617 multiplier * (-pad_width + pad_length) / 2.0,
02618 multiplier * ((((-number_of_rows - 1) / 2.0) + 1 + i) * pitch_y),
02619 multiplier * (pad_width - pad_length) / 2.0,
02620 multiplier * ((((-number_of_rows - 1) / 2.0) + 1 + i) * pitch_y),
02621 multiplier * pad_width,
02622 multiplier * 2 * pad_clearance,
02623 multiplier * (pad_width + (2 * pad_solder_mask_clearance)),
02624 pin_pad_flags
02625 );
02626 }
02627 }
02628
02629 if (silkscreen_package_outline)
02630 {
02631 fprintf (fp, "# Write a package body on the silkscreen\n");
02632 write_rectangle
02633 (
02634 multiplier * ((-package_body_length) / 2.0),
02635 multiplier * ((-package_body_width) / 2.0),
02636 multiplier * ((package_body_length) / 2.0),
02637 multiplier * ((package_body_width) / 2.0),
02638 multiplier * silkscreen_line_width
02639 );
02640 }
02641
02642 if (silkscreen_indicate_1)
02643 {
02644 fprintf (fp, "# Write a pin 1 marker on the silkscreen\n");
02645
02646 write_element_line
02647 (
02648 multiplier * (-package_body_length / 2.0),
02649 multiplier * ((((-number_of_rows - 1) / 2.0) + 1.5) * pitch_y),
02650 multiplier * (package_body_length / 2.0),
02651 multiplier * ((((-number_of_rows - 1) / 2.0) + 1.5) * pitch_y),
02652 multiplier * (silkscreen_line_width)
02653 );
02654
02655 if (xmax > ((multiplier * package_body_length) / 2))
02656 {
02657 write_element_line
02658 (
02659 multiplier * (-package_body_length / 2.0),
02660 multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y),
02661 (multiplier * (-package_body_length / 2.0)) - 2500 ,
02662 (multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)) - 1250,
02663 multiplier * (silkscreen_line_width)
02664 );
02665 write_element_line
02666 (
02667 multiplier * (-package_body_length / 2.0),
02668 multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y),
02669 (multiplier * (-package_body_length / 2.0)) - 2500 ,
02670 (multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)) + 1250,
02671 multiplier * (silkscreen_line_width)
02672 );
02673 write_element_line
02674 (
02675 (multiplier * (-package_body_length / 2.0)) - 2500 ,
02676 (multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)) - 1250,
02677 (multiplier * (-package_body_length / 2.0)) - 2500 ,
02678 (multiplier * (((-number_of_rows + 1) / 2.0) * pitch_y)) + 1250,
02679 multiplier * (silkscreen_line_width)
02680 );
02681 }
02682 }
02683
02684 if (courtyard)
02685 {
02686 fprintf (fp, "# Write a courtyard on the silkscreen\n");
02687 write_rectangle
02688 (
02689 xmin,
02690 ymin,
02691 xmax,
02692 ymax,
02693 multiplier * courtyard_line_width
02694 );
02695 }
02696
02697 if (attributes_in_footprint)
02698 {
02699 write_attributes ();
02700 }
02701
02702 fprintf (fp, "\n");
02703 fprintf (fp, ")\n");
02704 fclose (fp);
02705
02706 if (verbose)
02707 {
02708 g_log ("", G_LOG_LEVEL_INFO,
02709 _("wrote a footprint for a %s package: %s."),
02710 footprint_type,
02711 footprint_filename);
02712 }
02713 return (EXIT_SUCCESS);
02714 }
02715
02716
02720 static fpw_function_t
02721 con_sil_function_list[] =
02722 {
02723 #if GUI
02724 {
02725 "Set GUI constraints",
02726 con_sil_set_gui_constraints,
02727 "Set GUI constraints for a CON_SIL package",
02728 NULL
02729 },
02730 #endif
02731 {
02732 "Create Package List",
02733 con_sil_create_packages_list,
02734 "Create a list of packages with known values",
02735 NULL
02736 },
02737 {
02738 "DRC CON_SIL Element",
02739 con_sil_drc,
02740 "Design Rule Check for a CON_SIL package",
02741 NULL
02742 },
02743 {
02744 "Default Element Values",
02745 con_sil_get_default_footprint_values,
02746 "Get default values for a selected CON_SIL package",
02747 NULL
02748 },
02749 {
02750 "Write footprint",
02751 con_sil_write_footprint,
02752 "Write footprint for a selected CON_SIL package",
02753 NULL
02754 }
02755 };
02756
02757
02761 REGISTER_FUNCTIONS (con_sil_function_list)
02762
02763
02764
02767 void
02768 con_sil_init ()
02769 {
02770 register_con_sil_function_list ();
02771 }
02772
02773
02774