# Draw simple boundary based on the lines and depth def generate_mesh(lines: list, z_origin: float, depth: float, symmetric: bool = True): if symmetric: depth1 = depth/2 depth2 = -depth/2 origin = create_3D(lines, z_origin, depth1) extruded = create_3D(lines, z_origin, depth2) else: origin = create_3D(lines, z_origin, 0) extruded = create_3D(lines, z_origin, depth) vert_lines = create_vert_lines(origin, extruded) print(f"Result = {origin} / {extruded} / {vert_lines}") return origin + vert_lines + extruded def create_vert_lines(origin, extruded): vert_lines = [] for d3_point_o, d3point_e in zip(origin, extruded): for sp3d_1, sp3d_2 in zip(d3_point_o, d3point_e): new_line = sp3d_1, sp3d_2 vert_lines.append(new_line) return vert_lines def create_3D(lines, z_origin, depth): line_loop = [] for coordinate2d in lines: start, end = coordinate2d xs,ys = start coordinate3d_start_orig = xs, ys, z_origin + depth xe, ye = end coordinate3d_end_orig = xe, ye, z_origin + depth line3d_orig = coordinate3d_start_orig, coordinate3d_end_orig line_loop.append(line3d_orig) return line_loop