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 );
position = aReader.ReadVector2IPos();
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>();
isMirrored = aReader.Read<uint8_t>() != 0;
strokewidth = aReader.ReadKicadUnit();
if( subrecord1 < 123 )
{
fonttype = ALTIUM_TEXT_TYPE::STROKE;
aReader.SkipSubrecord();
return;
}
isComment = 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;
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 ) );
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 );
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.
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
aReader.ReadAndSetSubrecordLength();
auto entry = aStringTable.find( stringIndex );
auto entry = aStringTable.find( widestring_index );
if( entry != aStringTable.end() )
text = entry->second;
@ -1059,6 +1064,13 @@ ATEXT6::ATEXT6( ALTIUM_BINARY_PARSER& aReader, std::map<uint32_t, wxString>& aSt
aReader.SkipSubrecord();
// Altium only supports inverting truetype fonts
if( fonttype != ALTIUM_TEXT_TYPE::TRUETYPE )
{
isInverted = false;
isInvertedRect = false;
}
if( aReader.HasParsingError() )
THROW_IO_ERROR( wxT( "Texts6 stream was not parsed correctly" ) );
}

View File

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

View File

@ -2914,6 +2914,7 @@ void ALTIUM_PCB::ConvertVias6ToFootprintItem( FOOTPRINT* aFootprint, const AVIA6
pad->SetNumber( "" );
pad->SetNetCode( GetNetCode( aElem.net ) );
pad->SetKeepTopBottom( false );
pad->SetPosition( aElem.position );
pad->SetSize( VECTOR2I( aElem.diameter, aElem.diameter ) );
pad->SetDrillSize( VECTOR2I( aElem.holesize, aElem.holesize ) );
@ -3935,6 +3936,7 @@ void ALTIUM_PCB::ConvertTexts6ToBoardItemOnLayer( const ATEXT6& aElem, PCB_LAYER
{ "PRINT_DATE", "CURRENT_DATE"},
};
wxString kicadText = AltiumPcbSpecialStringsToKiCadStrings( aElem.text, variableMap );
BOARD_ITEM* item = pcbText.get();
EDA_TEXT* text = pcbText.get();
@ -3947,7 +3949,7 @@ void ALTIUM_PCB::ConvertTexts6ToBoardItemOnLayer( const ATEXT6& aElem, PCB_LAYER
item = pcbTextbox.get();
text = pcbTextbox.get();
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 )
{
@ -4046,10 +4048,11 @@ void ALTIUM_PCB::ConvertTexts6ToFootprintItemOnLayer( FOOTPRINT* aFootprint, con
wxString kicadText = AltiumPcbSpecialStringsToKiCadStrings( aElem.text, variableMap );
text->SetText(kicadText);
text->SetKeepUpright( false );
item->SetLayer( aLayer );
item->SetIsKnockout( aElem.isInverted );
fpText->SetText(kicadText);
fpText->SetKeepUpright( false );
fpText->SetLayer( aLayer );
fpText->SetPosition( aElem.position );
fpText->SetIsKnockout( aElem.isInverted );
if( isTextbox )
{
@ -4099,7 +4102,7 @@ void ALTIUM_PCB::ConvertTexts6ToFootprintItemOnLayer( FOOTPRINT* aFootprint, con
field->SetPosition( aElem.position );
}
ConvertTexts6ToEdaTextSettings( aElem, *text );
ConvertTexts6ToEdaTextSettings( aElem, text );
if( toAdd )
{
@ -4138,6 +4141,9 @@ void ALTIUM_PCB::ConvertTexts6ToEdaTextSettings( const ATEXT6& aElem, EDA_TEXT*
aEdaText->SetItalic( aElem.isItalic );
aEdaText->SetMirrored( aElem.isMirrored );
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,671 +1,315 @@
(footprint "Espressif ESP32-WROOM-32"
(version 20240108)
(generator "pcbnew")
(generator_version "8.0")
(layer "F.Cu")
(descr "39-SMD Module")
(property "Reference" "REF**"
(at -0.7949 -15.8 0)
(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)
(unlocked yes)
(layer "F.Fab")
(uuid "81ec18a6-dce6-49aa-b59c-30114353b268")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Footprint" "Espressif ESP32-WROOM-32"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "d4c0bd0e-37ad-4850-b70d-aa72de04190e")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "4ad78952-d9c9-4b33-b810-313f34611a71")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "cc19605b-506b-496a-8138-e88f3cdba85a")
(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 "cc35b043-6986-447a-bcaa-0e9eb62616eb")
)
(fp_rect
(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)
(uuid "54ba3566-b09a-4fc4-aa83-8d49dbfbdba5")
)
(pad "2" smd roundrect
(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)
(uuid "19ed72d5-69da-443c-a447-06ffe301041f")
)
(pad "3" smd roundrect
(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)
(uuid "2d342e9a-fc86-4ca2-98b0-ff0f4acf4768")
)
(pad "4" smd roundrect
(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)
(uuid "8c7a05fe-acab-46aa-99db-130f9d4e64e0")
)
(pad "5" smd roundrect
(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)
(uuid "424362f8-fd09-43da-99fe-ec31d9648051")
)
(pad "6" smd roundrect
(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)
(uuid "a6272ba8-17e8-4b24-ab4b-9c17094c313c")
)
(pad "7" smd roundrect
(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)
(uuid "ab57c4c8-1670-4531-9612-d80a38d8689a")
)
(pad "8" smd roundrect
(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)
(uuid "44880566-7a0e-4079-bd1c-68e088a1bbed")
)
(pad "9" smd roundrect
(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)
(uuid "d01e07d3-2f10-4f0b-adb2-e0ff5575ae6c")
)
(pad "10" smd roundrect
(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)
(uuid "ffcd31f7-ad65-468b-b645-491108568ffb")
)
(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)
(solder_mask_margin 0.05)
(uuid "e76ba829-c6b8-4f54-95f0-3c52759a5412")
)
(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)
(solder_mask_margin 0.05)
(uuid "5f837dfb-977d-47d6-b070-ff0984184d64")
)
(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)
(solder_mask_margin 0.05)
(uuid "8bd8c2cf-8e7a-49e5-b8d9-c3510b27fa3f")
)
(pad "14" smd roundrect
(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)
(uuid "4f0b919f-f441-48f7-8e9d-6e8a10a4aeac")
)
(pad "15" smd roundrect
(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)
(uuid "60e3fbbb-6042-4b2b-ab58-7eb9b8a9d099")
)
(pad "16" smd roundrect
(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)
(uuid "9b9668d3-416a-4165-afd4-c0d22f495e0e")
)
(pad "17" smd roundrect
(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)
(uuid "dce007eb-dddf-4750-8954-5c8c395077b8")
)
(pad "18" smd roundrect
(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)
(uuid "74f2cea0-3c49-4231-a4de-138c12e102e6")
)
(pad "19" smd roundrect
(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)
(uuid "d22ae084-e7ff-4224-95b9-a63e4ac8f3c4")
)
(pad "20" smd roundrect
(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)
(uuid "24d37bfe-12e1-4059-aca0-78971d138f12")
)
(pad "21" smd roundrect
(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)
(uuid "ca8c63a6-ebbc-4e44-9b02-1bed2d1792fe")
)
(pad "22" smd roundrect
(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)
(uuid "d096f2ce-0d6f-4d25-8f0e-1a3c9cf080aa")
)
(pad "23" smd roundrect
(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)
(uuid "c3fe2d70-ae60-4aa5-9c11-f329cd885e57")
)
(pad "24" smd roundrect
(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)
(uuid "b89e939a-f176-49d3-a9c7-12b953da7d39")
)
(pad "25" smd roundrect
(at 8.5 9)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.05)
(solder_mask_margin 0.05)
(uuid "f9405a49-ad8a-418a-afeb-41619e5c02f4")
)
(pad "26" smd roundrect
(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)
(uuid "4920493c-867d-45af-a851-0886734db8cd")
)
(pad "27" smd roundrect
(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)
(uuid "4e5fddb1-2b36-4ca8-82fe-dc1aab0e5da7")
)
(pad "28" smd roundrect
(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)
(uuid "08c1196e-35eb-49f8-8aee-4bc958945a5c")
)
(pad "29" smd roundrect
(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)
(uuid "53ab5511-6f4d-44ba-8025-b6ccc4bc6b9d")
)
(pad "30" smd roundrect
(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)
(uuid "9b500d6e-8e5c-4bca-8dfc-18a1ff2229fe")
)
(pad "31" smd rect
(at 8.5 1.38)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "a9dff6e2-7eda-461e-9556-797103a065dd")
)
(pad "32" smd rect
(at 8.5 0.11)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "a70aec46-1cbf-40f1-9c0b-fad50c82793c")
)
(pad "33" smd rect
(at 8.5 -1.16)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "18e5437a-6ff5-4fc3-a207-3d37ef2695b2")
)
(pad "34" smd rect
(at 8.5 -2.43)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "853a3caa-acc4-41a5-982b-7449220516e4")
)
(pad "35" smd rect
(at 8.5 -3.7)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "215fb439-853c-49b2-aae2-4398d0802b12")
)
(pad "36" smd rect
(at 8.5 -4.97)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "0be76498-ce87-48e2-8efc-745931fc9f52")
)
(pad "37" smd rect
(at 8.5 -6.24)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "3d298c5c-4c03-4d24-8515-03f2bd961cc4")
)
(pad "38" smd rect
(at 8.5 -7.51)
(size 2 0.9)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "b059ef6e-c6a1-40ea-9dee-e96f0cc9743d")
)
(pad "39" smd rect
(at -2.835 -1.835)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "6c73264c-85e7-4541-9455-c3c35d038637")
)
(pad "39" smd rect
(at -2.835 0 90)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "a19c1431-f68f-45b2-a431-675a24e54e9f")
)
(pad "39" smd rect
(at -2.835 1.835 180)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "ad0157fd-a574-47ab-98b2-39dd4eedd488")
)
(pad "39" smd rect
(at -1 -1.835)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "df54c599-70f5-40ca-a0ab-c28249a530b7")
)
(pad "39" smd rect
(at -1 0)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "f9fd6f37-3763-4b02-8996-96f41a64ce5b")
)
(pad "39" smd rect
(at -1 1.835 180)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "d58401f4-e240-45ef-b740-3a2109ed20f2")
)
(pad "39" smd rect
(at 0.835 -1.835)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "939b0b61-d26d-44dd-be7d-f50cf7b7e601")
)
(pad "39" smd rect
(at 0.835 0 270)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "0dfda696-0635-4aca-ad04-57d49bd82559")
)
(pad "39" smd rect
(at 0.835 1.835 180)
(size 1.33 1.33)
(layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "14e90ddb-5799-4c83-ab52-1d088544801d")
)
(zone
(net 0)
(net_name "")
(layers "*.Cu")
(uuid "bfe5168b-00a3-4d1b-8922-5d3f679c9723")
(hatch edge 0.5)
(connect_pads
(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)
)
(fill
(thermal_gap 0.5)
(thermal_bridge_width 0.5)
)
(polygon
(pts
(xy -9 -15) (xy 9 -15) (xy 9 -8.7) (xy -9 -8.7)
)
)
)
(footprint "Espressif ESP32-WROOM-32" (version 20240108) (generator "pcbnew") (generator_version "8.0")
(layer "F.Cu")
(descr "39-SMD Module")
(property "Reference" "REF**" (at -0.7949 -15.8 0) (layer "F.SilkS")(uuid "1ba00595-7cdb-41da-b2d6-fe1e55aedb5a")
(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 "Datasheet" "" (at 0 0 0) (layer "F.Fab")(hide yes)
(uuid "9a20ae60-6735-491f-b2ce-7be2e1ce8201")
(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")
)
(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 "68a85088-9a9e-47ce-94e2-f381f4a07714")
)
(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")
)
(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 "ce126843-0c03-4fff-a8d4-eb5b171f7023")
)
(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")
)
(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 "bfe8372c-0104-45b2-b353-86c4c2fd8e69")
)
(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")
)
(pad "" thru_hole circle (at 0.835 -0.9175) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "55800dd8-2ca8-463b-bb99-5c932c761b41")
)
(pad "" thru_hole circle (at 0.835 0.9175) (size 0.6 0.6) (drill 0.3) (layers "*.Cu" "*.Mask")(remove_unused_layers no)
(uuid "0ca122ad-16fa-4dca-a9d5-ec9f28de0f66")
)
(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)
(uuid "08b22d3f-0a6e-460e-8007-ec53f2731e61")
)
(pad "2" smd roundrect (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)
(uuid "2272b202-c8dd-4092-8d85-b67de448c62c")
)
(pad "3" smd roundrect (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)
(uuid "5ae9181f-a60a-4a34-af39-fb8d53927279")
)
(pad "4" smd roundrect (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)
(uuid "bbcd7a59-6f51-41e5-8610-5ab3cef829b7")
)
(pad "5" smd roundrect (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)
(uuid "1e913477-4faf-4989-85b4-d7029d70586e")
)
(pad "6" smd roundrect (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)
(uuid "db825d4e-6363-4655-9559-ae00ca64c554")
)
(pad "7" smd roundrect (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)
(uuid "60b7d8aa-b138-43ea-bd1e-16adcc8d33ad")
)
(pad "8" smd roundrect (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)
(uuid "c9f71d4b-93a6-4852-bb18-cdf4ac8bf641")
)
(pad "9" smd roundrect (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)
(uuid "1f949961-9a09-4f81-8c03-269f743d2a7b")
)
(pad "10" smd roundrect (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)
(uuid "0d988aeb-fa36-403d-87e2-f6c2ecbb3939")
)
(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)
(solder_mask_margin 0.05)
(uuid "c318ce7c-9f79-4225-a5e2-fc0ef5969e12")
)
(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)
(solder_mask_margin 0.05)
(uuid "a631940e-4cf1-46cf-9863-78213fd22aba")
)
(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)
(solder_mask_margin 0.05)
(uuid "0d5130a2-681c-4940-b4a3-46d65b90f11c")
)
(pad "14" smd roundrect (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)
(uuid "cb1a6cde-49c4-41d3-b96f-7a1e356d9bc3")
)
(pad "15" smd roundrect (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)
(uuid "91914b0e-bde1-4de2-98c6-eec4a1b28372")
)
(pad "16" smd roundrect (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)
(uuid "17985445-f923-44c5-a38b-b003fdc26921")
)
(pad "17" smd roundrect (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)
(uuid "571fb42b-535a-43e7-a84b-c505467a4dfe")
)
(pad "18" smd roundrect (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)
(uuid "b982433f-58ba-420b-96da-b40877d56837")
)
(pad "19" smd roundrect (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)
(uuid "32bfc9c0-6dc4-4f9b-bf0f-1a92d0763c1c")
)
(pad "20" smd roundrect (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)
(uuid "a1bc973c-19a1-41d1-a237-88892065b913")
)
(pad "21" smd roundrect (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)
(uuid "c847265b-aad7-447d-93ee-dfa65e1c873c")
)
(pad "22" smd roundrect (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)
(uuid "349f767a-8008-41ef-934a-dab97b501fa9")
)
(pad "23" smd roundrect (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)
(uuid "542fdc21-09f1-4b4a-be4c-6510b2d2d95b")
)
(pad "24" smd roundrect (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)
(uuid "b1cbe2fb-fddb-4e17-967c-fb083174aed6")
)
(pad "25" smd roundrect (at 8.5 9) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05)
(solder_mask_margin 0.05)
(uuid "2a9eeacd-6474-4267-beda-833c7149a0bb")
)
(pad "26" smd roundrect (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)
(uuid "70aec27e-eb81-4ff3-8561-3b4c5b24e5ec")
)
(pad "27" smd roundrect (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)
(uuid "c655475d-1ee7-426c-a402-69ff7a728877")
)
(pad "28" smd roundrect (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)
(uuid "4f47f373-52d7-475c-abff-73cd34ae3686")
)
(pad "29" smd roundrect (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)
(uuid "c45041a1-4fa4-42b6-bcd5-f963500b6d3e")
)
(pad "30" smd roundrect (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)
(uuid "adf0b2ed-3ebf-4df1-b9ed-0721e80ee4b5")
)
(pad "31" smd rect (at 8.5 1.38) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "4e7e1e9a-114b-4106-afa2-dfa31b2f12a4")
)
(pad "32" smd rect (at 8.5 0.11) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "1b9b4f68-90f4-453e-9b43-a95988ea38f9")
)
(pad "33" smd rect (at 8.5 -1.16) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "2e91def0-0fb4-4beb-b4e4-065be23f743c")
)
(pad "34" smd rect (at 8.5 -2.43) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "847cef85-5fb6-4885-8a0a-77ee0bdeea01")
)
(pad "35" smd rect (at 8.5 -3.7) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "f18d349c-e4d0-4a6d-a1b2-536d039f2144")
)
(pad "36" smd rect (at 8.5 -4.97) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "d5990d49-986d-4f84-a69e-03162d9ee421")
)
(pad "37" smd rect (at 8.5 -6.24) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "63c5963a-f366-4128-acc5-663d0ad8c169")
)
(pad "38" smd rect (at 8.5 -7.51) (size 2 0.9) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "53498215-ca6d-46ab-907e-b5bf5dfc21c6")
)
(pad "39" smd rect (at -2.835 -1.835) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "b65c2d8c-02d8-466a-b9fa-d6195265d9ad")
)
(pad "39" smd rect (at -2.835 0 90) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "c3a96cd8-1aca-4519-a786-e2f992640989")
)
(pad "39" smd rect (at -2.835 1.835 180) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "0bebd4e2-d364-4325-b4e9-d90e23a46083")
)
(pad "39" smd rect (at -1 -1.835) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "a6cc869e-0998-40a6-85c9-cfa613ec10ff")
)
(pad "39" smd rect (at -1 0) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "f20a48ff-a576-4d9e-a36c-e860ec5b7178")
)
(pad "39" smd rect (at -1 1.835 180) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "9cffc53d-9bad-45ea-9503-c6bf1e6620f6")
)
(pad "39" smd rect (at 0.835 -1.835) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "5da7dec2-3ce0-4c32-b248-c57e1cbaeae5")
)
(pad "39" smd rect (at 0.835 0 270) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "7f4f074a-f529-475f-83d1-3b6208ef8c60")
)
(pad "39" smd rect (at 0.835 1.835 180) (size 1.33 1.33) (layers "F.Cu" "F.Paste" "F.Mask")
(solder_mask_margin 0.05)
(uuid "c91782b9-912e-4085-a63d-548ccf1935b5")
)
(zone (net 0) (net_name "") (layers "*.Cu")(uuid "ef687268-1ef2-4ddb-ac11-af11f3ba3ff4")
(hatch edge 0.5)
(connect_pads (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))
(fill (thermal_gap 0.5) (thermal_bridge_width 0.5))
(polygon
(pts
(xy -9 -15)
(xy 9 -15)
(xy 9 -8.7)
(xy -9 -8.7)
)
)
)
)