Loading include/wxPcbStruct.h +5 −2 Original line number Diff line number Diff line Loading @@ -938,7 +938,7 @@ public: * @todo Use mm inside the file. A general scale transform is applied to the whole * file (1.0 to have the actual WRML unit im mm, 0.001 to have the actual WRML * unit in meters. * @note For 3D models built by a 3D modeler, the unit is 0,1 inches. A specfic scale * @note For 3D models built by a 3D modeler, the unit is 0,1 inches. A specific scale * is applied to 3D models to convert them to internal units. * * @param aFullFileName = the full filename of the file to create Loading @@ -947,13 +947,16 @@ public: * @param aExport3DFiles = true to copy 3D shapes in the subir a3D_Subdir * @param aUseRelativePaths set to true to use relative paths instead of absolute paths * in the board VRML file URLs. * @param aUsePlainPCB set to true to export a board with no copper or silkskreen; * this is useful for generating a VRML file which can be * converted to a STEP model. * @param a3D_Subdir = sub directory where 3D shapes files are copied. This is only used * when aExport3DFiles == true * @return true if Ok. */ bool ExportVRML_File( const wxString & aFullFileName, double aMMtoWRMLunit, bool aExport3DFiles, bool aUseRelativePaths, const wxString & a3D_Subdir ); bool aUsePlainPCB, const wxString & a3D_Subdir ); /** * Function ExportToIDF3 Loading pcbnew/dialogs/dialog_export_vrml.cpp +18 −7 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #define OPTKEY_OUTPUT_UNIT wxT( "VrmlExportUnit" ) #define OPTKEY_3DFILES_OPT wxT( "VrmlExportCopyFiles" ) #define OPTKEY_USE_RELATIVE_PATHS wxT( "VrmlUseRelativePaths" ) #define OPTKEY_USE_PLAIN_PCB wxT( "VrmlUsePlainPCB" ) class DIALOG_EXPORT_3DFILE : public DIALOG_EXPORT_3DFILE_BASE Loading @@ -51,6 +52,7 @@ private: int m_unitsOpt; // Remember last units option bool m_copy3DFilesOpt; // Remember last copy model files option bool m_useRelativePathsOpt; // Remember last use absolut paths option bool m_usePlainPCBOpt; // Remember last Plain Board option public: DIALOG_EXPORT_3DFILE( PCB_EDIT_FRAME* parent ) : Loading @@ -59,12 +61,14 @@ public: m_parent = parent; m_config = Kiface().KifaceSettings(); m_filePicker->SetFocus(); m_config->Read( OPTKEY_OUTPUT_UNIT, &m_unitsOpt ); m_config->Read( OPTKEY_3DFILES_OPT, &m_copy3DFilesOpt ); m_config->Read( OPTKEY_USE_RELATIVE_PATHS, &m_useRelativePathsOpt ); m_config->Read( OPTKEY_OUTPUT_UNIT, &m_unitsOpt, 1 ); m_config->Read( OPTKEY_3DFILES_OPT, &m_copy3DFilesOpt, false ); m_config->Read( OPTKEY_USE_RELATIVE_PATHS, &m_useRelativePathsOpt, false ); m_config->Read( OPTKEY_USE_PLAIN_PCB, &m_usePlainPCBOpt, false ); m_rbSelectUnits->SetSelection( m_unitsOpt ); m_cbCopyFiles->SetValue( m_copy3DFilesOpt ); m_cbUseRelativePaths->SetValue( m_useRelativePathsOpt ); m_cbPlainPCB->SetValue( m_usePlainPCBOpt ); wxButton* okButton = (wxButton*) FindWindowByLabel( wxT( "OK" ) ); if( okButton ) Loading @@ -84,6 +88,7 @@ public: m_config->Write( OPTKEY_OUTPUT_UNIT, m_unitsOpt ); m_config->Write( OPTKEY_3DFILES_OPT, m_copy3DFilesOpt ); m_config->Write( OPTKEY_USE_RELATIVE_PATHS, m_useRelativePathsOpt ); m_config->Write( OPTKEY_USE_PLAIN_PCB, m_usePlainPCBOpt ); }; void SetSubdir( const wxString & aDir ) Loading Loading @@ -116,6 +121,11 @@ public: return m_useRelativePathsOpt = m_cbUseRelativePaths->GetValue(); } bool GetUsePlainPCBOption() { return m_usePlainPCBOpt = m_cbPlainPCB->GetValue(); } void OnUpdateUseRelativePath( wxUpdateUIEvent& event ) { // Making path relative or absolute has no meaning when VRML files are not copied. Loading Loading @@ -158,6 +168,7 @@ void PCB_EDIT_FRAME::OnExportVRML( wxCommandEvent& event ) double scale = scaleList[dlg.GetUnits()]; // final scale export bool export3DFiles = dlg.GetCopyFilesOption(); bool useRelativePaths = dlg.GetUseRelativePathsOption(); bool usePlainPCB = dlg.GetUsePlainPCBOption(); wxString fullFilename = dlg.FilePicker()->GetPath(); wxFileName modelPath = fullFilename; wxBusyCursor dummy; Loading @@ -174,7 +185,7 @@ void PCB_EDIT_FRAME::OnExportVRML( wxCommandEvent& event ) } if( !ExportVRML_File( fullFilename, scale, export3DFiles, useRelativePaths, modelPath.GetPath() ) ) usePlainPCB, modelPath.GetPath() ) ) { wxString msg = _( "Unable to create " ) + fullFilename; wxMessageBox( msg ); Loading pcbnew/dialogs/dialog_export_vrml_base.cpp +4 −1 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // C++ code generated with wxFormBuilder (version Aug 17 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! Loading Loading @@ -52,6 +52,9 @@ DIALOG_EXPORT_3DFILE_BASE::DIALOG_EXPORT_3DFILE_BASE( wxWindow* parent, wxWindow bSizer4->Add( m_cbUseRelativePaths, 0, wxALL, 5 ); m_cbPlainPCB = new wxCheckBox( this, wxID_ANY, _("Plain PCB (no copper or silk)"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer4->Add( m_cbPlainPCB, 0, wxALL, 5 ); bLowerSizer->Add( bSizer4, 3, wxEXPAND, 5 ); Loading pcbnew/dialogs/dialog_export_vrml_base.fbp +89 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <wxFormBuilder_Project> <FileVersion major="1" minor="11" /> <FileVersion major="1" minor="13" /> <object class="Project" expanded="1"> <property name="class_decoration"></property> <property name="code_generation">C++</property> Loading Loading @@ -644,6 +644,94 @@ <event name="OnUpdateUI"></event> </object> </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL</property> <property name="proportion">0</property> <object class="wxCheckBox" expanded="1"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> <property name="RightDockable">1</property> <property name="TopDockable">1</property> <property name="aui_layer"></property> <property name="aui_name"></property> <property name="aui_position"></property> <property name="aui_row"></property> <property name="best_size"></property> <property name="bg"></property> <property name="caption"></property> <property name="caption_visible">1</property> <property name="center_pane">0</property> <property name="checked">0</property> <property name="close_button">1</property> <property name="context_help"></property> <property name="context_menu">1</property> <property name="default_pane">0</property> <property name="dock">Dock</property> <property name="dock_fixed">0</property> <property name="docking">Left</property> <property name="enabled">1</property> <property name="fg"></property> <property name="floatable">1</property> <property name="font"></property> <property name="gripper">0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="label">Plain PCB (no copper or silk)</property> <property name="max_size"></property> <property name="maximize_button">0</property> <property name="maximum_size"></property> <property name="min_size"></property> <property name="minimize_button">0</property> <property name="minimum_size"></property> <property name="moveable">1</property> <property name="name">m_cbPlainPCB</property> <property name="pane_border">1</property> <property name="pane_position"></property> <property name="pane_size"></property> <property name="permission">protected</property> <property name="pin_button">1</property> <property name="pos"></property> <property name="resize">Resizable</property> <property name="show">1</property> <property name="size"></property> <property name="style"></property> <property name="subclass"></property> <property name="toolbar_pane">0</property> <property name="tooltip"></property> <property name="validator_data_type"></property> <property name="validator_style">wxFILTER_NONE</property> <property name="validator_type">wxDefaultValidator</property> <property name="validator_variable"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <event name="OnChar"></event> <event name="OnCheckBox"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> <object class="sizeritem" expanded="1"> Loading pcbnew/dialogs/dialog_export_vrml_base.h +2 −1 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // C++ code generated with wxFormBuilder (version Aug 17 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! Loading Loading @@ -50,6 +50,7 @@ class DIALOG_EXPORT_3DFILE_BASE : public DIALOG_SHIM wxTextCtrl* m_SubdirNameCtrl; wxCheckBox* m_cbCopyFiles; wxCheckBox* m_cbUseRelativePaths; wxCheckBox* m_cbPlainPCB; wxRadioBox* m_rbSelectUnits; wxStaticLine* m_staticline1; wxStdDialogButtonSizer* m_sdbSizer1; Loading Loading
include/wxPcbStruct.h +5 −2 Original line number Diff line number Diff line Loading @@ -938,7 +938,7 @@ public: * @todo Use mm inside the file. A general scale transform is applied to the whole * file (1.0 to have the actual WRML unit im mm, 0.001 to have the actual WRML * unit in meters. * @note For 3D models built by a 3D modeler, the unit is 0,1 inches. A specfic scale * @note For 3D models built by a 3D modeler, the unit is 0,1 inches. A specific scale * is applied to 3D models to convert them to internal units. * * @param aFullFileName = the full filename of the file to create Loading @@ -947,13 +947,16 @@ public: * @param aExport3DFiles = true to copy 3D shapes in the subir a3D_Subdir * @param aUseRelativePaths set to true to use relative paths instead of absolute paths * in the board VRML file URLs. * @param aUsePlainPCB set to true to export a board with no copper or silkskreen; * this is useful for generating a VRML file which can be * converted to a STEP model. * @param a3D_Subdir = sub directory where 3D shapes files are copied. This is only used * when aExport3DFiles == true * @return true if Ok. */ bool ExportVRML_File( const wxString & aFullFileName, double aMMtoWRMLunit, bool aExport3DFiles, bool aUseRelativePaths, const wxString & a3D_Subdir ); bool aUsePlainPCB, const wxString & a3D_Subdir ); /** * Function ExportToIDF3 Loading
pcbnew/dialogs/dialog_export_vrml.cpp +18 −7 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ #define OPTKEY_OUTPUT_UNIT wxT( "VrmlExportUnit" ) #define OPTKEY_3DFILES_OPT wxT( "VrmlExportCopyFiles" ) #define OPTKEY_USE_RELATIVE_PATHS wxT( "VrmlUseRelativePaths" ) #define OPTKEY_USE_PLAIN_PCB wxT( "VrmlUsePlainPCB" ) class DIALOG_EXPORT_3DFILE : public DIALOG_EXPORT_3DFILE_BASE Loading @@ -51,6 +52,7 @@ private: int m_unitsOpt; // Remember last units option bool m_copy3DFilesOpt; // Remember last copy model files option bool m_useRelativePathsOpt; // Remember last use absolut paths option bool m_usePlainPCBOpt; // Remember last Plain Board option public: DIALOG_EXPORT_3DFILE( PCB_EDIT_FRAME* parent ) : Loading @@ -59,12 +61,14 @@ public: m_parent = parent; m_config = Kiface().KifaceSettings(); m_filePicker->SetFocus(); m_config->Read( OPTKEY_OUTPUT_UNIT, &m_unitsOpt ); m_config->Read( OPTKEY_3DFILES_OPT, &m_copy3DFilesOpt ); m_config->Read( OPTKEY_USE_RELATIVE_PATHS, &m_useRelativePathsOpt ); m_config->Read( OPTKEY_OUTPUT_UNIT, &m_unitsOpt, 1 ); m_config->Read( OPTKEY_3DFILES_OPT, &m_copy3DFilesOpt, false ); m_config->Read( OPTKEY_USE_RELATIVE_PATHS, &m_useRelativePathsOpt, false ); m_config->Read( OPTKEY_USE_PLAIN_PCB, &m_usePlainPCBOpt, false ); m_rbSelectUnits->SetSelection( m_unitsOpt ); m_cbCopyFiles->SetValue( m_copy3DFilesOpt ); m_cbUseRelativePaths->SetValue( m_useRelativePathsOpt ); m_cbPlainPCB->SetValue( m_usePlainPCBOpt ); wxButton* okButton = (wxButton*) FindWindowByLabel( wxT( "OK" ) ); if( okButton ) Loading @@ -84,6 +88,7 @@ public: m_config->Write( OPTKEY_OUTPUT_UNIT, m_unitsOpt ); m_config->Write( OPTKEY_3DFILES_OPT, m_copy3DFilesOpt ); m_config->Write( OPTKEY_USE_RELATIVE_PATHS, m_useRelativePathsOpt ); m_config->Write( OPTKEY_USE_PLAIN_PCB, m_usePlainPCBOpt ); }; void SetSubdir( const wxString & aDir ) Loading Loading @@ -116,6 +121,11 @@ public: return m_useRelativePathsOpt = m_cbUseRelativePaths->GetValue(); } bool GetUsePlainPCBOption() { return m_usePlainPCBOpt = m_cbPlainPCB->GetValue(); } void OnUpdateUseRelativePath( wxUpdateUIEvent& event ) { // Making path relative or absolute has no meaning when VRML files are not copied. Loading Loading @@ -158,6 +168,7 @@ void PCB_EDIT_FRAME::OnExportVRML( wxCommandEvent& event ) double scale = scaleList[dlg.GetUnits()]; // final scale export bool export3DFiles = dlg.GetCopyFilesOption(); bool useRelativePaths = dlg.GetUseRelativePathsOption(); bool usePlainPCB = dlg.GetUsePlainPCBOption(); wxString fullFilename = dlg.FilePicker()->GetPath(); wxFileName modelPath = fullFilename; wxBusyCursor dummy; Loading @@ -174,7 +185,7 @@ void PCB_EDIT_FRAME::OnExportVRML( wxCommandEvent& event ) } if( !ExportVRML_File( fullFilename, scale, export3DFiles, useRelativePaths, modelPath.GetPath() ) ) usePlainPCB, modelPath.GetPath() ) ) { wxString msg = _( "Unable to create " ) + fullFilename; wxMessageBox( msg ); Loading
pcbnew/dialogs/dialog_export_vrml_base.cpp +4 −1 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // C++ code generated with wxFormBuilder (version Aug 17 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! Loading Loading @@ -52,6 +52,9 @@ DIALOG_EXPORT_3DFILE_BASE::DIALOG_EXPORT_3DFILE_BASE( wxWindow* parent, wxWindow bSizer4->Add( m_cbUseRelativePaths, 0, wxALL, 5 ); m_cbPlainPCB = new wxCheckBox( this, wxID_ANY, _("Plain PCB (no copper or silk)"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer4->Add( m_cbPlainPCB, 0, wxALL, 5 ); bLowerSizer->Add( bSizer4, 3, wxEXPAND, 5 ); Loading
pcbnew/dialogs/dialog_export_vrml_base.fbp +89 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <wxFormBuilder_Project> <FileVersion major="1" minor="11" /> <FileVersion major="1" minor="13" /> <object class="Project" expanded="1"> <property name="class_decoration"></property> <property name="code_generation">C++</property> Loading Loading @@ -644,6 +644,94 @@ <event name="OnUpdateUI"></event> </object> </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL</property> <property name="proportion">0</property> <object class="wxCheckBox" expanded="1"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> <property name="RightDockable">1</property> <property name="TopDockable">1</property> <property name="aui_layer"></property> <property name="aui_name"></property> <property name="aui_position"></property> <property name="aui_row"></property> <property name="best_size"></property> <property name="bg"></property> <property name="caption"></property> <property name="caption_visible">1</property> <property name="center_pane">0</property> <property name="checked">0</property> <property name="close_button">1</property> <property name="context_help"></property> <property name="context_menu">1</property> <property name="default_pane">0</property> <property name="dock">Dock</property> <property name="dock_fixed">0</property> <property name="docking">Left</property> <property name="enabled">1</property> <property name="fg"></property> <property name="floatable">1</property> <property name="font"></property> <property name="gripper">0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="label">Plain PCB (no copper or silk)</property> <property name="max_size"></property> <property name="maximize_button">0</property> <property name="maximum_size"></property> <property name="min_size"></property> <property name="minimize_button">0</property> <property name="minimum_size"></property> <property name="moveable">1</property> <property name="name">m_cbPlainPCB</property> <property name="pane_border">1</property> <property name="pane_position"></property> <property name="pane_size"></property> <property name="permission">protected</property> <property name="pin_button">1</property> <property name="pos"></property> <property name="resize">Resizable</property> <property name="show">1</property> <property name="size"></property> <property name="style"></property> <property name="subclass"></property> <property name="toolbar_pane">0</property> <property name="tooltip"></property> <property name="validator_data_type"></property> <property name="validator_style">wxFILTER_NONE</property> <property name="validator_type">wxDefaultValidator</property> <property name="validator_variable"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <event name="OnChar"></event> <event name="OnCheckBox"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> <object class="sizeritem" expanded="1"> Loading
pcbnew/dialogs/dialog_export_vrml_base.h +2 −1 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // C++ code generated with wxFormBuilder (version Aug 17 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! Loading Loading @@ -50,6 +50,7 @@ class DIALOG_EXPORT_3DFILE_BASE : public DIALOG_SHIM wxTextCtrl* m_SubdirNameCtrl; wxCheckBox* m_cbCopyFiles; wxCheckBox* m_cbUseRelativePaths; wxCheckBox* m_cbPlainPCB; wxRadioBox* m_rbSelectUnits; wxStaticLine* m_staticline1; wxStdDialogButtonSizer* m_sdbSizer1; Loading