3838def addParameter (name , value , comment ):
3939 """Adds a user parameter"""
4040
41- global parameters
41+ global parameters , entry_add_name , entry_add_value , entry_add_comment
4242
4343 try :
4444 if len (ui .activeSelections ) == 0 :
4545 if "deg" in value :
4646 parameters .add (
47- name , adsk .core .ValueInput .createByString (value ), "deg" , comment
47+ name .strip (),
48+ adsk .core .ValueInput .createByString (value ),
49+ "deg" ,
50+ comment ,
4851 )
4952 else :
5053 parameters .add (
51- name , adsk .core .ValueInput .createByString (value ), "mm" , comment
54+ name .strip (),
55+ adsk .core .ValueInput .createByString (value ),
56+ "mm" ,
57+ comment ,
5258 )
53-
59+ entry_add_name .delete (0 , "end" )
60+ entry_add_value .delete (0 , "end" )
61+ entry_add_comment .delete (0 , "end" )
5462 else :
5563 messagebox .showwarning (
5664 "Warning" , "Cannot update with selections in the workspace."
@@ -76,42 +84,35 @@ def deleteParameter(row_number):
7684def updateParameter (row_number , slider , comment , name ):
7785 """Update the value/comment/name of a parameter"""
7886
79- global scaleBlocks , parameters , entry_add_value , entry_add_comment
80- global entry_add_name , spinbox_max , spinbox_min , spinbox_min_value , spinbox_max_value
81-
82- comment_input = entry_add_comment .get ()
83- if comment_input == " " :
84- scaleBlocks [row_number ][3 ].grid_remove ()
85- elif len (comment_input ) > 0 :
86- comment .configure (text = comment_input )
87- parameters [row_number ].comment = comment_input
88- scaleBlocks [row_number ][3 ].grid (
89- row = 1 ,
90- column = 0 ,
91- sticky = W ,
92- pady = (0 , 0 ),
93- padx = (0 , 0 ),
94- columnspan = 10 ,
95- )
96-
97- name_input = entry_add_name .get ()
98- if len (name_input ) > 0 :
99- name .configure (text = name_input )
100- parameters [row_number ].name = name_input
101-
102- value_input = entry_add_value .get ()
103- if len (value_input ) > 0 :
104- try :
105- if len (ui .activeSelections ) == 0 :
87+ if len (ui .activeSelections ) == 0 :
88+
89+ global scaleBlocks , parameters , entry_add_value , entry_add_comment
90+ global entry_add_name , spinbox_max , spinbox_min , spinbox_min_value , spinbox_max_value
91+
92+ name_input = entry_add_name .get ().strip ()
93+ if len (name_input ) > 0 :
94+ try :
95+ for local_row_number , _ in enumerate (scaleBlocks ):
96+ if name_input == parameters [local_row_number ].name :
97+ raise TypeError
98+ parameters [row_number ].name = name_input
99+ name .configure (text = name_input )
100+ entry_add_name .delete (0 , "end" )
101+ except TypeError :
102+ messagebox .showwarning ("Type Error" , "Parameter name already exists." )
103+
104+ value_input = entry_add_value .get ().strip ()
105+ if len (value_input ) > 0 :
106+ try :
106107 parameters .item (row_number ).expression = value_input
107108
108- if float ( entry_add_value . get ()) > float (spinbox_max .get ()):
109- spinbox_max .delete (0 , 20 )
110- spinbox_max .insert (0 , float ( entry_add_value . get ()) )
109+ if parameters . item ( row_number ). value > float (spinbox_max .get ()):
110+ spinbox_max .delete (0 , "end" )
111+ spinbox_max .insert (0 , parameters . item ( row_number ). value )
111112 updateSettings ()
112- elif float ( entry_add_value . get ()) < float (spinbox_min .get ()):
113- spinbox_min .delete (0 , 20 )
114- spinbox_min .insert (0 , float ( entry_add_value . get ()) )
113+ elif parameters . item ( row_number ). value < float (spinbox_min .get ()):
114+ spinbox_min .delete (0 , "end" )
115+ spinbox_min .insert (0 , parameters . item ( row_number ). value )
115116 updateSettings ()
116117
117118 spinbox_increment_value_tmp = spinbox_increment .get ()
@@ -121,13 +122,14 @@ def updateParameter(row_number, slider, comment, name):
121122 spinbox_increment_value_tmp_dp = (
122123 1 * 10 ** - spinbox_increment_value_tmp_n
123124 )
124-
125- entry_add_value_tmp = entry_add_value .get ()
125+ entry_add_value_tmp = "%g" % (
126+ round (parameters .item (row_number ).value * 10 , 5 )
127+ )
126128 entry_add_value_tmp_n = entry_add_value_tmp [::- 1 ].find ("." )
127129 entry_add_value_tmp_dp = 1 * 10 ** - entry_add_value_tmp_n
128130
129131 if entry_add_value_tmp_dp < spinbox_increment_value_tmp_dp :
130- spinbox_increment .delete (0 , 20 )
132+ spinbox_increment .delete (0 , "end" )
131133 spinbox_increment .insert (0 , entry_add_value_tmp_dp )
132134 updateSettings ()
133135
@@ -136,15 +138,36 @@ def updateParameter(row_number, slider, comment, name):
136138 else :
137139 slider .set (parameters .item (row_number ).value * 10 )
138140
139- else :
140- messagebox .showwarning (
141- "Warning" , "Cannot update with selections in the workspace."
142- )
141+ entry_add_value .delete (0 , "end" )
142+
143+ except NameError as err :
144+ messagebox .showwarning ("Name Error" , err )
145+ except TypeError as err :
146+ messagebox .showwarning ("Type Error" , err )
147+ except RuntimeError as err :
148+ messagebox .showwarning ("Runtime Error" , err )
149+
150+ comment_input = entry_add_comment .get ()
151+ if comment_input == " " :
152+ scaleBlocks [row_number ][3 ].grid_remove ()
153+ entry_add_comment .delete (0 , "end" )
154+ elif len (comment_input ) > 0 :
155+ comment .configure (text = comment_input )
156+ parameters [row_number ].comment = comment_input
157+ scaleBlocks [row_number ][3 ].grid (
158+ row = 1 ,
159+ column = 0 ,
160+ sticky = W ,
161+ pady = (0 , 0 ),
162+ padx = (0 , 0 ),
163+ columnspan = 10 ,
164+ )
165+ entry_add_comment .delete (0 , "end" )
143166
144- except NameError as err :
145- messagebox .showwarning ("Name Error" , err )
146- except TypeError as err :
147- messagebox . showwarning ( "Type Error" , err )
167+ else :
168+ messagebox .showwarning (
169+ "Warning" , "Cannot update with selections in the workspace."
170+ )
148171
149172
150173def updateSettings ():
@@ -242,7 +265,7 @@ def createScaleBlock(row_number):
242265 resolution = float (spinbox_increment .get ()),
243266 orient = "horizontal" ,
244267 command = lambda _ : sliderMoved (row_number ),
245- length = 269 ,
268+ length = 260 ,
246269 variable = slider_value ,
247270 )
248271 slider .grid (row = row_number , column = 20 , columnspan = 10 )
@@ -295,7 +318,7 @@ def loadToolbar():
295318
296319 window_top .grid (row = 0 , column = 0 , columnspan = 70 , padx = (10 , 10 ), pady = (10 , 0 ))
297320
298- label_add_name = Label (window_top , text = "Name: " , anchor = "w" )
321+ label_add_name = Label (window_top , text = "Name:" , anchor = "w" )
299322 label_add_name .grid (row = 0 , column = 0 , sticky = W , padx = (0 , 5 ), columnspan = 10 )
300323
301324 entry_add_name = Entry (
@@ -307,7 +330,7 @@ def loadToolbar():
307330 )
308331 entry_add_name .grid (row = 0 , column = 10 , sticky = W , padx = (0 , 20 ), columnspan = 10 )
309332
310- label_add_value = Label (window_top , text = "Value: " , anchor = "w" )
333+ label_add_value = Label (window_top , text = "Value:" , anchor = "w" )
311334 label_add_value .grid (row = 0 , column = 20 , sticky = W , padx = (0 , 5 ), columnspan = 10 )
312335
313336 entry_add_value = Entry (
@@ -319,7 +342,7 @@ def loadToolbar():
319342 )
320343 entry_add_value .grid (row = 0 , column = 30 , sticky = W , padx = (0 , 20 ), columnspan = 10 )
321344
322- label_add_comment = Label (window_top , text = "Comment: " , anchor = "w" )
345+ label_add_comment = Label (window_top , text = "Comment:" , anchor = "w" )
323346 label_add_comment .grid (row = 0 , column = 40 , sticky = W , padx = (0 , 5 ), columnspan = 10 )
324347
325348 entry_add_comment = Entry (
@@ -378,15 +401,15 @@ def loadToolbar():
378401 spinbox_increment .grid (
379402 row = 1 ,
380403 column = 50 ,
381- sticky = W ,
404+ sticky = W + E ,
382405 padx = (0 , 20 ),
383406 pady = (6 , 0 ),
384407 columnspan = 10 ,
385408 )
386409 spinbox_increment .delete (0 )
387410 spinbox_increment .insert (0 , str (spinbox_increment_value ))
388411
389- label_add_min = Label (window_top , text = "Min: " , anchor = "w" )
412+ label_add_min = Label (window_top , text = "Min:" , anchor = "w" )
390413 label_add_min .grid (
391414 row = 1 , column = 0 , sticky = W , padx = (0 , 5 ), pady = (6 , 0 ), columnspan = 10
392415 )
@@ -410,7 +433,7 @@ def loadToolbar():
410433 spinbox_min .delete (0 )
411434 spinbox_min .insert (0 , str (spinbox_min_value ))
412435
413- label_add_max = Label (window_top , text = "Max: " , anchor = "w" )
436+ label_add_max = Label (window_top , text = "Max:" , anchor = "w" )
414437 label_add_max .grid (
415438 row = 1 ,
416439 column = 20 ,
@@ -431,15 +454,15 @@ def loadToolbar():
431454 spinbox_max .grid (
432455 row = 1 ,
433456 column = 30 ,
434- sticky = W ,
457+ sticky = W + E ,
435458 padx = (0 , 20 ),
436459 pady = (6 , 0 ),
437460 columnspan = 10 ,
438461 )
439462 spinbox_max .delete (0 )
440463 spinbox_max .insert (0 , str (spinbox_max_value ))
441464
442- label_add_increment = Label (window_top , text = "Increment: " , anchor = "w" )
465+ label_add_increment = Label (window_top , text = "Increment:" , anchor = "w" )
443466 label_add_increment .grid (
444467 row = 1 ,
445468 column = 40 ,
@@ -495,12 +518,12 @@ def updateWindow():
495518 param_val = parameters .item (row_number )
496519
497520 if param_val .value * 10 > float (spinbox_max .get ()):
498- spinbox_max .delete (0 , 20 )
521+ spinbox_max .delete (0 , "end" )
499522 spinbox_max .insert (0 , "%g" % (param_val .value * 10 ))
500523 updateSettings ()
501524 scaleBlocks [row_number ][0 ].set (param_val .value * 10 )
502525 elif param_val .value * 10 < float (spinbox_min .get ()):
503- spinbox_min .delete (0 , 20 )
526+ spinbox_min .delete (0 , "end" )
504527 spinbox_min .insert (0 , "%g" % (param_val .value * 10 ))
505528 updateSettings ()
506529 scaleBlocks [row_number ][0 ].set (param_val .value * 10 )
@@ -517,7 +540,7 @@ def updateWindow():
517540 entry_add_value_tmp_dp = 1 * 10 ** - entry_add_value_tmp_n
518541
519542 if entry_add_value_tmp_dp < spinbox_increment_value_tmp_dp :
520- spinbox_increment .delete (0 , 20 )
543+ spinbox_increment .delete (0 , "end" )
521544 spinbox_increment .insert (0 , entry_add_value_tmp_dp )
522545 updateSettings ()
523546
0 commit comments