Skip to content

Commit bd7736f

Browse files
committed
reverted export letters script
1 parent 5601bb6 commit bd7736f

File tree

2 files changed

+3
-95
lines changed

2 files changed

+3
-95
lines changed

extras/consolas.blend

292 Bytes
Binary file not shown.

extras/export_letters.py

Lines changed: 3 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -88,103 +88,11 @@ def convert_curve(obj):
8888
bpy.ops.object.convert(target='MESH')
8989

9090

91-
def angle_between_points(p0, p1, p2):
92-
a = (p1[0] - p0[0])**2 + (p1[1] - p0[1])**2
93-
b = (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2
94-
c = (p2[0] - p0[0])**2 + (p2[1] - p0[1])**2
95-
96-
angle = math.acos((a + b - c) / math.sqrt(4 * a * b)) * 180 / math.pi
97-
return angle
98-
99-
100-
def get_angles(verts):
101-
"""
102-
Get a list of angles for each vertex in a looped mesh object
103-
"""
104-
angles = []
105-
for i in range(len(verts)):
106-
if i == 0:
107-
A = [verts[-1].co.x, verts[-1].co.y]
108-
else:
109-
A = [verts[i - 1].co.x, verts[i - 1].co.y]
110-
111-
B = [verts[i].co.x, verts[i].co.y]
112-
113-
if i == len(verts) - 1:
114-
C = [verts[0].co.x, verts[0].co.y]
115-
else:
116-
C = [verts[i + 1].co.x, verts[i + 1].co.y]
117-
118-
ABC_angle = angle_between_points(A, B, C)
119-
angles.append(ABC_angle)
120-
return angles
121-
122-
123-
def get_lowers(numbers, threshold):
124-
"""
125-
Returns a list of numbers lower than threshold
126-
"""
127-
lowers = []
128-
for num in numbers:
129-
if num <= threshold:
130-
lowers.append(num)
131-
return lowers
132-
133-
134-
def clean_mesh(obj):
135-
convert_curve(obj)
136-
mesh_obj = bpy.context.view_layer.objects.active
137-
islands = get_islands(mesh_obj)
138-
139-
bpy.ops.object.mode_set(mode='EDIT')
140-
bpy.ops.mesh.select_all(action='DESELECT')
141-
bm = bmesh.from_edit_mesh(mesh_obj.data)
142-
143-
i = 0
144-
while i < len(islands):
145-
verts = []
146-
for index in islands[i]:
147-
bm.verts.ensure_lookup_table()
148-
verts.append(bm.verts[index])
149-
150-
angles = get_angles(verts)
151-
threshold = 2
152-
153-
if min(angles) > threshold:
154-
for f in range(1, len(islands[i + 1])):
155-
index = islands[i + 1][f]
156-
bm.verts[index - 1].select = True
157-
islands.pop(i + 1)
158-
159-
else:
160-
if len(get_lowers(angles, threshold)) == 2:
161-
for x in range(2, len(angles)):
162-
if angles[x] > threshold:
163-
bm.verts.ensure_lookup_table()
164-
bm.verts[islands[i][x] - 1].select = True
165-
elif angles[x] < threshold:
166-
break
167-
i += 1
168-
169-
bpy.ops.mesh.delete()
170-
bpy.ops.object.mode_set(mode='OBJECT')
171-
172-
return mesh_obj
173-
174-
175-
def export_glyph(obj, folder, looped_font=False):
91+
def export_glyph(obj, folder):
17692
name = obj.name
17793
path = os.path.join(folder, name + '.glyph')
17894

179-
if looped_font == False:
180-
convert_curve(obj)
181-
else:
182-
try:
183-
clean_mesh(obj)
184-
except IndexError:
185-
bpy.ops.object.mode_set(mode='OBJECT')
186-
bpy.ops.object.delete()
187-
convert_curve(obj)
95+
convert_curve(obj)
18896

18997
duplicate = bpy.context.view_layer.objects.active
19098
islands = get_islands(duplicate)
@@ -230,7 +138,7 @@ def export_glyph(obj, folder, looped_font=False):
230138
os.makedirs(path)
231139

232140
for i in range(len(objs)):
233-
export_glyph(objs[i], path, looped_font=True)
141+
export_glyph(objs[i], path)
234142
update_progress("Making Glyphs", i / len(objs))
235143
update_progress("Making Glyphs", 1)
236144

0 commit comments

Comments
 (0)