include <../modules/bidirectional_idt.scad> include <../modules/parameter_text.scad> include <../modules/wafer.scad> // ================= README ================= // these are the normal parameters used by // each one of the layout scripts // however they do dont directly use them // and instead have thier own copy // // this was done in order to have more control // over each of the scripts themsevels // allowing each to have even more parameters // and having them show up in the open scad // parameters window // ================= README ================= // ================= openscad prams ================= // min angle $fa = 0.1; // min size $fs = 0.01; // ================= openscad prams ================= // ================= meta ================= // version number of the current script SCRIPT_VERSION="0.0.1"; // font for layout FONT="Ubuntu Sans Mono:style=Regular"; // the test number ref number for this set of IDTs test_number = 1; // this is needed due to the min size value // a pre scaler for the given values scale_unit = 1e3; // ================= meta ================= // ================= IDT ================= // the underlying substrate substrate = "SI"; // linbo // the acoustic wave speed in the substrate c = 3992.0; // si // c = 3159.0; // the target frequency of the IDT freq = 10.0e6; // the distance between the input and output IDT // should be between 100-200 distance = 50; // the number of fingers the IDT has n_fingers = 50; // the length of the figure or aperture should be 50-70 finger_length = 50; // the gap between both sides of the IDT (should be used for tweaking) gap = 0; // the thickness of the wire the connects all the fingers thickness = 0; // adds an ID number to an IDT, useful if you have multiple on a wafer has_id_number = false; // ================= IDT ================= // ================= bond pad ================= // the length of the bond pad leg from the edge of the IDT to the center of the bond pad leg_length = 0.003; // the width of the leg leg_width = 0.00001875; // the angle the leg comes off from the IDT, // positive angle means the leg is angled away // negitive angle means the leg is angled inwards leg_angle = 10; // the size of the bond pad size = 0.002; // the shape of the bond pad (not implemented) bond_pad_shape = "square"; // ================= bond pad ================= // ================= text ================= info_block_offset_x=25; info_block_offset_y=10; // total scale of infoblock info_block_scale=0.3; // the text size of the heading in the info block title_text_size = 4; // the size of all the sub items in the info block prop_text_size = 2.5; // the size of the ID numbers in on the IDTS id_text_size = 1; // ================= text ================= // ================= wafers ================= // the size of the wafer in inchs (why inch and not metric like everything else because its standard) wafer_size_inch = 4; // ================= wafers ================= // ================= IDT Pos ================= // the x offset of the IDT from the center idt_x_offset = 0; // the y offset of the IDT from the center idt_y_offset = 0; // ================= IDT Pos ================= module params() { parameter_text( str("IDT ", substrate, "#", test_number), [ str("c (ms): ", c), str("freq (Hz): ", freq), str("distance : ", distance), str("n_fingers : ", n_fingers), str("finger_length : ", finger_length), str("gap : ", gap), str("thickness : ", thickness), str("leg_length : ", leg_length), str("leg_angle : ", leg_angle), str("size : ", size), str("feat. size (mm): ", (c/freq)*1e3 / 4), str("version : ", SCRIPT_VERSION) ] ); } translate([info_block_offset_x, -info_block_offset_y, 0]) scale([info_block_scale, info_block_scale, info_block_scale]) params(); wafer(wafer_size_inch*25.4); translate([0, 0, 0]) bi_directional_idt( c, freq, n_fingers, distance, finger_length, gap, thickness, post_scale=scale_unit, has_bond_pads = true, bond_pad_angle = leg_angle, bond_pad_leg_width = leg_width, bond_pad_leg_length = leg_length, bond_pad_size = size, center = true, echo_stats = true );