Various block enquiries (Python)

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