pcad2kicadpcb_plugin: import graphic polygons from modules
Fixes: lp:1725931 * https://bugs.launchpad.net/kicad/+bug/1725931
This commit is contained in:
parent
d62d3b8e21
commit
4cd3992b94
|
@ -601,6 +601,13 @@ void PCB_MODULE::AddToBoard()
|
|||
m_moduleObjects[i]->AddToModule( module );
|
||||
}
|
||||
|
||||
// MODULE POLYGONS
|
||||
for( i = 0; i < (int) m_moduleObjects.GetCount(); i++ )
|
||||
{
|
||||
if( m_moduleObjects[i]->m_objType == wxT( 'Z' ) )
|
||||
m_moduleObjects[i]->AddToModule( module );
|
||||
}
|
||||
|
||||
// PADS
|
||||
for( i = 0; i < (int) m_moduleObjects.GetCount(); i++ )
|
||||
{
|
||||
|
@ -631,6 +638,7 @@ void PCB_MODULE::Flip()
|
|||
{
|
||||
if( m_moduleObjects[i]->m_objType == wxT( 'L' ) || // lines
|
||||
m_moduleObjects[i]->m_objType == wxT( 'A' ) || // arcs
|
||||
m_moduleObjects[i]->m_objType == wxT( 'Z' ) || // polygons
|
||||
m_moduleObjects[i]->m_objType == wxT( 'P' ) || // pads
|
||||
m_moduleObjects[i]->m_objType == wxT( 'V' ) ) // vias
|
||||
{
|
||||
|
|
|
@ -157,6 +157,25 @@ bool PCB_POLYGON::Parse( XNODE* aNode,
|
|||
|
||||
void PCB_POLYGON::AddToModule( MODULE* aModule )
|
||||
{
|
||||
if( IsNonCopperLayer( m_KiCadLayer ) )
|
||||
{
|
||||
EDGE_MODULE* dwg = new EDGE_MODULE( aModule, S_POLYGON );
|
||||
aModule->GraphicalItemsList().PushBack( dwg );
|
||||
|
||||
dwg->SetWidth( 0 );
|
||||
dwg->SetLayer( m_KiCadLayer );
|
||||
|
||||
auto outline = new std::vector<wxPoint>;
|
||||
for( auto point : m_outline )
|
||||
outline->push_back( wxPoint( point->x, point->y ) );
|
||||
|
||||
dwg->SetPolyPoints( *outline );
|
||||
dwg->SetStart0( *outline->begin() );
|
||||
dwg->SetEnd0( outline->back() );
|
||||
dwg->SetDrawCoord();
|
||||
|
||||
delete( outline );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -208,6 +227,14 @@ void PCB_POLYGON::AddToBoard()
|
|||
}
|
||||
|
||||
|
||||
void PCB_POLYGON::Flip()
|
||||
{
|
||||
PCB_COMPONENT::Flip();
|
||||
|
||||
m_KiCadLayer = FlipLayer( m_KiCadLayer );
|
||||
}
|
||||
|
||||
|
||||
void PCB_POLYGON::SetPosOffset( int aX_offs, int aY_offs )
|
||||
{
|
||||
int i, island;
|
||||
|
|
|
@ -56,6 +56,7 @@ public:
|
|||
wxString aActualConversion );
|
||||
|
||||
virtual void SetPosOffset( int aX_offs, int aY_offs ) override;
|
||||
virtual void Flip() override;
|
||||
void AddToModule( MODULE* aModule ) override;
|
||||
void AddToBoard() override;
|
||||
|
||||
|
|
Loading…
Reference in New Issue