diff --git a/bitmap2component/bitmap2cmp_panel.cpp b/bitmap2component/bitmap2cmp_panel.cpp index 313b9c9f5d..0ef40a5028 100644 --- a/bitmap2component/bitmap2cmp_panel.cpp +++ b/bitmap2component/bitmap2cmp_panel.cpp @@ -84,7 +84,8 @@ void BITMAP2CMP_PANEL::LoadSettings( BITMAP2CMP_SETTINGS* cfg ) { default: case FOOTPRINT_FMT: m_rbFootprint->SetValue( true ); break; - case SYMBOL_FMT: m_rbSymbol->SetValue( true ); break; + case SYMBOL_FMT: + case SYMBOL_PASTE_FMT: m_rbSymbol->SetValue( true ); break; case POSTSCRIPT_FMT: m_rbPostscript->SetValue( true ); break; case DRAWING_SHEET_FMT: m_rbWorksheet->SetValue( true ); break; } @@ -459,7 +460,8 @@ void BITMAP2CMP_PANEL::OnExportToFile( wxCommandEvent& event ) { switch( getOutputFormat() ) { - case SYMBOL_FMT: m_parentFrame->ExportEeschemaFormat(); break; + case SYMBOL_FMT: + case SYMBOL_PASTE_FMT: m_parentFrame->ExportEeschemaFormat(); break; case FOOTPRINT_FMT: m_parentFrame->ExportPcbnewFormat(); break; case POSTSCRIPT_FMT: m_parentFrame->ExportPostScriptFormat(); break; case DRAWING_SHEET_FMT: m_parentFrame->ExportDrawingSheetFormat(); break; @@ -483,7 +485,8 @@ OUTPUT_FMT_ID BITMAP2CMP_PANEL::getOutputFormat() void BITMAP2CMP_PANEL::OnExportToClipboard( wxCommandEvent& event ) { std::string buffer; - ExportToBuffer( buffer, getOutputFormat() ); + OUTPUT_FMT_ID format = getOutputFormat() == SYMBOL_FMT ? SYMBOL_PASTE_FMT : getOutputFormat(); + ExportToBuffer( buffer, format ); wxLogNull doNotLog; // disable logging of failed clipboard actions @@ -541,6 +544,8 @@ void BITMAP2CMP_PANEL::ExportToBuffer( std::string& aOutput, OUTPUT_FMT_ID aForm } } + + WX_STRING_REPORTER reporter; BITMAPCONV_INFO converter( aOutput, reporter ); diff --git a/bitmap2component/bitmap2component.cpp b/bitmap2component/bitmap2component.cpp index 2e2c9474ae..4a419dca6a 100644 --- a/bitmap2component/bitmap2component.cpp +++ b/bitmap2component/bitmap2component.cpp @@ -34,6 +34,7 @@ #include <build_version.h> #include <locale_io.h> +#include <macros.h> #include <potracelib.h> #include <reporter.h> #include <fmt/format.h> @@ -127,6 +128,7 @@ int BITMAPCONV_INFO::ConvertBitmap( potrace_bitmap_t* aPotrace_bitmap, OUTPUT_FM break; case SYMBOL_FMT: + case SYMBOL_PASTE_FMT: m_ScaleX = SCH_IU_PER_MM * 25.4 / aDpi_X; // the conversion scale from PPI to eeschema iu m_ScaleY = -SCH_IU_PER_MM * 25.4 / aDpi_Y; // Y axis is bottom to Top for components in libs createOutputData(); @@ -192,12 +194,15 @@ void BITMAPCONV_INFO::outputDataHeader( const wxString& aBrdLayerName ) break; case SYMBOL_FMT: + m_Data += fmt::format( "(kicad_symbol_lib (version 20220914) (generator \"bitmap2component\") (generator_version \"{}\")\n", + GetMajorMinorVersion().ToStdString() ); + KI_FALLTHROUGH; + + case SYMBOL_PASTE_FMT: fieldSize = 1.27; // fields text size in mm (= 50 mils) Ypos /= SCH_IU_PER_MM; Ypos += fieldSize / 2; - m_Data += fmt::format( "(kicad_symbol_lib (version 20220914) (generator \"bitmap2component\") (generator_version \"{}\")\n" - " (symbol \"{}\" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)\n", - GetMajorMinorVersion().ToStdString(), + m_Data += fmt::format( " (symbol \"{}\" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)\n", m_CmpName.c_str() ); m_Data += fmt::format( " (property \"Reference\" \"#G\" (at 0 {:g} 0)\n" @@ -246,6 +251,11 @@ void BITMAPCONV_INFO::outputDataEnd() m_Data += " )\n)\n"; break; + case SYMBOL_PASTE_FMT: + m_Data += " )\n"; // end symbol_0_0 + m_Data += " )\n"; // end symbol + break; + case SYMBOL_FMT: m_Data += " )\n"; // end symbol_0_0 m_Data += " )\n"; // end symbol @@ -336,6 +346,7 @@ void BITMAPCONV_INFO::outputOnePolygon( SHAPE_LINE_CHAIN& aPolygon, const wxStri break; case SYMBOL_FMT: + case SYMBOL_PASTE_FMT: // The polygon outline thickness is fixed here to 0.01 ( 0.0 is the default thickness) #define SCH_LINE_THICKNESS_MM 0.01 //snprintf( strbuf, sizeof(strbuf), "P %d 0 0 %d", (int) aPolygon.PointCount() + 1, EE_LINE_THICKNESS ); diff --git a/bitmap2component/bitmap2component.h b/bitmap2component/bitmap2component.h index 9719467518..5318e20c7f 100644 --- a/bitmap2component/bitmap2component.h +++ b/bitmap2component/bitmap2component.h @@ -32,6 +32,7 @@ class REPORTER; enum OUTPUT_FMT_ID { SYMBOL_FMT, + SYMBOL_PASTE_FMT, // This does not include the header information FOOTPRINT_FMT, POSTSCRIPT_FMT, DRAWING_SHEET_FMT,