@@ -422,12 +422,45 @@ try {
422422 CSG top = parts[1 ];
423423 CSG bot = parts[0 ];
424424
425-
425+ double legMountRadius = 10
426+ double legMountPinLength = 10
427+ double legPinRadius = 4
426428 LengthParameter tailLength = new LengthParameter (" Cable Cut Out Length" ,30 ,[500 , 0.01 ])
427429 tailLength. setMM(25 )
430+
428431 CSG motor = Vitamins . get(" hobbyServo" , " fs90r" )
429432 CSG horn = Vitamins . get(" hobbyServoHorn" , " fs90r_1" )
430433 .movez(motor. getMaxZ())
434+ CSG boltWheel = Vitamins . get(" chamferedScrew" , " M3x16" )
435+ .roty(180 )
436+ .toZMin()
437+ .movez(motor. getMaxZ())
438+ .movex(legMountRadius)
439+ CSG bearingWheel = Vitamins . get(" ballBearing" , " 695zz" )
440+ .movez(motor. getMaxZ()+ legMountPinLength)
441+ .movex(legMountRadius)
442+ double legMountPinRadius = bearingWheel. getTotalX()/ 2+3
443+
444+ CSG legPin = new Cylinder (legPinRadius, legMountPinLength+1 ). toCSG()
445+ .movez(motor. getMaxZ())
446+ .movex(legMountRadius)
447+ CSG legSquare = new Cube (legMountPinRadius+2 ,legMountPinRadius* 2 ,bearingWheel. getTotalZ()+1 ). toCSG()
448+ .toZMin()
449+ .toXMin()
450+ CSG legHole = new Cylinder (3.5 / 2.0 , legMountPinRadius* 2 ). toCSG()
451+ .movez(- legMountPinRadius)
452+ .rotx(90 )
453+ .movex(legMountPinRadius-1 )
454+ .movez((bearingWheel. getTotalZ()+1 )/ 2.0 )
455+ CSG legMount = new Cylinder (legMountPinRadius, bearingWheel. getTotalZ()+1 ). toCSG()
456+ .union(legSquare)
457+ .difference(legHole)
458+ .difference(new Cylinder (legPinRadius+1 , legMountPinLength+1 ). toCSG())
459+ .movez(motor. getMaxZ()+ legMountPinLength-1 )
460+ .movex(legMountRadius)
461+ .difference(bearingWheel. hull())
462+
463+
431464 double hornDepth = horn. getTotalZ()
432465 double halfServoDistance = motor. getTotalX()/ 2
433466 double servoSplit= 2
@@ -469,19 +502,57 @@ try {
469502
470503 CSG rightDrive = asmOfDrive. transformed(rightSide)
471504 CSG leftDriveHorn = horn. transformed(leftSide)
472-
505+ CSG leftDriveBolt = boltWheel. transformed(leftSide)
506+ CSG rightDriveBolt = boltWheel. transformed(rightSide)
507+
508+ CSG leftDriveBearing = bearingWheel. transformed(leftSide)
509+ CSG rightDriveBearing = bearingWheel. transformed(rightSide)
510+
511+
512+ CSG leftlegMount = legMount. transformed(leftSide)
513+ CSG rightlegMount = legMount. transformed(rightSide)
514+
473515 CSG rightDriveHorn = horn. transformed(rightSide)
474-
516+
517+
518+ CSG rightLegPin= legPin. transformed(rightSide)
519+ CSG leftLegPin= legPin. transformed(leftSide)
520+
521+
475522 CSG bothDrive = leftDrive. union(rightDrive)
476523
477524
478525
479- CSG leftWheel = wheepCore. transformed(leftSide). difference(leftDriveHorn)
526+ CSG leftWheel = wheepCore. transformed(leftSide)
527+ .difference(leftDriveHorn)
528+ .union(leftLegPin)
529+ .difference(leftDriveBolt)
530+ .difference(leftDriveBearing)
480531 CSG rightWheel = wheepCore. transformed(rightSide). difference(rightDriveHorn)
532+ .union(rightLegPin)
533+ .difference(rightDriveBolt)
534+ .difference(rightDriveBearing)
535+
536+ leftDriveBearing. setColor(Color . SILVER )
537+ .setManufacturing({ toMfg ->
538+ return null
539+ })
540+ rightDriveBearing. setColor(Color . SILVER )
541+ .setManufacturing({ toMfg ->
542+ return null
543+ })
481544 leftDriveHorn. setColor(Color . BLACK )
482545 .setManufacturing({ toMfg ->
483546 return null
484547 })
548+ leftDriveBolt. setColor(Color . BLACK )
549+ .setManufacturing({ toMfg ->
550+ return null
551+ })
552+ rightDriveBolt. setColor(Color . BLACK )
553+ .setManufacturing({ toMfg ->
554+ return null
555+ })
485556 rightDriveHorn. setColor(Color . BLACK )
486557 .setManufacturing({ toMfg ->
487558 return null
@@ -679,7 +750,14 @@ try {
679750 .setManufacturing({ toMfg ->
680751 return toMfg. roty(-90 ). toZMin()
681752 })
682-
753+ leftlegMount. setName(" leftlegMount" )
754+ .setManufacturing({ toMfg ->
755+ return toMfg. roty(-90 ). toZMin()
756+ })
757+ rightlegMount. setName(" rightLegMount" )
758+ .setManufacturing({ toMfg ->
759+ return toMfg. roty(90 ). toZMin()
760+ })
683761 rightWheel. setName(" rightWheel" )
684762 .setManufacturing({ toMfg ->
685763 return toMfg. roty(90 ). toZMin()
@@ -740,7 +818,25 @@ try {
740818 tireMovedL. addAssemblyStep(9 , new Transform (). movex(-30 ))
741819 tireMovedL. addAssemblyStep(8 , new Transform (). movex(-10 ))
742820 leftDriveHorn. addAssemblyStep(10 , new Transform (). movex(-40 ))
743-
821+
822+ leftDriveBolt. addAssemblyStep(9 , new Transform (). movex(-30 ))
823+ leftDriveBolt. addAssemblyStep(8 , new Transform (). movex(20 ))
824+
825+ rightDriveBolt. addAssemblyStep(9 , new Transform (). movex(30 ))
826+ rightDriveBolt. addAssemblyStep(8 , new Transform (). movex(-20 ))
827+
828+ leftDriveBearing. addAssemblyStep(9 , new Transform (). movex(-30 ))
829+ rightDriveBearing. addAssemblyStep(9 , new Transform (). movex(30 ))
830+
831+ leftlegMount. addAssemblyStep(9 , new Transform (). movex(-30 ))
832+ rightlegMount. addAssemblyStep(9 , new Transform (). movex(30 ))
833+
834+ leftlegMount. addAssemblyStep(8 , new Transform (). movex(-5 ))
835+ rightlegMount. addAssemblyStep(8 , new Transform (). movex(5 ))
836+
837+ leftDriveBearing. addAssemblyStep(8 , new Transform (). movex(-20 ))
838+ rightDriveBearing. addAssemblyStep(8 , new Transform (). movex(20 ))
839+
744840 rightWheel. addAssemblyStep(9 , new Transform (). movex(30 ))
745841 tireMovedR. addAssemblyStep(9 , new Transform (). movex(30 ))
746842 tireMovedR. addAssemblyStep(8 , new Transform (). movex(10 ))
@@ -765,7 +861,13 @@ try {
765861 hingingPlate,
766862 hingeThread,
767863 closureThreads,
768- bottomThreads
864+ bottomThreads,
865+ leftDriveBolt,
866+ rightDriveBolt,
867+ leftDriveBearing,
868+ rightDriveBearing,
869+ leftlegMount,
870+ rightlegMount
769871
770872 ]
771873}catch (Throwable tr) {
0 commit comments