Paso 4: No - problema 4: el software de escritura
Trabajo en software 3D en tiempo real, que significa que estoy acostumbrado a hacer cosas que no funcionan al principio y luego después he depurado, todavía no funcionan. Estoy acostumbrado a mirar a una pantalla llena de texto con un solo signo de puntuación fuera de lugar, dejar todo y no, al contado en 3:00.
Lo que necesitaba era un programa que construir y posicionar todos los engranajes para mí automáticamente, basándose en el número de dientes y otra información que proporciona. También, debe tomar en fechas de nacimiento de las dos personas y construir los engranajes específicamente para apuntar las agujas en la dirección correcta para ellos. Todo eso termina teniendo un rato.
Escribí el software en C++, usando un framework llamado Qt para ahorrar tiempo en la parte de "ventanas y botones" estándar. (Por cierto, ya que de HotSharpToxic cosa de lápiz labial estaba sucediendo al mismo tiempo, decidí hacer un programa que hace ambas cosas, para ahorrar tiempo).
De este software trabajar, necesitaba un formato para almacenar una descripción de una máquina de engranajes.
De esa manera puedo cambiar la especificación para meterse con la máquina, en lugar del código de C++.
El formato de archivo de texto que elegí es wonky y feo, pero muy pronto hizo el trabajo.
La especificación paramétrica completa para los engranajes de la máquina es aquí:
(Incluso si no eres un ingeniero de software, podrás probablemente elegir algunas piezas.
La clave es el grupo de palabras después de la sección de "expr".)
//______________________________________________________________________
GearMachine.tsu - la máquina del engranaje Bio, versión 49b
//
expr, grueso de 0.3,
expr, extragruesa, (1.0 * grueso)
expr, stackOffset, (1,25 * grueso)
expr, toothSize, 0.30
expr, axleDiameter, 0.5
Equipo id, numTeeth, toothSize, grueso, axleDiameter, addAxle, u1, u2, v1, v2
imagen, 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)
artes reales están por debajo de
nombre los dientes toothSize grueso axleDiameter verticalOff de padre conectar ángulo inclinación backWidth backOffset stackOffCenter fixArrowLen fixArrowAngle fixArrowOffset topAxleExtend bottomAxleExtend
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
engranaje, rootGear89, 89, toothSize, extragruesa, axleDiameter, 0.0, ninguno, stack, 0.0, 0.0, 1.00, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, rootGear79, 79, toothSize, extragruesa, axleDiameter, stackOffset, rootGear89, pila, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, 3monthStandoff, 18, toothSize, grueso, axleDiameter, 0.0, rootGear79, link, timeAngle, 0.0, 1.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, 3monthStandoff2, 18, toothSize, grueso, axleDiameter, 4.5, 3monthStandoff, pila, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, 3months55, 55, toothSize, grueso, 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
engranaje, 3months55, 55, toothSize, grueso, 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
engranaje, 3months10, 10, toothSize, grueso, axleDiameter, (-1.0 * stackOffset), 3months55, pila, 0.0, 0.0, 2.50, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, monthsToYears30, 30, toothSize, grueso, 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
engranaje, monthsToYears10, 10, toothSize, grueso, axleDiameter, (-1.5 * stackOffset), monthsToYears30, pila, 0.0, 0.0, 2.50, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, 3years40, 40, toothSize, grueso, 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
engranaje, 3years10, 10, toothSize, grueso, axleDiameter, (-3.0 * stackOffset), 3years40, pila, 0.0, 0.0, 2.50, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, yearsToCentury60, 60, toothSize, grueso, 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
engranaje, yearsToCentury10, 10, toothSize, grueso, axleDiameter, (-2.0 * stackOffset), yearsToCentury60, pila, 0.0, 0.0, 2.50, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, century60, 60, toothSize, grueso, 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
engranaje, emoStandoff, 10, toothSize, grueso, axleDiameter, 0.0, rootGear89, link, emoAngle, 68,0 1.00, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, emotional19, 19, toothSize, grueso, 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
engranaje, emotional19, 19, toothSize, grueso, 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
engranaje, emotional28, 28, toothSize, grueso, axleDiameter, - stackOffset, emotional19, pila, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
engranaje, physical23, 23, toothSize, grueso, 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
engranaje, intellectual33, 33, toothSize, grueso, 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
engranaje, [emotionalArrow], 10, toothSize, grueso, 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
engranaje, [physicalArrow], 10, toothSize, grueso, 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
engranaje, [intellectualArrow], 10, toothSize, grueso, 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
_________________________________________________________________________________