Altium PCB: support polygon id 65534 for keepout tracks on board outline.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16849
(cherry picked from commit 285067dad1
)
This commit is contained in:
parent
127874a7b9
commit
b74fef1b10
|
@ -2,7 +2,7 @@
|
|||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2020 Thomas Pointhuber <thomas.pointhuber@gmx.at>
|
||||
* Copyright (C) 2021-2023 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 2021-2024 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
|
@ -42,6 +42,9 @@ const uint16_t ALTIUM_COMPONENT_NONE = std::numeric_limits<uint16_t>::max();
|
|||
// this constant specifies a item which does not define a polygon
|
||||
const uint16_t ALTIUM_POLYGON_NONE = std::numeric_limits<uint16_t>::max();
|
||||
|
||||
// 65534 seems to be belonging to board outline
|
||||
const uint16_t ALTIUM_POLYGON_BOARD = std::numeric_limits<uint16_t>::max() - 1;
|
||||
|
||||
|
||||
enum class ALTIUM_UNIT
|
||||
{
|
||||
|
|
|
@ -2457,8 +2457,12 @@ void ALTIUM_PCB::ConvertArcs6ToPcbShape( const AARC6& aElem, PCB_SHAPE* aShape )
|
|||
|
||||
void ALTIUM_PCB::ConvertArcs6ToBoardItem( const AARC6& aElem, const int aPrimitiveIndex )
|
||||
{
|
||||
if( aElem.is_polygonoutline || aElem.subpolyindex != ALTIUM_POLYGON_NONE )
|
||||
if( aElem.is_polygonoutline
|
||||
|| ( aElem.subpolyindex != ALTIUM_POLYGON_NONE
|
||||
&& aElem.subpolyindex != ALTIUM_POLYGON_BOARD ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if( aElem.is_keepout || aElem.layer == ALTIUM_LAYER::KEEP_OUT_LAYER
|
||||
|| IsAltiumLayerAPlane( aElem.layer ) )
|
||||
|
@ -3156,8 +3160,12 @@ void ALTIUM_PCB::ParseTracks6Data( const ALTIUM_COMPOUND_FILE& aAltiumPcbFil
|
|||
|
||||
void ALTIUM_PCB::ConvertTracks6ToBoardItem( const ATRACK6& aElem, const int aPrimitiveIndex )
|
||||
{
|
||||
if( aElem.is_polygonoutline || aElem.subpolyindex != ALTIUM_POLYGON_NONE )
|
||||
if( aElem.is_polygonoutline
|
||||
|| ( aElem.subpolyindex != ALTIUM_POLYGON_NONE
|
||||
&& aElem.subpolyindex != ALTIUM_POLYGON_BOARD ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if( aElem.is_keepout || aElem.layer == ALTIUM_LAYER::KEEP_OUT_LAYER
|
||||
|| IsAltiumLayerAPlane( aElem.layer ) )
|
||||
|
|
Loading…
Reference in New Issue