Index: write.c =================================================================== --- write.c (revision 36979) +++ write.c (revision 36980) @@ -761,22 +761,22 @@ TODO(": se this from io_kicad, do not duplicate the code here") /* we sort out the needed kicad sheet size here, using A4, A3, A2, A1 or A0 size as needed */ - if (RND_COORD_TO_MIL(PCB->hidlib.size_x) > A4WidthMil || RND_COORD_TO_MIL(PCB->hidlib.size_y) > A4HeightMil) { + if (RND_COORD_TO_MIL(PCB->hidlib.dwg.X2) > A4WidthMil || RND_COORD_TO_MIL(PCB->hidlib.dwg.Y2) > A4HeightMil) { sheetHeight = A4WidthMil; /* 11.7" */ sheetWidth = 2 * A4HeightMil; /* 16.5" */ paperSize = 3; /* this is A3 size */ } - if (RND_COORD_TO_MIL(PCB->hidlib.size_x) > sheetWidth || RND_COORD_TO_MIL(PCB->hidlib.size_y) > sheetHeight) { + if (RND_COORD_TO_MIL(PCB->hidlib.dwg.X2) > sheetWidth || RND_COORD_TO_MIL(PCB->hidlib.dwg.Y2) > sheetHeight) { sheetHeight = 2 * A4HeightMil; /* 16.5" */ sheetWidth = 2 * A4WidthMil; /* 23.4" */ paperSize = 2; /* this is A2 size */ } - if (RND_COORD_TO_MIL(PCB->hidlib.size_x) > sheetWidth || RND_COORD_TO_MIL(PCB->hidlib.size_y) > sheetHeight) { + if (RND_COORD_TO_MIL(PCB->hidlib.dwg.X2) > sheetWidth || RND_COORD_TO_MIL(PCB->hidlib.dwg.Y2) > sheetHeight) { sheetHeight = 2 * A4WidthMil; /* 23.4" */ sheetWidth = 4 * A4HeightMil; /* 33.1" */ paperSize = 1; /* this is A1 size */ } - if (RND_COORD_TO_MIL(PCB->hidlib.size_x) > sheetWidth || RND_COORD_TO_MIL(PCB->hidlib.size_y) > sheetHeight) { + if (RND_COORD_TO_MIL(PCB->hidlib.dwg.X2) > sheetWidth || RND_COORD_TO_MIL(PCB->hidlib.dwg.Y2) > sheetHeight) { sheetHeight = 4 * A4HeightMil; /* 33.1" */ sheetWidth = 4 * A4WidthMil; /* 46.8" */ paperSize = 0; /* this is A0 size; where would you get it made ?!?! */ @@ -784,20 +784,20 @@ fprintf(FP, "Sheet A%d ", paperSize); /* we now sort out the offsets for centring the layout in the chosen sheet size here */ - if (sheetWidth > RND_COORD_TO_MIL(PCB->hidlib.size_x)) { /* usually A4, bigger if needed */ + if (sheetWidth > RND_COORD_TO_MIL(PCB->hidlib.dwg.X2)) { /* usually A4, bigger if needed */ fprintf(FP, "%d ", sheetWidth); /* legacy kicad: elements decimils, sheet size mils */ - LayoutXOffset = RND_MIL_TO_COORD(sheetWidth) / 2 - PCB->hidlib.size_x / 2; + LayoutXOffset = RND_MIL_TO_COORD(sheetWidth) / 2 - PCB->hidlib.dwg.X2 / 2; } else { /* the layout is bigger than A0; most unlikely, but... */ - rnd_fprintf(FP, "%.0ml ", PCB->hidlib.size_x); + rnd_fprintf(FP, "%.0ml ", PCB->hidlib.dwg.X2); LayoutXOffset = 0; } - if (sheetHeight > RND_COORD_TO_MIL(PCB->hidlib.size_y)) { + if (sheetHeight > RND_COORD_TO_MIL(PCB->hidlib.dwg.Y2)) { fprintf(FP, "%d", sheetHeight); - LayoutYOffset = RND_MIL_TO_COORD(sheetHeight) / 2 - PCB->hidlib.size_y / 2; + LayoutYOffset = RND_MIL_TO_COORD(sheetHeight) / 2 - PCB->hidlib.dwg.Y2 / 2; } else { /* the layout is bigger than A0; most unlikely, but... */ - rnd_fprintf(FP, "%.0ml", PCB->hidlib.size_y); + rnd_fprintf(FP, "%.0ml", PCB->hidlib.dwg.Y2); LayoutYOffset = 0; } fputs("\n", FP); @@ -908,19 +908,19 @@ } else { /* no outline layer per se, export the board margins instead - obviously some scope to reduce redundant code... */ fputs("$DRAWSEGMENT\n", FP); - rnd_fprintf(FP, "Po 0 %.0mk %.0mk %.0mk %.0mk %.0mk\n", PCB->hidlib.size_x / 2 - LayoutXOffset, PCB->hidlib.size_y / 2 - LayoutYOffset, PCB->hidlib.size_x / 2 + LayoutXOffset, PCB->hidlib.size_y / 2 - LayoutYOffset, outlineThickness); + rnd_fprintf(FP, "Po 0 %.0mk %.0mk %.0mk %.0mk %.0mk\n", PCB->hidlib.dwg.X2 / 2 - LayoutXOffset, PCB->hidlib.dwg.Y2 / 2 - LayoutYOffset, PCB->hidlib.dwg.X2 / 2 + LayoutXOffset, PCB->hidlib.dwg.Y2 / 2 - LayoutYOffset, outlineThickness); rnd_fprintf(FP, "De %d 0 0 0 0\n", currentKicadLayer); fputs("$EndDRAWSEGMENT\n", FP); fputs("$DRAWSEGMENT\n", FP); - rnd_fprintf(FP, "Po 0 %.0mk %.0mk %.0mk %.0mk %.0mk\n", PCB->hidlib.size_x / 2 + LayoutXOffset, PCB->hidlib.size_y / 2 - LayoutYOffset, PCB->hidlib.size_x / 2 + LayoutXOffset, PCB->hidlib.size_y / 2 + LayoutYOffset, outlineThickness); + rnd_fprintf(FP, "Po 0 %.0mk %.0mk %.0mk %.0mk %.0mk\n", PCB->hidlib.dwg.X2 / 2 + LayoutXOffset, PCB->hidlib.dwg.Y2 / 2 - LayoutYOffset, PCB->hidlib.dwg.X2 / 2 + LayoutXOffset, PCB->hidlib.dwg.Y2 / 2 + LayoutYOffset, outlineThickness); rnd_fprintf(FP, "De %d 0 0 0 0\n", currentKicadLayer); fputs("$EndDRAWSEGMENT\n", FP); fputs("$DRAWSEGMENT\n", FP); - rnd_fprintf(FP, "Po 0 %.0mk %.0mk %.0mk %.0mk %.0mk\n", PCB->hidlib.size_x / 2 + LayoutXOffset, PCB->hidlib.size_y / 2 + LayoutYOffset, PCB->hidlib.size_x / 2 - LayoutXOffset, PCB->hidlib.size_y / 2 + LayoutYOffset, outlineThickness); + rnd_fprintf(FP, "Po 0 %.0mk %.0mk %.0mk %.0mk %.0mk\n", PCB->hidlib.dwg.X2 / 2 + LayoutXOffset, PCB->hidlib.dwg.Y2 / 2 + LayoutYOffset, PCB->hidlib.dwg.X2 / 2 - LayoutXOffset, PCB->hidlib.dwg.Y2 / 2 + LayoutYOffset, outlineThickness); rnd_fprintf(FP, "De %d 0 0 0 0\n", currentKicadLayer); fputs("$EndDRAWSEGMENT\n", FP); fputs("$DRAWSEGMENT\n", FP); - rnd_fprintf(FP, "Po 0 %.0mk %.0mk %.0mk %.0mk %.0mk\n", PCB->hidlib.size_x / 2 - LayoutXOffset, PCB->hidlib.size_y / 2 + LayoutYOffset, PCB->hidlib.size_x / 2 - LayoutXOffset, PCB->hidlib.size_y / 2 - LayoutYOffset, outlineThickness); + rnd_fprintf(FP, "Po 0 %.0mk %.0mk %.0mk %.0mk %.0mk\n", PCB->hidlib.dwg.X2 / 2 - LayoutXOffset, PCB->hidlib.dwg.Y2 / 2 + LayoutYOffset, PCB->hidlib.dwg.X2 / 2 - LayoutXOffset, PCB->hidlib.dwg.Y2 / 2 - LayoutYOffset, outlineThickness); rnd_fprintf(FP, "De %d 0 0 0 0\n", currentKicadLayer); fputs("$EndDRAWSEGMENT\n", FP); }