Jump to content

  •  

CNers have asked about a donation box for Cloudy Nights over the years, so here you go. Donation is not required by any means, so please enjoy your stay.

Photo

Laser-pointer shelf (and solar finder) - 3d printed accessory

  • Please log in to reply
3 replies to this topic

#1 ayryq

ayryq

    Mariner 2

  • *****
  • topic starter
  • Posts: 233
  • Joined: 18 Aug 2017
  • Loc: Western New York

Posted 19 January 2021 - 08:40 AM

I finally designed something which I've been thinking about for a while - a laser pointer "shelf" - normal mounts for green laser pointers hold them well and allow for perfect alignment, but they also trap your laser pointer so you can't use it for other things. The idea here is a shelf with some magnets which holds the laser pointer reasonably securely and reasonably aligned but allows it to be grabbed to point out something without moving the scope.

 

Since the shape was nearly the same, I also incorporated a solar finder. I've designed it to attach to the OTA with magnets or double-sided tape, but I also included the (untested) code for a Synta dovetail foot.

 

Posted at Thingiverse: https://www.thingive...m/thing:4724080

Edit the OpenSCAD code for your OTA, magnets, and GLP.

 

PXL_20210119_132608823.jpg

PXL_20210119_131753233.jpg

//smoothness of curves
$fs=.1;
$fa=.2;

//all the following in mm
insidelength=170;
width=50;   //also the diameter of the big discs

frontthickness=4;
backthickness=1.4;
bottomthickness=3;
wallthickness=3;

magnetdiameter=8.2; //hole might wind up a little small. Should have made this bigger
magnetdepth=2.6; //leave room for glue? should have made this bigger
magnetpositions=[30,70,110]; //measured from the front. Check your pointer to see where it's most magnetic
magnetdisplacement=1; //scooch them up from the corner

cutoutdiameter=13.5; //for the laser
aperturediameter=4; //for the sun

curvedbase=true;
feetwidth=20; //two feet unless this is more than half the length.
tubediameter=230; //ie the diameter of the telescope plus any adhesive
addmagnets=true; //for now assumes the same magnets used above
addelevation=5; //might be helpful if you need to clear a lenscap or something. Negative numbers not tested.

syntabase=false; //don't use this and curvedbase at the same time, I don't think.

magnetcount=len(magnetpositions);
totallength=insidelength+frontthickness+backthickness;

////////synta mount from https://www.thingiverse.com/thing:1549757
mount_x = 30.72337;
mount_y = 10.04072;
mount_z = 40.90000;

tab_x = 13;
tab_y = 5;
tab_z = 5;

edge_length = 10.828059;
// edge_angle = 21.98
edge_angle = acos(mount_y / edge_length);

module mount_bracket() {
    union(){
        // mount
        translate([0,tab_y,0])
        difference() {
            cube([mount_x,mount_y,mount_z],false);
            translate([mount_x,0,-0.01])
                rotate([0,0,edge_angle])
                cube([mount_x,mount_y+1,mount_z+1],false);
            rotate([0,0,-edge_angle])
                translate([-mount_x,0,-0.01])
                cube([mount_x,mount_y+1,mount_z+1],false);
        }

        // tab
        translate([(mount_x - tab_x)/2.0,0,0])
            cube([tab_x,tab_y,tab_z],false);
    }
}
///////synta mount

