Skip to content

Commit bdef953

Browse files
committed
adding finger holes to remove the 9v battery
1 parent 3c91287 commit bdef953

File tree

2 files changed

+56
-18
lines changed

2 files changed

+56
-18
lines changed

ArduinoClassRobot.ino

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,7 @@ void loop() {
4141
left.write(180);
4242
right.write(180);
4343
delay(1000); // wait for a second
44+
left.write(90);
45+
right.write(90);
46+
delay(1000);
4447
}

BaseBot.groovy

Lines changed: 53 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,9 @@ try {
430430
.movez(motor.getMaxZ())
431431
double hornDepth = horn.getTotalZ()
432432
double halfServoDistance = motor.getTotalX()/2
433+
double servoSplit=2
434+
double plateThickness = 2;
435+
double topPlateStandoff = 5.5;
433436
CSG tire = Vitamins.get("oRing", "2inchOD")
434437

435438
CSG wheepCore = new Cylinder(tire.getTotalZ()/2-3, hornDepth).toCSG()
@@ -446,15 +449,15 @@ try {
446449
.movez(-8)
447450
.movey(10)
448451
.roty(90)
449-
.movex(bot.getMinX())
452+
.movex(bot.getMinX()-servoSplit)
450453
.movez(bot.getMinZ()-halfServoDistance)
451454
.movey(5)
452455

453456
Transform rightSide = new Transform()
454457
.movez(-8)
455458
.movey(10)
456459
.roty(-90)
457-
.movex(bot.getMaxX())
460+
.movex(bot.getMaxX()+servoSplit)
458461
.movez(bot.getMinZ()-halfServoDistance)
459462
.movey(5)
460463

@@ -503,8 +506,8 @@ try {
503506
.movey(bot.getMaxY()-caseRounding)
504507
.toXMax()
505508
.movex(bot.getMaxX()-caseRounding)
506-
CSG servoCover = servoBlock.difference(servoBlock.movez(2))
507-
.movez(-2)
509+
CSG servoCover = servoBlock.difference(servoBlock.movez(plateThickness))
510+
.movez(-plateThickness)
508511
double servoCoverSurfaceDistance = servoCover.getMinZ()
509512
double distanceFromBottomToGround= Math.abs(tireMovedR.getMinZ()- servoCoverSurfaceDistance)
510513
CSG Caster= new Sphere(distanceFromBottomToGround,20,30).toCSG()
@@ -519,7 +522,12 @@ try {
519522
.movey(servoBlock.getMinY()+12)
520523
.movez(-5)
521524

522-
525+
CSG threads = Vitamins.get("heatedThreadedInsert", "M3")
526+
CSG threadsBottom = threads
527+
.rotx(180)
528+
.toZMin()
529+
.movez(servoCoverSurfaceDistance+plateThickness)
530+
.movex(servoCover.getMinX())
523531
CSG coverscrew = Vitamins.get("chamferedScrew", "M3x16")
524532
.rotx(180)
525533
.toZMin()
@@ -528,7 +536,9 @@ try {
528536
double InsetScrew = 10
529537
CSG screws = coverscrew.movex(InsetScrew).union(coverscrew.movex(servoCover.getTotalX()-InsetScrew))
530538
.movey(servoCover.getTotalY()/2)
531-
539+
CSG bottomThreads =threadsBottom.movex(InsetScrew).union(threadsBottom.movex(servoCover.getTotalX()-InsetScrew))
540+
.movey(servoCover.getTotalY()/2)
541+
532542
double batterySunkIn =10
533543
CSG NineVolt = Vitamins.get("BatteryBox", "9vbattery")
534544
CSG batteryHolder = NineVolt.getBoundingBox().scalex(1.15)
@@ -550,9 +560,13 @@ try {
550560
.toZMax()
551561
.movez(servoCover.getMaxZ())
552562
.difference(NineVolt)
553-
563+
CSG ninevoltRemovalCuts = new Cylinder(10, NineVolt.getTotalZ()+Caster.getTotalZ()).toCSG()
564+
.movez(Caster.getMinZ())
565+
.movey(NineVolt.getMaxY())
566+
CSG fingers = ninevoltRemovalCuts.movex(NineVolt.getMaxX())
567+
.union(ninevoltRemovalCuts.movex(NineVolt.getMinX()))
568+
554569
CSG workplateScrew = Vitamins.get("chamferedScrew", "M3x16")
555-
CSG threads = Vitamins.get("heatedThreadedInsert", "M3")
556570

557571
double hingePartThickness = 5
558572
double hingePartRadius=8
@@ -569,35 +583,47 @@ try {
569583
.movey(top.getMinY()-hingePartRadius/2-1)
570584

571585
Transform hingeFastener = new Transform()
572-
.movez(top.getMaxZ()+2)
586+
.movez(top.getMaxZ()+plateThickness)
573587
.movex(top.getCenterX()+15)
574588
.movey(top.getMaxY()-5)
575589

576590

577591
CSG screwBoss = new Cylinder(5, hingePartThickness).toCSG()
578592
.toZMax()
579-
.movez(-2)
593+
.movez(-plateThickness)
580594
.transformed(hingeFastener)
581-
CSG hingeScrew = workplateScrew.movez(hingePartThickness+2).transformed(hingeLocation)
595+
CSG screwStandoff = new Cylinder(5, topPlateStandoff).toCSG()
596+
.toZMax()
597+
.movez(-plateThickness+topPlateStandoff)
598+
.transformed(hingeFastener)
599+
CSG hingeScrew = workplateScrew.movez(hingePartThickness+plateThickness).transformed(hingeLocation)
582600

583-
CSG hingeFastenerScrew = workplateScrew.toZMax().transformed(hingeFastener)
601+
CSG hingeFastenerScrew = workplateScrew.toZMax().movez(topPlateStandoff).transformed(hingeFastener)
584602
CSG movedHingeLug=hingeLug.transformed(hingeLocation)
585-
CSG hingeConnection = new Cube(hingePartRadius,hingePartRadius,hingePartThickness).toCSG()
603+
CSG hingeConnection = new Cube(hingePartRadius+topPlateStandoff,hingePartRadius,hingePartThickness).toCSG()
586604
.toXMin()
587605
hingeLugMoving=hingeLugMoving.union(hingeConnection)
588606
// Threaded inserts for the top plate
589607
CSG hingeThread = threads.toZMax().movez(-hingePartThickness/2-0.5).transformed(hingeLocation)
590-
CSG closureThreads = threads.toZMax().movez(-2).transformed(hingeFastener)
608+
CSG closureThreads = threads.toZMax().movez(-plateThickness).transformed(hingeFastener)
591609

610+
// USB cable resting place
611+
CSG usb = new Cube(12.0, 14.5,4.56).toCSG()
612+
.toYMax()
613+
.toXMin()
614+
.movey(servoBlock.getMaxY())
615+
.movez(servoBlock.getMinZ()+6)
616+
.movex(servoBlock.getMinX()+3)
592617

593-
CSG hingingPlate = new Cube(bot.getTotalX()-caseRounding*2,bot.getTotalY()+hingePartRadius+hingePartRadius/2, 2).toCSG()
618+
CSG hingingPlate = new Cube(bot.getTotalX()-caseRounding*2,bot.getTotalY()+hingePartRadius+hingePartRadius/2, plateThickness).toCSG()
594619
.toZMin()
595-
.movez(top.getMaxZ())
620+
.movez(top.getMaxZ()+topPlateStandoff)
596621
.movex(top.getCenterX())
597622
.toYMax()
598623
.movey(top.getMaxY())
599624
.union(hingeLugMoving.movez(hingePartThickness+1).transformed(hingeLocation))
600625
.union(hingeLugMoving.movez(-hingePartThickness-1).transformed(hingeLocation))
626+
.union(screwStandoff)
601627
.difference(hingeScrew)
602628
.difference(hingeFastenerScrew)
603629
.difference(hingeThread)
@@ -611,12 +637,15 @@ try {
611637
.union(Caster)
612638
.union(batteryHolder)
613639
.difference(NineVolt)
640+
.difference(fingers)
614641
.difference(screws)
615642
bot=bot.union(servoBlock)
643+
.difference(usb)
616644
.difference(bothDrive)
617645
.difference(blockCordCut)
618646
.difference(NineVolt)
619647
.difference(screws)
648+
.difference(bottomThreads)
620649

621650
hingeThread.setColor(Color.GOLD)
622651
.setManufacturing({ toMfg ->
@@ -671,7 +700,10 @@ try {
671700
.setManufacturing({ toMfg ->
672701
return null
673702
})
674-
703+
bottomThreads.setColor(Color.GOLD)
704+
.setManufacturing({ toMfg ->
705+
return null
706+
})
675707
hingingPlate.setName("hingingPlate")
676708
.setManufacturing({ toMfg ->
677709
return toMfg.roty(180).toZMin()
@@ -700,6 +732,7 @@ try {
700732
bothDrive.addAssemblyStep(4, new Transform().movez(-30))
701733
servoCover.addAssemblyStep(5, new Transform().movez(-40))
702734
screws.addAssemblyStep(6, new Transform().movez(-60))
735+
bottomThreads.addAssemblyStep(1, new Transform().movez(-30))
703736
NineVolt.addAssemblyStep(11, new Transform().movey(-60))
704737

705738
leftWheel.addAssemblyStep(9, new Transform().movex(-30))
@@ -730,7 +763,9 @@ try {
730763
hingeFastenerScrew,
731764
hingingPlate,
732765
hingeThread,
733-
closureThreads
766+
closureThreads,
767+
bottomThreads
768+
734769
]
735770
}catch(Throwable tr) {
736771
tr.printStackTrace()

0 commit comments

Comments
 (0)