Main > Lightguns
Alien extermination guns - ali express - UK - trusted sellers and tips
<< < (7/7)
dgrace:

--- Quote from: PL1 on August 18, 2025, 01:19:23 am ---
--- Quote from: dgrace on August 17, 2025, 11:24:16 pm ---Curious if anyone has any 3d print files they'd be willing to share for the alien gun cover. Thanks in advance.

--- End quote ---
How about this one?
thingiverse.com/thing:3949905


Scott

--- End quote ---

Tried that. Unfortunately it only works with the Aliens extermination plastic control panel from AliExpress.

https://a.aliexpress.com/_mNAVR0V

PL1:
If you can provide precise X-, Y-, and Z-axis measurements for the inside of the cover and how large of a slot you need on the top, it is fairly easy to make a 3d printable shell in OpenSCAD.

Here's the code for a KADE MiniConsole+ cover that I designed six years ago.
- Should be easy to resize and move the holes from the ends to the top/bottom.
- Print the cover halves as oriented.  The hole in the "diving board" tab lines up with the hole on the thin flange of the other half.


--- Code: ---// KADE miniConsole+ case (WIP)

// Variables are estimates -- awaiting accurate measurements.  Port openings have extra wiggle room.

/////////////////////////////
// Define variables
/////////////////////////////
screwdiameter = 4;    // Screw hole diameter
PCBwidth = 60;        // PCB width
PCBlength = 80;       // PCB length
PCBthick = 1.8;       // PCB thickness
componentheight = 22; // Component height
USBoffset = 10;       // Distance from PCB edge to USB
RJ45offset = 8;       // Distance from PCB edge to RJ45
DSUBoffset = 9;       // Distance from PCB edge to left side of D-Sub15
SecHalfMove = 60;     // Y-axis distance to move the second half of the case

// Number of fragments (polygon sides) used to render a full circle.
    $fn = 180; // Default = 180  Typical range = 6 - 360
    // 6 will render a circular hole as a hexagon, 8 will render a circular hole as an octagon.
    // Lower the number for faster rendering, raise the number for smoother rendering.

/////////////////////////////
//  Make the part
/////////////////////////////

/////////////////////////////
// RJ-45 and USB side of case
/////////////////////////////
difference(){ // Case body minus hollow, PCB slot, RJ-45 and USB holes
    // Case body
    hull() {
    translate([PCBwidth+14, 8+PCBthick+componentheight, 1+PCBlength/4])
    cylinder(h=2+PCBlength/2, d=4, center=true);
    // Upper right cylinder

    translate([14, 8+PCBthick+componentheight, 1+PCBlength/4])
    cylinder(h=2+PCBlength/2, d=4, center=true);
    // Upper left cylinder

    translate([PCBwidth+14, 2, 1+PCBlength/4])
    cube([4,4,2+PCBlength/2], center=true);
    // Lower right cube

    translate([14, 2, 1+PCBlength/4])
    cube([4,4,2+PCBlength/2], center=true);
    // Lower left cube

    } // End case body
//
// Holes to remove from case
    // Upper hollow
    color("green") translate([14+PCBwidth/2, 6+(PCBthick+componentheight)/2, 5+PCBlength/4])
    cube([PCBwidth-6,PCBthick+componentheight,5+PCBlength/2], center=true);

    // Lower hollow
    color("green") translate([14+PCBwidth/2, 4, 5+PCBlength/4])
    cube([PCBwidth-6,3,5+PCBlength/2], center=true);

    // PCB slot
    color("white") translate([14+PCBwidth/2, 4+PCBthick, 5+PCBlength/4])
    cube([PCBwidth+0.2,PCBthick,5+PCBlength/2], center=true);

    // USB hole
    color("blue") translate([7+PCBwidth-USBoffset, 9.7+(PCBthick*1.5), 5])
    cube([14,12,12], center=true);

    // RJ45 hole
    color("brown") translate([22+RJ45offset, 11.7+(PCBthick*1.5), 5])
    cube([16,16,12], center=true);

     } // End case body minus hollow, PCB slot, RJ-45 and USB holes
