Write out partial pad-stacks for blind/buried/microvias.

Fixes https://gitlab.com/kicad/code/kicad/issues/11692

(cherry picked from commit 80124d2463)
This commit is contained in:
Jeff Young 2022-05-28 00:18:46 +01:00 committed by Seth Hillbrand
parent b6e7bf4768
commit 38a7cb9731
1 changed files with 18 additions and 5 deletions

View File

@ -179,12 +179,19 @@ private:
switch( aStack.m_shape )
{
case PAD_SHAPE::CIRCLE:
case PAD_SHAPE::OVAL: shapeId = 0; break;
case PAD_SHAPE::ROUNDRECT: shapeId = 2; break;
case PAD_SHAPE::RECT: shapeId = 1; break;
default:
case PAD_SHAPE::OVAL:
shapeId = 0;
break;
case PAD_SHAPE::ROUNDRECT:
shapeId = 2;
break;
case PAD_SHAPE::RECT:
shapeId = 1;
break;
default:
if( m_reporter )
{
m_reporter->Report( _( "File contains pad shapes that are not supported by the "
@ -194,6 +201,8 @@ private:
m_reporter->Report( _( "They have been exported as oval pads." ),
RPT_SEVERITY_INFO );
}
shapeId = 0;
break;
}
@ -253,7 +262,7 @@ HYPERLYNX_PAD_STACK::HYPERLYNX_PAD_STACK( BOARD* aBoard, const PCB_VIA* aVia )
m_sx = aVia->GetWidth();
m_sy = aVia->GetWidth();
m_angle = 0;
m_layers = LSET::AllCuMask();
m_layers = aVia->GetLayerSet();
m_drill = aVia->GetDrillValue();
m_shape = PAD_SHAPE::CIRCLE;
m_type = PAD_ATTRIB::PTH;
@ -479,6 +488,10 @@ bool HYPERLYNX_EXPORTER::writeNetObjects( const std::vector<BOARD_ITEM*>& aObjec
iu2hyp( track->GetEnd().x ), iu2hyp( track->GetEnd().y ),
iu2hyp( track->GetWidth() ), (const char*) layerName.c_str() );
}
else if( PCB_ARC* arc = dyn_cast<PCB_ARC*>( item ) )
{
// TODO!
}
else if( ZONE* zone = dyn_cast<ZONE*>( item ) )
{
for( PCB_LAYER_ID layer : zone->GetLayerSet().Seq() )