Describing all text entities in the drawing

Describing all text entities in the drawing
 1# This example iterates all the entities in the active block
 2# and describes the properties for each text entity and the
 3# text style of the text entity
 4
 5
 6entities = active_block.entities
 7
 8
 9# Describe a font
10def describe_font(font):
11    impact.gui.output_toolbox.add("font Name: " + str(font.full_name))
12
13    if font.font_type == ipFontType.ftLine:
14        impact.gui.output_toolbox.add("font Type: Line font")
15    else:
16        impact.gui.output_toolbox.add("font Type: True Type font")
17
18# Describes common properties for text styles
19def describe_text_style(text_style):
20    describe_font(text_style.font)
21    impact.gui.output_toolbox.add("Height: " + str(text_style.height))
22    impact.gui.output_toolbox.add("Justification: " + str(text_style.justification))
23    impact.gui.output_toolbox.add("Orientation: " + str(text_style.orientation))
24    impact.gui.output_toolbox.add("Angle: " + str(text_style.angle))
25    impact.gui.output_toolbox.add("MirrorX: " + str(text_style.mirror_x))
26    impact.gui.output_toolbox.add("MirrorY: " + str(text_style.mirror_y))
27    impact.gui.output_toolbox.add("Leading: " + str(text_style.leading))
28
29# Describes properties relevant for line text styles
30def describe_line_text_style(text_style):
31    impact.gui.output_toolbox.add(" ")
32    impact.gui.output_toolbox.add("Width: " + str(text_style.width))
33    impact.gui.output_toolbox.add("Average Width: " + str(text_style.average_width))
34    impact.gui.output_toolbox.add("Tracking: " + str(text_style.tracking))
35    impact.gui.output_toolbox.add("Shear: " + str(text_style.shear))
36
37    describe_text_style(text_style)
38
39# Describes properties relevant for True type text styles
40def describe_true_type_text_style(text_style):
41    impact.gui.output_toolbox.add(" ")
42    impact.gui.output_toolbox.add("font Style: " + str(text_style.font_style))
43    impact.gui.output_toolbox.add("Outline: " + str(text_style.outline))
44    impact.gui.output_toolbox.add("Underline: " + str(text_style.underline))
45    impact.gui.output_toolbox.add("Strikethrough: " + str(text_style.strikethrough))
46
47    describe_text_style(text_style)
48
49# Describes the properties of the text entity
50def describe_text(text_entity):
51    impact.gui.output_toolbox.add(" ")
52    impact.gui.output_toolbox.add("TEXT ENTITY")
53    impact.gui.output_toolbox.add(" ")
54
55    impact.gui.output_toolbox.add("Caption: " + str(text_entity.caption))
56    impact.gui.output_toolbox.add("Anchor X: " + str(text_entity.anchor.x))
57    impact.gui.output_toolbox.add("Anchor Y: " + str(text_entity.anchor.y))
58    impact.gui.output_toolbox.add("Horizontal Position: " + str(text_entity.horizontal_position))
59    impact.gui.output_toolbox.add("Vertical Position: " + str(text_entity.vertical_position))
60
61    # impact.gui.output_toolbox.add() "X Anchor Offset: " + text_entity.x_anchor_offset
62    # impact.gui.output_toolbox.add() "Y Anchor Offset: " + text_entity.y_anchor_offset
63    impact.gui.output_toolbox.add("Bounded: " + str(text_entity.bounded))
64    impact.gui.output_toolbox.add("Bound Height: " + str(text_entity.bound_height))
65    impact.gui.output_toolbox.add("Bound Width: " + str(text_entity.bound_width))
66    impact.gui.output_toolbox.add("Constrained: " + str(text_entity.constrained))
67    impact.gui.output_toolbox.add("Wordwrapping: " + str(text_entity.word_wrapping))
68    impact.gui.output_toolbox.add("Vertical Alignment: " + str(text_entity.vertical_alignment))
69
70    # impact.gui.output_toolbox.add() "Command: " + text_entity.command
71
72    if entity.text_style.font.font_type == ipFontType.ftLine:
73        describe_line_text_style(entity.text_style)
74    else:
75        describe_true_type_text_style(entity.text_style)
76
77
78impact.gui.output_toolbox.clear()
79
80entities = active_block.entities
81
82for entity in entities:
83    if entity.entity_type == ipEntityType.etText:
84        describe_text(entity)