Stap 4: Niet - probleem 4: schrijven van de software
Ik werk op real-time 3D software alot, wat betekent dat ik ben gewend aan het maken van dingen die niet werken op het eerste, en vervolgens nadat ik heb fouten opgespoord hen, nog steeds niet werken. Ik ben gewend te staren naar een scherm vol van tekst met een enkele leesteken misplaatst, stoppen van alles, en niet in staat te herkennen, om 3 uur.
Wat ik hier nodig had was een programma dat zou bouwen en plaatsen alle van het vistuig voor mij automatisch, gebaseerd op het aantal tanden en andere info die ik verstrekt. Ook moet nemen in de geboortedata van de twee mensen, en de tandwielen specifiek om de naalden in de goede richting voor hen te bouwen. Dat alles eindigt een tijdje nemen.
Ik schreef de software in C++, met behulp van een framework Qt om tijd te besparen op het standaardonderdeel "knoppen en windows" genoemd. (Overigens, aangezien HotSharpToxic van lippenstift ding op hetzelfde moment gaande was, heb ik besloten om een programma dat beide doet, om tijd te besparen.)
Voor deze software om te werken, moest ik een formaat voor het opslaan van een beschrijving van de machine van een versnelling.
Op die manier kan ik de specificatie om te knoeien met de machine, in plaats van de C++-code wijzigen.
De opmaak van de tekstbestanden die ik hebt gekozen is wankel en lelijk, maar zeer snel did naar de job.
De volledige parametrische specificatie voor de versnellingen in de machine is hier:
(Zelfs als je niet een software engineer, kunt u waarschijnlijk kiezen uit sommige delen.
De sleutel is de groep woorden direct na de "expr" sectie.)
//______________________________________________________________________
GearMachine.tsu - Bio versnelling machine, versie 49b
//
expr, dikte, 0.3
expr, extraThick, (1.0 * dikte)
expr, stackOffset, (1,25 * dikte)
expr, toothSize, 0,30
expr, axleDiameter, 0,5
Versnelling id, numTeeth, toothSize, dikte, axleDiameter, addAxle, u1, u2, v1, v2
Image, gears/plainGear1.png
expr, baseDrop, -0,5
expr, timeAngle, 0.0
expr, emoAngle, 220.0
expr, emoArch1Angle, (emoAngle - 60,0)
expr, emoArch2Angle, (emoAngle + 60,0)
echte versnellingen zijn hieronder
naam tanden toothSize dikte axleDiameter verticalOff bovenliggende verbinding hoek tilt backWidth backOffset stackOffCenter fixArrowLen fixArrowAngle fixArrowOffset topAxleExtend bottomAxleExtend
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Gear, rootGear89, 89, toothSize, extraThick, axleDiameter, 0.0, none, stapelen, 0,0 0,0, 1,00, -1,0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, rootGear79, 79, toothSize, extraThick, axleDiameter, stackOffset, rootGear89, stapelen, 0,0 0,0, 0,00, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, 3monthStandoff, 18, toothSize, dikte, axleDiameter, 0.0, rootGear79, link, timeAngle, 0.0 1.0 -1,0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, 3monthStandoff2, 18, toothSize, dikte, axleDiameter, 4.5, 3monthStandoff, stapelen, 0,0 0,0, 0,00, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, 3months55, 55, toothSize, dikte, axleDiameter, 0.0, 3monthStandoff2, link, 180,0, 0.0, 0,00, -1,0, 0.0, 10.0, 0.0, 0.3, 0.3, 0.0
Gear, 3months55, 55, toothSize, dikte, axleDiameter, 0.0, rootGear79, link, 0.0, 110.0, 0,00, -1,0, 0.0, 10.0, 0.0, 0.3, 0.3, 0.0
Gear, 3months10, 10, toothSize, dikte, axleDiameter, (-1.0 * stackOffset), 3months55, stapelen, 0,0 0,0, 2,50, -1,0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, monthsToYears30, 30, toothSize, dikte, axleDiameter, 0.0, 3months10, link,-130.0, 0.0, 0,00, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, monthsToYears10, 10, toothSize, dikte, axleDiameter, (-1,5 * stackOffset), monthsToYears30, stapelen, 0,0 0,0, 2,50, -1,0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, 3years40, 40, toothSize, dikte, axleDiameter, 0.0, monthsToYears10, link, 90.0, 0.0, 0,00, 0.0, 0.0, 7.0, 0.0, 0.3, 0.3, 0.0
Gear, 3years10, 10, toothSize, dikte, axleDiameter, (-3.0 * stackOffset), 3years40, stapelen, 0,0 0,0, 2,50, -1,0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, yearsToCentury60, 60, toothSize, dikte, axleDiameter, 0.0, 3years10, link, 123.0, 0.0, 0,00, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, yearsToCentury10, 10, toothSize, dikte, axleDiameter, (-2.0 * stackOffset), yearsToCentury60, stapelen, 0,0 0,0, 2,50, -1,0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, century60, 60, toothSize, dikte, axleDiameter, 0.0, yearsToCentury10, link, 180,0, 0.0, 1,00, -1,0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, emoStandoff, 10, toothSize, dikte, axleDiameter, 0.0, rootGear89, link, emoAngle, 68.0 1,00 -1,0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, emotional19, 19, toothSize, dikte, axleDiameter, 0,0, emoStandoff, link, 0.0, 68.0, 1,50, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, emotional19, 19, toothSize, dikte, axleDiameter, 0.0, rootGear89, link, 120,0, 120,0, 1,50, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, emotional28, 28, toothSize, dikte, axleDiameter, - stackOffset, emotional19, stapelen, 0,0 0,0, 0,00, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, physical23, 23, toothSize, dikte, axleDiameter, 0.0, emotional28, link,-90.0, 0.0, 1,50, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, intellectual33, 33, toothSize, dikte, axleDiameter, 0.0, emotional28, link, 90.0, 0.0, 1,50, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
Gear, [emotionalArrow], 10, toothSize, dikte, axleDiameter,-0.21, emotional28, link, 0.0, 0.0, 1,50, -0,1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6
Gear, [physicalArrow], 10, toothSize, dikte, axleDiameter, 0.0, physical23, link, 90.0, 0.0, 1,50, -0,1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6
Gear, [intellectualArrow], 10, toothSize, dikte, axleDiameter, 0.0, intellectual33, link,-90.0, 0.0, 1,50, -0,1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.6
_________________________________________________________________________________