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 );
|
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
|
// PADS
|
||||||
for( i = 0; i < (int) m_moduleObjects.GetCount(); i++ )
|
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
|
if( m_moduleObjects[i]->m_objType == wxT( 'L' ) || // lines
|
||||||
m_moduleObjects[i]->m_objType == wxT( 'A' ) || // arcs
|
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( 'P' ) || // pads
|
||||||
m_moduleObjects[i]->m_objType == wxT( 'V' ) ) // vias
|
m_moduleObjects[i]->m_objType == wxT( 'V' ) ) // vias
|
||||||
{
|
{
|
||||||
|
|
|
@ -157,6 +157,25 @@ bool PCB_POLYGON::Parse( XNODE* aNode,
|
||||||
|
|
||||||
void PCB_POLYGON::AddToModule( MODULE* aModule )
|
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 )
|
void PCB_POLYGON::SetPosOffset( int aX_offs, int aY_offs )
|
||||||
{
|
{
|
||||||
int i, island;
|
int i, island;
|
||||||
|
|
|
@ -56,6 +56,7 @@ public:
|
||||||
wxString aActualConversion );
|
wxString aActualConversion );
|
||||||
|
|
||||||
virtual void SetPosOffset( int aX_offs, int aY_offs ) override;
|
virtual void SetPosOffset( int aX_offs, int aY_offs ) override;
|
||||||
|
virtual void Flip() override;
|
||||||
void AddToModule( MODULE* aModule ) override;
|
void AddToModule( MODULE* aModule ) override;
|
||||||
void AddToBoard() override;
|
void AddToBoard() override;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue