Custom mekaniska biorytm Computer, 3D tryckt (4 / 8 steg)
Steg 4: Icke - Problem 4: skrift mjukvaran
Jag jobbar på realtid 3D programvara mycket, vilket betyder att jag är van vid att göra saker som inte fungerar först och sedan efter jag har felsökts dem, fortfarande inte fungerar. Jag är van att stirra på en skärm full av text med ett enda skiljetecken sin plats, stoppa allt, och det går inte att upptäcka det, vid 3.
Vad jag behövs här var ett program som skulle bygga och placera alla redskap för mig automatiskt, baserat på antalet tänder och annan info jag förutsatt. Den måste också ta i födelsedatum av de två personerna, och bygga de redskap särskilt för att peka nålar i rätt riktning för dem. Allt detta slutar ta ett tag.
Jag skrev programvaran i C++, med en ram som kallas Qt för att spara tid på standard "knappen och windows" delen. (Förresten, eftersom Hotsharptoxics läppstift sak som pågick samtidigt, beslöt jag att göra ett program som gör både och, för att spara tid.)
För denna programvara att fungera, behövde jag ett format för att lagra en beskrivning av en växel maskin.
Så jag kan ändra specifikationen för att bråka med maskinen, i stället för C++-kod.
Den textfil jag valde är ostadig och ful, men mycket snabbt gjorde jobbet.
Den fullständiga parametriska specifikationen för kuggar i maskinen är här:
(Även om inte du är en programvaruingenjör, du kan nog plocka ut vissa delar.
Nyckeln är gruppen av ord rätt efter avsnittet "uttryck".)
//______________________________________________________________________
GearMachine.tsu - Bio redskap maskin, version 49b
//
expr, tjocklek, 0,3
uttryck, extraThick, (1,0 * tjocklek)
uttryck, stackOffset, (1,25 * tjocklek)
uttryck, toothSize, 0,30
uttryck, axleDiameter, 0,5
Växel-id, numTeeth, toothSize, tjocklek, axleDiameter, addAxle, u1, u2, v1, v2
bild, gears/plainGear1.png
uttryck, baseDrop, -0,5
uttryck, timeAngle, 0,0
uttryck, emoAngle, 220.0
uttryck, emoArch1Angle, (emoAngle - 60,0)
uttryck, emoArch2Angle, (emoAngle + 60,0)
riktiga redskap är lägre än
namn tänder toothSize tjocklek axleDiameter verticalOff överordnade ansluta vinkel tilt backWidth backOffset stackOffCenter fixArrowLen fixArrowAngle fixArrowOffset topAxleExtend bottomAxleExtend
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
redskap, rootGear89, 89, toothSize, extraThick, axleDiameter, 0,0, ingen, stapla, 0,0 0,0, 1,00,-1.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, rootGear79, 79, toothSize, extraThick, axleDiameter, stackOffset, rootGear89, stapla, 0,0 0,0, 0,00, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, 3monthStandoff, 18, toothSize, tjocklek, axleDiameter, 0,0, rootGear79, länk, timeAngle, 0,0 1,0,-1.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, 3monthStandoff2, 18, toothSize, tjocklek, axleDiameter, 4.5, 3monthStandoff, stapla, 0,0 0,0, 0,00, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, 3months55, 55, toothSize, tjocklek, axleDiameter, 0,0, 3monthStandoff2, länk, 180,0, 0,0, 0,00,-1.0, 0,0, 10.0, 0,0, 0,3, 0,3, 0,0
redskap, 3months55, 55, toothSize, tjocklek, axleDiameter, 0,0, rootGear79, länk, 0,0, 110.0, 0,00,-1.0, 0,0, 10.0, 0,0, 0,3, 0,3, 0,0
redskap, 3months10, 10, toothSize, tjocklek, axleDiameter, (-1,0 * stackOffset), 3months55, stapla, 0,0 0,0, 2,50,-1.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, monthsToYears30, 30, toothSize, tjocklek, axleDiameter, 0,0, 3months10, länk,-130.0, 0,0, 0,00, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, monthsToYears10, 10, toothSize, tjocklek, axleDiameter, (-1,5 * stackOffset), monthsToYears30, stapla, 0,0 0,0, 2,50,-1.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, 3years40, 40, toothSize, tjocklek, axleDiameter, 0,0, monthsToYears10, länk, 90,0, 0,0, 0,00, 0,0, 0,0, 7.0, 0,0, 0,3, 0,3, 0,0
redskap, 3years10, 10, toothSize, tjocklek, axleDiameter, (-3.0 * stackOffset), 3years40, stapla, 0,0 0,0, 2,50,-1.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, yearsToCentury60, 60, toothSize, tjocklek, axleDiameter, 0,0, 3years10, länk, 123.0, 0,0, 0,00, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, yearsToCentury10, 10, toothSize, tjocklek, axleDiameter, (-2,0 * stackOffset), yearsToCentury60, stapla, 0,0 0,0, 2,50,-1.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, century60, 60, toothSize, tjocklek, axleDiameter, 0,0, yearsToCentury10, länk, 180,0, 0,0, 1,00,-1.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, emoStandoff, 10, toothSize, tjocklek, axleDiameter, 0,0, rootGear89, länk, emoAngle, 68,0, 1,00,-1.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, emotional19, 19, toothSize, tjocklek, axleDiameter, 0.0, emoStandoff, länk, 0,0, 68,0, 1,50, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, emotional19, 19, toothSize, tjocklek, axleDiameter, 0,0, rootGear89, länk, 120.0 120.0, 1,50, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, emotional28, 28, toothSize, tjocklek, axleDiameter, - stackOffset, emotional19, stapla, 0,0 0,0, 0,00, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, physical23, 23, toothSize, tjocklek, axleDiameter, 0,0, emotional28, länk,-90.0, 0,0, 1,50, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, intellectual33, 33, toothSize, tjocklek, axleDiameter, 0,0, emotional28, länk, 90,0, 0,0, 1,50, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0
redskap, [emotionalArrow], 10, toothSize, tjocklek, axleDiameter,-0.21, emotional28, länk, 0,0 0,0, 1,50,-0.1, 0,0, 0,0, 0,0, 0,0, 0,0, 0,6
redskap, [physicalArrow], 10, toothSize, tjocklek, axleDiameter, 0,0, physical23, länk, 90,0, 0,0, 1,50,-0.1, 0,0, 0,0, 0,0, 0,0, 0,0, 0,6
redskap, [intellectualArrow], 10, toothSize, tjocklek, axleDiameter, 0,0, intellectual33, länk,-90.0, 0,0, 1,50,-0.1, 0,0, 0,0, 0,0, 0,0, 0,0, 0,6
_________________________________________________________________________________