Index: trunk/src/const.h =================================================================== --- trunk/src/const.h (revision 12127) +++ trunk/src/const.h (revision 12128) @@ -80,6 +80,7 @@ PCB_TYPE_NET = 0x40000, /* used to select whole net. */ PCB_TYPE_ARC_POINT = 0x80000, + PCB_TYPE_PADSTACK = 0x100000, /* groups/properties */ PCB_TYPEMASK_PIN = (PCB_TYPE_VIA | PCB_TYPE_PIN | PCB_TYPE_SUBC_PART), Index: trunk/src/obj_padstack_list.h =================================================================== --- trunk/src/obj_padstack_list.h (revision 12127) +++ trunk/src/obj_padstack_list.h (revision 12128) @@ -33,7 +33,7 @@ pcb_cardinal_t proto; /* reference to a pcb_padstack_proto_t within pcb_data_t */ pcb_coord_t x, y; struct { - int used; + unsigned long used; char *shape; /* indexed by layer ID */ } thermal; gdl_elem_t link; /* a padstack is in a list in pcb_data_t as a global object */ Index: trunk/src_plugins/io_lihata/write.c =================================================================== --- trunk/src_plugins/io_lihata/write.c (revision 12127) +++ trunk/src_plugins/io_lihata/write.c (revision 12128) @@ -586,7 +586,24 @@ static lht_node_t *build_padstack(pcb_padstack_t *ps) { - return NULL; + char buff[128]; + lht_node_t *obj, *thr; + unsigned long n; + + sprintf(buff, "padstack_ref.%ld", ps->ID); + obj = lht_dom_node_alloc(LHT_HASH, buff); + + lht_dom_hash_put(obj, build_attributes(&ps->Attributes)); + lht_dom_hash_put(obj, build_flags(&ps->Flags, PCB_TYPE_PADSTACK, ps->intconn)); + + lht_dom_hash_put(obj, build_textf("proto", "%ld", (long int)ps->proto)); + lht_dom_hash_put(obj, build_textf("x", CFMT, ps->x)); + lht_dom_hash_put(obj, build_textf("y", CFMT, ps->y)); + lht_dom_hash_put(obj, thr = lht_dom_node_alloc(LHT_LIST, "thermal")); + for(n = 0; n < ps->thermal.used; n++) + lht_dom_list_append(thr, build_textf("t", "%d", ps->thermal.shape[n])); + + return obj; } static lht_node_t *build_layer_stack(pcb_board_t *pcb)