Various block enquiries

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