Index: trunk/src/plugins/io_easyeda/read_hi_pro.c =================================================================== --- trunk/src/plugins/io_easyeda/read_hi_pro.c (revision 10641) +++ trunk/src/plugins/io_easyeda/read_hi_pro.c (revision 10642) @@ -366,6 +366,9 @@ sa *= RND_RAD_TO_DEG; da *= RND_RAD_TO_DEG; + /* y flip */ + sa += 180; + filled = easypro_style_filled(ctx, obj, sty); if (filled) { csch_chdr_t *poly = csch_alien_mkpoly(&ctx->alien, parent, penname, penname); @@ -485,13 +488,13 @@ if ((r > 0) && (rx != ry)) error_at(ctx, obj, ("round rect: elliptical rounding not supported, using circular with average radius\n")); - if (r > 0) csch_alien_append_poly_arc(&ctx->alien, &parent->hdr, x1+r, y1+r, r, 90, 90); + if (r > 0) csch_alien_append_poly_arc(&ctx->alien, &parent->hdr, x1+r, y1+r, r, -90, -90); csch_alien_append_poly_line(&ctx->alien, &parent->hdr, x1+r, y1, x2-r, y1); - if (r > 0) csch_alien_append_poly_arc(&ctx->alien, &parent->hdr, x2-r, y1+r, r, 0, 90); + if (r > 0) csch_alien_append_poly_arc(&ctx->alien, &parent->hdr, x2-r, y1+r, r, 0, -90); csch_alien_append_poly_line(&ctx->alien, &parent->hdr, x2, y1+r, x2, y2-r); - if (r > 0) csch_alien_append_poly_arc(&ctx->alien, &parent->hdr, x1+r, y2-r, r, 270, -90); + if (r > 0) csch_alien_append_poly_arc(&ctx->alien, &parent->hdr, x1+r, y2-r, r, 90, +90); csch_alien_append_poly_line(&ctx->alien, &parent->hdr, x2-r, y2, x1+r, y2); - if (r > 0) csch_alien_append_poly_arc(&ctx->alien, &parent->hdr, x2-r, y2-r, r, 0, -90); + if (r > 0) csch_alien_append_poly_arc(&ctx->alien, &parent->hdr, x2-r, y2-r, r, 0, +90); csch_alien_append_poly_line(&ctx->alien, &parent->hdr, x1, y2-r, x1, y1+r); return 0; @@ -699,6 +702,9 @@ { ctx->pro_last = NULL; htsi_init(&ctx->pro_pen_fill, strhash, strkeyeq); + + /* for whatever reason symbols seem to be y-mirrored */ + ctx->alien.flip_y = 0; } static void easypro_uninit_ctx(read_ctx_t *ctx) @@ -707,6 +713,8 @@ for(e = htsi_first(&ctx->pro_pen_fill); e != NULL; e = htsi_next(&ctx->pro_pen_fill, e)) free(e->key); htsi_uninit(&ctx->pro_pen_fill); + + ctx->alien.flip_y = 1; } /*** entry ***/