Index: src_plugins/io_pads/delay_create.c =================================================================== --- src_plugins/io_pads/delay_create.c (revision 34587) +++ src_plugins/io_pads/delay_create.c (revision 34588) @@ -49,6 +49,7 @@ #define CRDY_BRD(y) (dlcr->flip_y ? ((dlcr->board_bbox.Y2 - (y))) : (y)) #include "delay_clearance.c" +#include "delay_postproc.c" void pcb_dlcr_init(pcb_dlcr_t *dlcr) { Index: src_plugins/io_pads/delay_postproc.c =================================================================== --- src_plugins/io_pads/delay_postproc.c (nonexistent) +++ src_plugins/io_pads/delay_postproc.c (revision 34588) @@ -0,0 +1,35 @@ +/* + * COPYRIGHT + * + * pcb-rnd, interactive printed circuit board design + * + * delayed creation of objects + * pcb-rnd Copyright (C) 2021 Tibor 'Igor2' Palinkas + * (Supported by NLnet NGI0 PET Fund in 2021) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Contact: + * Project page: http://repo.hu/projects/pcb-rnd + * lead developer: http://repo.hu/projects/pcb-rnd/contact.html + * mailing list: pcb-rnd (at) list.repo.hu (send "subscribe") + */ + +#include "delay_postproc.h" + +void pcb_dlcr_post_poly_thermal_netname(pcb_board_t *pcb, pcb_poly_t *poly, const char *netname, pcb_thermal_t *t) +{ + +} Index: src_plugins/io_pads/delay_postproc.h =================================================================== --- src_plugins/io_pads/delay_postproc.h (nonexistent) +++ src_plugins/io_pads/delay_postproc.h (revision 34588) @@ -0,0 +1,5 @@ +#include "thermal.h" + +/* Set thermal on all terminals that are in the same net and within the poly */ +void pcb_dlcr_post_poly_thermal_netname(pcb_board_t *pcb, pcb_poly_t *poly, const char *netname, pcb_thermal_t *t); + Index: src_plugins/io_pads/read.c =================================================================== --- src_plugins/io_pads/read.c (revision 34587) +++ src_plugins/io_pads/read.c (revision 34588) @@ -42,6 +42,7 @@ #include #include "board.h" #include "extobj.h" +#include "thermal.h" #include "delay_create.h" #include "delay_clearance.h" @@ -294,6 +295,18 @@ return -1; } +static void postproc_thermal(pads_read_ctx_t *rctx) +{ + long n; + + for(n = 0; n < rctx->dlcr.netname_objs.used; n += 2) { + pcb_any_obj_t *o = rctx->dlcr.netname_objs.array[n]; + const char *netname = rctx->dlcr.netname_objs.array[n+1]; + if (o->type == PCB_OBJ_POLY) + pcb_dlcr_post_poly_thermal_netname(rctx->pcb, o, netname, PCB_THERMAL_ROUND | PCB_THERMAL_DIAGONAL | PCB_THERMAL_ON); + } +} + int io_pads_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *pcb, const char *filename, rnd_conf_role_t settings_dest) { rnd_hidlib_t *hl = &PCB->hidlib; @@ -313,6 +326,7 @@ pcb_dlcr_init(&rctx.dlcr); rctx.dlcr.flip_y = 1; + rctx.dlcr.save_netname_objs = 1; htsp_init(&rctx.parts, strhash, strkeyeq); /* read the header */ @@ -329,6 +343,7 @@ pads_assign_layers(&rctx); pcb_dlcr_create(pcb, &rctx.dlcr); pcb_dlcl_apply(pcb, rctx.clr); + postproc_thermal(&rctx); pcb_dlcr_uninit(&rctx.dlcr); genht_uninit_deep(htsp, &rctx.parts, {