Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 27383) +++ trunk/src/obj_arc.c (revision 27384) @@ -910,6 +910,11 @@ arc_label_pos(arc, &x0, &y0, &vert); pcb_term_label_draw(info, x0, y0, conf_core.appearance.term_label_size, vert, pcb_true, (pcb_any_obj_t *)arc); } + if (arc->noexport) { + pcb_coord_t cx, cy; + pcb_arc_middle(arc, &cx, &cy); + pcb_obj_noexport_mark(arc, cx, cy); + } } void pcb_arc_draw_(pcb_draw_info_t *info, pcb_arc_t *arc, int allow_term_gfx) @@ -968,6 +973,8 @@ pcb_color_t buf; const pcb_layer_t *layer = info->layer != NULL ? info->layer : pcb_layer_get_real(arc->parent.layer); + pcb_obj_noexport(info, arc, return); + if (layer == NULL) /* if the layer is inbound, e.g. in preview, fall back using the layer recipe */ layer = arc->parent.layer; Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 27383) +++ trunk/src/obj_line.c (revision 27384) @@ -1065,6 +1065,8 @@ if (line->term != NULL) pcb_term_label_draw(info, (line->Point1.X + line->Point2.X)/2, (line->Point1.Y + line->Point2.Y)/2, conf_core.appearance.term_label_size, is_line_term_vert(line), pcb_true, (pcb_any_obj_t *)line); + if (line->noexport) + pcb_obj_noexport_mark(line, (line->Point1.X+line->Point2.X)/2, (line->Point1.Y+line->Point2.Y)/2); } @@ -1120,6 +1122,8 @@ pcb_color_t buf; const pcb_layer_t *layer = info->layer != NULL ? info->layer : pcb_layer_get_real(line->parent.layer); + pcb_obj_noexport(info, line, return); + if (layer == NULL) /* if the layer is inbound, e.g. in preview, fall back using the layer recipe */ layer = line->parent.layer; Index: trunk/src/obj_poly.c =================================================================== --- trunk/src/obj_poly.c (revision 27383) +++ trunk/src/obj_poly.c (revision 27384) @@ -1093,6 +1093,9 @@ if (poly->term != NULL) pcb_term_label_draw(info, (poly->BoundingBox.X1 + poly->BoundingBox.X2)/2, (poly->BoundingBox.Y1 + poly->BoundingBox.Y2)/2, conf_core.appearance.term_label_size, is_poly_term_vert(poly), pcb_true, (pcb_any_obj_t *)poly); + + if (poly->noexport) + pcb_obj_noexport_mark(poly, (poly->BoundingBox.X1 + poly->BoundingBox.X2)/2, (poly->BoundingBox.Y1 + poly->BoundingBox.Y2)/2); } void pcb_poly_draw_annotation(pcb_draw_info_t *info, pcb_poly_t *poly) @@ -1252,6 +1255,8 @@ pcb_color_t buf; const pcb_layer_t *layer = info->layer != NULL ? info->layer : pcb_layer_get_real(polygon->parent.layer); + pcb_obj_noexport(info, polygon, return); + if (layer == NULL) /* if the layer is inbound, e.g. in preview, fall back using the layer recipe */ layer = polygon->parent.layer; Index: trunk/src/obj_pstk.c =================================================================== --- trunk/src/obj_pstk.c (revision 27383) +++ trunk/src/obj_pstk.c (revision 27384) @@ -532,6 +532,8 @@ pcb_pstk_shape_t *shape; pcb_layergrp_t *grp = NULL; + pcb_obj_noexport(info, ps, return PCB_R_DIR_NOT_FOUND); + if (pcb_hidden_floater((pcb_any_obj_t*)b)) return PCB_R_DIR_FOUND_CONTINUE; @@ -613,6 +615,10 @@ if ((pcb_draw_force_termlab) || PCB_FLAG_TEST(PCB_FLAG_TERMNAME, ps)) pcb_pstk_draw_label(info, ps); } + + if (ps->noexport) + pcb_obj_noexport_mark(ps, ps->x, ps->y); + return PCB_R_DIR_FOUND_CONTINUE; } @@ -622,6 +628,8 @@ pcb_pstk_t *ps = (pcb_pstk_t *)b; pcb_pstk_proto_t *proto; + pcb_obj_noexport(info, ps, return PCB_R_DIR_NOT_FOUND); + /* hide subc parts if requested */ if (!info->pcb->SubcPartsOn && pcb_gobj_parent_subc(ps->parent_type, &ps->parent)) return PCB_R_DIR_NOT_FOUND; @@ -675,6 +683,8 @@ pcb_pstk_proto_t *proto; pcb_pstk_shape_t *shape; + pcb_obj_noexport(info, ps, return PCB_R_DIR_NOT_FOUND); + /* hide subc parts if requested */ if (!info->pcb->SubcPartsOn && pcb_gobj_parent_subc(ps->parent_type, &ps->parent)) return PCB_R_DIR_NOT_FOUND; Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 27383) +++ trunk/src/obj_text.c (revision 27384) @@ -1250,6 +1250,8 @@ if (text->term != NULL) pcb_term_label_draw(info, (text->BoundingBox.X1 + text->BoundingBox.X2)/2, (text->BoundingBox.Y1 + text->BoundingBox.Y2)/2, conf_core.appearance.term_label_size, is_text_term_vert(text), pcb_true, (pcb_any_obj_t *)text); + if (text->noexport) + pcb_obj_noexport_mark(text, (text->BoundingBox.X1 + text->BoundingBox.X2)/2, (text->BoundingBox.Y1 + text->BoundingBox.Y2)/2); } @@ -1274,6 +1276,8 @@ unsigned int flg = 0; const pcb_layer_t *layer = info->layer != NULL ? info->layer : pcb_layer_get_real(text->parent.layer); + pcb_obj_noexport(info, text, return); + if (layer == NULL) /* if the layer is inbound, e.g. in preview, fall back using the layer recipe */ layer = text->parent.layer;