Cloning and for loops wheel hub and spoke assembly g1 cube5 g2cylinder120 g3cylinder120 g4cylinder202 g5cylinder102 g2rotateX90 g3rotateZ90 gg4differenceg5 ID: 459721
Download Presentation The PPT/PDF document "CADjs" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
CADjsCloning and for loopsSlide2
wheel, hub and spoke assemblyg1 = cube(5);g2=cylinder(1,20);g3=cylinder(1,20);
g4=cylinder(20,2);g5=cylinder(10,2);
g2.rotateX(90);
g3.rotateZ(90);
g=g4.difference(g5);
g=
g.union
(g1);
g=
g.union
(g2);
g=
g.union
(g3
);
g.display
();
Slide3
QuestionSlide4
Idea of Cloningg1 = cylinder(0.5,0.5);g1.display();Want to create another similar cylinders, but translatedg1 = cylinder(0.5,0.5);g1.display();g2 = g1;//make a copy?g2.translate(1);//translate g2
g2 = g1; … does not make copyg2 is exactly the same as g1Translating g2 will also translate g1
g1 =
cylinder(0.5,0.5);
g1.display
();
g2 =
g1.clone();//
makes a true copy
g2.translate(1);//
translate g2, but not g1
g2.display();Slide5
Idea of Copiesg1 = cylinder(0.5,0.5);g1.display();g2 = g1.clone();//makes a true copyg2.translate(1);// translate g2, but not g1g2.display();g3 = g1.clone();//g3.translate(2);g3.display();
… can continue, but better to use for loops!Slide6
for loopsSlide7
for (i = 0;i < 5;i = i+1) {}
‘for’ loop
Start at
i
= 0
Stop when
i
= 5
Increase
i
by 1 every loop
How many times is the loop executed?
i
=0
i
= 1
i
= 2
i
= 3
i
= 4
(stop)Slide8
‘for’ loop with BeeperresetBeeper();for (i = 0; i < 5; i= i+1){ beep();}resetBeeper();for (i = 0; i < 5;
i++){ beep();}
Increase
i
by 1 every loopSlide9
‘for’ loop with BeeperresetBeeper();for (i = 0; i <= 10; i= i+2){ beep();}How many beeps?
resetBeeper();for (i = -5; i <2; i
= i+1){
beep();
}
How many beeps?Slide10
‘for’ loop with textGeomfor (i = 0; i < 5; i++){ textGeom(i).translateX(i).display();}
for (i = -2; i <= 2; i
= i+2){
textGeom
(
i
).
translateX
(
i
).display();
}Slide11
‘for’ loop with textGeomfor (i = 0; i < 5; i++){ textGeom(i).translateX(i).display();}
for (i = 0;
i
< 5;
i
++){
textGeom
(2*
i
).
translateX
(
i).display();
}
for
(i = 0; i
< 5;
i
++){
textGeom
(2*
i
).
translateX
(2*
i
).display();
}Slide12
For loop with geometryUse one cylinder and copy/moveg = cylinder(.5,.5);for (i = 0;i < 5;i = i+1) { g1 = g.clone(); g1.translateX(i).display();
}
Union with a baseSlide13
For loop with geometryUnion with a basebase = cube(5,0.2,1).translateX(2.);g = cylinder(.5,.5);for (i = 0;i < 5;i = i+1) { g1 = g.clone(); base = base.union(g1.translateX(i
));}base.display();Slide14
Union ‘for’ loopg = cube(.5,.5);g1 = g.clone();for (
i = 0;i < 36;i
++) {
g1.rotateZ(10);
g =
g.union
(g1);
}
g.display
();Slide15
Union ‘for’ loop & differenceg = cube(.5,.5);g1 = g.clone();g2=cylinder(1,.45).rotateX(90);for (i = 0;i < 36;i
++) { g1.rotateZ(10); g =
g.union
(g1);
}
g=g2.difference(g)
g.display
();Slide16
Lego modelSlide17
Lego model: Step 1g = cylinder(.5,.5);g1 = g.clone();for (i = 0;i < 3;i++){ g1.translate(2,0,0); g = g.union(g1);}g.display();Slide18
Lego model: Step 2g = cylinder(.5,.5);g1 = g.clone();for (i = 0;i < 3;i++){ g1.translate(2,0,0); g = g.union(g1);}g3=g.clone().translate(0,0,2);g=g.union(g3);g.display();Slide19
Lego model: Step 3g = cylinder(.5,.5);g1 = g.clone();base=cube(8,3,4).translate(3,-1.75,1);for (i = 0;i < 3;i++){ g1.translate(2,0,0); g = g.union(g1);}g3=
g.clone().translate(0,0,2);g=g.union(g3);g=g.union(base);g.display();Slide20
Lego model: Step 4g = cylinder(.5,.5);g1 = g.clone();base=cube(8,3,4).translate(3,-1.75,1);g4=cube(7,4,3).translate(3,-2.5,1);base=base.difference(g4);for (i = 0;i < 3;i++){ g1.translate(2,0,0);
g = g.union(g1);}g3=g.clone().translate(0,0,2);g=g.union(g3);g=
g.union
(base);
g.display
();Slide21
Exercise (Ladder)1.5 length, 0.1 width and heightLength = 10, width = 0.25 (2 pieces, 1.25 apart)Slide22
Exercise (Ladder)Slide23
ExerciseRadius = 1.0, height = 0.25Radius = 0.1, height = 0.5
(centers on a circle of radius 0.8)
8 pinsSlide24
ExerciseN = 6 pinsN = 8 pinsModify your code to handle N pins
N = 3 pinsSlide25
ExercisesetDefaultSegments(24);R = 1.0;H = 0.25;A = cylinder(R,H);r = 0.1;h = 0.5;s = 0.8;pin = cylinder(r,h).translateY(H/2+h/2).translateX(s);N = 8; // number of pinsfor (i = 0; i < N;
i++) { A = A.union(pin); pin = pin.rotateY(360/N);}
A.display
();