Difference between revisions of "Objects"
(created entry) 
(No difference)

Revision as of 15:35, 10 September 2019
This is a collection of ImplicitCAD files for an assortment of objects. Enjoy! dna.txt  July 22, 2019 dnaa.escad, rnaa.escad, etc. print schematic but fairly realistic puzzle piecelike representations of the nucleotides that make up DNA & RNA. They can be printed in various sizes; the standard size (n=1) is very roughly 20 x 25 x 12 mm while double size (n=2) is twice that. The size should not be set below n=1 but can be made as large as can be printed. A standard size piece takes roughly 5 minutes to print making them good demonstration & test objects; print time goes up as roughly the square of the size. The following files have been prepared (all files should be printed with Platform adhesion type=None; all files with builtin support (the support parameters may need to be adjusted individually for different printers) should be printed with Support type=None; all others should be printed with Support type=Touching buildplate unless otherwise stated): dnaa  deoxyadenosine monophosphate: dnaa.escad  default is double size, set n=1 for standard size dnaas.escad  builtin support, default is standard, set n=2 for double size dnaa1Rfs.escad  builtin support, standard size fudged for HacDC's miscalibrated Rostock dnaa2Rf.escad  double size fudged for Rostock dnaa1s.stl  standard size with builtin support dnaa2.stl  double size dnaa1Rfs.stl  standard size with support for Rostock dnaa2Rf.stl  double size for Rostock dnac  deoxycytidine monophosphate: dnac.escad  default is double size, set n=1 for standard dnacs.escad  with support, default is standard, set n=2 for double dnac1Rfs.escad  standard size with support for Rostock dnac2Rf.escad  double size for Rostock dnac1s.stl  standard size with support dnac2.stl  double size dnac1Rfs.stl  standard size with support for Rostock dnac2Rf.stl  double size for Rostock dnag  deoxyguanosine monophosphate: dnag.escad  no support used, print with Support type=None, default is standard size, set n=2 for double dnag1Rf.escad  print with Support type=None, standard size for Rostock dnag2Rf.escad  print with Support type=None, double size for Rostock dnag1.stl  print with Support type=None, standard size dnag2.stl  print with Support type=None, double size dnag1Rf.stl  print with Support type=None, standard size for Rostock dnag2Rf.stl  print with Support type=None, double size for Rostock dnat  thymidine monophosphate: dnat.escad  default is double size, set n=1 for standard dnats.escad  with support, default is standard size, set n=2 for double dnat1Rfs.escad  standard size with support for Rostock dnat2Rf.escad  double size for Rostock dnat1s.stl  standard size with support dnat2.stl  double size dnat1Rfs.stl  standard size with support for Rostock dnat2Rf.stl  double size for Rostock dnat1Rfs190.gcode  standard size readytoprint gcode for Rostock, printhead temperature=190 C dnat1Rfs195.gcode  standard size gcode for Rostock, temperature=195 C dnat1Rfs200.gcode  standard size gcode for Rostock, temperature=200 C dnat1Rfs205.gcode  standard size gcode for Rostock, temperature=205 C dnat1Rfs210.gcode  standard size gcode for Rostock, temperature=210 C dnat1Rfs215.gcode  standard size gcode for Rostock, temperature=215 C rnaa  adenosine monophosphate: rnaa.escad  default is double size, set n=1 for standard rnaas.escad  with support, default is standard size, set n=2 for double rnaa1Rfs.escad  standard size with support for Rostock rnaa2Rf.escad  double size for Rostock rnaa1s.stl  standard size with support rnaa2.stldouble size rnaa1Rfs.stl  standard size with support for Rostock rnaa2Rf.stl  double size for Rostock rnac  cytidine monophosphate: rnac.escad  default is double size, set n=1 for standard rnacs.escad  with support, default is standard size, set n=2 for double rnac1Rfs.escad  standard size with support for Rostock rnac2Rf.escad  double size for Rostock rnac1s.stl  standard size with support rnac2.stl  double size rnac1Rfs.stl  standard size with support for Rostock rnac2Rf.stl  double size for Rostock rnag  guanosine monophosphate: rnag.escad  no support used, print with Support type=None, default is standard size, set n=2 for double rnag1Rf.escad  print with Support type=None, standard size for Rostock rnag2Rf.escad  print with Support type=None, double size for Rostock rnag1.stl  print with Support type=None, standard size rnag2.stl  print with Support type=None, double size rnag1Rf.stl  print with Support type=None, standard size for Rostock rnag2Rf.stl  print with Support type=None, double size for Rostock rnau  uridine monophosphate: rnau.escad  default is double size, set n=1 for standard rnaus.escad  with support, default is standard size, set n=2 for double rnau1Rfs.escad  standard size with support for Rostock rnau2Rf.escad  double size for Rostock rnau1s.stl  standard size with support rnau2.stl  double size rnau1Rfs.stl  standard size with support for Rostock rnau2Rf.stl  double size for Rostock Modified bases: rnat  ribosylthymine monophosphate: rnat.escad  default is double size, set n=1 for standard rnats.escad  with support, default is standard size, set n=2 for double rnat1Rfs.escad  standard size with support for Rostock rnat2Rf.escad  double size for Rostock rnat1s.stl  standard size with support rnat2.stl  double size rnat1Rfs.stl  standard size with support for Rostock rnat2Rf.stl  double size for Rostock rnapsu  pseudouridine monophosphate: rnapsu.escad  default is double size, set n=1 for standard rnapsus.escad  with support, default is standard size,set n=2 for double rnapsu1Rfs.escad  standard size with support for Rostock rnapsu2Rf.escad  double size for Rostock rnapsu1s.stl  standard size with support rnapsu2.stl  double size rnapsu1Rfs.stl  standard size with support for Rostock rnapsu2Rf.stl  double size for Rostock rnai  inosine monophosphate: rnai.escad  default is double size, set n=1 for standard rnais.escad  with support, default is standard size, set n=2 for double rnai1Rfs.escad  standard size with support for Rostock rnai2Rf.escad  double size for Rostock rnai1s.stl  standard size with support rnai2.stl  double size rnai1Rfs.stl  standard size with support for Rostock rnai2Rf.stl  double size for Rostock rnam1i  1methylinosine monophosphate rnam1i.escad  default is double size, set n=1 for standard rnam1is.escad  with support, default is standard size, set n=2 for double rnam1i1Rfs.escad  standard size with support for Rostock rnam1i2Rf.escad  double size for Rostock rnam1i1s.stl  standard size with support rnam1i2.stl  double size rnam1i1Rfs.stl  standard size with support for Rostock rnam1i2Rf.stl  double size for Rostock rnacm  2'Omethylcytidine monophosphate: rnacm.escad  default is double size, set n=1 for standard rnacms.escad  with support, default is standard size, set n=2 for double rnacm1Rfs.escad  standard size with support for Rostock rnacm2Rf.escad  double size for Rostock rnacm1s.stl  standard size with support rnacm2.stl  double size rnacm1Rfs.stl  standard size with support for Rostock rnacm2Rf.stl  double size for Rostock Other: ddC  dideoxycytidine monophosphate ddC.escad  default is double size, set n=1 for standard ddCs.escad  with support, default is standard size, set n=2 for double ddC1Rfs.escad  standard with support for Rostock ddC2Rf.escad  double size for Rostock ddC1s.stl  standard size with support ddC2.stl  double size ddC1Rfs.stl  standard size with support for Rostock ddC2Rf.stl  double size for Rostock Printing the various dnat1Rfs###.gcode files can be used to determine optimum printhead temperature for the current Rostock filament; just compare the print quality of the pieces & use whatever temperature works best. Warning: The pieces are a choking hazard. Nucleic acids are long chains of nucleotides; each piece represents a nucleotide. Nucleotides are made up of a base (the vertical part; adenine, cytosine, guanine, & thymine in DNA; adenine, cytosine, guanine, & uracil in RNA), a sugar (the flat part except for the knob; deoxyribose in DNA, ribose in RNA), & a phosphate (the knob). The base joined to the sugar without the phosphate is known as a nucleoside (deoxyadenosine (dA), deoxycytidine (dC), deoxyguanosine (dG), & thymidine (T) for DNA, adenosine (A), cytidine (C), guanosine (G), & uridine (U) for RNA (yes, adenine & guanine are bases while adenosine & guanosine are nucleosides but inconsistently cytosine is a base while cytidine is a nucleoside)). The nucleotides are called deoxyadenosine monophosphate (dAMP), deoxycytidine monophosphate (dCMP), etc. In DNA & RNA G pairs with C while A pairs with T or U; note how the vertical zigzags of the bases fit together (DNA & RNA can pair with themselves or each other in largely the same way). DNA stores information and is normally double stranded (the famous double helix). RNA is used to transfer information or is structural and is usually single stranded (with many small doublestranded regions where it pairs with another part of itself). The model correctly shows singlestranded RNA & DNA being more flexible than doublestranded, but is far too rigid in both cases. With these pieces it is possible to explain some features of nucleic acids: It is easy to see how doublestranded DNA can replicate  just separate the two strands and make new strands by selecting the pieces that fit together correctly. Since G pairs with C & A pairs with T doublestranded DNA contains the same amount of G & C and the same amount of A & T (this does not apply to singlestranded nucleic acids (i.e., most RNA)) but the amount of G & C need not be the same as the amount of A & T. Which do you think would be more stable: DNA with a high G & C content or DNA with a high A & T content? Can you figure out why DNA uses T (which takes the cell more raw material to produce) instead of U (hint: C can occasionally degrade to U)? DNA contains the information for producing proteins made up of 2022 different amino acids strung together in a row (just as DNA is composed of the 4 different nucleotides A, C, G, & T strung together) plus a stop signal. Three consecutive nucleotides in DNA code for 1 amino acid in a protein. Can you figure out why 3 nucleotides are used? Modified nucleic acids that contain 2 or 4 additional nucleotides besides A, C, G, & T have been created. Can you figure out how DNA could have 8 different bases and still replicate normally? DNA & especially RNA can contain modified bases. These range from the simple (thymine instead of uracil in RNA (rT)) to the complex (ms2t6A) to the downright weird (pseudouridine) to the absurd (glutamylQ). Their functions vary & can be mysterious; new modifications are still being found. Modified bases may form unmodified base pairs (U & rT pair with A in the same way), but sometimes form different base pairs (converting A to I causes it to pair with C) or are unable to form any base pair (m1I). Pieces have been made for rT, I, m1I, Cm, & pseudouridine in RNA. I occurs in tRNA at a position that is flexible, allowing it to shift around & form unconventional "wobble" pairs with U & even A in addition to the standard C. Do you see how this might happen? What other wobble pairing might you expect? Also included is the nucleotide form of ddC, a drug used against HIV. How do you think it blocks HIV? It, along with the similar ddA, etc., is also used to determine the sequence of nucleotides in DNA & RNA. Do you see how this can be done (hint: it is possible to separate DNA molecules by length)? module ddC(n,g,t,ll,lt,lh,lx,ly,ls,k,f,tf,cg) /*dideoxycytosine monophosphate (ddCMP), from antiHIV drug ddC & terminator ddCTP used in DNA sequencing; set n=1 for standard size, n=2 for double size; print with Support type=Touching buildplate & Platform adhesion type=None; July 11, 2019*/ {union() {linear_extrude(t) difference() {polygon([(0,3*f),(8*f,3*f),(8*f,0),(10*f,0),(10*f,5*f),(12*f,5*f),(12*f,7*ftf/2),(16*ftf,9*ftf),(16*ftf,9*f),(12*f,11*ftf/2),(7*f,14*f),(3*fcg,14*f),(3*fcg,18*f),(0,18*f)]); /*deoxyribose*/ translate(5*f,3*f) circle(r=3*f); /*socket*/ } translate(1.5*fcg/2,18.5*f,0) cylinder(r=3*fcg,h=t); /*knob(phosphate)*/ translate(12*ftf,9*f,0) rotate([90,0,0]) linear_extrude(tf) polygon([(0,0),(6*fg,0),(6*fg,8*n+g),(10*fg,8*n+g),(10*fg,12*n),(3.464*f,12*n),(0,10*n)]); /*cytidine*/ translate(lx+ll/4,ly+ll/4,t) linear_extrude(lh) difference() {circle(r=ll/4); /*d outer circle*/ circle(r=ll/4lt); /*inner circle*/ } translate(lx+ll/2lt,ly,0) cube(lt,ll,t+lh); /*bar*/ translate(lx+3*ll/4+ls,ly+ll/4,t) linear_extrude(lh) difference() {circle(r=ll/4); /*outer circle 2*/ circle(r=ll/4lt); /*inner circle 2*/ } translate(lx+ll+lslt,ly,0) cube(lt,ll,t+lh); /*bar 2*/ translate(lx+3*ll/2+2*ls,ly+ll/2,t) linear_extrude(lh) difference() {circle(r=ll/2); /*C outer circle*/ circle(r=ll/2lt); /*inner circle*/ polygon([(0,0),(ll,ll),(ll,ll)]); /*R quadrant*/ } } } n=2; /*z size 1=standard,2=double*/ f=n; /*x & y size, normally same as n*/ g=0.25; /*gap*/ t=1.5*n; /*z thickness*/ tf=t; /*x & y thickness, normally same as t*/ ll=4*f; /*letter size*/ lt=0.65*f; /*letter thickness*/ lh=0.7; /*letter height*/ lx=0.5*f; /*letter x*/ ly=7*f; /*letter y*/ ls=1.5*lt; /*letter spacing*/ k=1.118; /*sqrt(5)/2*/ cg=0.12*f; /*circle gap*/ ddC(n,g,t,ll,lt,lh,lx,ly,ls,k,f,tf,cg); module ddCs(n,g,t,ll,lt,lh,lx,ly,ls,k,f,tf,cg,st,sg,sd) /*dideoxycytosine monophosphate (ddCMP), from antiHIV drug ddC & terminator ddCTP used in DNA sequencing; set n=1 for standard size, n=2 for double size; includes support, print with Support type=None & Platform adhesion type=None; July 8, 2019*/ {union() {linear_extrude(t) difference() {polygon([(0,3*f),(8*f,3*f),(8*f,0),(10*f,0),(10*f,5*f),(12*f,5*f),(12*f,7*ftf/2),(16*ftf,9*ftf),(16*ftf,9*f),(12*f,11*ftf/2),(7*f,14*f),(3*fcg,14*f),(3*fcg,18*f),(0,18*f)]); /*deoxyribose*/ translate(5*f,3*f) circle(r=3*f); /*socket*/ } translate(1.5*fcg/2,18.5*f,0) cylinder(r=3*fcg,h=t); /*knob(phosphate)*/ translate(12*ftf,9*f,0) rotate([90,0,0]) linear_extrude(tf) polygon([(0,0),(6*fg,0),(6*fg,8*n+g),(10*fg,8*n+g),(10*fg,12*n),(3.464*f,12*n),(0,10*n)]); /*cytidine*/ translate(lx+ll/4,ly+ll/4,t) linear_extrude(lh) difference() {circle(r=ll/4); /*outer circle*/ circle(r=ll/4lt); /*inner circle*/ } translate(lx+ll/2lt,ly,0) cube(lt,ll,t+lh); /*d bar*/ translate(lx+3*ll/4+ls,ly+ll/4,t) linear_extrude(lh) difference() {circle(r=ll/4); /*outer circle 2*/ circle(r=ll/4lt); /*inner circle 2*/ } translate(lx+ll+lslt,ly,0) cube(lt,ll,t+lh); /*2nd d bar*/ translate(lx+3*ll/2+2*ls,ly+ll/2,t) linear_extrude(lh) difference() {circle(r=ll/2); /*C outer circle*/ circle(r=ll/2lt); /*inner circle*/ polygon([(0,0),(ll,ll),(ll,ll)]); /*R quadrant*/ } translate(12*ftfg,9*ftf,0) linear_extrude(8*n) polygon([(6*f+sd,tf+sg),(10*f+sg,tf+sg),(10*f+sg,sg),(6*f+sd,sg),(6*f+sd,sgst),(10*f+sg+st,sgst),(10*f+sg+st,tf+sg+st),(6*f+sd,tf+st+sg)]); /*support*/ } } n=1; /*z size 1=standard,2=double*/ f=n; /*x & y size, normally same as n*/ g=0.25; /*gap*/ t=1.5*n; /*z thickness*/ tf=t; /*x & y thickness, normally same as t*/ ll=4*f; /*letter size*/ lt=0.65*f; /*letter thickness*/ lh=0.7; /*letter height*/ lx=0.5*f; /*letter x*/ ly=7*f; /*letter y*/ ls=1.5*lt; /*letter spacing*/ k=1.118; /*sqrt(5)/2*/ cg=0.12*f; /*circle gap*/ st=0.6; /*support thickness*/ sg=0.4; /*support gap*/ sd=0.7; /*support distance*/ ddCs(n,g,t,ll,lt,lh,lx,ly,ls,k,f,tf,cg,st,sg,sd); module dnaa(n,g,t,ll,lt,lh,lx,ly,ls,k,f,tf,cg) /*deoxyadenosine monophosphate (dAMP); n=1 is standard, n=2 is double size; print with Support type=Touching buildplate & Platform adhesion type=None; July 11, 2019*/ {union() {linear_extrude(t) difference() {polygon([(0,0),(2.5*f,0),(2.5*f,3*f),(7.5*f,3*f),(7.5*f,0),(10*f,0),(10*f,5*f),(12*f,5*f),(12*f,7*ftf/2),(16*ftf,9*ftf),(16*ftf,9*f),(12*f,11*ftf/2),(7*f,14*f),(3*fcg,14*f),(3*fcg,18*f),(0,18*f)]); /*deoxyribose*/ translate(5*f,3*f) circle(r=3*f); /*socket*/ } translate(1.5*fcg/2,18.5*f,0) cylinder(r=3*fcg,h=t); /*knob(phosphate)*/ translate(12*ftf,9*f,0) rotate([90,0,0]) linear_extrude(tf) polygon([(0,0),(8*f,0),(8*f,4*n),(10*fg,4*n),(10*fg,8*n+g),(14*fg,8*n+g),(14*fg,12*n),(7.464*f,12*n),(4*f,10*n),(0,10*n)]); /*adenine*/ translate(lx/2+ll/4,ly+ll/4,t) linear_extrude(lh) difference() {circle(r=ll/4); /*d outer circle*/ circle(r=ll/4lt); /*inner circle*/ } translate(lx/2+ll/2lt,ly,0) cube(lt,ll,t+lh); /*bar*/ translate(lx/2+ll/2+ls,ly,t) linear_extrude(lh) polygon([(0,0),(k*lt,0),(ll/2,ll2*k*lt),(llk*lt,0),(ll,0),(ll/2,ll)]);/*A square inverted V*/ translate(lx/2+ll/2+ls,ly,t) linear_extrude(lh) polygon([(ll/6+lt/4,ll/3lt/2),(5*ll/6lt/4,ll/3lt/2),(5*ll/6lt/4,ll/3+lt/2),(ll/6+lt/4,ll/3+lt/2)]);/*bar*/ } } n=2; /*z size*/ f=n; /*x & y size,normally same as n*/ g=0.25; /*gap*/ t=1.5*n; /*z thickness*/ tf=t; /*x & y thickness, normally same as t*/ ll=5*f; /*letter size*/ lt=0.65*f; /*letter thickness*/ lh=0.7; /*letter height*/ lx=1.5*f; /*letter x*/ ly=7*f; /*letter y*/ ls=1.5*lt; /*letter spacing*/ k=1.118; /*sqrt(5)/2*/ cg=0.12*f; /*circle gap*/ dnaa(n,g,t,ll,lt,lh,lx,ly,ls,k,f,tf,cg); module dnaas(n,g,t,ll,lt,lh,lx,ly,ls,k,f,tf,cg,st,sg,sd) /*deoxyadenosine monophosphate (dAMP); n=1 is standard, n=2 is double size; includes support, print with Support type=None & Platform adhesion type=None; July 8, 2019*/ {union() {linear_extrude(t) difference() {polygon([(0,0),(2.5*f,0),(2.5*f,3*f),(7.5*f,3*f),(7.5*f,0),(10*f,0),(10*f,5*f),(12*f,5*f),(12*f,7*ftf/2),(16*ftf,9*ftf),(16*ftf,9*f),(12*f,11*ftf/2),(7*f,14*f),(3*fcg,14*f),(3*fcg,18*f),(0,18*f)]); /*deoxyribose*/ translate(5*f,3*f) circle(r=3*f); /*socket*/ } translate(1.5*fcg/2,18.5*f,0) cylinder(r=3*fcg,h=t); /*knob(phosphate)*/ translate(12*ftf,9*f,0) rotate([90,0,0]) linear_extrude(tf) polygon([(0,0),(8*f,0),(8*f,4*n),(10*fg,4*n),(10*fg,8*n+g),(14*fg,8*n+g),(14*fg,12*n),(7.464*f,12*n),(4*f,10*n),(0,10*n)]); /*adenine*/ translate(lx/2+ll/4,ly+ll/4,t) linear_extrude(lh) difference() {circle(r=ll/4); /*d outer circle*/ circle(r=ll/4lt); /*inner circle*/ } translate(lx/2+ll/2lt,ly,0) cube(lt,ll,t+lh); /*bar*/ translate(lx/2+ll/2+ls,ly,t) linear_extrude(lh) polygon([(0,0),(k*lt,0),(ll/2,ll2*k*lt),(llk*lt,0),(ll,0),(ll/2,ll)]);/*A square inverted V*/ translate(lx/2+ll/2+ls,ly,t) linear_extrude(lh) polygon([(ll/6+lt/4,ll/3lt/2),(5*ll/6lt/4,ll/3lt/2),(5*ll/6lt/4,ll/3+lt/2),(ll/6+lt/4,ll/3+lt/2)]);/*bar*/ translate(12*ftfg,9*ftf,0) linear_extrude(4*ng) polygon([(8*f+sd,tf+sg),(11*f+sg,tf+sg),(11*f+sg,sg),(8*f+sd,sg),(8*f+sd,sgst),(11*f+sg+st,sgst),(11*f+sg+st,tf+sg+st),(8*f+sd,tf+sg+st)]); /*support1*/ translate(12*ftfg,9*ftf,0) linear_extrude(8*n) polygon([(10*f+sd,tf+sg),(14*f+sg,tf+sg),(14*f+sg,sg),(10*f+sd,sg),(10*f+sd,sgst),(14*f+sg+st,sgst),(14*f+sg+st,tf+sg+st),(10*f+sd,tf+sg+st)]); /*support2*/ } } n=1; /*z size*/ f=n; /*x & y size,normally same as n*/ g=0.25; /*gap*/ t=1.5*n; /*z thickness*/ tf=t; /*x & y thickness, normally same as t*/ ll=5*f; /*letter size*/ lt=0.65*f; /*letter thickness*/ lh=0.7; /*letter height*/ lx=1.5*f; /*letter x*/ ly=7*f; /*letter y*/ ls=1.5*lt; /*letter spacing*/ k=1.118; /*sqrt(5)/2*/ cg=0.12*f; /*circle gap*/ st=0.6; /*support thickness*/ sg=0.4;/*support gap*/ sd=0.7; /*support distance*/ dnaas(n,g,t,ll,lt,lh,lx,ly,ls,k,f,tf,cg,st,sg,sd);