Index: trunk/src/draw.h =================================================================== --- trunk/src/draw.h (revision 10967) +++ trunk/src/draw.h (revision 10968) @@ -126,4 +126,10 @@ #define pcb_draw_term_need_gfx(obj) \ (((obj)->term != NULL) && !PCB_FLAG_TEST(PCB_FLAG_FOUND, (obj)) && !PCB_FLAG_TEST(PCB_FLAG_WARN, (obj)) && !PCB_FLAG_TEST(PCB_FLAG_SELECTED, (obj))) +#define PCB_DRAW_TERM_GFX_MIN_WIDTH PCB_MM_TO_COORD(0.025) +#define PCB_DRAW_TERM_GFX_MAX_WIDTH PCB_MM_TO_COORD(0.4) + +#define pcb_draw_term_gfx_thick(obj_thick) \ + PCB_CLAMP(((obj_thick) / 6), PCB_DRAW_TERM_GFX_MIN_WIDTH, PCB_DRAW_TERM_GFX_MAX_WIDTH) + #endif Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 10967) +++ trunk/src/obj_arc.c (revision 10968) @@ -803,7 +803,7 @@ if ((allow_term_gfx) && pcb_draw_term_need_gfx(arc)) { pcb_gui->set_line_width(Output.active_padGC, arc->Thickness); pcb_gui->draw_arc(Output.active_padGC, arc->X, arc->Y, arc->Width, arc->Height, arc->StartAngle, arc->Delta); - pcb_gui->set_line_width(Output.fgGC, arc->Thickness/4); + pcb_gui->set_line_width(Output.fgGC, pcb_draw_term_gfx_thick(arc->Thickness)); } else pcb_gui->set_line_width(Output.fgGC, arc->Thickness); Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 10967) +++ trunk/src/obj_line.c (revision 10968) @@ -931,7 +931,7 @@ if ((allow_term_gfx) && pcb_draw_term_need_gfx(line)) { pcb_gui->set_line_width(Output.active_padGC, line->Thickness); pcb_gui->draw_line(Output.active_padGC, line->Point1.X, line->Point1.Y, line->Point2.X, line->Point2.Y); - pcb_gui->set_line_width(Output.fgGC, line->Thickness/4); + pcb_gui->set_line_width(Output.fgGC, pcb_draw_term_gfx_thick(line->Thickness)); } else pcb_gui->set_line_width(Output.fgGC, line->Thickness); Index: trunk/src/obj_poly.c =================================================================== --- trunk/src/obj_poly.c (revision 10967) +++ trunk/src/obj_poly.c (revision 10968) @@ -869,7 +869,7 @@ y = (n->prev->point[1] + n->point[1] + n->next->point[1]) / 3; #warning subc TODO: check if x;y is within the poly, but use a cheaper method than the official - r = PCB_MM_TO_COORD(0.2); + r = (PCB_DRAW_TERM_GFX_MIN_WIDTH + PCB_DRAW_TERM_GFX_MAX_WIDTH)/2; pcb_gui->set_line_width(Output.fgGC, r); pcb_gui->draw_line(Output.fgGC, x, y, x, y); }