Index: trunk/src_plugins/io_tedax/tdrc_query.c =================================================================== --- trunk/src_plugins/io_tedax/tdrc_query.c (revision 31513) +++ trunk/src_plugins/io_tedax/tdrc_query.c (revision 31514) @@ -44,6 +44,12 @@ #define RULEMOD "DrcQueryRuleMod" #define DEFMOD "DrcQueryDefMod" +int tedax_drc_query_rule_clear(pcb_board_t *pcb, const char *target_src) +{ + rnd_actionva(&pcb->hidlib, RULEMOD, "set", "clear", target_src, NULL); + rnd_actionva(&pcb->hidlib, DEFMOD, "set", "clear", target_src, NULL); +} + int tedax_drc_query_rule_parse(pcb_board_t *pcb, FILE *f, const char *src, char *rule_name) { int argc; Index: trunk/src_plugins/io_tedax/tdrc_query.h =================================================================== --- trunk/src_plugins/io_tedax/tdrc_query.h (revision 31513) +++ trunk/src_plugins/io_tedax/tdrc_query.h (revision 31514) @@ -6,3 +6,6 @@ int tedax_drc_query_save(pcb_board_t *pcb, const char *ruleid, const char *fn); int tedax_drc_query_rule_fsave(pcb_board_t *pcb, const char *ruleid, FILE *f, rnd_bool save_def); + +/* clear all rules and defs with source matching target_src */ +int tedax_drc_query_rule_clear(pcb_board_t *pcb, const char *target_src); Index: trunk/src_plugins/io_tedax/tnetlist.c =================================================================== --- trunk/src_plugins/io_tedax/tnetlist.c (revision 31513) +++ trunk/src_plugins/io_tedax/tnetlist.c (revision 31514) @@ -279,6 +279,7 @@ ret = tedax_net_fload(fn, import_fp, NULL, silent); rewind(fn); + tedax_drc_query_rule_clear(PCB, "netlist"); ret |= tedax_drc_query_fload(PCB, fn, NULL, "netlist", silent); fclose(fn);