14 changed files with 395 additions and 11 deletions
-
49common/jobs/job_sym_export_svg.h
-
4common/plotters/SVG_plotter.cpp
-
1common/wildcards_and_files_ext.cpp
-
166eeschema/eeschema_jobs_handler.cpp
-
7eeschema/eeschema_jobs_handler.h
-
13eeschema/sch_plugins/sch_lib_plugin_cache.cpp
-
4eeschema/sch_plugins/sch_lib_plugin_cache.h
-
2eeschema/symbol_editor/symbol_editor_plotter.cpp
-
1include/wildcards_and_files_ext.h
-
1kicad/CMakeLists.txt
-
34kicad/cli/command_sym_export.h
-
71kicad/cli/command_sym_export_svg.cpp
-
37kicad/cli/command_sym_export_svg.h
-
16kicad/kicad_cli.cpp
@ -0,0 +1,49 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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 as published by the |
|||
* Free Software Foundation, either version 3 of the License, or (at your |
|||
* option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, but |
|||
* WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
* General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License along |
|||
* with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
#ifndef JOB_SYM_EXPORT_SVG_H |
|||
#define JOB_SYM_EXPORT_SVG_H |
|||
|
|||
#include <wx/string.h> |
|||
#include "job.h" |
|||
|
|||
class JOB_SYM_EXPORT_SVG : public JOB |
|||
{ |
|||
public: |
|||
JOB_SYM_EXPORT_SVG( bool aIsCli ) : |
|||
JOB( "symsvg", aIsCli ), |
|||
m_libraryPath(), |
|||
m_symbol(), |
|||
m_outputDirectory(), |
|||
m_blackAndWhite( false ) |
|||
{ |
|||
} |
|||
|
|||
wxString m_libraryPath; |
|||
wxString m_symbol; |
|||
|
|||
wxString m_outputDirectory; |
|||
|
|||
wxString m_colorTheme; |
|||
|
|||
bool m_blackAndWhite; |
|||
}; |
|||
|
|||
#endif |
|||
@ -0,0 +1,34 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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 as published by the |
|||
* Free Software Foundation, either version 3 of the License, or (at your |
|||
* option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, but |
|||
* WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
* General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License along |
|||
* with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
#ifndef COMMAND_SYM_EXPORT_H |
|||
#define COMMAND_SYM_EXPORT_H |
|||
|
|||
#include "command.h" |
|||
|
|||
namespace CLI |
|||
{ |
|||
struct SYM_EXPORT_COMMAND : public COMMAND |
|||
{ |
|||
SYM_EXPORT_COMMAND() : COMMAND( "export" ) {} |
|||
}; |
|||
} |
|||
|
|||
#endif |
|||
@ -0,0 +1,71 @@ |
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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 as published by the |
|||
* Free Software Foundation, either version 3 of the License, or (at your |
|||
* option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, but |
|||
* WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
* General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License along |
|||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
#include "command_sym_export_svg.h"
|
|||
#include <cli/exit_codes.h>
|
|||
#include "jobs/job_sym_export_svg.h"
|
|||
#include <kiface_base.h>
|
|||
#include <layer_ids.h>
|
|||
#include <wx/crt.h>
|
|||
|
|||
#include <macros.h>
|
|||
#include <wx/tokenzr.h>
|
|||
|
|||
#define ARG_NO_BACKGROUND_COLOR "--no-background-color"
|
|||
#define ARG_SYMBOL "--symbol"
|
|||
|
|||
CLI::SYM_EXPORT_SVG_COMMAND::SYM_EXPORT_SVG_COMMAND() : EXPORT_PCB_BASE_COMMAND( "svg" ) |
|||
{ |
|||
m_argParser.add_argument( "-t", ARG_THEME ) |
|||
.default_value( std::string() ) |
|||
.help( UTF8STDSTR( _( "Color theme to use (will default to pcbnew settings)" ) ) ); |
|||
|
|||
m_argParser.add_argument( "-s", ARG_SYMBOL ) |
|||
.default_value( std::string() ) |
|||
.help( UTF8STDSTR( _( "Specific symbol to export within the library" ) ) ); |
|||
|
|||
m_argParser.add_argument( ARG_BLACKANDWHITE ) |
|||
.help( UTF8STDSTR( _( "Black and white only" ) ) ) |
|||
.implicit_value( true ) |
|||
.default_value( false ); |
|||
} |
|||
|
|||
|
|||
int CLI::SYM_EXPORT_SVG_COMMAND::Perform( KIWAY& aKiway ) |
|||
{ |
|||
std::unique_ptr<JOB_SYM_EXPORT_SVG> svgJob = std::make_unique<JOB_SYM_EXPORT_SVG>( true ); |
|||
|
|||
svgJob->m_libraryPath = FROM_UTF8( m_argParser.get<std::string>( ARG_INPUT ).c_str() ); |
|||
svgJob->m_outputDirectory = FROM_UTF8( m_argParser.get<std::string>( ARG_OUTPUT ).c_str() ); |
|||
svgJob->m_blackAndWhite = m_argParser.get<bool>( ARG_BLACKANDWHITE ); |
|||
svgJob->m_symbol = FROM_UTF8( m_argParser.get<std::string>( ARG_SYMBOL ).c_str() ); |
|||
|
|||
if( !wxFile::Exists( svgJob->m_libraryPath ) ) |
|||
{ |
|||
wxFprintf( stderr, _( "Symbol file does not exist or is not accessible\n" ) ); |
|||
return EXIT_CODES::ERR_INVALID_INPUT_FILE; |
|||
} |
|||
|
|||
svgJob->m_colorTheme = FROM_UTF8( m_argParser.get<std::string>( ARG_THEME ).c_str() ); |
|||
|
|||
int exitCode = aKiway.ProcessJob( KIWAY::FACE_SCH, svgJob.get() ); |
|||
|
|||
return exitCode; |
|||
} |
|||
@ -0,0 +1,37 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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 as published by the |
|||
* Free Software Foundation, either version 3 of the License, or (at your |
|||
* option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, but |
|||
* WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
* General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License along |
|||
* with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
#ifndef COMMAND_SYM_EXPORT_SVG_H |
|||
#define COMMAND_SYM_EXPORT_SVG_H |
|||
|
|||
#include "command_export_pcb_base.h" |
|||
|
|||
namespace CLI |
|||
{ |
|||
class SYM_EXPORT_SVG_COMMAND : public EXPORT_PCB_BASE_COMMAND |
|||
{ |
|||
public: |
|||
SYM_EXPORT_SVG_COMMAND(); |
|||
|
|||
int Perform( KIWAY& aKiway ) override; |
|||
}; |
|||
} // namespace CLI |
|||
|
|||
#endif |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue