Index: trunk/src/plugins/io_easyeda/read_hi_pro.c =================================================================== --- trunk/src/plugins/io_easyeda/read_hi_pro.c (revision 10677) +++ trunk/src/plugins/io_easyeda/read_hi_pro.c (revision 10678) @@ -651,7 +651,39 @@ return 0; } +static int easypro_parse_component(read_ctx_t *ctx, gdom_node_t *obj, csch_cgrp_t *parent) +{ + TODO("implement me"); ctx->pro_last = parent; + return 0; +} +/* "WIRE","e1", [[80,65,80,245],[80,245,150,245],[150,245,150,350]] ,"st3",0 + kw id x1 y1 x2 y2 sty ? */ +static int easypro_parse_wire(read_ctx_t *ctx, gdom_node_t *obj, csch_cgrp_t *parent) +{ + gdom_node_t *segs, *coords; + long n; + + REQ_ARGC_GTE(obj, 5, "easypro_parse_wire", return -1); + GET_ARG_ARRAY(segs, obj, 2, "easypro_parse_wire: segments", return -1); + + for(n = 0; n < segs->value.array.used; n++) { + double x1, y1, x2, y2; + + GET_ARG_ARRAY(coords, segs, n, "easypro_parse_wire: coords", return -1); + REQ_ARGC_GTE(coords, 4, "easypro_parse_wire coords", return -1); + + GET_ARG_DBL(x1, coords, 0, "easypro_parse_wire: coord x1", return -1); + GET_ARG_DBL(y1, coords, 1, "easypro_parse_wire: coord y1", return -1); + GET_ARG_DBL(x2, coords, 2, "easypro_parse_wire: coord x2", return -1); + GET_ARG_DBL(y2, coords, 3, "easypro_parse_wire: coord y2", return -1); + + csch_alien_mknet(&ctx->alien, &ctx->sheet->direct, x1, y1, x2, y2); + } + + return 0; +} + /* object dispatcher */ static int easypro_parse_any_obj(read_ctx_t *ctx, gdom_node_t *obj, csch_cgrp_t *parent) { @@ -676,6 +708,8 @@ case easy_GROUP: return easypro_parse_group(ctx, obj, parent); case easy_OBJ: return easypro_parse_obj(ctx, obj, parent); case easy_LINESTYLE: return easypro_parse_linestyle(ctx, obj, parent); + case easy_COMPONENT: return easypro_parse_component(ctx, obj, parent); + case easy_WIRE: return easypro_parse_wire(ctx, obj, parent); case easy_FONTSTYLE: return 0; /* ignore: sch-rnd uses pens */