Various block enquiries

Various block enquiries
 1def extents_to_str(extents):
 2    _result = "(" + str(extents.width) + " x " + str(extents.height) + ")"
 3    return _result
 4
 5def block_tests(s, b):
 6    impact.gui.output_toolbox.add("== " + str(s) + " ==")
 7    impact.gui.output_toolbox.add("Extents: " + str(extents_to_str(b.extents)))
 8    impact.gui.output_toolbox.add("Palette Extents <nothing>: " + str(extents_to_str(b.get_palette_extents(None))))
 9    impact.gui.output_toolbox.add("Palette Extents ""Cut"": " + str(extents_to_str(b.get_palette_extents("Cut"))))
10    impact.gui.output_toolbox.add("Palette Extents (Cut): " + str(extents_to_str(b.get_palette_extents(active_drawing.palettes.item("Cut")))))
11
12    impact.gui.output_toolbox.add("Palettes Extents (Cut, Crease): " + str(extents_to_str(b.get_palette_extents(p))))
13
14    impact.gui.output_toolbox.add("Length (no recurse): " + str(b.get_length_of_entities(False)))
15    impact.gui.output_toolbox.add("Length (recurse): " + str(b.get_length_of_entities(True)))
16
17    impact.gui.output_toolbox.add("Palette Length (no recurse) <nothing>" + str(b.get_length_of_entities_by_palette(None, False)))
18    impact.gui.output_toolbox.add("Palette Length (recurse) <nothing>" + str(b.get_length_of_entities_by_palette(None, True)))
19
20    impact.gui.output_toolbox.add("Palette Length (no recurse) ""Cut"": " + str(b.get_length_of_entities_by_palette("Cut", False)))
21    impact.gui.output_toolbox.add("Palette Length (recurse) ""Cut"": " + str(b.get_length_of_entities_by_palette("Cut", True)))
22
23    impact.gui.output_toolbox.add("Palette Length (no recurse) (Cut): " + str(b.get_length_of_entities_by_palette(active_drawing.palettes.item("Cut"), False)))
24    impact.gui.output_toolbox.add("Palette Length (recurse) (Cut): " + str(b.get_length_of_entities_by_palette(active_drawing.palettes.item("Cut"), True)))
25
26    impact.gui.output_toolbox.add("Palettes Length (no recurse) (Cut, Crease): " + str(b.get_length_of_entities_by_palette(p, False)))
27    impact.gui.output_toolbox.add("Palettes Length (recurse) (Cut, Crease): " + str(b.get_length_of_entities_by_palette(p, True)))
28
29    enquire = b.enquire_lengths
30
31    # enquire.palettes = "Cut"
32    enquire.palettes = p
33
34    # enquire.palette_types = ipPaletteType.ptCut
35    # enquire.palette_types = pt
36    # enquire.rule_types = ipRuleType.rtNormal
37    # enquire.rule_types = rt
38    enquire.entity_types = ipEntityType.etLine
39
40    # enquire.entity_types = et
41    enquire.recurse = True
42
43    # enquire.block_or_symbol_name = "Block1"
44
45    enquire.perform()
46
47    impact.gui.output_toolbox.add("EnquireExtents: " + str(extents_to_str(enquire.extents)))
48    impact.gui.output_toolbox.add("EnquireLengths (Total): " + str(enquire.length))
49
50    for palette in p:
51        impact.gui.output_toolbox.add("  Palette: " + palette.full_name + ": " + str(palette.enquire_length))
52
53    inserts = b.enquire_insertions
54
55    inserts.recurse = False
56    inserts.perform()
57
58    for insert in inserts:
59        impact.gui.output_toolbox.add("Insert: " + insert.name + " Type: " + str(insert.type) + " Count: " + str(insert.count) + " Scale: " + str(insert.scale) + " Area: " + str(insert.area))
60
61    impact.gui.output_toolbox.add("")
62
63p = [None] * 2; pt = [None] * 2; et = [None] * 2; rt = [None] * 2
64
65p[0] = active_drawing.palettes.item("Cut")
66p[1] = active_drawing.palettes.item("Crease")
67
68pt[0] = ipPaletteType.ptCut
69pt[1] = ipPaletteType.ptCrease
70
71et[0] = ipEntityType.etLine
72et[1] = ipEntityType.etArc
73
74rt[0] = ipRuleType.rtWave
75rt[1] = ipRuleType.rtZigZag
76
77impact.gui.output_toolbox.clear()
78
79block_tests("ActiveLayer.RootBlock", impact.active_drawing.active_layer.root_block)
80
81for layer in active_drawing.layers:
82    block_tests("Layer: " + layer.full_name, layer.root_block)
83
84if not active_drawing.layers.item("B").isNone():
85    if not active_drawing.layers.item("B").blocks.item("Block1").isNone():
86        block_tests("Layer B: Block1", active_drawing.layers.item("B").blocks.item("Block1"))