Index: sketch_route.c =================================================================== --- sketch_route.c (revision 18435) +++ sketch_route.c (revision 18436) @@ -133,9 +133,9 @@ point_t curr_sp_p[4], next_sp_p[4]; for (j = 0; j < 4; j++) { - spoke_pos_at_wire_node(&curr_pd->spoke[j], curr_wp->wire_node, &curr_sp_p[j].pos.x, &curr_sp_p[j].pos.y); + spoke_pos_at_wire_point(&curr_pd->spoke[j], curr_wp, &curr_sp_p[j].pos.x, &curr_sp_p[j].pos.y); curr_sp_p[j].pos.y = -curr_sp_p[j].pos.y; - spoke_pos_at_wire_node(&next_pd->spoke[j], next_wp->wire_node, &next_sp_p[j].pos.x, &next_sp_p[j].pos.y); + spoke_pos_at_wire_point(&next_pd->spoke[j], next_wp, &next_sp_p[j].pos.x, &next_sp_p[j].pos.y); next_sp_p[j].pos.y = -next_sp_p[j].pos.y; } Index: spoke.c =================================================================== --- spoke.c (revision 18435) +++ spoke.c (revision 18436) @@ -52,8 +52,10 @@ } } -void spoke_pos_at_wire_node(spoke_t *sp, wirelist_node_t *w_node, pcb_coord_t *x, pcb_coord_t *y) +void spoke_pos_at_wire_point(spoke_t *sp, wire_point_t *wp, pcb_coord_t *x, pcb_coord_t *y) { + pointdata_t *pd = wp->p->data; + wirelist_node_t *w_node = wp->wire_node; pcb_coord_t spacing; assert(w_node != NULL); @@ -61,10 +63,22 @@ spacing = (w_node->item->thickness + 1)/2; spacing += conf_core.design.bloat; w_node = w_node->next; - WIRELIST_FOREACH(w, w_node) - spacing += w->thickness; - spacing += conf_core.design.bloat; - WIRELIST_FOREACH_END(); + if (wirelist_get_index(pd->uturn_wires, w_node) != -1) { + WIRELIST_FOREACH(w, wp->wire_node) + spacing += w->thickness; + spacing += conf_core.design.bloat; + WIRELIST_FOREACH_END(); + } + else { + WIRELIST_FOREACH(w, w_node) + spacing += w->thickness; + spacing += conf_core.design.bloat; + WIRELIST_FOREACH_END(); + WIRELIST_FOREACH(w, pd->uturn_wires) + spacing += w->thickness; + spacing += conf_core.design.bloat; + WIRELIST_FOREACH_END(); + } spoke_pos(sp, spacing, x, y); } Index: spoke.h =================================================================== --- spoke.h (revision 18435) +++ spoke.h (revision 18436) @@ -27,7 +27,7 @@ void spoke_init(spoke_t *sp, spoke_dir_t dir, point_t *p); void spoke_uninit(spoke_t *sp); -void spoke_pos_at_wire_node(spoke_t *sp, wirelist_node_t *w_node, pcb_coord_t *x, pcb_coord_t *y); +void spoke_pos_at_wire_point(spoke_t *sp, wire_point_t *wp, pcb_coord_t *x, pcb_coord_t *y); void spoke_pos_at_slot(spoke_t *sp, int slot, pcb_coord_t *x, pcb_coord_t *y); void spoke_insert_wire_at_slot(spoke_t *sp, int slot_num, ewire_t *ew);