//
difference(){ // Left mount tab minus screw hole
    // Left mount tab
    translate([6, 1.5, 1+PCBlength/4])
    cube([12, 3, 2+PCBlength/2], center=true);

    // Screw hole
    translate([6, 2.5, (2+PCBlength/2)-(PCBlength/2-8)])
    rotate([90, 0, 0])
    cylinder(h=10, d=screwdiameter, center=true);

} // End left mount tab minus screw hole
//
difference(){ // Right lower mount tab minus screw hole
    // Right lower mount tab
    translate([22+PCBwidth, 1.5, 1+PCBlength/4])
    cube([12, 3, 2+PCBlength/2], center=true);

    // Screw hole
    translate([22+PCBwidth, 2.5, (2+PCBlength/2)-(PCBlength/2-8)])
    rotate([90, 0, 0])
    cylinder(h=10, d=screwdiameter, center=true);

} // End right lower mount tab minus screw hole
//
difference(){ // Right upper mount tab minus screw holes
    // Right upper mount tab
    translate([22+PCBwidth, 4.5, 2+PCBlength/2])
    cube([12, 3, 4+PCBlength], center=true);

    // Screw hole 1
    translate([22+PCBwidth, 2.5, (2+PCBlength/2)-(PCBlength/2-8)])
    rotate([90, 0, 0])
    cylinder(h=10, d=screwdiameter, center=true);

    // Screw hole 2
    translate([22+PCBwidth, 2.5, (2+PCBlength/2)+(PCBlength/2-8)])
    rotate([90, 0, 0])
    cylinder(h=10, d=screwdiameter, center=true);

} // End right lower mount tab minus screw holes
//
/////////////////////////////
// DSub15 side of case
/////////////////////////////
difference(){ // Case body minus hollow, PCB slot, and DSub15 hole
    // Case body
    hull() {
    translate([PCBwidth+14, 8+PCBthick+componentheight+SecHalfMove, 1+PCBlength/4])
    cylinder(h=2+PCBlength/2, d=4, center=true);
    // Upper right cylinder

    translate([14, 8+PCBthick+componentheight+SecHalfMove, 1+PCBlength/4])
    cylinder(h=2+PCBlength/2, d=4, center=true);
    // Upper left cylinder

    translate([PCBwidth+14, 2+SecHalfMove, 1+PCBlength/4])
    cube([4,4,2+PCBlength/2], center=true);
    // Lower right cube

    translate([14, 2+SecHalfMove, 1+PCBlength/4])
    cube([4,4,2+PCBlength/2], center=true);
    // Lower left cube

    } // End case body
//
// Holes to remove from case
    // Upper hollow
    color("green") translate([14+PCBwidth/2, 6+(PCBthick+componentheight)/2+SecHalfMove, 5+PCBlength/4])
    cube([PCBwidth-6,PCBthick+componentheight,5+PCBlength/2], center=true);

    // Lower hollow
    color("green") translate([14+PCBwidth/2, 4+SecHalfMove, 5+PCBlength/4])
    cube([PCBwidth-6,3,5+PCBlength/2], center=true);

    // PCB slot
    color("white") translate([14+PCBwidth/2, 4+PCBthick+SecHalfMove, 5+PCBlength/4])
    cube([PCBwidth+0.2,PCBthick,5+PCBlength/2], center=true);

    // DSub15 hole
    color("blue") translate([-6+PCBwidth-DSUBoffset, 10.7+(PCBthick*1.5)+SecHalfMove, 5])
    cube([40,14,12], center=true);

     } // End case body minus hollow, PCB slot, and DSub15 hole
//
difference(){ // Left mount tab minus screw hole
    // Left mount tab
    translate([6, 1.5+SecHalfMove, 1+PCBlength/4])
    cube([12, 3, 2+PCBlength/2], center=true);

    // Screw hole
    translate([6, 2.5+SecHalfMove, (2+PCBlength/2)-(PCBlength/2-8)])
    rotate([90, 0, 0])
    cylinder(h=10, d=screwdiameter, center=true);

} // End left mount tab minus screw hole
//
difference(){ // Right lower mount tab minus screw hole
    // Right lower mount tab
    translate([22+PCBwidth, 1.5+SecHalfMove, 1+PCBlength/4])
    cube([12, 3, 2+PCBlength/2], center=true);

    // Screw hole
    translate([22+PCBwidth, 2.5+SecHalfMove, (2+PCBlength/2)-(PCBlength/2-8)])
    rotate([90, 0, 0])
    cylinder(h=10, d=screwdiameter, center=true);

} // End right lower mount tab minus screw hole
//
difference(){ // Right upper mount tab minus screw holes
    // Right upper mount tab
    translate([22+PCBwidth, 4.5+SecHalfMove, 2+PCBlength/2])
    cube([12, 3, 4+PCBlength], center=true);

    // Screw hole 1
    translate([22+PCBwidth, 2.5+SecHalfMove, (2+PCBlength/2)-(PCBlength/2-8)])
    rotate([90, 0, 0])
    cylinder(h=10, d=screwdiameter, center=true);

    // Screw hole 2
    translate([22+PCBwidth, 2.5+SecHalfMove, (2+PCBlength/2)+(PCBlength/2-8)])
    rotate([90, 0, 0])
    cylinder(h=10, d=screwdiameter, center=true);

} // End right upper mount tab minus screw holes
//

--- End code ---




Scott
Howard_Casto:
It feels like 3d printing might be overkill.   Most positional guns have a simple metal cover, usually a rectangle with the corners lopped off.
Navigation
Message Index
Previous page

Go to full version