add rack profiles

This commit is contained in:
zhao
2023-01-16 17:28:03 -05:00
parent 742e16dca5
commit 37b179af11
2 changed files with 12 additions and 3 deletions

View File

@ -8,13 +8,16 @@
*/ */
include <./profiles.scad> include <./profiles.scad>
profile = "default"; profileName = "micro";
profile = getProfile(profileName);
echo("Profile:", profile); echo("Profile:", profile);
function getConfig(name) = getConfigValue(profile, name);
// Maximum width for rackmount units. Change this according your max expected enclosure width. // Maximum width for rackmount units. Change this according your max expected enclosure width.
// Changing this will directly affect the required build volume. // Changing this will directly affect the required build volume.
maxUnitWidth = getConfigValue(profile, "maxUnitWidth"); maxUnitWidth = getConfig("maxUnitWidth");
// Maximum (recommended) unit depth. There technically isn't a max unit depth because there's no physical bound on // Maximum (recommended) unit depth. There technically isn't a max unit depth because there's no physical bound on
// how far a rack unit can extrude back. This parameter basically controls the distance between the front of the front // how far a rack unit can extrude back. This parameter basically controls the distance between the front of the front

View File

@ -39,6 +39,12 @@ function _getConfigValueRaw(profile, varName) = profile[search([varName], profil
function _getProfileRaw(profileName) = _profileConfigs[search([profileName], _profileConfigs)[0]][1]; function _getProfileRaw(profileName) = _profileConfigs[search([profileName], _profileConfigs)[0]][1];
function _getConfigValueOrThrowError(val) = val == undef? assert(false, "blah") 0: val; function _getConfigValueOrThrowError(val) = val == undef? assert(false, "blah") 0: val;
function _getConfigValueOrDefault(val, default) = val == undef? default: val;
function getConfigValue(profile, varName) =
_getConfigValueOrDefault(
_getConfigValueRaw(profile, varName),
_getConfigValueOrThrowError(_getConfigValueRaw(getProfile("default"), varName))
);
function getConfigValue(profile, varName) = _getConfigValueOrThrowError(_getConfigValueRaw(profile, varName));
function getProfile(profileName) = _getConfigValueOrThrowError(_getProfileRaw(profileName)); function getProfile(profileName) = _getConfigValueOrThrowError(_getProfileRaw(profileName));