Index: export_openscad.c =================================================================== --- export_openscad.c (revision 11828) +++ export_openscad.c (revision 11829) @@ -368,6 +368,11 @@ static void openscad_fill_polygon(pcb_hid_gc_t gc, int n_coords, pcb_coord_t * x, pcb_coord_t * y) { + int n; + fprintf(f, " pcb_fill_poly(["); + for(n = 0; n < n_coords-1; n++) + pcb_fprintf(f, "[%mm,%mm],", x[n], y[n]); + pcb_fprintf(f, "[%mm,%mm]], %f);\n", x[n], y[n], layer_thickness); } static void openscad_calibrate(double xval, double yval) Index: scad_draw.c =================================================================== --- scad_draw.c (revision 11828) +++ scad_draw.c (revision 11829) @@ -57,6 +57,11 @@ fprintf(f, " cube([x2-x1, y2-y1, thick], center=true);\n"); fprintf(f, "}\n"); + fprintf(f, "// filled polygon\n"); + fprintf(f, "module pcb_fill_poly(coords, thick) {\n"); + fprintf(f, " linear_extrude(height=thick)\n"); + fprintf(f, " polygon(coords);\n"); + fprintf(f, "}\n"); fprintf(f, "// filled circle\n"); fprintf(f, "module pcb_fcirc(x1, y1, radius, thick) {\n");