
//
//  file:   polypropylene_10_ufd_geom
//
//
//  Date:  27-Jan-2023   Original Version of this Geometery
//
//
//
//          Polypropylene  10 uFd  250 Volt   Kemet R75
//         ---------------------------------------------
//
//
//  This is the geometry for the  Kemet R75  10 uFd  250 Volt
//  capacitor for the Disco-Kraken board.
//
//  The dimensions of this capacitor are:
//
//       Lead Spacing of Capacitor:                27.5 mm
//       Length of Capacitor along the board:      32.0 mm
//       Thickness of Capacitor along the board:   22.0 mm
//       Height of the Capacitor above the board:  37.0 mm
//       Diameter of Leads:                        0.80 mm
//
//
//  This geometry will assume that you are bending the leads,
//  in the plane of the leads, by 90 degrees and laying the
//  capacitor flat against the pcb so that it is only 22.0 mm
//  tall above the top surface of the pcb.
//
//  The leads will be along the X axis at  Y = 0.0
//
//  The boday of the capacitor will lay North of the vias
//  for its leads.  For now I will leave  5.0 mm  between
//  the body of the capacitor and the vias for its leads.
//  This gives 5.0 mm for the capacitor leads to make a
//  90 degree bend.
//
//  The center of this geometry is the center spot between
//  its 2 thd terminals  and  all of its body lies to the north.
//


$abort_enable = @false;
$$lock_windows(@on) ;
$$snap_diagonal(@off) ;
$$snap_orthogonal(@off) ;


//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
//
//  This is the  Through Hole  Pin/Pad Stack for
//  this 10 mm diameter electrolytic capacitor:
//
//      Component Lead Diameter      0.80 mm
//
//      Drill Diameter               1.20 mm
//      PAD Diameter                 5.00
//      Solder Mask Opening Dia.     5.10
//      Power Plane Relief Dia.      8.00
//
//  Thus:
//
//      Width of the Donut                1.900 mm
//      Solder Space each side of Lead    0.200
//      Closest Approach of the 2 Pads   22.500       for 27.50 mm lead spacing
//      Power to Pad Edge Relief          1.500
//      Power to Drill Hole Relief        3.400
//

$$create_pin("Term_Cap_Polyprop", @replace);

$$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$Term_Cap_Polyprop']);

$$point_mode(@vertex);

$$attribute( "TERMINAL_THRUHOLE_DEFINITION", "default");

$$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [ 1.20, 0.0 ]);

$$circle( "PAD",         0.0, 0.0,  5.00,  0.0);

$$circle( "SIGNAL",      0.0, 0.0,  5.00,  0.0);

$$circle( "SOLDER_MASK", 0.0, 0.0,  5.10,  0.0);

$$circle( "POWER",       0.0, 0.0,  8.00,  0.0);


//----------------------------------------------------------------------------
//----------------------------------------------------------------------------


$$create_component("Cap_Polyprop", @replace);

$$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'CO$Cap_Polyprop']);

$$point_mode(@vertex);


$$attribute( "COMPONENT_LAYOUT_SURFACE", "both");


$$attribute( "COMPONENT_HEIGHT", "", , @scale , , [17.0, 0.0]);

$$attribute( "COMPONENT_OUTLINE_OVERHANG", "no");


//
//   The Component Placement Outline is a square box
//   just outside the 10 mm diameter of this capacitor.

$$template_line_style( @Solid );

$$initial([    16.75,   3.00  ], , @nosnap );
$$terminal([  -16.75,   3.00  ] );
$$terminal([  -16.75,  -3.00  ] );
$$terminal([   16.75,  -3.00  ] );

$$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale );



//  Draw the Silkscreen

//  Draw a bpx around the body of the capacitor.

$$path( "SILKSCREEN", 0.25 , , [ -16.80,   5.00,      16.80,   5.00 ] );
$$path( "SILKSCREEN", 0.25 , , [ -16.80,  42.00,      16.80,  42.00 ] );

$$path( "SILKSCREEN", 0.25 , , [ -16.80,  42.00,     -16.80,   5.00 ] );
$$path( "SILKSCREEN", 0.25 , , [  16.80,  42.00,      16.80,   5.00 ] );

//  Draw little extensions over each of the 2 terminals

$$path( "SILKSCREEN", 0.25 , , [ -16.80,   5.00,     -16.80,  -3.00 ] );
$$path( "SILKSCREEN", 0.25 , , [ -16.80,  -3.00,     -10.70,  -3.00 ] );
$$path( "SILKSCREEN", 0.25 , , [ -10.70,   5.00,     -10.70,  -3.00 ] );

$$path( "SILKSCREEN", 0.25 , , [  16.80,   5.00,      16.80,  -3.00 ] );
$$path( "SILKSCREEN", 0.25 , , [  16.80,  -3.00,      10.70,  -3.00 ] );
$$path( "SILKSCREEN", 0.25 , , [  10.70,   5.00,      10.70,  -3.00 ] );



//  Draw Silkscreen Reference Designators

$$text( "SILKSCREEN_1", "^$ref", 0.0, 0.0, 2.2, @CC, 0, 0.7, 0.20, "std", "None", 0.0, 0.0 );
$$text( "SILKSCREEN_2", "^$ref", 0.0, 0.0, 2.2, @CC, 0, 0.7, 0.20, "std", "None", 0.0, 0.0 );

//  End of the Silkscreen



//  The component pins

$$attribute( "COMPONENT_PIN_DEFINITION",    "1", , @scale , , [ -13.75, 0.00 ]);
$$attribute( "COMPONENT_PADSTACK_OVERRIDE", "1, Term_Cap_Polyprop");

$$attribute( "COMPONENT_PIN_DEFINITION",    "2", , @scale , , [  13.75, 0.00 ]);
$$attribute( "COMPONENT_PADSTACK_OVERRIDE", "2, Term_Cap_Polyprop");



