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"))