// // File: fpga_mezz_silk_and_holes_geom // // Date: Original Rev. 1-Feb-2018 // Current Rev. 13-Mar-2018 // // // // // // // ROD Mezzanine Silk Only Geometry // ------------------------------------ // // The purpose of this Silk Only FPGA Mezzanine geometry // is to reserve space on the HTM Module layout for the FPGA // Mezzanine card and // // this geometry provides the real mounting screw holes for // the standoffs that support the FPGA Mezzanine. // // - Recall that the FPGA Mezz is 85.0 mm in by 85.0 mm. // // - I will make the 0,0 of this geometry in its Center. // // - This geometry has a minimal Component Outline in its Center. // // - This geom has pins for only the 4 mounting screw holes. // // - For now these mounting screw holes are for M2.5 screws. // // - This component has the Not in BOM attribute. // // - This component is used with 3 of the Samtec connectors // in a Relatively Positioned Component Set to make the // overall footprint for the FPGA Mezzanine card. // // // $abort_enable = @false; $$lock_windows(@on) ; $$snap_diagonal(@off) ; $$snap_orthogonal(@off) ; // //---------------------------------------------------------------------------- // // // Pad-Stack for the M2.5 Mounting Screw Hole // // Including: Silkscreen Keep-Out and Hex Nut // // // 2.70 mm drill // 5.20 mm pad land // 5.30 mm soldermask opening // 4.20 mm plane relief // // --> the thickness of the donut wall is 1.25 mm // --> the drill hole to plane clearance is 0.75 mm $$create_pin("Term_M2_5_FPGA_Mezz", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$Term_M2_5_FPGA_Mezz']); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [ 2.70, 0.0 ]); $$circle( "PAD", 0.0, 0.0, 5.80, 0.0 ); $$circle( "SIGNAL", 0.0, 0.0, 5.80, 0.0 ); $$circle( "SOLDER_MASK", 0.0, 0.0, 5.90, 0.0 ); $$circle( "POWER", 0.0, 0.0, 4.20, 0.0 ); // Draw a Keep-Out circle of 6.10 mm diameter. $$circle( "SILKSCREEN_1", 0.0, 0.0, 6.10, 0.20 ); $$circle( "SILKSCREEN_2", 0.0, 0.0, 6.10, 0.20 ); // Draw a hex nut based on 5.00 mm across flats. $$path( "SILKSCREEN_1", 0.20, , [ 0.00, 2.89, -2.50, 1.44 ]); $$path( "SILKSCREEN_1", 0.20, , [ -2.50, 1.44, -2.50, -1.44 ]); $$path( "SILKSCREEN_1", 0.20, , [ -2.50, -1.44, 0.00, -2.89 ]); $$path( "SILKSCREEN_1", 0.20, , [ 0.00, 2.89, 2.50, 1.44 ]); $$path( "SILKSCREEN_1", 0.20, , [ 2.50, 1.44, 2.50, -1.44 ]); $$path( "SILKSCREEN_1", 0.20, , [ 2.50, -1.44, 0.00, -2.89 ]); $$path( "SILKSCREEN_2", 0.20, , [ 0.00, 2.89, -2.50, 1.44 ]); $$path( "SILKSCREEN_2", 0.20, , [ -2.50, 1.44, -2.50, -1.44 ]); $$path( "SILKSCREEN_2", 0.20, , [ -2.50, -1.44, 0.00, -2.89 ]); $$path( "SILKSCREEN_2", 0.20, , [ 0.00, 2.89, 2.50, 1.44 ]); $$path( "SILKSCREEN_2", 0.20, , [ 2.50, 1.44, 2.50, -1.44 ]); $$path( "SILKSCREEN_2", 0.20, , [ 2.50, -1.44, 0.00, -2.89 ]); // //---------------------------------------------------------------------------- // // // Now start the actual FPGA_Silk Geometry // $$create_component("FPGA_Silk"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'CO$FPGA_Silk'] ); $$point_mode(@vertex); $$attribute( "COMPONENT_HEIGHT", "", , @scale , , [8.0, 0.0]); $$attribute( "COMPONENT_OUTLINE_OVERHANG", "yes"); $$attribute( "COMPONENT_LAYOUT_SURFACE", "both"); $$attribute( "COMPONENT_NOT_IN_BOM" ); // // Component Outline // $$initial([ 1.0, 1.0 ], , @nosnap ); $$terminal([ -1.0, 1.0 ]); $$terminal([ -1.0, -1.0 ]); $$terminal([ 1.0, -1.0 ]); $$terminal([ 1.0, 1.0 ]); $$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale ); // // Silkscreen Outline then Details // $$template_line_style( @Solid ); $$initial([ 43.0, 43.0 ], , @nosnap ); $$terminal([ -43.0, 43.0 ]); $$terminal([ -43.0, -43.0 ]); $$terminal([ 43.0, -43.0 ]); $$terminal([ 43.0, 43.0 ]); $$path( "SILKSCREEN_1", 0.20 ); // // Add, just in silk for now, the 3 mounting holes. // // The hardwware for the standoffs between ROD and Hub // will be size M3. A normal M3 screw head is 6 mm dia. // A standard M3 washer is 7 mm OD. A standard oversize // M3 washer is 9 mm OD. A M3 nut is 5.5 mm across flats. // $$text( "SILKSCREEN_1", "FPGA", 0.0, -4.0, 2.5, @BC, 0, 0.80, 0.20, "std", "None", 0.0, 0.0 ); $$text( "SILKSCREEN_1", "Mezz", 0.0, -8.0, 2.5, @BC, 0, 0.80, 0.20, "std", "None", 0.0, 0.0 ); // Silkscreen End of // // Reference Designator // $$text( "SILKSCREEN_1", "^$ref", 0.0, 0.0, 2.5, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); // // Now the 4 Mounting Screw Pins // $$attribute( "COMPONENT_PIN_DEFINITION", "1", , @scale , , [ 35.56, 35.56 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "1, Term_M2_5_FPGA_Mezz"); $$attribute( "COMPONENT_PIN_DEFINITION", "2", , @scale , , [ -35.56, 35.56 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "2, Term_M2_5_FPGA_Mezz"); $$attribute( "COMPONENT_PIN_DEFINITION", "3", , @scale , , [ -35.56, -35.56 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "3, Term_M2_5_FPGA_Mezz"); $$attribute( "COMPONENT_PIN_DEFINITION", "4", , @scale , , [ 35.56, -57.56 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "4, Term_M2_5_FPGA_Mezz");