# case-project TODO list ### Actual TODO - Finish refactoring files to use the application style, like in `yBar.scad` - Implement better build script using python !!! - Start working on actual cases - Figure out why sidewall build is so slow - Tidy up imports - Standardize meaning of `U` ### Ideas - Clean up `sharedVariables.scad`!!! - Start using matrices for transformations. Enforce strict local/global hierarchy of matrix transformations. - Instead of using names like 'mainRailSlotToInnerYZFace', experiment with a central distance/dimension directory. Like: ```openscad // Define identifiers: mainRailSlot = "mainRailSlotIdentifier"; yBarInnerYZ = "yBarInnerYZFaceIdentifier"; // Define distance setDx(mainRailSlot, yBarInnerYZ, 3); // Define dimensions setX(mainRailSlot, 10); setX(yBarInnerYZ, 0); // Then, you can get distances like: dx(mainRailSlot, yBarInnerYZ); // == 3 dx(yBarInnerYZ, mainRailSlot); // == 3 dx(mainRailSlot, blah); //throw error // And you could possible chain distances like: dx(yBarInnerYZ, mainRailSlot, sideConnectorSlot); // which would eval to: // dx(yBarInnerYZ, mainRailSlot) + x(mainRailSlot) + dx(mainRailSlot, sideConnectorSlot); // OR dx(yBarInnerYZ, mainRailSlot, sideConnectorSlot, includeFirst=true, includeLast=true); // which would eval to: // x(yBarInnerYZ) + dx(yBarInnerYZ, mainRailSlot, sideConnectorSlot) + x(sideConnectorSlot); ``` Hmm after looking into it a bit it seems that OpenScad's non-reassign rule is going to get in the way. Might still be worthwhile implement variable subsystem?