Cleanup Altium text import

Handle inverted text
Correct location for flags
Add mechanics to detect inverted_rect (like text boxes)

(cherry picked from commit b11e030f8f)
This commit is contained in:
Seth Hillbrand 2024-06-16 13:07:39 -07:00
parent 48077d77c4
commit b589da63d8
4 changed files with 360 additions and 690 deletions

View File

@ -1009,13 +1009,24 @@ ATEXT6::ATEXT6( ALTIUM_BINARY_PARSER& aReader, std::map<uint32_t, wxString>& aSt
aReader.Skip( 4 ); aReader.Skip( 4 );
position = aReader.ReadVector2IPos(); position = aReader.ReadVector2IPos();
height = aReader.ReadKicadUnit(); height = aReader.ReadKicadUnit();
aReader.Skip( 2 ); strokefonttype = static_cast<STROKE_FONT_TYPE>( aReader.Read<uint16_t>() );
// TODO: The Serif font type doesn't match well with KiCad, we should replace it with a better match
rotation = aReader.Read<double>(); rotation = aReader.Read<double>();
isMirrored = aReader.Read<uint8_t>() != 0; isMirrored = aReader.Read<uint8_t>() != 0;
strokewidth = aReader.ReadKicadUnit(); strokewidth = aReader.ReadKicadUnit();
if( subrecord1 < 123 )
{
fonttype = ALTIUM_TEXT_TYPE::STROKE;
aReader.SkipSubrecord();
return;
}
isComment = aReader.Read<uint8_t>() != 0; isComment = aReader.Read<uint8_t>() != 0;
isDesignator = aReader.Read<uint8_t>() != 0; isDesignator = aReader.Read<uint8_t>() != 0;
aReader.Skip( 2 ); aReader.Skip( 1 );
fonttype = static_cast<ALTIUM_TEXT_TYPE>( aReader.Read<uint8_t>() );
isBold = aReader.Read<uint8_t>() != 0; isBold = aReader.Read<uint8_t>() != 0;
isItalic = aReader.Read<uint8_t>() != 0; isItalic = aReader.Read<uint8_t>() != 0;
@ -1023,17 +1034,11 @@ ATEXT6::ATEXT6( ALTIUM_BINARY_PARSER& aReader, std::map<uint32_t, wxString>& aSt
aReader.ReadBytes( fontData, sizeof( fontData ) ); aReader.ReadBytes( fontData, sizeof( fontData ) );
fontname = wxString( fontData, wxMBConvUTF16LE(), sizeof( fontData ) ).BeforeFirst( '\0' ); fontname = wxString( fontData, wxMBConvUTF16LE(), sizeof( fontData ) ).BeforeFirst( '\0' );
isInverted = aReader.Read<uint8_t>() != 0; char tmpbyte = aReader.Read<uint8_t>();
isInverted = !!tmpbyte;
inverted_borderwidth = aReader.ReadKicadUnit();
widestring_index = aReader.Read<uint32_t>();
aReader.Skip( 4 ); aReader.Skip( 4 );
uint32_t stringIndex = aReader.Read<uint32_t>();
aReader.Skip( 13 );
textposition = static_cast<ALTIUM_TEXT_POSITION>( aReader.Read<uint8_t>() );
/**
* In Altium 14 (subrecord1 == 230) only left bottom is valid? I think there is a bit missing.
* https://gitlab.com/kicad/code/kicad/-/merge_requests/60#note_274913397
*/
if( subrecord1 <= 230 )
textposition = ALTIUM_TEXT_POSITION::LEFT_BOTTOM;
// An inverted rect in Altium is like a text box with the text inverted. // An inverted rect in Altium is like a text box with the text inverted.
isInvertedRect = aReader.Read<uint8_t>() != 0; isInvertedRect = aReader.Read<uint8_t>() != 0;
@ -1047,7 +1052,7 @@ ATEXT6::ATEXT6( ALTIUM_BINARY_PARSER& aReader, std::map<uint32_t, wxString>& aSt
// Subrecord 2 - Legacy 8bit string, max 255 chars, unknown codepage // Subrecord 2 - Legacy 8bit string, max 255 chars, unknown codepage
aReader.ReadAndSetSubrecordLength(); aReader.ReadAndSetSubrecordLength();
auto entry = aStringTable.find( stringIndex ); auto entry = aStringTable.find( widestring_index );
if( entry != aStringTable.end() ) if( entry != aStringTable.end() )
text = entry->second; text = entry->second;
@ -1059,6 +1064,13 @@ ATEXT6::ATEXT6( ALTIUM_BINARY_PARSER& aReader, std::map<uint32_t, wxString>& aSt
aReader.SkipSubrecord(); aReader.SkipSubrecord();
// Altium only supports inverting truetype fonts
if( fonttype != ALTIUM_TEXT_TYPE::TRUETYPE )
{
isInverted = false;
isInvertedRect = false;
}
if( aReader.HasParsingError() ) if( aReader.HasParsingError() )
THROW_IO_ERROR( wxT( "Texts6 stream was not parsed correctly" ) ); THROW_IO_ERROR( wxT( "Texts6 stream was not parsed correctly" ) );
} }

View File

@ -718,6 +718,14 @@ struct ATRACK6
struct ATEXT6 struct ATEXT6
{ {
enum class STROKE_FONT_TYPE
{
DEFAULT = 1,
SANSSERIF = 2,
SERIF = 3
};
ALTIUM_LAYER layer; ALTIUM_LAYER layer;
uint16_t component; uint16_t component;
@ -725,7 +733,7 @@ struct ATEXT6
uint32_t height; uint32_t height;
double rotation; double rotation;
uint32_t strokewidth; uint32_t strokewidth;
ALTIUM_TEXT_POSITION textposition; STROKE_FONT_TYPE strokefonttype;
bool isBold; bool isBold;
bool isItalic; bool isItalic;

View File

@ -2914,6 +2914,7 @@ void ALTIUM_PCB::ConvertVias6ToFootprintItem( FOOTPRINT* aFootprint, const AVIA6
pad->SetNumber( "" ); pad->SetNumber( "" );
pad->SetNetCode( GetNetCode( aElem.net ) ); pad->SetNetCode( GetNetCode( aElem.net ) );
pad->SetKeepTopBottom( false );
pad->SetPosition( aElem.position ); pad->SetPosition( aElem.position );
pad->SetSize( VECTOR2I( aElem.diameter, aElem.diameter ) ); pad->SetSize( VECTOR2I( aElem.diameter, aElem.diameter ) );
pad->SetDrillSize( VECTOR2I( aElem.holesize, aElem.holesize ) ); pad->SetDrillSize( VECTOR2I( aElem.holesize, aElem.holesize ) );
@ -3935,6 +3936,7 @@ void ALTIUM_PCB::ConvertTexts6ToBoardItemOnLayer( const ATEXT6& aElem, PCB_LAYER
{ "PRINT_DATE", "CURRENT_DATE"}, { "PRINT_DATE", "CURRENT_DATE"},
}; };
wxString kicadText = AltiumPcbSpecialStringsToKiCadStrings( aElem.text, variableMap ); wxString kicadText = AltiumPcbSpecialStringsToKiCadStrings( aElem.text, variableMap );
BOARD_ITEM* item = pcbText.get(); BOARD_ITEM* item = pcbText.get();
EDA_TEXT* text = pcbText.get(); EDA_TEXT* text = pcbText.get();
@ -3947,7 +3949,7 @@ void ALTIUM_PCB::ConvertTexts6ToBoardItemOnLayer( const ATEXT6& aElem, PCB_LAYER
item = pcbTextbox.get(); item = pcbTextbox.get();
text = pcbTextbox.get(); text = pcbTextbox.get();
pcbTextbox->SetPosition( aElem.position ); pcbTextbox->SetPosition( aElem.position );
pcbTextbox->SetRectangle( -aElem.textbox_rect_height, aElem.textbox_rect_width ); pcbTextbox->SetRectangle( aElem.textbox_rect_height, aElem.textbox_rect_width );
switch( aElem.textbox_rect_justification ) switch( aElem.textbox_rect_justification )
{ {
@ -4046,10 +4048,11 @@ void ALTIUM_PCB::ConvertTexts6ToFootprintItemOnLayer( FOOTPRINT* aFootprint, con
wxString kicadText = AltiumPcbSpecialStringsToKiCadStrings( aElem.text, variableMap ); wxString kicadText = AltiumPcbSpecialStringsToKiCadStrings( aElem.text, variableMap );
text->SetText(kicadText); fpText->SetText(kicadText);
text->SetKeepUpright( false ); fpText->SetKeepUpright( false );
item->SetLayer( aLayer ); fpText->SetLayer( aLayer );
item->SetIsKnockout( aElem.isInverted ); fpText->SetPosition( aElem.position );
fpText->SetIsKnockout( aElem.isInverted );
if( isTextbox ) if( isTextbox )
{ {
@ -4099,7 +4102,7 @@ void ALTIUM_PCB::ConvertTexts6ToFootprintItemOnLayer( FOOTPRINT* aFootprint, con
field->SetPosition( aElem.position ); field->SetPosition( aElem.position );
} }
ConvertTexts6ToEdaTextSettings( aElem, *text ); ConvertTexts6ToEdaTextSettings( aElem, text );
if( toAdd ) if( toAdd )
{ {
@ -4138,6 +4141,9 @@ void ALTIUM_PCB::ConvertTexts6ToEdaTextSettings( const ATEXT6& aElem, EDA_TEXT*
aEdaText->SetItalic( aElem.isItalic ); aEdaText->SetItalic( aElem.isItalic );
aEdaText->SetMirrored( aElem.isMirrored ); aEdaText->SetMirrored( aElem.isMirrored );
aEdaText->SetTextAngle( EDA_ANGLE( aElem.rotation, DEGREES_T ) ); aEdaText->SetTextAngle( EDA_ANGLE( aElem.rotation, DEGREES_T ) );
aEdaText->SetHorizJustify( GR_TEXT_H_ALIGN_LEFT );
aEdaText->SetVertJustify( GR_TEXT_V_ALIGN_BOTTOM );
} }

View File

@ -1,670 +1,314 @@
(footprint "Espressif ESP32-WROOM-32" (footprint "Espressif ESP32-WROOM-32" (version 20240108) (generator "pcbnew") (generator_version "8.0")
(version 20240108)
(generator "pcbnew")
(generator_version "8.0")
(layer "F.Cu") (layer "F.Cu")
(descr "39-SMD Module") (descr "39-SMD Module")
(property "Reference" "REF**" (property "Reference" "REF**" (at -0.7949 -15.8 0) (layer "F.SilkS")(uuid "1ba00595-7cdb-41da-b2d6-fe1e55aedb5a")
(at -0.7949 -15.8 0) (effects (font (size 1 1) (thickness 0.15)))
(unlocked yes)
(layer "F.SilkS")
(uuid "e86c5289-cb53-49f4-b61a-8baeb9261682")
(effects
(font
(size 1 1)
(thickness 0.15)
) )
(property "Value" "Espressif ESP32-WROOM-32" (at -0.7949 11.7 0) (layer "F.Fab")(uuid "a0b801f8-67b0-40af-bc74-5fb922536f1e")
(effects (font (size 1 1) (thickness 0.15)))
) )
(property "Footprint" "" (at 0 0 0) (layer "F.Fab")(hide yes)
(uuid "d11e7180-2d21-44b8-82e1-14dfae92478f")
(effects (font (size 1 1) (thickness 0.15)))
) )
(property "Value" "Espressif ESP32-WROOM-32" (property "Datasheet" "" (at 0 0 0) (layer "F.Fab")(hide yes)
(at -0.7949 11.7 0) (uuid "9a20ae60-6735-491f-b2ce-7be2e1ce8201")
(unlocked yes) (effects (font (size 1 1) (thickness 0.15)))
(layer "F.Fab")
(uuid "81ec18a6-dce6-49aa-b59c-30114353b268")
(effects
(font
(size 1 1)
(thickness 0.15)
) )
(property "Description" "" (at 0 0 0) (layer "F.Fab")(hide yes)
(uuid "c9846f16-7334-4c7e-9942-76164abfe712")
(effects (font (size 1 1) (thickness 0.15)))
) )
(fp_rect (start -4 3) (end 2 -3)
(stroke (width 0) (type default)) (fill solid) (layer "F.Cu")(uuid "53a0d484-ba4a-473a-813a-78ba00c68775"))
(fp_rect (start -4 3) (end 2 -3)
(stroke (width 0) (type default)) (fill solid) (layer "B.Cu")(uuid "6f10dc95-dd4b-4c58-8b3f-1c01f0ee7340"))
(fp_line (start -9 -15) (end 9 -15)
(stroke (width 0.2) (type solid)) (layer "F.SilkS")(uuid "80691bf8-c994-4d7f-b35a-ca2db09f8f30"))
(fp_line (start -9 -8.3) (end -9 -15)
(stroke (width 0.2) (type solid)) (layer "F.SilkS")(uuid "c0fc8e99-faa2-4f86-9767-2abba0af87d1"))
(fp_line (start -9 10.5) (end -9 9.6)
(stroke (width 0.2) (type solid)) (layer "F.SilkS")(uuid "6cf50186-6cff-4054-ac04-35cdc465c665"))
(fp_line (start -9 10.5) (end -6.4 10.5)
(stroke (width 0.2) (type solid)) (layer "F.SilkS")(uuid "8d1b0767-bf73-4a04-b6e3-65a0eebc4ef6"))
(fp_line (start 6.4 10.5) (end 9 10.5)
(stroke (width 0.2) (type solid)) (layer "F.SilkS")(uuid "dced984c-c0d0-426d-a7d1-c0807afc815e"))
(fp_line (start 9 -8.3) (end 9 -15)
(stroke (width 0.2) (type solid)) (layer "F.SilkS")(uuid "22567767-03c8-41d7-ae97-5b7b380d06b1"))
(fp_line (start 9 10.5) (end 9 9.6)
(stroke (width 0.2) (type solid)) (layer "F.SilkS")(uuid "4b1b5b15-b78d-4c85-b0c8-bc4be1e8bced"))
(fp_circle (center -10.4648 -7.62) (end -10.4648 -7.87)
(stroke (width 0.75) (type solid)) (fill none) (layer "F.SilkS")(uuid "7099898e-3e99-4ff9-9998-26b15f8b942d"))
(fp_line (start -9.7 -15.2) (end 9.7 -15.2)
(stroke (width 0.05) (type solid)) (layer "Eco2.User")(uuid "14e1cc73-d49a-4c41-80c1-293ddec29a74"))
(fp_line (start -9.7 11.2) (end -9.7 -15.2)
(stroke (width 0.05) (type solid)) (layer "Eco2.User")(uuid "b8869f21-d425-4cea-aece-88023926befe"))
(fp_line (start -9.7 11.2) (end 9.7 11.2)
(stroke (width 0.05) (type solid)) (layer "Eco2.User")(uuid "77db8cac-b176-46fb-8e07-658498a434b2"))
(fp_line (start -0.5 -0.001) (end 0.5 -0.001)
(stroke (width 0.05) (type solid)) (layer "Eco2.User")(uuid "93051670-a8f3-4544-ad70-5770f75aa29c"))
(fp_line (start 0 0.499) (end 0 -0.501)
(stroke (width 0.05) (type solid)) (layer "Eco2.User")(uuid "be4932e2-42e8-4a91-afd5-8b2672e4dc85"))
(fp_line (start 9.7 11.2) (end 9.7 -15.2)
(stroke (width 0.05) (type solid)) (layer "Eco2.User")(uuid "a22230da-646c-4c5b-88ba-3fc4f8e38cd5"))
(fp_line (start -9 -15) (end 9 -15)
(stroke (width 0.1) (type solid)) (layer "B.Fab")(uuid "14b89af9-3886-41e7-81f7-790f1475cc6f"))
(fp_line (start -9 10.5) (end -9 -15)
(stroke (width 0.1) (type solid)) (layer "B.Fab")(uuid "fa541386-c806-4fc4-b7b3-5631071cd1d8"))
(fp_line (start -9 10.5) (end 9 10.5)
(stroke (width 0.1) (type solid)) (layer "B.Fab")(uuid "2d3c548c-d4fd-4999-9b1b-ce3cf77653f8"))
(fp_line (start 9 10.5) (end 9 -15)
(stroke (width 0.1) (type solid)) (layer "B.Fab")(uuid "742495ee-f970-46f8-8d2e-7e837df25243"))
(fp_circle (center -7.9 -7.6) (end -7.9 -8.1)
(stroke (width 0.1) (type solid)) (fill none) (layer "B.Fab")(uuid "5bf18964-d0d0-4b33-85ae-21b8d7a38792"))
(pad "" thru_hole circle (at -2.835 -0.9175) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "bd6cfc84-eed1-4c29-a962-6927e8cfc9bb")
) )
(property "Footprint" "Espressif ESP32-WROOM-32" (pad "" thru_hole circle (at -2.835 0.9175) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(at 0 0 0)
(unlocked yes) (uuid "68a85088-9a9e-47ce-94e2-f381f4a07714")
(layer "F.Fab")
(hide yes)
(uuid "d4c0bd0e-37ad-4850-b70d-aa72de04190e")
(effects
(font
(size 1 1)
(thickness 0.15)
) )
(pad "" thru_hole circle (at -1.9175 -1.835) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "1c020f30-66e8-4eda-bdc9-6a92ba465ace")
) )
(pad "" thru_hole circle (at -1.9175 0) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "c248bc1b-8b27-4749-9508-f940920db95f")
) )
(property "Datasheet" "" (pad "" thru_hole circle (at -1.9175 1.835) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(at 0 0 0)
(unlocked yes) (uuid "ce126843-0c03-4fff-a8d4-eb5b171f7023")
(layer "F.Fab")
(hide yes)
(uuid "4ad78952-d9c9-4b33-b810-313f34611a71")
(effects
(font
(size 1 1)
(thickness 0.15)
) )
(pad "" thru_hole circle (at -1 -0.9175) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "20fa0e63-64ef-4b71-a1fe-3d1b688fc272")
) )
(pad "" thru_hole circle (at -1 0.9175) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "7c71a6e2-f6c8-4fc5-9972-fdaa6b0ed183")
) )
(property "Description" "" (pad "" thru_hole circle (at -0.0825 -1.835) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(at 0 0 0)
(unlocked yes) (uuid "bfe8372c-0104-45b2-b353-86c4c2fd8e69")
(layer "F.Fab")
(hide yes)
(uuid "cc19605b-506b-496a-8138-e88f3cdba85a")
(effects
(font
(size 1 1)
(thickness 0.15)
) )
(pad "" thru_hole circle (at -0.0825 0) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "90590aa4-d200-4aa3-ae3d-65fca4ddd997")
) )
(pad "" thru_hole circle (at -0.0825 1.835) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "6a3bca9f-deda-484a-b4aa-9d2307c847a8")
) )
(fp_rect (pad "" thru_hole circle (at 0.835 -0.9175) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(start -4 3)
(end 2 -3) (uuid "55800dd8-2ca8-463b-bb99-5c932c761b41")
(stroke
(width 0)
(type default)
) )
(fill solid) (pad "" thru_hole circle (at 0.835 0.9175) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(layer "F.Cu")
(uuid "cc35b043-6986-447a-bcaa-0e9eb62616eb") (uuid "0ca122ad-16fa-4dca-a9d5-ec9f28de0f66")
) )
(fp_rect (pad "1" smd roundrect (at -8.5 -7.51) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(start -4 3)
(end 2 -3)
(stroke
(width 0)
(type default)
)
(fill solid)
(layer "B.Cu")
(uuid "782550ba-2fe9-404c-84a8-db3932565d44")
)
(fp_line
(start -9 -15)
(end 9 -15)
(stroke
(width 0.2)
(type solid)
)
(layer "F.SilkS")
(uuid "67d81324-ca01-4ad0-a67a-4005e0154490")
)
(fp_line
(start -9 -8.3)
(end -9 -15)
(stroke
(width 0.2)
(type solid)
)
(layer "F.SilkS")
(uuid "af02e358-d76a-4d1b-b0f6-40d18d17c8fc")
)
(fp_line
(start -9 10.5)
(end -9 9.6)
(stroke
(width 0.2)
(type solid)
)
(layer "F.SilkS")
(uuid "be2b705a-d300-4dd3-9e29-7d5604ab5296")
)
(fp_line
(start -9 10.5)
(end -6.4 10.5)
(stroke
(width 0.2)
(type solid)
)
(layer "F.SilkS")
(uuid "cfee0109-0172-4bfe-aaae-c388cd53596f")
)
(fp_line
(start 6.4 10.5)
(end 9 10.5)
(stroke
(width 0.2)
(type solid)
)
(layer "F.SilkS")
(uuid "f08bd4f8-8d5f-4376-bbed-a7edf06f810b")
)
(fp_line
(start 9 -8.3)
(end 9 -15)
(stroke
(width 0.2)
(type solid)
)
(layer "F.SilkS")
(uuid "f88f483c-af9a-4c56-a92d-00de32ffd17e")
)
(fp_line
(start 9 10.5)
(end 9 9.6)
(stroke
(width 0.2)
(type solid)
)
(layer "F.SilkS")
(uuid "9a3ad0c4-3c41-4704-bf26-12805d7404e4")
)
(fp_circle
(center -10.4648 -7.62)
(end -10.4648 -7.87)
(stroke
(width 0.75)
(type solid)
)
(fill none)
(layer "F.SilkS")
(uuid "e4e4440c-e629-42f8-ada2-30d1d9420f64")
)
(fp_line
(start -9.7 -15.2)
(end 9.7 -15.2)
(stroke
(width 0.05)
(type solid)
)
(layer "Eco2.User")
(uuid "451a10e9-6d9c-4e49-8c0a-5e728c75a075")
)
(fp_line
(start -9.7 11.2)
(end -9.7 -15.2)
(stroke
(width 0.05)
(type solid)
)
(layer "Eco2.User")
(uuid "65d46d73-bac5-41d6-8797-882c3f0d54be")
)
(fp_line
(start -9.7 11.2)
(end 9.7 11.2)
(stroke
(width 0.05)
(type solid)
)
(layer "Eco2.User")
(uuid "3344f71c-4ab1-428a-a05c-05aaa0fcdc4d")
)
(fp_line
(start -0.5 -0.001)
(end 0.5 -0.001)
(stroke
(width 0.05)
(type solid)
)
(layer "Eco2.User")
(uuid "7c9a7c5b-725a-46a1-8fea-a01aa730e156")
)
(fp_line
(start 0 0.499)
(end 0 -0.501)
(stroke
(width 0.05)
(type solid)
)
(layer "Eco2.User")
(uuid "c85dc972-4566-4183-bb36-b22657f50b08")
)
(fp_line
(start 9.7 11.2)
(end 9.7 -15.2)
(stroke
(width 0.05)
(type solid)
)
(layer "Eco2.User")
(uuid "50c35ea7-bf56-49d4-916e-d93833414495")
)
(fp_line
(start -9 -15)
(end 9 -15)
(stroke
(width 0.1)
(type solid)
)
(layer "B.Fab")
(uuid "6baa9dd8-c950-4dc1-b811-2845822d4111")
)
(fp_line
(start -9 10.5)
(end -9 -15)
(stroke
(width 0.1)
(type solid)
)
(layer "B.Fab")
(uuid "9df8ac18-2784-4334-8bdf-43c18f21377a")
)
(fp_line
(start -9 10.5)
(end 9 10.5)
(stroke
(width 0.1)
(type solid)
)
(layer "B.Fab")
(uuid "233f0868-4368-4a8c-a8ae-ad6165e89871")
)
(fp_line
(start 9 10.5)
(end 9 -15)
(stroke
(width 0.1)
(type solid)
)
(layer "B.Fab")
(uuid "3cf29f0a-9eab-4b37-8ddf-e3fa86a8db59")
)
(fp_circle
(center -7.9 -7.6)
(end -7.9 -8.1)
(stroke
(width 0.1)
(type solid)
)
(fill none)
(layer "B.Fab")
(uuid "6b6278c5-995b-4a5f-8b5c-5eb1e68cad19")
)
(pad "1" smd roundrect
(at -8.5 -7.51)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "54ba3566-b09a-4fc4-aa83-8d49dbfbdba5") (uuid "08b22d3f-0a6e-460e-8007-ec53f2731e61")
) )
(pad "2" smd roundrect (pad "2" smd roundrect (at -8.5 -6.24) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 -6.24)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "19ed72d5-69da-443c-a447-06ffe301041f") (uuid "2272b202-c8dd-4092-8d85-b67de448c62c")
) )
(pad "3" smd roundrect (pad "3" smd roundrect (at -8.5 -4.97) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 -4.97)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "2d342e9a-fc86-4ca2-98b0-ff0f4acf4768") (uuid "5ae9181f-a60a-4a34-af39-fb8d53927279")
) )
(pad "4" smd roundrect (pad "4" smd roundrect (at -8.5 -3.7) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 -3.7)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "8c7a05fe-acab-46aa-99db-130f9d4e64e0") (uuid "bbcd7a59-6f51-41e5-8610-5ab3cef829b7")
) )
(pad "5" smd roundrect (pad "5" smd roundrect (at -8.5 -2.43) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 -2.43)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "424362f8-fd09-43da-99fe-ec31d9648051") (uuid "1e913477-4faf-4989-85b4-d7029d70586e")
) )
(pad "6" smd roundrect (pad "6" smd roundrect (at -8.5 -1.16) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 -1.16)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "a6272ba8-17e8-4b24-ab4b-9c17094c313c") (uuid "db825d4e-6363-4655-9559-ae00ca64c554")
) )
(pad "7" smd roundrect (pad "7" smd roundrect (at -8.5 0.11) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 0.11)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "ab57c4c8-1670-4531-9612-d80a38d8689a") (uuid "60b7d8aa-b138-43ea-bd1e-16adcc8d33ad")
) )
(pad "8" smd roundrect (pad "8" smd roundrect (at -8.5 1.38) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 1.38)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "44880566-7a0e-4079-bd1c-68e088a1bbed") (uuid "c9f71d4b-93a6-4852-bb18-cdf4ac8bf641")
) )
(pad "9" smd roundrect (pad "9" smd roundrect (at -8.5 2.65) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 2.65)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "d01e07d3-2f10-4f0b-adb2-e0ff5575ae6c") (uuid "1f949961-9a09-4f81-8c03-269f743d2a7b")
) )
(pad "10" smd roundrect (pad "10" smd roundrect (at -8.5 3.92) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 3.92)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "ffcd31f7-ad65-468b-b645-491108568ffb") (uuid "0d988aeb-fa36-403d-87e2-f6c2ecbb3939")
) )
(pad "11" smd roundrect (pad "11" smd roundrect (at -8.5 5.19 180) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 5.19 180)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "e76ba829-c6b8-4f54-95f0-3c52759a5412") (uuid "c318ce7c-9f79-4225-a5e2-fc0ef5969e12")
) )
(pad "12" smd roundrect (pad "12" smd roundrect (at -8.5 6.46 180) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 6.46 180)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "5f837dfb-977d-47d6-b070-ff0984184d64") (uuid "a631940e-4cf1-46cf-9863-78213fd22aba")
) )
(pad "13" smd roundrect (pad "13" smd roundrect (at -8.5 7.73 180) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 7.73 180)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "8bd8c2cf-8e7a-49e5-b8d9-c3510b27fa3f") (uuid "0d5130a2-681c-4940-b4a3-46d65b90f11c")
) )
(pad "14" smd roundrect (pad "14" smd roundrect (at -8.5 9 180) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -8.5 9 180)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "4f0b919f-f441-48f7-8e9d-6e8a10a4aeac") (uuid "cb1a6cde-49c4-41d3-b96f-7a1e356d9bc3")
) )
(pad "15" smd roundrect (pad "15" smd roundrect (at -5.715 10 270) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -5.715 10 270)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "60e3fbbb-6042-4b2b-ab58-7eb9b8a9d099") (uuid "91914b0e-bde1-4de2-98c6-eec4a1b28372")
) )
(pad "16" smd roundrect (pad "16" smd roundrect (at -4.445 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -4.445 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "9b9668d3-416a-4165-afd4-c0d22f495e0e") (uuid "17985445-f923-44c5-a38b-b003fdc26921")
) )
(pad "17" smd roundrect (pad "17" smd roundrect (at -3.175 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -3.175 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "dce007eb-dddf-4750-8954-5c8c395077b8") (uuid "571fb42b-535a-43e7-a84b-c505467a4dfe")
) )
(pad "18" smd roundrect (pad "18" smd roundrect (at -1.905 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -1.905 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "74f2cea0-3c49-4231-a4de-138c12e102e6") (uuid "b982433f-58ba-420b-96da-b40877d56837")
) )
(pad "19" smd roundrect (pad "19" smd roundrect (at -0.635 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at -0.635 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "d22ae084-e7ff-4224-95b9-a63e4ac8f3c4") (uuid "32bfc9c0-6dc4-4f9b-bf0f-1a92d0763c1c")
) )
(pad "20" smd roundrect (pad "20" smd roundrect (at 0.635 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 0.635 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "24d37bfe-12e1-4059-aca0-78971d138f12") (uuid "a1bc973c-19a1-41d1-a237-88892065b913")
) )
(pad "21" smd roundrect (pad "21" smd roundrect (at 1.905 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 1.905 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "ca8c63a6-ebbc-4e44-9b02-1bed2d1792fe") (uuid "c847265b-aad7-447d-93ee-dfa65e1c873c")
) )
(pad "22" smd roundrect (pad "22" smd roundrect (at 3.175 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 3.175 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "d096f2ce-0d6f-4d25-8f0e-1a3c9cf080aa") (uuid "349f767a-8008-41ef-934a-dab97b501fa9")
) )
(pad "23" smd roundrect (pad "23" smd roundrect (at 4.445 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 4.445 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "c3fe2d70-ae60-4aa5-9c11-f329cd885e57") (uuid "542fdc21-09f1-4b4a-be4c-6510b2d2d95b")
) )
(pad "24" smd roundrect (pad "24" smd roundrect (at 5.715 10 90) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 5.715 10 90)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "b89e939a-f176-49d3-a9c7-12b953da7d39") (uuid "b1cbe2fb-fddb-4e17-967c-fb083174aed6")
) )
(pad "25" smd roundrect (pad "25" smd roundrect (at 8.5 9) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 8.5 9)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "f9405a49-ad8a-418a-afeb-41619e5c02f4") (uuid "2a9eeacd-6474-4267-beda-833c7149a0bb")
) )
(pad "26" smd roundrect (pad "26" smd roundrect (at 8.5 7.73) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 8.5 7.73)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "4920493c-867d-45af-a851-0886734db8cd") (uuid "70aec27e-eb81-4ff3-8561-3b4c5b24e5ec")
) )
(pad "27" smd roundrect (pad "27" smd roundrect (at 8.5 6.46) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 8.5 6.46)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "4e5fddb1-2b36-4ca8-82fe-dc1aab0e5da7") (uuid "c655475d-1ee7-426c-a402-69ff7a728877")
) )
(pad "28" smd roundrect (pad "28" smd roundrect (at 8.5 5.19) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 8.5 5.19)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "08c1196e-35eb-49f8-8aee-4bc958945a5c") (uuid "4f47f373-52d7-475c-abff-73cd34ae3686")
) )
(pad "29" smd roundrect (pad "29" smd roundrect (at 8.5 3.92) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 8.5 3.92)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "53ab5511-6f4d-44ba-8025-b6ccc4bc6b9d") (uuid "c45041a1-4fa4-42b6-bcd5-f963500b6d3e")
) )
(pad "30" smd roundrect (pad "30" smd roundrect (at 8.5 2.65) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(at 8.5 2.65)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "9b500d6e-8e5c-4bca-8dfc-18a1ff2229fe") (uuid "adf0b2ed-3ebf-4df1-b9ed-0721e80ee4b5")
) )
(pad "31" smd rect (pad "31" smd rect (at 8.5 1.38) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(at 8.5 1.38)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "a9dff6e2-7eda-461e-9556-797103a065dd") (uuid "4e7e1e9a-114b-4106-afa2-dfa31b2f12a4")
) )
(pad "32" smd rect (pad "32" smd rect (at 8.5 0.11) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(at 8.5 0.11)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "a70aec46-1cbf-40f1-9c0b-fad50c82793c") (uuid "1b9b4f68-90f4-453e-9b43-a95988ea38f9")
) )
(pad "33" smd rect (pad "33" smd rect (at 8.5 -1.16) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(at 8.5 -1.16)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "18e5437a-6ff5-4fc3-a207-3d37ef2695b2") (uuid "2e91def0-0fb4-4beb-b4e4-065be23f743c")
) )
(pad "34" smd rect (pad "34" smd rect (at 8.5 -2.43) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(at 8.5 -2.43)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "853a3caa-acc4-41a5-982b-7449220516e4") (uuid "847cef85-5fb6-4885-8a0a-77ee0bdeea01")
) )
(pad "35" smd rect (pad "35" smd rect (at 8.5 -3.7) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(at 8.5 -3.7)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "215fb439-853c-49b2-aae2-4398d0802b12") (uuid "f18d349c-e4d0-4a6d-a1b2-536d039f2144")
) )
(pad "36" smd rect (pad "36" smd rect (at 8.5 -4.97) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(at 8.5 -4.97)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "0be76498-ce87-48e2-8efc-745931fc9f52") (uuid "d5990d49-986d-4f84-a69e-03162d9ee421")
) )
(pad "37" smd rect (pad "37" smd rect (at 8.5 -6.24) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(at 8.5 -6.24)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "3d298c5c-4c03-4d24-8515-03f2bd961cc4") (uuid "63c5963a-f366-4128-acc5-663d0ad8c169")
) )
(pad "38" smd rect (pad "38" smd rect (at 8.5 -7.51) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(at 8.5 -7.51)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "b059ef6e-c6a1-40ea-9dee-e96f0cc9743d") (uuid "53498215-ca6d-46ab-907e-b5bf5dfc21c6")
) )
(pad "39" smd rect (pad "39" smd rect (at -2.835 -1.835) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at -2.835 -1.835)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "6c73264c-85e7-4541-9455-c3c35d038637") (uuid "b65c2d8c-02d8-466a-b9fa-d6195265d9ad")
) )
(pad "39" smd rect (pad "39" smd rect (at -2.835 0 90) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at -2.835 0 90)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "a19c1431-f68f-45b2-a431-675a24e54e9f") (uuid "c3a96cd8-1aca-4519-a786-e2f992640989")
) )
(pad "39" smd rect (pad "39" smd rect (at -2.835 1.835 180) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at -2.835 1.835 180)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "ad0157fd-a574-47ab-98b2-39dd4eedd488") (uuid "0bebd4e2-d364-4325-b4e9-d90e23a46083")
) )
(pad "39" smd rect (pad "39" smd rect (at -1 -1.835) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at -1 -1.835)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "df54c599-70f5-40ca-a0ab-c28249a530b7") (uuid "a6cc869e-0998-40a6-85c9-cfa613ec10ff")
) )
(pad "39" smd rect (pad "39" smd rect (at -1 0) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at -1 0)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "f9fd6f37-3763-4b02-8996-96f41a64ce5b") (uuid "f20a48ff-a576-4d9e-a36c-e860ec5b7178")
) )
(pad "39" smd rect (pad "39" smd rect (at -1 1.835 180) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at -1 1.835 180)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "d58401f4-e240-45ef-b740-3a2109ed20f2") (uuid "9cffc53d-9bad-45ea-9503-c6bf1e6620f6")
) )
(pad "39" smd rect (pad "39" smd rect (at 0.835 -1.835) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at 0.835 -1.835)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "939b0b61-d26d-44dd-be7d-f50cf7b7e601") (uuid "5da7dec2-3ce0-4c32-b248-c57e1cbaeae5")
) )
(pad "39" smd rect (pad "39" smd rect (at 0.835 0 270) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at 0.835 0 270)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "0dfda696-0635-4aca-ad04-57d49bd82559") (uuid "7f4f074a-f529-475f-83d1-3b6208ef8c60")
) )
(pad "39" smd rect (pad "39" smd rect (at 0.835 1.835 180) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(at 0.835 1.835 180)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05) (solder_mask_margin 0.05)
(uuid "14e90ddb-5799-4c83-ab52-1d088544801d") (uuid "c91782b9-912e-4085-a63d-548ccf1935b5")
) )
(zone (zone (net 0) (net_name "") (layers "*.Cu")(uuid "ef687268-1ef2-4ddb-ac11-af11f3ba3ff4")
(net 0)
(net_name "")
(layers "*.Cu")
(uuid "bfe5168b-00a3-4d1b-8922-5d3f679c9723")
(hatch edge 0.5) (hatch edge 0.5)
(connect_pads (connect_pads (clearance 0))
(clearance 0) (min_thickness 0.25) (filled_areas_thickness no)
) (keepout (tracks not_allowed) (vias not_allowed) (pads not_allowed) (copperpour not_allowed) (footprints allowed))
(min_thickness 0.25) (fill (thermal_gap 0.5) (thermal_bridge_width 0.5))
(filled_areas_thickness no)
(keepout
(tracks not_allowed)
(vias not_allowed)
(pads not_allowed)
(copperpour not_allowed)
(footprints allowed)
)
(fill
(thermal_gap 0.5)
(thermal_bridge_width 0.5)
)
(polygon (polygon
(pts (pts
(xy -9 -15) (xy 9 -15) (xy 9 -8.7) (xy -9 -8.7) (xy -9 -15)
(xy 9 -15)
(xy 9 -8.7)
(xy -9 -8.7)
) )
) )
) )