First Version

  //Lamp cap globe-style quartz crystal.
    //You can adjust the five variables below
    base=44;      //Diameter of base for lamp
    rim=4;            //Length of rim at base
    size=60;        //Diameter of crystal
    facets=6;      //Number of sides (default 6)
    scaling=1.5;  //Scale of crystal length (default 1.5)
    //Don't change variables below here
    half=size/2;
    upper=half-(base/2)+rim;
    $fn=facets;
    difference(){
    union(){
    //outer body
    translate([0,0,0])
    cylinder(h=4+rim,d1=base,d2=base,$fn=100);
    translate([0,0,-(base/2)+rim])
    cylinder(h=half,d1=0,d2=size);
    translate([0,0,upper])
    cylinder(h=size*scaling,d1=size,d2=half*3);
    translate([0,0,upper+size*scaling])
    cylinder(h=(half*3)/2,d1=half*3,d2=0);
    }
    //Inner core.
    translate([0,0,-1])
    cylinder(h=6+rim,d1=base-2,d2=base-2,$fn=100);
    translate([0,0,-(base/2)+rim+1])
    cylinder(h=half-1,d1=0,d2=size-2);
    translate([0,0,upper])
    cylinder(h=size*scaling,d1=size-2,d2=(half*3)-2);
    translate([0,0,upper+size*scaling])
    cylinder(h=(half*3)/2-1.5,d1=(half*3)-2,d2=0);
    translate([-half,-half,-half])
    cube([size,size,half]);
    //x-ray box
    //translate([-80,-80,-50])
    //cube([160,80,280]);
    }

Second Version

  //Lamp cap obelisk quartz crystal.
    //You can adjust the five variables below
    base=40;      //Diameter of base for lamp
    rim=4;            //Length of rim at base
    size=60;        //Diameter of crystal
    scaling=1.5;  //Scale of crystal length (default 1.5)
    facets=6;       //number of faces (default 6)
    //Don't change variables below here
    halfsize=size/2;
    upper=halfsize-(base/2)+rim;
    $fn=facets;
    difference(){
    union(){
    //outer body
    translate([0,0,0])
    cylinder(h=4+rim,d1=base,d2=base,$fn=100);
    translate([0,0,-(base/2)+rim])
    cylinder(h=halfsize,d1=0,d2=size);
    translate([0,0,upper])
    cylinder(h=size*scaling,d1=size,d2=size/2);
    translate([0,0,upper+size*scaling])
    cylinder(h=size/4,d1=size/2,d2=0);
    }
    //Inner core.
    translate([0,0,-1])
    cylinder(h=6+rim,d1=base-2,d2=base-2,$fn=100);
    translate([0,0,-(base/2)+rim+1])
    cylinder(h=halfsize-1,d1=0,d2=size-2);
    translate([0,0,upper])
    cylinder(h=size*scaling,d1=size-2,d2=(size/2)-2);
    translate([0,0,upper+size*scaling])
    cylinder(h=(size/4)-1,d1=(size/2)-2,d2=0);
    translate([-halfsize,-halfsize,-halfsize])
    cube([size,size,halfsize]);
    //x-ray box
    //translate([-80,-80,-50])
    //cube([160,80,280]);
    }