From 591fbf6383e6378e0898520918e5c8dbfc636a51 Mon Sep 17 00:00:00 2001 From: Thomas Pointhuber Date: Sun, 14 Nov 2021 14:44:26 +0100 Subject: [PATCH] altium: use arc angle to determine winding direction --- pcbnew/plugins/altium/altium_pcb.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pcbnew/plugins/altium/altium_pcb.cpp b/pcbnew/plugins/altium/altium_pcb.cpp index 896c4b30e5..5cc5886bd3 100644 --- a/pcbnew/plugins/altium/altium_pcb.cpp +++ b/pcbnew/plugins/altium/altium_pcb.cpp @@ -876,7 +876,7 @@ void ALTIUM_PCB::HelperCreateBoardOutline( const std::vector& aV shape->SetCenter( cur->center ); shape->SetStart( arcStart ); - shape->SetArcAngleAndEnd( -NormalizeAngleDegreesPos( includedAngle ) * 10.0 ); + shape->SetArcAngleAndEnd( -NormalizeAngleDegreesPos( includedAngle ) * 10.0, true ); if( !last->isRound ) { @@ -918,7 +918,6 @@ void ALTIUM_PCB::ParseClasses6Data( const CFB::CompoundFileReader& aReader, { checkpoint(); ACLASS6 elem( reader ); - if( elem.kind == ALTIUM_CLASS_KIND::NET_CLASS ) { NETCLASSPTR nc = std::make_shared( elem.name ); @@ -1946,7 +1945,7 @@ void ALTIUM_PCB::ParseArcs6Data( const CFB::CompoundFileReader& aReader, shape.SetCenter( elem.center ); shape.SetStart( elem.center + arcStartOffset ); - shape.SetArcAngleAndEnd( -NormalizeAngleDegreesPos( includedAngle ) * 10.0 ); + shape.SetArcAngleAndEnd( -NormalizeAngleDegreesPos( includedAngle ) * 10.0, true ); } ZONE* zone = new ZONE( m_board ); @@ -2052,7 +2051,7 @@ void ALTIUM_PCB::ParseArcs6Data( const CFB::CompoundFileReader& aReader, shape->SetCenter( elem.center ); shape->SetStart( elem.center + arcStartOffset ); - shape->SetArcAngleAndEnd( -NormalizeAngleDegreesPos( includedAngle ) * 10.0 ); + shape->SetArcAngleAndEnd( -NormalizeAngleDegreesPos( includedAngle ) * 10.0, true ); } HelperShapeSetLocalCoord( shape, elem.component );