rotate([-90,0,0]){ //rotate everything for printing

//front disc
difference(){
    translate([-insidelength/2-(frontthickness+backthickness)/2,0,width/2])rotate([0,90,0])cylinder(h=frontthickness,d=width);
union(){
    //cutout cylinder
    translate([-totallength/2-backthickness,width/2-cutoutdiameter/2-wallthickness,bottomthickness+cutoutdiameter/2])
    rotate([0,90,0])
    cylinder(h=totallength,d=cutoutdiameter);
    //cutout cube
    translate([-totallength/2-backthickness,width/2-cutoutdiameter/2-wallthickness,bottomthickness])
    cube([totallength,cutoutdiameter/2,cutoutdiameter/2]);
    //cutout aperture
    translate([-totallength/2-backthickness,0,width/2])
    rotate([0,90,0])
    cylinder(h=totallength,d=aperturediameter);
    }
}
//back disc
translate([insidelength/2+(frontthickness+backthickness)/2-backthickness,0,width/2])rotate([0,90,0])cylinder(h=backthickness,d=width);
translate([totallength/2-backthickness,width/2-width/3,bottomthickness])cube([backthickness,width/3,width/2]); //plug the hole
//fill in the other sides -- this may need to be manually adjusted if the aperture is too large, or the magnets in the bottom intrude
translate([totallength/2-backthickness,-width/2,0])cube([backthickness,width/3,width/2]); 
translate([-totallength/2,-width/2,0])cube([frontthickness,width/3,width/2]); 
//bottom plate - most of this is in case the magnets in the curved feet need to cut into the base
union(){

 if(curvedbase){
    angle=(width/2)/(tubediameter*(3.1415927/180));
    
    difference(){
        union(){
            translate([-totallength/2,-width/2,0])cube([totallength,width,bottomthickness]); //bottom plate
            translate([totallength/2-feetwidth,-width/2,-tubediameter/2])cube([feetwidth,width,tubediameter/2]); //foot
            translate([-totallength/2,-width/2,-tubediameter/2])cube([feetwidth,width,tubediameter/2]); //other foot
        }
        translate([0,0,-addelevation])union(){
        translate([-totallength/2-1,0,-tubediameter/2])rotate([0,90,0])cylinder(d=tubediameter, h=totallength+2); //tube cylinder
        if(addmagnets){ //four holes
            translate([totallength/2-feetwidth/2,0,-tubediameter/2-magnetdepth/2])rotate([angle,0,0])translate([0,0,-tubediameter/2-magnetdepth/2])cylinder(d=magnetdiameter, h=tubediameter+2*magnetdepth);
            translate([totallength/2-feetwidth/2,0,-tubediameter/2-magnetdepth/2])rotate([-angle,0,0])translate([0,0,-tubediameter/2-magnetdepth/2])cylinder(d=magnetdiameter, h=tubediameter+2*magnetdepth);
            translate([-totallength/2+feetwidth/2,0,-tubediameter/2-magnetdepth/2])rotate([angle,0,0])translate([0,0,-tubediameter/2-magnetdepth/2])cylinder(d=magnetdiameter, h=tubediameter+2*magnetdepth);
            translate([-totallength/2+feetwidth/2,0,-tubediameter/2-magnetdepth/2])rotate([-angle,0,0])translate([0,0,-tubediameter/2-magnetdepth/2])cylinder(d=magnetdiameter, h=tubediameter+2*magnetdepth);
        }
        }
}}   
  else{ //just the bottom plate
    translate([-totallength/2,-width/2,0])cube([totallength,width,bottomthickness]);}  
}
//side wall
difference(){
    translate([-totallength/2,width/2-wallthickness,0])cube([totallength,wallthickness,width/2]);
//magnet holes
union(){
    for(i=[0:1:magnetcount-1])
    translate([-insidelength/2+frontthickness/2+magnetpositions[i],width/2-wallthickness+magnetdepth,bottomthickness+magnetdiameter/2+magnetdisplacement])
    rotate([90,0,0])
    cylinder(d=magnetdiameter,h=magnetdepth);
        
}    
}

if(syntabase){
    translate([-mount_z/2,-mount_x/2,-mount_y-tab_y])rotate([90,0,90])mount_bracket();
}

}//rotate

 



#2 gus1989

gus1989

    Sputnik

  • -----
  • Posts: 27
  • Joined: 16 May 2020
  • Loc: Central Indiana

Posted 20 January 2021 - 02:43 PM

This looks like a great idea.  How long have you been testing it?



#3 ayryq

ayryq

    Mariner 2

  • *****
  • topic starter
  • Posts: 233
  • Joined: 18 Aug 2017
  • Loc: Western New York

Posted 20 January 2021 - 02:46 PM

I haven't had it outside yet. Today is the first sunny day in weeks here in western NY, and it's looking to be really cold. So it's just a concept for now! That said, there's no reason it shouldn't work. The main problems could be (1) magnets not strong enough, and (2) alignment too far off.

 

Eric



#4 gus1989

gus1989

    Sputnik

  • -----
  • Posts: 27
  • Joined: 16 May 2020
  • Loc: Central Indiana

Posted 27 January 2021 - 10:28 AM

Looking forward to you trying it out!




CNers have asked about a donation box for Cloudy Nights over the years, so here you go. Donation is not required by any means, so please enjoy your stay.


Recent Topics






Cloudy Nights LLC
Cloudy Nights Sponsor: Astronomics