forked from bradandersonjr/GuitarEngine
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDesignParameters.py
More file actions
57 lines (38 loc) · 1.97 KB
/
Copy pathDesignParameters.py
File metadata and controls
57 lines (38 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import os, sys
import adsk.core, adsk.fusion, adsk.cam, traceback
from .Modules import simplejson
from .ParameterValues import ParameterValues
from .UIElements import UIElements
class DesignParameters:
def __init__(self, app):
self.app = app
self.design = app.activeProduct
def setAndStoreParameterValues(self, values: ParameterValues):
for key, control in UIElements.floatValueControls.items():
setattr(values, key, float(control.value))
for key, control in UIElements.boolValueControls.items():
setattr(values, key, bool(control.value))
for key, control in UIElements.intSpinnerControls.items():
setattr(values, key, float(control.value))
for key, control in UIElements.floatSpinnerControls.items():
if (control.unitType == 'deg'):
setattr(values, key, self.design.unitsManager.convert(float(control.value), 'rad', 'deg'))
else:
setattr(values, key, float(control.value))
self.calculateGuitarLength(values)
for key, control in UIElements.dropdownControls.items():
setattr(values, key, control.selectedItem.name)
paramJson = simplejson.dumps(values.__dict__, use_decimal=True)
self.design.attributes.add("guitarEngine", "parameterValues", paramJson)
def calculateGuitarLength(self, values: ParameterValues):
values.guitarLength = (values.bodyLength + values.fretboardLength + values.headstockLength) - values.neckPocketLength
def getStoredParameters(self):
valueAttribute = self.design.attributes.itemByName("guitarEngine", "parameterValues")
if (valueAttribute is not None):
paramDictionary = simplejson.loads(valueAttribute.value)
parameters = ParameterValues()
for key in paramDictionary:
setattr(parameters, key, paramDictionary[key])
return parameters
else:
return None