Dr.RobotLabs Repstrap Openscad Library
by htsrjdrouse, published
When I have tried to make repstraps in past I get stuck not having openscads sometimes.
I updated this a little to improve the stability of the box and to make it more square (corner_block(), angled_alignments(), and xymotormount_support().
So wanted to make a totally openscad assembly like seeing it all together while building.
This is a openscad function library listing parts of repstrap that was put together for doing liquid handling tasks and automated microscope imaging. I like to think its an appropriate design for doing these things but I am sure it will change as things go.
The idea behind the openscad library is that you sort of put together the robot virtually.
Recent Commentsview all
Liked Byview all
Give a Shout Out
Here is list of openscads thus far. We are still adding features one thing is that it needs corner brackets to make stronger like so http://www.thingiverse.com/thing:39591 and I want two belt clamps on axis sliders ...
Also I do not include the pulleys, probably have to import them as .stls since maybe too CPU intensive. That is a bummer about openscad but the good thing is that its totally parametric.
It may be my inexperience but not all the objects render all in one openscad for example the xymotormount() doesn't render unless you color it (#xymotormount()). I have seen this for the cross_slider_assy(). So if you want to see them, just call the object individually. Eventually when this is in better shape we will export the .stls and maybe show the .stls assembled.
You can see the whole assembly if you do something like this.
Open a new openscad, call the library like so:
include .. your dr.robotlab_repstrap.scad library complete_assembly();
Also made a web tool for editing gcode for liquid handling: https://github.com/htsrjdrouse/Flask-microArray-gcode. So you make gcode then run it in pronterface.
--module-- anglecornersupport() - top corner support used to cap the tslot end tooaxis_slider_assay() - is the total axis slider assembly axis_slider_base() - is the base of the total slider assembly axis_slider_beltplate() - is the plate for screwing timing belt onto the axis slider connected to axis slider axis_slider_plate() - is the plate for screwing timing belt onto the axis slider not connected to axis slider axis_slider() - is axis slider base part not including bearing holder axis_slider_beltclamp() - is the one side of axis slider assembly that is used for clamping timing belt axis_slider_shaft() - is the shaft part of the axis slider bearingmodel - just to help visualize the rod alignments box(w,h,d) - basic box library (its from thingiverse) BottomRodHolder() - bottom smooth rod support it has a m4locknut for clamping BottomThreadRodHolder() - bottom thread rod support Bearingholder() - sized for holding a 608 bearing for Z drive Bearingholder() - sized for holding a 608 bearing for XY drive .. the original holder which was too loose for the smooth rods bearing() - LM8UU bushing holder inspired/derived from: http://www.thingiverse.com/thing:14814. Note: LM8UU_dia varies sometimes I have 15.2 other times 16.2 //for cross slider use 16.2 this is current ... because I have different bearings ... 16.2 for axis sliders. mount_plate() works with it.
CornerscadB(cx,cy,cz) - Part B for the top corner brackets (both for threaded and smooth) CornerscadA() - Part A for the top corner brackets (both for threaded) cornerelement() - calls CornerscadA and CornerscadB for rendering the corner for threaded rod also calls the Bearingholder complete_assembly(x,y,z,br) - is the complete assembly with all parts on it cornersupport() - top corner support right next to anglecornersupport() cubeassembly() - is the tslot assembly of the whole instrument carriagebearing() - is the linear bearing holder that fits with the cross slider plate carriagebearing_h() - is the linear bearing holder that fits with the cross slider plate that is 9mm higher cross_slider_assy() - is the cross slider assembly with bearings fitting in crossslider_coupler() - is the part that is connected to the cross_slider_plate that interfaces with the carriagebearing cross_slider_plate() - is the cross slider plate which the extruder / dispenser can be connected to dancross_slider() - calls Dan's original cross slider plate dan_m3locknut(l) - is m3 lock nut extrusioncube() - calls the extruded aluminum part footbase() - adjustable feet on corners of instrument hexagon(height, depth) - basic hexagon library (its from thingiverse) m4locknut() - locknut for clamping things on a 8mm smooth rod motormount() - z motor mount just the part that holds the motor (could be used for xy motors) MotorBottomRodHolder() - is the clamp that attaches to 20mm aluminum extrusion MotorBottomRodHolder() - for holding threaded rod for z drive assembly mount_plate() - is part of LM8UU set up axis_slider_beltclamp2() - is the other side of the axis slider assembly that is used for clamping timing belt roundedBox(size, radius, sidesonly) - is Marius Kintel roundedBox library smoothCornerscadA() - Part A for the top corner brackets (both for smooth) smoothcornerelement() - calls smoothCornerscadA and CornerscadB for smooth rod also calls the m4locknut shaft() - is part of the z bed thread holder that holds the platform TopXYBearingHolderBracket() - sized for holding a 608 bearing for Z drive. This was used for the xy a 608 bearing for XY drive and its the module that you call when you want to see the whole assembly This one was tricky because the lower bearing was tight fit at 11.2 but the upper bearing loose so created another function XYBearing for this tigher fit this maybe because one side is printed in x direction and other side printed in y direction TopXYBearingHolderBracket() - sized for holding a 608 bearing for Z drive. This was used for the xy a 608 bearing for XY drive and its the module that you call when you want to see the whole assembly This one was tricky because the lower bearing was tight fit at 11.2 but the upper bearing loose so created another function XYBearing for this tigher fit this maybe because one side is printed in x direction and other side printed in y direction TopXYLowerBearingHolderBracket - this is the open bracket holder so that means its just easier to move. You need to print 2 per corner and they have to be mirror images so you use this in OpenScad command -- mirror([0,0,1]) tslot20innerbracket() - is a bottom corner support teardrop(radius, length, angle) - creates a teardrop shaped hole tslot - Nathan Zadoks 2011 tslot library tslot20(length,nut) - is part of Nathan Zadoks 2011 tslot library tslot30(length,nut) - is part of Nathan Zadoks 2011 tslot library tslot30_3060(length,nut) - is part of Nathan Zadoks 2011 tslot library XYBearingholder() - sized for holding a 608 bearing for XY drive xymotormount() - this is the xy motor mount. For some reason I have to color them to see them (#xymotormount()) zbedthread() - z bracket that travels down threaded rod for holding bed zbedclampsmooth() - z bracket that travels down smooth rod for holding bed zbedslot() - this is a cooler z bed holder for holding tslots