diff --git a/Marcos.xml b/Marcos.xml
index 2d641183..11dc6208 100644
--- a/Marcos.xml
+++ b/Marcos.xml
@@ -72,7 +72,7 @@
-5.0
0.01
- 38.0
+ 31.0
-89.97
@@ -273,7 +273,7 @@
-5.0
0.01
- 38.0
+ 31.0
-89.97
@@ -474,7 +474,7 @@
-5.0
0.01
- 38.0
+ 31.0
-89.97
@@ -675,7 +675,7 @@
-5.0
0.0
- 38.0
+ 31.0
-90.0
diff --git a/MarcosCad.groovy b/MarcosCad.groovy
index 05415390..61829385 100644
--- a/MarcosCad.groovy
+++ b/MarcosCad.groovy
@@ -267,14 +267,14 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
CSG c1 = new Cylinder(r - chamferHeight,r - chamferHeight, h,40).toCSG()
CSG c2 = new Cylinder(r,r, h - chamferHeight * 2,40).toCSG().movez(chamferHeight)
return c1.union(c2).hull()
- }
-
+ }
+
CSG StraightChamfer(double x, double y, double chamferHeight) {
- CSG c1 = new Cube(x, y, chamferHeight).toCSG().movez(chamferHeight)
- CSG c2 = new Cube(x+chamferHeight,y+chamferHeight, chamferHeight).toCSG()
- CSG c3 = c1.union(c2).hull()
- return c3.difference(c2).toZMin()
-
+ CSG c1 = new Cube(x, y, chamferHeight).toCSG().movez(chamferHeight)
+ CSG c2 = new Cube(x+chamferHeight,y+chamferHeight, chamferHeight).toCSG()
+ CSG c3 = c1.union(c2).hull()
+ return c3.difference(c2).toZMin()
+
}
CSG ChamferedRoundCornerLug(double x, double y,double r, double h, double chamferHeight) {
CSG corners = ChamferedCylinder(r,h,chamferHeight)
@@ -283,6 +283,7 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
}
public CSG calibrationLink(double rotationCenterToBoltCenter,CSG bolt) {
+ CSG core= linkCore(rotationCenterToBoltCenter, bolt)
double defaultValue = numbers.LinkLength - endOfPassiveLinkToBolt
CSG stl= Vitamins.get(ScriptingEngine.fileFromGit(
"https://github.com/OperationSmallKat/Marcos.git",
@@ -306,9 +307,9 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
double SquareNutHeight = numbers.SquareNutHeight + numbers.LooseTolerance
double SquareNutCutOutHeight = linkThickness/2+SquareNutWidth/2
double LinkSqaureNutSpacing = numbers.LinkSqaureNutSpacing
-
+
//Solving for Angle of setscrew.
- double hypot1 = Math.hypot(ServoHornRad + SetscrewLength + numbers.LooseTolerance, SetscrewSize/2)
+ double hypot1 = Math.hypot(ServoHornRad + SetscrewLength + numbers.LooseTolerance, SetscrewSize/2)
double angle1 = Math.asin(linkRadius/hypot1)
double angle2 = Math.asin((ServoHornRad + SetscrewLength + numbers.LooseTolerance)/hypot1)
double angle3 = (Math.PI/2)-angle1
@@ -316,40 +317,11 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
double SetScrewAngle = Math.toDegrees((Math.PI/2)-(angle3+angle4))
double SetScrewChamferLength = linkRadius/Math.sin((Math.PI/2)-(angle3+angle4))
double SetScrewCutOutLength = numbers.LinkLength/Math.cos((Math.PI/2)-(angle3+angle4))
-
-
+
+
println(SetScrewChamferLength)
println(SetScrewCutOutLength)
- // Hull together a toolshape to make the cutter to make the shape appropratly
- CSG cornerFilletCutter = new Cylinder(filletRad, linkThickness, 30).toCSG()
- // cut from the corner to the ege of the link
- cornerFilletCutter=cornerFilletCutter.union(cornerFilletCutter.movey(LinkMountingCutOutWidth)).hull()
- // cut from the corner to the end of where the fillet should end
- cornerFilletCutter=cornerFilletCutter.union(cornerFilletCutter.movex(chamfer)).hull()
- CSG leftCorner = cornerFilletCutter.movex(blockx).movey(linkWidth/2-LinkMountingCutOutWidth+filletRad)
- CSG rightCorner = cornerFilletCutter.movex(blockx).movey(-linkWidth/2-filletRad)
- CSG lowerEnd = ChamferedCylinder(linkWidth/2, linkThickness, chamfer)
- CSG linkBlock = new ChamferedCube(blockx+chamfer, linkWidth, linkThickness, chamfer).toCSG()
- .toZMin()
- .toXMin()
- // Trim the end chamfer off the end of the link block to make the end flat
- //linkBlock=linkBlock.intersect(linkBlock.getBoundingBox().movex(-chamfer))
- // Use chamferd cylendars to make the lug at the end of the link
- CSG mountLug = ChamferedRoundCornerLug(blockx, linkWidth-(LinkMountingCutOutWidth*2),filletRad, linkThickness+chamfer, chamfer)
- .toZMin()
- .toXMax()
- // Make a champfered cylendar to make the inner chamfer radius'
- CSG LowerInnerCornerChamferCutLeft= ChamferedCylinder(filletRad+chamfer, chamfer*2+1, chamfer)
- .movex(blockx)
- .movey(linkWidth/2-LinkMountingCutOutWidth+filletRad)
- .toZMax()
- .movez(chamfer)
- LowerInnerCornerChamferCutLeft=LowerInnerCornerChamferCutLeft.union(LowerInnerCornerChamferCutLeft.movey(LinkMountingCutOutWidth)).hull()
- CSG LowerInnerCornerChamferCutRight = LowerInnerCornerChamferCutLeft.movey(-linkWidth)
- // trim off the top chamfers and mofe the block end to the tip of the link block
- mountLug=mountLug.difference(mountLug.getBoundingBox().movez(linkThickness))
- .movex(rotationCenterToBoltCenter+endOfPassiveLinkToBolt)
CSG ServoHornCutoutChamfer = ChamferedCylinder(ServoHornRad+smallChamfer,ServoHornHeight+smallChamfer,smallChamfer)
.toZMax()
@@ -358,88 +330,60 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
CSG ServoHornCutout = ChamferedCylinder(ServoHornRad,ServoHornHeight,smallChamfer)
//.movez(-smallChamfer)
.union(ServoHornCutoutChamfer)
- CSG MountHeadHoleCutoutChamfer = ChamferedCylinder(mountHeadRad+smallChamfer,linkThickness+smallChamfer,smallChamfer)
- .toZMin()
- .movez(linkThickness-smallChamfer)
-
- CSG MountHoleCutoutChamfer = ChamferedCylinder(mountRad+smallChamfer,linkThickness+smallChamfer,smallChamfer)
- .toZMax()
- .movez(smallChamfer)
- CSG boltHole = bolt.toZMax()
- .movez(linkThickness)
- CSG mountAssebmbly = MountHoleCutoutChamfer
- //.union(MountHeadHoleCutoutChamfer)
- .union(boltHole)
- .movex(rotationCenterToBoltCenter)
-
- CSG decritiveDivit = ChamferedCylinder(decritiveRad+chamfer,chamfer*2+1,chamfer)
- .movez(linkThickness-chamfer)
- CSG decoration = decorationGen(rotationCenterToBoltCenter)
-
CSG SquareNutCutOut = new Cube(SquareNutHeight,SquareNutWidth, SquareNutCutOutHeight).toCSG()
- .toZMin()
- .movex((LinkSqaureNutSpacing+linkRadius)-(SquareNutHeight/2))
-
+ .toZMin()
+ .movex((LinkSqaureNutSpacing+linkRadius)-(SquareNutHeight/2))
+
CSG SquareNutChamfer = StraightChamfer(SquareNutHeight,SquareNutWidth,smallChamfer)
- .movex((LinkSqaureNutSpacing+linkRadius)-(SquareNutHeight/2))
-
+ .movex((LinkSqaureNutSpacing+linkRadius)-(SquareNutHeight/2))
+
CSG SetScrewCutOut = new Cylinder(SetscrewSize/2, SetScrewCutOutLength).toCSG()
- .toZMin()
- .roty(-90)
- .movez(linkThickness/2)
-
+ .toZMin()
+ .roty(-90)
+ .movez(linkThickness/2)
+
//Chamfer for set screw
CSG cutout1 = new Cylinder((SetscrewSize)/2, SetScrewCutOutLength).toCSG()
- .toZMax()
- .roty(90)
- .movez(linkThickness/2)
- .rotz(SetScrewAngle)
-
+ .toZMax()
+ .roty(90)
+ .movez(linkThickness/2)
+ .rotz(SetScrewAngle)
+
CSG cutout2 = new Cylinder((SetscrewSize)/2+chamfer, SetScrewCutOutLength/2).toCSG()
- .toZMax()
- .roty(90)
- .movez(linkThickness/2)
- .movex(linkRadius)
- .rotz(SetScrewAngle)
-
+ .toZMax()
+ .roty(90)
+ .movez(linkThickness/2)
+ .movex(linkRadius)
+ .rotz(SetScrewAngle)
+
CSG Flatwall = new Cube(numbers.LinkLength,linkWidth,linkThickness).toCSG()
- .toZMax()
- .movez(linkThickness)
- .movex(numbers.LinkLength/2)
+ .toZMax()
+ .movez(linkThickness)
+ .movex(numbers.LinkLength/2)
CSG Flatwall2 = new Cube(numbers.LinkLength,linkWidth,linkThickness).toCSG()
- .toZMax()
- .movez(linkThickness)
- .movex(numbers.LinkLength/2)
- .movey(chamfer)
-
+ .toZMax()
+ .movez(linkThickness)
+ .movex(numbers.LinkLength/2)
+ .movey(chamfer)
+
CSG Flatwall3 = new Cube(numbers.LinkLength,linkWidth,linkThickness).toCSG()
- .toZMax()
- .movez(linkThickness)
- .movex(numbers.LinkLength/2)
- .movey(-linkWidth)
- .movey(-chamfer)
-
+ .toZMax()
+ .movez(linkThickness)
+ .movex(numbers.LinkLength/2)
+ .movey(-linkWidth)
+ .movey(-chamfer)
+
CSG p1 = ((Flatwall.intersect(cutout1)).difference(Flatwall2))
CSG p2 = (cutout2.difference(Flatwall).difference(Flatwall3))
-
+
CSG SetScrewChamferleft = p2.union(p1).hull()
CSG SetScrewChamferright = SetScrewChamferleft.mirrory()
// Assemble the whole link
- CSG link = lowerEnd
- .union(linkBlock)
- .hull()
- .union(mountLug)
- .difference(leftCorner)
- .difference(rightCorner)
- .difference(LowerInnerCornerChamferCutRight)
- .difference(LowerInnerCornerChamferCutLeft)
+ CSG link = core
.difference(ServoHornCutout)
- .difference(mountAssebmbly)
- .difference(decritiveDivit)
- .difference(decoration)
.difference(SquareNutCutOut.rotz(SetScrewAngle))
.difference(SquareNutCutOut.rotz(-SetScrewAngle))
.difference(SetScrewCutOut.rotz(SetScrewAngle))
@@ -447,9 +391,8 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
.difference(SquareNutChamfer.rotz(SetScrewAngle))
.difference(SetScrewChamferleft)
.difference(SetScrewChamferright)
- .difference(bolt)
//link.setIsWireFrame(true)
- link.setColor(Color.RED)
+ link.setColor(Color.DARKRED)
return link//.union(stl)
//return stl
@@ -505,15 +448,11 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
*
* link.setColor(Color.RED) return link//.union(stl) }
*/
-
-
- public CSG passiveLink(double rotationCenterToBoltCenter,CSG bolt) {
+
+ public CSG linkCore(double rotationCenterToBoltCenter,CSG bolt) {
double defaultValue = numbers.LinkLength - endOfPassiveLinkToBolt
- CSG stl= Vitamins.get(ScriptingEngine.fileFromGit(
- "https://github.com/OperationSmallKat/Marcos.git",
- "IdleLinkLeg.stl"))
double chamfer = numbers.Chamfer2
double smallChamfer = numbers.Chamfer1
double linkWidth = numbers.LinkWidth
@@ -562,13 +501,7 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
mountLug=mountLug.difference(mountLug.getBoundingBox().movez(linkThickness))
.movex(rotationCenterToBoltCenter+endOfPassiveLinkToBolt)
- CSG IdlePinCutoutChamfer = ChamferedCylinder(IdlePinRad+smallChamfer,idlePinHeight+smallChamfer,smallChamfer)
- .toZMax()
- .movez(smallChamfer)
- // Idle pin cutout
- CSG IdlePinCutout = ChamferedCylinder(IdlePinRad,idlePinHeight,smallChamfer)
- //.movez(-smallChamfer)
- .union(IdlePinCutoutChamfer)
+
CSG MountHeadHoleCutoutChamfer = ChamferedCylinder(mountHeadRad+smallChamfer,linkThickness+smallChamfer,smallChamfer)
.toZMin()
.movez(linkThickness-smallChamfer)
@@ -582,6 +515,64 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
//.union(MountHeadHoleCutoutChamfer)
.union(boltHole)
.movex(rotationCenterToBoltCenter)
+
+ CSG decritiveDivit = ChamferedCylinder(decritiveRad+chamfer,chamfer*2+1,chamfer)
+ .movez(linkThickness-chamfer)
+ CSG decoration = decorationGen(rotationCenterToBoltCenter)
+
+ // Assemble the whole link
+ CSG link = lowerEnd
+ .union(linkBlock)
+ .hull()
+ .union(mountLug)
+ .difference(leftCorner)
+ .difference(rightCorner)
+ .difference(LowerInnerCornerChamferCutRight)
+ .difference(LowerInnerCornerChamferCutLeft)
+ .difference(mountAssebmbly)
+ .difference(decritiveDivit)
+ .difference(decoration)
+
+ //link.setIsWireFrame(true)
+ link.setColor(Color.DARKRED)
+ return link//.union(stl)
+ }
+
+ public CSG passiveLink(double rotationCenterToBoltCenter,CSG bolt) {
+ CSG core= linkCore(rotationCenterToBoltCenter, bolt)
+
+ double defaultValue = numbers.LinkLength - endOfPassiveLinkToBolt
+ CSG stl= Vitamins.get(ScriptingEngine.fileFromGit(
+ "https://github.com/OperationSmallKat/Marcos.git",
+ "IdleLinkLeg.stl"))
+ double chamfer = numbers.Chamfer2
+ double smallChamfer = numbers.Chamfer1
+ double linkWidth = numbers.LinkWidth
+ double linkThickness = numbers.LinkHeight
+ double filletRad=numbers.Fillet3
+ double LinkMountingCutOutWidth=numbers.LinkMountingCutOutWidth
+ double blockx=rotationCenterToBoltCenter-numbers.LinkMountingCutOutLength-numbers.Tolerance+endOfPassiveLinkToBolt+filletRad
+ double IdlePinRad=(numbers.IdlePinDiamter+numbers.LooseTolerance)/2.0
+ double idlePinHeight =numbers.IdlePinThickness+numbers.LooseTolerance
+ double mountHeadRad =( numbers.MountingScrewHeadDiamter+numbers.LooseTolerance)/2.0
+ double mountRad=( numbers.MountingScrewDiamter+numbers.LooseTolerance)/2.0
+ double decritiveRad = numbers.ServoHornDiameter/4.0
+ double zipTieLugDepth = 4
+ double zipTieWidth=3
+ double zipTieLugDIstanceFromEnd = 3.7
+ double zipTieClerence =1.2
+ double zipTieLugX=rotationCenterToBoltCenter-endOfPassiveLinkToBolt-zipTieLugDIstanceFromEnd
+
+ CSG IdlePinCutoutChamfer = ChamferedCylinder(IdlePinRad+smallChamfer,idlePinHeight+smallChamfer,smallChamfer)
+ .toZMax()
+ .movez(smallChamfer)
+ // Idle pin cutout
+ CSG IdlePinCutout = ChamferedCylinder(IdlePinRad,idlePinHeight,smallChamfer)
+ //.movez(-smallChamfer)
+ .union(IdlePinCutoutChamfer)
+
+
+
CSG zipLug = new RoundedCube(zipTieWidth+chamfer*2,zipTieLugDepth-zipTieClerence,linkThickness-(zipTieClerence*2))
.cornerRadius(chamfer)
.toCSG()
@@ -606,30 +597,18 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
zipTieCut=zipTieCut.movey(linkWidth/2)
.movex(zipTieLugX)
CSG rightZipTie=zipTieCut.mirrory()
- CSG decritiveDivit = ChamferedCylinder(decritiveRad+chamfer,chamfer*2+1,chamfer)
- .movez(linkThickness-chamfer)
- CSG decoration = decorationGen(rotationCenterToBoltCenter)
// Assemble the whole link
- CSG link = lowerEnd
- .union(linkBlock)
- .hull()
- .union(mountLug)
- .difference(leftCorner)
- .difference(rightCorner)
- .difference(LowerInnerCornerChamferCutRight)
- .difference(LowerInnerCornerChamferCutLeft)
+ CSG link = core
.difference(IdlePinCutout)
- .difference(mountAssebmbly)
- .difference(decritiveDivit)
.difference(zipTieCut)
.difference(rightZipTie)
- .difference(decoration)
-
//link.setIsWireFrame(true)
- link.setColor(Color.RED)
+ link.setColor(Color.DARKRED)
return link//.union(stl)
}
+
+
CSG decorationGen(double rotationCenterToBoltCenter) {
double backOffset = 4
@@ -666,6 +645,17 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
boolean front=false;
boolean isDummyGearWrist = false;
double parametric = numbers.LinkLength-endOfPassiveLinkToBolt
+
+ double l0offset =38.0-(numbers.LinkLength-endOfPassiveLinkToBolt)
+ double l1offset = 55.0 -(numbers.LinkLength-endOfPassiveLinkToBolt)
+
+ if(linkIndex==0) {
+ parametric=d.getDH_R(linkIndex)-l0offset
+ }
+ if(linkIndex==1) {
+ parametric=d.getDH_R(linkIndex)-l1offset
+ }
+
if(d.getScriptingName().startsWith("Dummy")) {
isDummyGearWrist=true;
}
@@ -695,7 +685,7 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
double link1Rotz=-90
double MototRetractDist =15
String motorKey = "Motor"+d.getScriptingName()+":"+linkIndex
-
+
String leftMotorScrewKey = "LeftMotorScrew"+d.getScriptingName()+":"+linkIndex
String rightMotorScrewKey = "RightMotorScrew"+d.getScriptingName()+":"+linkIndex
String leftLinkScrewKey = "LeftLinkScrew"+d.getScriptingName()+":"+linkIndex
@@ -704,44 +694,44 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
String rightLinkNutKey = "RightLinkNut"+d.getScriptingName()+":"+linkIndex
String leftCalibrationNutKey = "LeftCalibrationNut"+d.getScriptingName()+":"+linkIndex
String rightCalibrationNutKey = "RightCalibrationNut"+d.getScriptingName()+":"+linkIndex
-
+
String leftCalibrationScrewKey = "LeftCalibrationScrew"+d.getScriptingName()+":"+linkIndex
String rightCalibrationScrewKey = "RightCalibrationScrew"+d.getScriptingName()+":"+linkIndex
-
+
String motorDoorScrewKey = "MotorDoorScrew"+d.getScriptingName()+":"+linkIndex
String leftmotorDoorScrewKey = "LeftMotorDoorScrew"+d.getScriptingName()+":"+linkIndex
String rightmotorDoorScrewKey = "RightMotorDoorScrew"+d.getScriptingName()+":"+linkIndex
-
-
+
+
bom.set(motorKey,conf.getElectroMechanicalType(),conf.getElectroMechanicalSize(),new TransformNR())
-
+
bom.set(leftMotorScrewKey,"PhillipsRoundedHeadThreadFormingScrews","M2x8",new TransformNR())
bom.set(rightMotorScrewKey,"PhillipsRoundedHeadThreadFormingScrews","M2x8",new TransformNR())
-
+
bom.set(leftLinkScrewKey,"chamferedScrew","M3x16",new TransformNR())
bom.set(rightLinkScrewKey,"chamferedScrew","M3x16",new TransformNR())
-
+
bom.set(leftLinkNutKey,"squareNut","M3",new TransformNR())
bom.set(rightLinkNutKey,"squareNut","M3",new TransformNR())
-
+
bom.set(leftCalibrationNutKey,"squareNut","M3",new TransformNR())
bom.set(rightCalibrationNutKey,"squareNut","M3",new TransformNR())
-
-
+
+
bom.set(leftCalibrationScrewKey,"conePointSetScrew","M3x8",new TransformNR())
bom.set(rightCalibrationScrewKey,"conePointSetScrew","M3x8",new TransformNR())
- LengthParameter offset = new LengthParameter("printerOffset",0.0,[2,0])
- LengthParameter facets = new LengthParameter("Bolt Hole Facet Count",10,[40,10])
+ LengthParameter offset = new LengthParameter("printerOffset",0.0,[2, 0])
+ LengthParameter facets = new LengthParameter("Bolt Hole Facet Count",10,[40, 10])
facets.setMM(30)
offset.setMM(numbers.LooseTolerance)
CSG boltl = bom.get(leftLinkScrewKey)
CSG boltr = bom.get(rightLinkScrewKey)
-
+
if(linkIndex==0) {
-
+
bom.set(leftmotorDoorScrewKey,"PhillipsRoundedHeadThreadFormingScrews","M2x8",new TransformNR())
bom.set(rightmotorDoorScrewKey,"PhillipsRoundedHeadThreadFormingScrews","M2x8",new TransformNR())
-
+
motor=motor.rotz(left?180:0)
motor=motor.roty(front?180:0)
// the first link motor is located in the body
@@ -767,7 +757,7 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
// note the hore is moved to the centerline distance value before the transform to link space
if(!isDummyGearWrist) {
CSG movedDrive = calibrationLink(parametric,boltl)
- .movez(distanceToMotorTop)//.rotz(180)
+ .movez(distanceToMotorTop)//.rotz(180)
double xrot=180
xrot+=linkIndex==0&&(!front)?180:0
xrot+=linkIndex!=0&&(!left)?180:0
@@ -938,7 +928,7 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
double kinematicsLen = d.getDH_R(linkIndex)
double staticOffset = 55.500-numbers.LinkLength-endOfPassiveLinkToBolt
double calculated = kinematicsLen-staticOffset
-
+
double xrot=0
CSG link = passiveLink(parametric,boltr)
.movez(distanceToMotorTop)
@@ -977,7 +967,9 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
CSG getNeckLink() {
double neckLenFudge = 4.5
double parametric = numbers.LinkLength-endOfPassiveLinkToBolt
- CSG boltl = bom.get("RightLinkScrewTail:1")
+ String rightLinkScrewKey="RightLinkScrewTail:1"
+ bom.set(rightLinkScrewKey,"chamferedScrew","M3x16",new TransformNR())
+ CSG boltl = bom.get(rightLinkScrewKey)
return passiveLink(parametric+neckLenFudge,boltl)
.rotx(180)
.movez(-15.1)
@@ -986,15 +978,15 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
boolean left=false;
boolean front=false;
boolean isDummyGearWrist = false;
-
+
String leftLinkScrewKey = "LeftLinkScrew"+d.getScriptingName()+":"+linkIndex
String rightLinkScrewKey = "RightLinkScrew"+d.getScriptingName()+":"+linkIndex
String leftLinkNutKey = "LeftLinkNut"+d.getScriptingName()+":"+linkIndex
String rightLinkNutKey = "RightLinkNut"+d.getScriptingName()+":"+linkIndex
-
+
String MountScrewKey = "MountScrew"+d.getScriptingName()+":"+linkIndex
String MountNutKey = "MountNut"+d.getScriptingName()+":"+linkIndex
-
+
if(d.getScriptingName().startsWith("Dummy")) {
isDummyGearWrist=true;
}
@@ -1026,10 +1018,9 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
}
if(linkIndex==1) {
bom.set(leftLinkScrewKey,"capScrew","M3x16",new TransformNR())
- bom.set(rightLinkScrewKey,"chamferedScrew","M3x16",new TransformNR())
bom.set(leftLinkNutKey,"squareNut","M3",new TransformNR())
bom.set(rightLinkNutKey,"squareNut","M3",new TransformNR())
-
+
String name= d.getScriptingName();
CSG link = getNeckLink()
@@ -1124,12 +1115,12 @@ class cadGenMarcos implements ICadGenerator,IgenerateBed{
bom.set("MotherboardScrew2","PhillipsRoundedHeadThreadFormingScrews","M3x6",new TransformNR())
bom.set("MotherboardScrew3","PhillipsRoundedHeadThreadFormingScrews","M3x6",new TransformNR())
bom.set("MotherboardScrew4","PhillipsRoundedHeadThreadFormingScrews","M3x6",new TransformNR())
-
+
bom.set("CoverScrew1","chamferedScrew","M3x16",new TransformNR())
bom.set("CoverScrew2","chamferedScrew","M3x16",new TransformNR())
bom.set("CoverScrew3","chamferedScrew","M3x16",new TransformNR())
bom.set("CoverScrew4","chamferedScrew","M3x16",new TransformNR())
-
+
DHParameterKinematics dh = arg0.getLegs().get(0);
double zCenterLine = dh.getRobotToFiducialTransform().getZ()+numbers.ServoThickness/2.0
@@ -1319,7 +1310,10 @@ def gen= new cadGenMarcos(resinPrintServoMount,numbers)
//MobileBase mb = (MobileBase)DeviceManager.getSpecificDevice("Marcos");
//gen.setMobileBase(mb)
//DHParameterKinematics limb = gen.getByName(mb,"RightFront")
-//return [gen.generateCad(limb,0)]
-//return [gen.calibrationLink(32-4.5)]
+//return [
+// gen.generateCad(limb,0)
+// //,gen.generateCad(limb,1)
+//]
+
return gen
diff --git a/manufacturing/bom.csv b/manufacturing/bom.csv
index e0255045..0fa90441 100644
--- a/manufacturing/bom.csv
+++ b/manufacturing/bom.csv
@@ -1,8 +1,8 @@
name,qty,source
hobbyServo:mg92b,16,https://www.aliexpress.us/item/3256801883704529.html?spm=a2g0o.detail.1000014.1.7a771b29SLCuHw
-chamferedScrew:M3x16,4,https://www.mcmaster.com/91294A134/
+chamferedScrew:M3x16,37,https://www.mcmaster.com/91294A134/
PhillipsRoundedHeadThreadFormingScrews:M2x8,56,https://www.mcmaster.com/90380A327/
-squareNut:M3,72,https://www.mcmaster.com/97259A101/
+squareNut:M3,70,https://www.mcmaster.com/97259A101/
PhillipsRoundedHeadThreadFormingScrews:M3x6,4,https://www.mcmaster.com/99461A939/
-capScrew:M3x16,40,https://www.mcmaster.com/91294A134/
+capScrew:M3x16,4,https://www.mcmaster.com/91290A120/
conePointSetScrew:M3x8,32,https://www.mcmaster.com/91210A101/
diff --git a/manufacturing/bom.json b/manufacturing/bom.json
index 8899cefc..df5e1497 100644
--- a/manufacturing/bom.json
+++ b/manufacturing/bom.json
@@ -361,13 +361,11 @@
}
}
}
- }
- ],
- "PhillipsRoundedHeadThreadFormingScrews:M2x8": [
+ },
{
- "name": "LeftMotorScrewLeftRear:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewTail:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -383,9 +381,9 @@
}
},
{
- "name": "RightMotorScrewLeftRear:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewLeftRear:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -401,9 +399,9 @@
}
},
{
- "name": "LeftMotorDoorScrewLeftRear:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewLeftRear:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -419,9 +417,9 @@
}
},
{
- "name": "RightMotorDoorScrewLeftRear:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewLeftRear:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -437,9 +435,9 @@
}
},
{
- "name": "LeftMotorScrewLeftRear:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewLeftRear:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -455,9 +453,9 @@
}
},
{
- "name": "RightMotorScrewLeftRear:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewLeftRear:2",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -473,9 +471,9 @@
}
},
{
- "name": "MotorDoorScrewLeftRear:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewLeftRear:2",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -491,9 +489,9 @@
}
},
{
- "name": "LeftMotorScrewLeftRear:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewRightFront:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -509,9 +507,9 @@
}
},
{
- "name": "RightMotorScrewLeftRear:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewRightFront:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -527,9 +525,9 @@
}
},
{
- "name": "MotorDoorScrewLeftRear:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewRightFront:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -545,9 +543,9 @@
}
},
{
- "name": "LeftMotorScrewRightFront:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewRightFront:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -563,9 +561,9 @@
}
},
{
- "name": "RightMotorScrewRightFront:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewRightFront:2",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -581,9 +579,9 @@
}
},
{
- "name": "LeftMotorDoorScrewRightFront:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewRightFront:2",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -599,9 +597,9 @@
}
},
{
- "name": "RightMotorDoorScrewRightFront:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewLeftFront:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -617,9 +615,9 @@
}
},
{
- "name": "LeftMotorScrewRightFront:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewLeftFront:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -635,9 +633,9 @@
}
},
{
- "name": "RightMotorScrewRightFront:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewLeftFront:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -653,9 +651,9 @@
}
},
{
- "name": "MotorDoorScrewRightFront:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewLeftFront:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -671,9 +669,9 @@
}
},
{
- "name": "LeftMotorScrewRightFront:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewLeftFront:2",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -689,9 +687,9 @@
}
},
{
- "name": "RightMotorScrewRightFront:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewLeftFront:2",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -707,9 +705,9 @@
}
},
{
- "name": "MotorDoorScrewRightFront:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewRightRear:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -725,9 +723,9 @@
}
},
{
- "name": "LeftMotorScrewLeftFront:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewRightRear:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -743,9 +741,9 @@
}
},
{
- "name": "RightMotorScrewLeftFront:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewRightRear:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -761,9 +759,9 @@
}
},
{
- "name": "LeftMotorDoorScrewLeftFront:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewRightRear:1",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -779,9 +777,9 @@
}
},
{
- "name": "RightMotorDoorScrewLeftFront:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewRightRear:2",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -797,9 +795,9 @@
}
},
{
- "name": "LeftMotorScrewLeftFront:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewRightRear:2",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -815,9 +813,9 @@
}
},
{
- "name": "RightMotorScrewLeftFront:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewDummyLeftRear:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -833,9 +831,9 @@
}
},
{
- "name": "MotorDoorScrewLeftFront:1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewDummyLeftRear:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -851,9 +849,9 @@
}
},
{
- "name": "LeftMotorScrewLeftFront:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewDummyRightFront:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -869,9 +867,9 @@
}
},
{
- "name": "RightMotorScrewLeftFront:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewDummyRightFront:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -887,9 +885,9 @@
}
},
{
- "name": "MotorDoorScrewLeftFront:2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewDummyLeftFront:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -905,9 +903,9 @@
}
},
{
- "name": "LeftMotorScrewRightRear:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewDummyLeftFront:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -923,9 +921,9 @@
}
},
{
- "name": "RightMotorScrewRightRear:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "LeftLinkScrewDummyRightRear:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -941,9 +939,9 @@
}
},
{
- "name": "LeftMotorDoorScrewRightRear:0",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M2x8",
+ "name": "RightLinkScrewDummyRightRear:0",
+ "type": "chamferedScrew",
+ "size": "M3x16",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -957,9 +955,11 @@
}
}
}
- },
+ }
+ ],
+ "PhillipsRoundedHeadThreadFormingScrews:M2x8": [
{
- "name": "RightMotorDoorScrewRightRear:0",
+ "name": "LeftMotorScrewLeftRear:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -977,7 +977,7 @@
}
},
{
- "name": "LeftMotorScrewRightRear:1",
+ "name": "RightMotorScrewLeftRear:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -995,7 +995,7 @@
}
},
{
- "name": "RightMotorScrewRightRear:1",
+ "name": "LeftMotorDoorScrewLeftRear:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1013,7 +1013,7 @@
}
},
{
- "name": "MotorDoorScrewRightRear:1",
+ "name": "RightMotorDoorScrewLeftRear:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1031,7 +1031,7 @@
}
},
{
- "name": "LeftMotorScrewRightRear:2",
+ "name": "LeftMotorScrewLeftRear:1",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1049,7 +1049,7 @@
}
},
{
- "name": "RightMotorScrewRightRear:2",
+ "name": "RightMotorScrewLeftRear:1",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1067,7 +1067,7 @@
}
},
{
- "name": "MotorDoorScrewRightRear:2",
+ "name": "MotorDoorScrewLeftRear:1",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1085,7 +1085,7 @@
}
},
{
- "name": "LeftMotorScrewDummyLeftRear:0",
+ "name": "LeftMotorScrewLeftRear:2",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1103,7 +1103,7 @@
}
},
{
- "name": "RightMotorScrewDummyLeftRear:0",
+ "name": "RightMotorScrewLeftRear:2",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1121,7 +1121,7 @@
}
},
{
- "name": "LeftMotorDoorScrewDummyLeftRear:0",
+ "name": "MotorDoorScrewLeftRear:2",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1139,7 +1139,7 @@
}
},
{
- "name": "RightMotorDoorScrewDummyLeftRear:0",
+ "name": "LeftMotorScrewRightFront:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1157,7 +1157,7 @@
}
},
{
- "name": "LeftMotorScrewDummyRightFront:0",
+ "name": "RightMotorScrewRightFront:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1175,7 +1175,7 @@
}
},
{
- "name": "RightMotorScrewDummyRightFront:0",
+ "name": "LeftMotorDoorScrewRightFront:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1193,7 +1193,7 @@
}
},
{
- "name": "LeftMotorDoorScrewDummyRightFront:0",
+ "name": "RightMotorDoorScrewRightFront:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1211,7 +1211,7 @@
}
},
{
- "name": "RightMotorDoorScrewDummyRightFront:0",
+ "name": "LeftMotorScrewRightFront:1",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1229,7 +1229,7 @@
}
},
{
- "name": "LeftMotorScrewDummyLeftFront:0",
+ "name": "RightMotorScrewRightFront:1",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1247,7 +1247,7 @@
}
},
{
- "name": "RightMotorScrewDummyLeftFront:0",
+ "name": "MotorDoorScrewRightFront:1",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1265,7 +1265,7 @@
}
},
{
- "name": "LeftMotorDoorScrewDummyLeftFront:0",
+ "name": "LeftMotorScrewRightFront:2",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1283,7 +1283,7 @@
}
},
{
- "name": "RightMotorDoorScrewDummyLeftFront:0",
+ "name": "RightMotorScrewRightFront:2",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1301,7 +1301,7 @@
}
},
{
- "name": "LeftMotorScrewDummyRightRear:0",
+ "name": "MotorDoorScrewRightFront:2",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1319,7 +1319,7 @@
}
},
{
- "name": "RightMotorScrewDummyRightRear:0",
+ "name": "LeftMotorScrewLeftFront:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1337,7 +1337,7 @@
}
},
{
- "name": "LeftMotorDoorScrewDummyRightRear:0",
+ "name": "RightMotorScrewLeftFront:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1355,7 +1355,7 @@
}
},
{
- "name": "RightMotorDoorScrewDummyRightRear:0",
+ "name": "LeftMotorDoorScrewLeftFront:0",
"type": "PhillipsRoundedHeadThreadFormingScrews",
"size": "M2x8",
"pose": {
@@ -1371,13 +1371,11 @@
}
}
}
- }
- ],
- "squareNut:M3": [
+ },
{
- "name": "LeftLinkNutLeftRear:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorDoorScrewLeftFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1393,9 +1391,9 @@
}
},
{
- "name": "RightLinkNutLeftRear:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewLeftFront:1",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1411,9 +1409,9 @@
}
},
{
- "name": "LeftCalibrationNutLeftRear:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewLeftFront:1",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1429,9 +1427,9 @@
}
},
{
- "name": "RightCalibrationNutLeftRear:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "MotorDoorScrewLeftFront:1",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1447,9 +1445,9 @@
}
},
{
- "name": "LeftLinkNutLeftRear:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewLeftFront:2",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1465,9 +1463,9 @@
}
},
{
- "name": "RightLinkNutLeftRear:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewLeftFront:2",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1483,9 +1481,9 @@
}
},
{
- "name": "LeftCalibrationNutLeftRear:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "MotorDoorScrewLeftFront:2",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1501,9 +1499,9 @@
}
},
{
- "name": "RightCalibrationNutLeftRear:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewRightRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1519,9 +1517,9 @@
}
},
{
- "name": "LeftLinkNutLeftRear:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewRightRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1537,9 +1535,9 @@
}
},
{
- "name": "RightLinkNutLeftRear:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorDoorScrewRightRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1555,9 +1553,9 @@
}
},
{
- "name": "LeftCalibrationNutLeftRear:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorDoorScrewRightRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1573,9 +1571,9 @@
}
},
{
- "name": "RightCalibrationNutLeftRear:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewRightRear:1",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1591,9 +1589,9 @@
}
},
{
- "name": "LeftLinkNutRightFront:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewRightRear:1",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1609,9 +1607,9 @@
}
},
{
- "name": "RightLinkNutRightFront:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "MotorDoorScrewRightRear:1",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1627,9 +1625,9 @@
}
},
{
- "name": "LeftCalibrationNutRightFront:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewRightRear:2",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1645,9 +1643,9 @@
}
},
{
- "name": "RightCalibrationNutRightFront:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewRightRear:2",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1663,9 +1661,9 @@
}
},
{
- "name": "LeftLinkNutRightFront:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "MotorDoorScrewRightRear:2",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1681,9 +1679,9 @@
}
},
{
- "name": "RightLinkNutRightFront:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewDummyLeftRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1699,9 +1697,9 @@
}
},
{
- "name": "LeftCalibrationNutRightFront:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewDummyLeftRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1717,9 +1715,9 @@
}
},
{
- "name": "RightCalibrationNutRightFront:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorDoorScrewDummyLeftRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1735,9 +1733,9 @@
}
},
{
- "name": "LeftLinkNutRightFront:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorDoorScrewDummyLeftRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1753,9 +1751,9 @@
}
},
{
- "name": "RightLinkNutRightFront:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewDummyRightFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1771,9 +1769,9 @@
}
},
{
- "name": "LeftCalibrationNutRightFront:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewDummyRightFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1789,9 +1787,9 @@
}
},
{
- "name": "RightCalibrationNutRightFront:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorDoorScrewDummyRightFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1807,9 +1805,9 @@
}
},
{
- "name": "LeftLinkNutLeftFront:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorDoorScrewDummyRightFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1825,9 +1823,9 @@
}
},
{
- "name": "RightLinkNutLeftFront:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewDummyLeftFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1843,9 +1841,9 @@
}
},
{
- "name": "LeftCalibrationNutLeftFront:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewDummyLeftFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1861,9 +1859,9 @@
}
},
{
- "name": "RightCalibrationNutLeftFront:0",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorDoorScrewDummyLeftFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1879,9 +1877,9 @@
}
},
{
- "name": "LeftLinkNutLeftFront:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorDoorScrewDummyLeftFront:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1897,9 +1895,9 @@
}
},
{
- "name": "RightLinkNutLeftFront:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorScrewDummyRightRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1915,9 +1913,9 @@
}
},
{
- "name": "LeftCalibrationNutLeftFront:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorScrewDummyRightRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1933,9 +1931,9 @@
}
},
{
- "name": "RightCalibrationNutLeftFront:1",
- "type": "squareNut",
- "size": "M3",
+ "name": "LeftMotorDoorScrewDummyRightRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1951,9 +1949,9 @@
}
},
{
- "name": "LeftLinkNutLeftFront:2",
- "type": "squareNut",
- "size": "M3",
+ "name": "RightMotorDoorScrewDummyRightRear:0",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M2x8",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -1967,9 +1965,11 @@
}
}
}
- },
+ }
+ ],
+ "squareNut:M3": [
{
- "name": "RightLinkNutLeftFront:2",
+ "name": "LeftLinkNutLeftRear:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -1987,7 +1987,7 @@
}
},
{
- "name": "LeftCalibrationNutLeftFront:2",
+ "name": "RightLinkNutLeftRear:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2005,7 +2005,7 @@
}
},
{
- "name": "RightCalibrationNutLeftFront:2",
+ "name": "LeftCalibrationNutLeftRear:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2023,7 +2023,7 @@
}
},
{
- "name": "LeftLinkNutRightRear:0",
+ "name": "RightCalibrationNutLeftRear:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2041,7 +2041,7 @@
}
},
{
- "name": "RightLinkNutRightRear:0",
+ "name": "LeftLinkNutLeftRear:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2059,7 +2059,7 @@
}
},
{
- "name": "LeftCalibrationNutRightRear:0",
+ "name": "RightLinkNutLeftRear:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2077,7 +2077,7 @@
}
},
{
- "name": "RightCalibrationNutRightRear:0",
+ "name": "LeftCalibrationNutLeftRear:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2095,7 +2095,7 @@
}
},
{
- "name": "LeftLinkNutRightRear:1",
+ "name": "RightCalibrationNutLeftRear:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2113,7 +2113,7 @@
}
},
{
- "name": "RightLinkNutRightRear:1",
+ "name": "LeftLinkNutLeftRear:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2131,7 +2131,7 @@
}
},
{
- "name": "LeftCalibrationNutRightRear:1",
+ "name": "RightLinkNutLeftRear:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2149,7 +2149,7 @@
}
},
{
- "name": "RightCalibrationNutRightRear:1",
+ "name": "LeftCalibrationNutLeftRear:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2167,7 +2167,7 @@
}
},
{
- "name": "LeftLinkNutRightRear:2",
+ "name": "RightCalibrationNutLeftRear:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2185,7 +2185,7 @@
}
},
{
- "name": "RightLinkNutRightRear:2",
+ "name": "LeftLinkNutRightFront:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2203,7 +2203,7 @@
}
},
{
- "name": "LeftCalibrationNutRightRear:2",
+ "name": "RightLinkNutRightFront:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2221,7 +2221,7 @@
}
},
{
- "name": "RightCalibrationNutRightRear:2",
+ "name": "LeftCalibrationNutRightFront:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2239,7 +2239,7 @@
}
},
{
- "name": "LeftLinkNutDummyLeftRear:0",
+ "name": "RightCalibrationNutRightFront:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2257,7 +2257,7 @@
}
},
{
- "name": "RightLinkNutDummyLeftRear:0",
+ "name": "LeftLinkNutRightFront:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2275,7 +2275,7 @@
}
},
{
- "name": "LeftCalibrationNutDummyLeftRear:0",
+ "name": "RightLinkNutRightFront:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2293,7 +2293,7 @@
}
},
{
- "name": "RightCalibrationNutDummyLeftRear:0",
+ "name": "LeftCalibrationNutRightFront:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2311,7 +2311,7 @@
}
},
{
- "name": "LeftLinkNutDummyRightFront:0",
+ "name": "RightCalibrationNutRightFront:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2329,7 +2329,7 @@
}
},
{
- "name": "RightLinkNutDummyRightFront:0",
+ "name": "LeftLinkNutRightFront:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2347,7 +2347,7 @@
}
},
{
- "name": "LeftCalibrationNutDummyRightFront:0",
+ "name": "RightLinkNutRightFront:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2365,7 +2365,7 @@
}
},
{
- "name": "RightCalibrationNutDummyRightFront:0",
+ "name": "LeftCalibrationNutRightFront:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2383,7 +2383,7 @@
}
},
{
- "name": "LeftLinkNutDummyLeftFront:0",
+ "name": "RightCalibrationNutRightFront:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2401,7 +2401,7 @@
}
},
{
- "name": "RightLinkNutDummyLeftFront:0",
+ "name": "LeftLinkNutLeftFront:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2419,7 +2419,7 @@
}
},
{
- "name": "LeftCalibrationNutDummyLeftFront:0",
+ "name": "RightLinkNutLeftFront:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2437,7 +2437,7 @@
}
},
{
- "name": "RightCalibrationNutDummyLeftFront:0",
+ "name": "LeftCalibrationNutLeftFront:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2455,7 +2455,7 @@
}
},
{
- "name": "LeftLinkNutDummyRightRear:0",
+ "name": "RightCalibrationNutLeftFront:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2473,7 +2473,7 @@
}
},
{
- "name": "RightLinkNutDummyRightRear:0",
+ "name": "LeftLinkNutLeftFront:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2491,7 +2491,7 @@
}
},
{
- "name": "LeftCalibrationNutDummyRightRear:0",
+ "name": "RightLinkNutLeftFront:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2509,7 +2509,7 @@
}
},
{
- "name": "RightCalibrationNutDummyRightRear:0",
+ "name": "LeftCalibrationNutLeftFront:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2527,7 +2527,7 @@
}
},
{
- "name": "MountNutHead:1",
+ "name": "RightCalibrationNutLeftFront:1",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2545,7 +2545,7 @@
}
},
{
- "name": "LeftLinkNutHead:1",
+ "name": "LeftLinkNutLeftFront:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2563,7 +2563,7 @@
}
},
{
- "name": "RightLinkNutHead:1",
+ "name": "RightLinkNutLeftFront:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2581,7 +2581,7 @@
}
},
{
- "name": "MountNutTail:1",
+ "name": "LeftCalibrationNutLeftFront:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2599,7 +2599,7 @@
}
},
{
- "name": "LeftLinkNutTail:1",
+ "name": "RightCalibrationNutLeftFront:2",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2617,7 +2617,7 @@
}
},
{
- "name": "RightLinkNutTail:1",
+ "name": "LeftLinkNutRightRear:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2635,7 +2635,7 @@
}
},
{
- "name": "MountNutHead:0",
+ "name": "RightLinkNutRightRear:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2653,7 +2653,7 @@
}
},
{
- "name": "MountNutTail:0",
+ "name": "LeftCalibrationNutRightRear:0",
"type": "squareNut",
"size": "M3",
"pose": {
@@ -2669,31 +2669,11 @@
}
}
}
- }
- ],
- "PhillipsRoundedHeadThreadFormingScrews:M3x6": [
- {
- "name": "MotherboardScrew1",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M3x6",
- "pose": {
- "x": 0.0,
- "y": 0.0,
- "z": 0.0,
- "rotation": {
- "storage": {
- "q0": 1.0,
- "q1": 0.0,
- "q2": 0.0,
- "q3": 0.0
- }
- }
- }
},
{
- "name": "MotherboardScrew2",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M3x6",
+ "name": "RightCalibrationNutRightRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2709,9 +2689,9 @@
}
},
{
- "name": "MotherboardScrew3",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M3x6",
+ "name": "LeftLinkNutRightRear:1",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2727,9 +2707,9 @@
}
},
{
- "name": "MotherboardScrew4",
- "type": "PhillipsRoundedHeadThreadFormingScrews",
- "size": "M3x6",
+ "name": "RightLinkNutRightRear:1",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2743,13 +2723,11 @@
}
}
}
- }
- ],
- "capScrew:M3x16": [
+ },
{
- "name": "LeftLinkScrewLeftRear:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftCalibrationNutRightRear:1",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2765,9 +2743,9 @@
}
},
{
- "name": "RightLinkScrewLeftRear:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightCalibrationNutRightRear:1",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2783,9 +2761,9 @@
}
},
{
- "name": "LeftLinkScrewLeftRear:1",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftLinkNutRightRear:2",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2801,9 +2779,9 @@
}
},
{
- "name": "RightLinkScrewLeftRear:1",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightLinkNutRightRear:2",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2819,9 +2797,9 @@
}
},
{
- "name": "LeftLinkScrewLeftRear:2",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftCalibrationNutRightRear:2",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2837,9 +2815,9 @@
}
},
{
- "name": "RightLinkScrewLeftRear:2",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightCalibrationNutRightRear:2",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2855,9 +2833,9 @@
}
},
{
- "name": "LeftLinkScrewRightFront:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftLinkNutDummyLeftRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2873,9 +2851,9 @@
}
},
{
- "name": "RightLinkScrewRightFront:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightLinkNutDummyLeftRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2891,9 +2869,9 @@
}
},
{
- "name": "LeftLinkScrewRightFront:1",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftCalibrationNutDummyLeftRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2909,9 +2887,9 @@
}
},
{
- "name": "RightLinkScrewRightFront:1",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightCalibrationNutDummyLeftRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2927,9 +2905,9 @@
}
},
{
- "name": "LeftLinkScrewRightFront:2",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftLinkNutDummyRightFront:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2945,9 +2923,9 @@
}
},
{
- "name": "RightLinkScrewRightFront:2",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightLinkNutDummyRightFront:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2963,9 +2941,9 @@
}
},
{
- "name": "LeftLinkScrewLeftFront:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftCalibrationNutDummyRightFront:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2981,9 +2959,9 @@
}
},
{
- "name": "RightLinkScrewLeftFront:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightCalibrationNutDummyRightFront:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -2999,9 +2977,9 @@
}
},
{
- "name": "LeftLinkScrewLeftFront:1",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftLinkNutDummyLeftFront:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3017,9 +2995,9 @@
}
},
{
- "name": "RightLinkScrewLeftFront:1",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightLinkNutDummyLeftFront:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3035,9 +3013,9 @@
}
},
{
- "name": "LeftLinkScrewLeftFront:2",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftCalibrationNutDummyLeftFront:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3053,9 +3031,9 @@
}
},
{
- "name": "RightLinkScrewLeftFront:2",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightCalibrationNutDummyLeftFront:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3071,9 +3049,9 @@
}
},
{
- "name": "LeftLinkScrewRightRear:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftLinkNutDummyRightRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3089,9 +3067,9 @@
}
},
{
- "name": "RightLinkScrewRightRear:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightLinkNutDummyRightRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3107,9 +3085,9 @@
}
},
{
- "name": "LeftLinkScrewRightRear:1",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftCalibrationNutDummyRightRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3125,9 +3103,9 @@
}
},
{
- "name": "RightLinkScrewRightRear:1",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightCalibrationNutDummyRightRear:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3143,9 +3121,9 @@
}
},
{
- "name": "LeftLinkScrewRightRear:2",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "MountNutHead:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3161,9 +3139,9 @@
}
},
{
- "name": "RightLinkScrewRightRear:2",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftLinkNutHead:1",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3179,9 +3157,9 @@
}
},
{
- "name": "LeftLinkScrewDummyLeftRear:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightLinkNutHead:1",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3197,9 +3175,9 @@
}
},
{
- "name": "RightLinkScrewDummyLeftRear:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "MountNutTail:0",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3215,9 +3193,9 @@
}
},
{
- "name": "LeftLinkScrewDummyRightFront:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "LeftLinkNutTail:1",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3233,9 +3211,9 @@
}
},
{
- "name": "RightLinkScrewDummyRightFront:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "RightLinkNutTail:1",
+ "type": "squareNut",
+ "size": "M3",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3249,11 +3227,13 @@
}
}
}
- },
+ }
+ ],
+ "PhillipsRoundedHeadThreadFormingScrews:M3x6": [
{
- "name": "LeftLinkScrewDummyLeftFront:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "MotherboardScrew1",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M3x6",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3269,9 +3249,9 @@
}
},
{
- "name": "RightLinkScrewDummyLeftFront:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "MotherboardScrew2",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M3x6",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3287,9 +3267,9 @@
}
},
{
- "name": "LeftLinkScrewDummyRightRear:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "MotherboardScrew3",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M3x6",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3305,9 +3285,9 @@
}
},
{
- "name": "RightLinkScrewDummyRightRear:0",
- "type": "chamferedScrew",
- "size": "M3x16",
+ "name": "MotherboardScrew4",
+ "type": "PhillipsRoundedHeadThreadFormingScrews",
+ "size": "M3x6",
"pose": {
"x": 0.0,
"y": 0.0,
@@ -3321,9 +3301,11 @@
}
}
}
- },
+ }
+ ],
+ "capScrew:M3x16": [
{
- "name": "MountScrewHead:1",
+ "name": "MountScrewHead:0",
"type": "capScrew",
"size": "M3x16",
"pose": {
@@ -3359,25 +3341,7 @@
}
},
{
- "name": "RightLinkScrewHead:1",
- "type": "chamferedScrew",
- "size": "M3x16",
- "pose": {
- "x": 0.0,
- "y": 0.0,
- "z": 0.0,
- "rotation": {
- "storage": {
- "q0": 1.0,
- "q1": 0.0,
- "q2": 0.0,
- "q3": 0.0
- }
- }
- }
- },
- {
- "name": "MountScrewTail:1",
+ "name": "MountScrewTail:0",
"type": "capScrew",
"size": "M3x16",
"pose": {
@@ -3411,60 +3375,6 @@
}
}
}
- },
- {
- "name": "RightLinkScrewTail:1",
- "type": "chamferedScrew",
- "size": "M3x16",
- "pose": {
- "x": 0.0,
- "y": 0.0,
- "z": 0.0,
- "rotation": {
- "storage": {
- "q0": 1.0,
- "q1": 0.0,
- "q2": 0.0,
- "q3": 0.0
- }
- }
- }
- },
- {
- "name": "MountScrewHead:0",
- "type": "capScrew",
- "size": "M3x16",
- "pose": {
- "x": 0.0,
- "y": 0.0,
- "z": 0.0,
- "rotation": {
- "storage": {
- "q0": 1.0,
- "q1": 0.0,
- "q2": 0.0,
- "q3": 0.0
- }
- }
- }
- },
- {
- "name": "MountScrewTail:0",
- "type": "capScrew",
- "size": "M3x16",
- "pose": {
- "x": 0.0,
- "y": 0.0,
- "z": 0.0,
- "rotation": {
- "storage": {
- "q0": 1.0,
- "q1": 0.0,
- "q2": 0.0,
- "q3": 0.0
- }
- }
- }
}
],
"conePointSetScrew:M3x8": [