214
212
self.__newids[typ].insert(0, value)
217
def SetBaseAttributes(self, element, lrzid, colour, layer, penstyle, pensize):
215
def SetBaseAttributes(self, element, lrzid, color, layer, style, width):
218
216
# set basis attributes (LorzeDrawElement, attributes)
219
217
element.SetId(lrzid)
220
element.SetColour(colour)
221
element.SetLayer(layer)
222
element.SetPenStyle(penstyle)
223
element.SetPenSize(pensize)
219
# default drawing attributes and all keys of the attribute dictionairys
220
drawdefcolor, drawdeflayer, drawdefstyle, drawdefwidth= self.__parent.GetDefAttributes()
221
colorkeys, layerkeys, stylekeys, widthkeys= self.__parent.GetAllAttrNames()
224
if color in colorkeys:
225
element.SetColor(color)
227
element.SetColor(drawdefcolor)
230
if layer in layerkeys:
231
element.SetLayer(layer)
233
element.SetLayer(drawdeflayer)
236
if style in stylekeys:
237
element.SetStyle(style)
239
element.SetStyle(drawdefstyle)
242
if width in widthkeys:
243
element.SetWidth(width)
245
element.SetWidth(drawdefwidth)
227
def GetDefAttr(self):
228
# Get default attributes for new drawing elements
229
return(self.__drawdefcolour, self.__drawdeflayer, self.__drawdefstyle, self.__drawdefsize)
232
def SetDefAttr(self, drawdefcolour, drawdeflayer, drawdefstyle, drawdefsize):
233
# Set default attributes for new drawing elements
234
self.__drawdefcolour= drawdefcolour
235
self.__drawdeflayer= drawdeflayer
236
self.__drawdefstyle= drawdefstyle
237
self.__drawdefsize= drawdefsize
240
250
def GetUsedAttributes(self):
241
251
# get amounts of used attributes, define amounts
248
258
for lrzid, lrzelem in self.__elements.items():
249
colour.add(lrzelem.GetColour())
259
color.add(lrzelem.GetColor())
250
260
layer.add(lrzelem.GetLayer())
251
style.add(lrzelem.GetPenStyle()[0]+str(lrzelem.GetPenStyle()[1]))
252
size.add(lrzelem.GetPenSize())
254
return(colour, layer, style, size)
261
style.add(lrzelem.GetStyle())
262
width.add(lrzelem.GetWidth())
264
return(color, layer, style, width)
267
def CheckAttrDict(self):
268
# check all attributes in connection with the dictionairys, get default drawing attributes and all keys of the attribute dictionairys
269
drawdefcolor, drawdeflayer, drawdefstyle, drawdefwidth= self.__parent.GetDefAttributes()
270
colorkeys, layerkeys, stylekeys, widthkeys= self.__parent.GetAllAttrNames()
272
for lrzid, lrzelem in self.__elements.items():
274
color= lrzelem.GetColor()
275
layer= lrzelem.GetLayer()
276
style= lrzelem.GetStyle()
277
width= lrzelem.GetWidth()
279
# check attributes, if they not exists
280
if color not in colorkeys:
281
lrzelem.SetColor(drawdefcolor)
283
if layer not in layerkeys:
284
lrzelem.SetLayer(drawdeflayer)
286
if style not in stylekeys:
287
lrzelem.SetStyle(drawdefstyle)
289
if widht not in widthkeys:
290
lrzelem.SetWidth(drawdefwidth)
297
self.__drawing= LorzeDrawing(self)
298
self.__drawing.SetRec(1, 2, 3, 4)
299
print('Rec', self.__drawing.GetRec())
301
print('Add 2 lines; Red, Test 1, Solid, 0.18 mm, 0, 0, 10, 10; White, Test 2, Dashed 1, 0.25 mm, 10, 10, 0, 0')
302
line1= ('L', ('Red', 'Test 1', 'Solid', '0.18 mm', (0, 0, 10, 10)))
303
line2= ('L', ('White', 'Test 2', 'Dashed 1', '0.25 mm', (10, 10, 0, 0)))
304
self.__drawing.Add([line1, line2])
305
a= self.__drawing.GetElements()
307
print (i, a[i].GetId(), a[i].GetColor(), a[i].GetLayer(), a[i].GetStyle(), a[i].GetWidth(), a[i].GetCoords())
309
print('Get with ids: L1')
310
for i in self.__drawing.Get(['L1']):
311
print (i.GetId(), i.GetColor(),i.GetLayer(), i.GetStyle(), i.GetWidth(), i.GetCoords())
313
print('Update lines with ids: L0, L1; White, error, Dashed 1, error, 0.1, 0.1, 10.1, 10.1; error, Test 1, error, 0.18 mm, 11, 11, 1, 1')
314
update1= ('L0', ('White', 'error', 'Dashed 1', 'error', (0.1, 0.1, 10.1, 10.1)))
315
update2= ('L1', ('error', 'Test 1', 'error', '0.18 mm', (11, 11, 1, 1)))
316
self.__drawing.Update([update1, update2])
317
a= self.__drawing.GetElements()
319
print (i, a[i].GetId(), a[i].GetColor(), a[i].GetLayer(), a[i].GetStyle(), a[i].GetWidth(), a[i].GetCoords())
321
print('Add 2 lines; Red, Test 2, Dashed 1, 0.18 mm; White, Test 1, Solid, 0.25 mm / remove 2 lines; L0, L2')
322
line3= ('L', ('Red', 'Test 2', 'Dashed 1', '0.18 mm', (12, 12, 2, 2)))
323
line4= ('L', ('White', 'Test 1', 'Solid', '0.25 mm', (13, 13, 3, 3)))
324
self.__drawing.Add([line3, line4])
325
self.__drawing.Del(['L0', 'L2'])
326
print('After deleting element L0 and L2')
327
a= self.__drawing.GetElements()
329
print (i, a[i].GetId(), a[i].GetColor(), a[i].GetLayer(), a[i].GetStyle(), a[i].GetWidth(), a[i].GetCoords())
331
print('Add 2 line; error, error, error, error, 14, 14, 4, 4; error, error, error, error, 14, 14, 4, 4')
332
line5= ('L', ('error', 'error', 'error', 'error', (14, 14, 4, 4)))
333
self.__drawing.Add([line5, line5])
334
a= self.__drawing.GetElements()
336
print (i, a[i].GetId(), a[i].GetColor(), a[i].GetLayer(), a[i].GetStyle(), a[i].GetWidth(), a[i].GetCoords())
339
print('Get used attributes')
340
print(self.__drawing.GetUsedAttributes())
343
def GetDefAttributes(self):
344
# get defaults for drawing, all values are strings
345
return('Black', 'System', 'Solid', '1')
348
def GetAllAttrNames(self):
349
# return all attribute names, colors, layers, styles, widths
350
return(['Red', 'White'], ['Test 1', 'Test 2'], ['Solid', 'Dashed 1'], ['0.18 mm', '0.25 mm'])
257
353
if __name__== '__main__':
258
data= LorzeDrawing(('#GHIJKL', 'testlayer', ('DOT_DASH', []), 7.07))
259
data.SetRec(1, 2, 3, 4)
260
print('Rec '+ str(data.GetRec()))
262
elements= [('L', ('BLACK', 'abc', ('SOLID', []), 1, (0, 0, 10, 10))), ('L', ('RED', 'def', ('DOT', []), 2, (10, 10, 0, 0))), ('L', ('GREEN', 'ghi', ('LONG_DASH', []), 3, (5, 5, -5, -5))), ('L', ('BLUE', 'jkl', ('SHORT_DASH', []), 4, (-5, 5, 5, -5))), ('L', ('CYAN', 'mno', ('DOT_DASH', []), 5, (20, 20, -10, -10)))]
263
print('Adding elements')
265
a= data.GetElements()
267
print (i, a[i].GetId(), a[i].GetCoords(), a[i].GetColour(), a[i].GetLayer(), a[i].GetPenStyle(), a[i].GetPenSize())
270
print('Get with ids ', b)
271
for i in data.Get(b):
272
print (i.GetId(), i.GetCoords(), i.GetColour(),i.GetLayer(), i.GetPenStyle(), i.GetPenSize())
274
elements= [('L2', ('BLUE VIOLET', 'aaa', ('TRANSPARENT', []), 6, (1.1, 2.1, 3.1, 4.1))), ('L4', ('DARK GREY', 'bbb', ('USER_DASH', [1,1]), 7, (11.1, 12.1, 13.1, 14.1)))]
275
print('Updating elements & GetElements():')
276
data.Update(elements)
277
a= data.GetElements()
279
print (i, a[i].GetId(), a[i].GetCoords(), a[i].GetColour(), a[i].GetLayer(), a[i].GetPenStyle(), a[i].GetPenSize())
282
print('Deleting elements wiht ids:', b, '& GetElements():')
284
a= data.GetElements()
286
print (i, a[i].GetId(), a[i].GetCoords(), a[i].GetColour(), a[i].GetLayer(), a[i].GetPenStyle(), a[i].GetPenSize())
288
elements= [('L', ('DARK ORCHID', 'ccc', ('SOLID', []), 8, (11, 22, 33, 44))), ('L', ('FOREST GREEN', 'ddd', ('DOT', []), 9, (55, 66, 77, 88))), ('L', ('GOLDENROD', 'eee', ('LONG_DASH', []), 0.1, (99, -11, -22, -33)))]
289
print('Adding new elements & GetElements():')
291
a= data.GetElements()
293
print (i, a[i].GetId(), a[i].GetCoords(), a[i].GetColour(), a[i].GetLayer(), a[i].GetPenStyle(), a[i].GetPenSize())
296
print('Deleting elements wiht ids:', b, '& GetElements():')
298
a= data.GetElements()
300
print (i, a[i].GetId(), a[i].GetCoords(), a[i].GetColour(), a[i].GetLayer(), a[i].GetPenStyle(), a[i].GetPenSize())
302
elements= [('L', ('FIREBRICK', 'fff', ('SHORT_DASH', []), 0.2, (-44, -55, -66, -77))), ('L', ('GREEN YELLOW', 'ggg', ('DOT_DASH', []), 0.3, (-88, -99, 0.1, 0.2))), ('L', ('INDIAN RED', 'hhh', ('TRANSPARENT', []), 0.4, (0.3, 0.4, 0.5, 0.6)))]
303
print('Adding new elements & GetElements():')
305
a= data.GetElements()
307
print (i, a[i].GetId(), a[i].GetCoords(), a[i].GetColour(), a[i].GetLayer(), a[i].GetPenStyle(), a[i].GetPenSize())
309
print(u'Set new default attributes: #123456, newlayer, SOLID, 1.4')
310
data.SetDefAttr('#123456', 'newlayer', ('SOLID', []), 1.4)
311
print(u'Get new default attributes)', data.GetDefAttr())
313
print(u'Get used attributes'), data.GetUsedAttributes()