Handle dimensions and textboxes when plotting contours to DXF.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11901
This commit is contained in:
Jeff Young 2023-08-25 17:50:36 +01:00
parent 2ae36312c4
commit 83fe3576c6
2 changed files with 19 additions and 2 deletions

View File

@ -2382,7 +2382,6 @@ void BOARD::ConvertBrdLayerToPolygonalContours( PCB_LAYER_ID aLayer,
{
footprint->TransformPadsToPolySet( aOutlines, aLayer, 0, maxError, ERROR_INSIDE );
// Microwave footprints may have items on copper layers
footprint->TransformFPShapesToPolySet( aOutlines, aLayer, 0, maxError, ERROR_INSIDE,
true, /* include text */
true, /* include shapes */
@ -2437,6 +2436,19 @@ void BOARD::ConvertBrdLayerToPolygonalContours( PCB_LAYER_ID aLayer,
break;
}
case PCB_DIM_ALIGNED_T:
case PCB_DIM_CENTER_T:
case PCB_DIM_RADIAL_T:
case PCB_DIM_ORTHOGONAL_T:
case PCB_DIM_LEADER_T:
{
const PCB_DIMENSION_BASE* dim = static_cast<const PCB_DIMENSION_BASE*>( item );
dim->TransformShapeToPolygon( aOutlines, aLayer, 0, maxError, ERROR_INSIDE );
dim->TransformTextToPolySet( aOutlines, 0, maxError, ERROR_INSIDE );
break;
}
default:
break;
}

View File

@ -3042,7 +3042,12 @@ void FOOTPRINT::TransformFPShapesToPolySet( SHAPE_POLY_SET& aBuffer, PCB_LAYER_I
PCB_TEXTBOX* textbox = static_cast<PCB_TEXTBOX*>( item );
if( aLayer != UNDEFINED_LAYER && textbox->GetLayer() == aLayer && textbox->IsVisible() )
textbox->TransformShapeToPolygon( aBuffer, aLayer, 0, aError, aErrorLoc );
{
// border
textbox->PCB_SHAPE::TransformShapeToPolygon( aBuffer, aLayer, 0, aError, aErrorLoc );
// text
textbox->TransformTextToPolySet( aBuffer, 0, aError, aErrorLoc );
}
}
if( item->Type() == PCB_SHAPE_T && aIncludeShapes )