/// <summary> /// Saves a file to the specified path, with the specified options /// </summary> /// <param name="savePath">The path of the file to save as</param> /// <param name="version">The version</param> /// <param name="options">Any save as options</param> /// <param name="pdfExportData">The PDF Export data if the save as type is a PDF</param> /// <returns></returns> public ModelSaveResult SaveAs(string savePath, SaveAsVersion version = SaveAsVersion.CurrentVersion, SaveAsOptions options = SaveAsOptions.None, PdfExportData pdfExportData = null) { // Start with a successful result var results = new ModelSaveResult(); // Set errors and warnings to none to start with var errors = 0; var warnings = 0; // Wrap any error return(SolidDnaErrors.Wrap(() => { // Try and save the model using the SaveAs method BaseObject.Extension.SaveAs(savePath, (int)version, (int)options, pdfExportData?.ExportData, ref errors, ref warnings); // If this fails, try another way if (errors != 0) { BaseObject.SaveAs4(savePath, (int)version, (int)options, ref errors, ref warnings); } // Add any warnings results.Warnings = (SaveAsWarnings)warnings; // Add any errors results.Errors = (SaveAsErrors)errors; // If successful, and this is not a new file // (otherwise the RCW changes and SolidWorksApplication has to reload ActiveModel)... if (results.Successful && HasBeenSaved) { // Reload model data ReloadModelData(); } // If we have not been saved, SolidWorks never fires any FileSave events at all // so request a refresh of the ActiveModel. That is the best we can do // as this RCW is now invalid. If this model is not active when saved then // it will simply reload the active models information if (!HasBeenSaved) { SolidWorksEnvironment.Application.RequestActiveModelChanged(); } // Return result return results; }, SolidDnaErrorTypeCode.SolidWorksModel, SolidDnaErrorCode.SolidWorksModelSaveAsError, Localization.GetString("SolidWorksModelGetMaterialError"))); }
/// <summary> /// Saves a file to the specified path, with the specified options /// </summary> /// <param name="savePath">The path of the file to save as</param> /// <param name="version">The version</param> /// <param name="options">Any save as options</param> /// <param name="pdfExportData">The PDF Export data if the save as type is a PDF</param> /// <returns></returns> public ModelSaveResult SaveAs(string savePath, SaveAsVersion version = SaveAsVersion.CurrentVersion, SaveAsOptions options = SaveAsOptions.None, PdfExportData pdfExportData = null) { // Start with a successful result var results = new ModelSaveResult(); // Set errors and warnings to none to start with var errors = 0; var warnings = 0; // Wrap any error return(SolidDnaErrors.Wrap(() => { // Try and save the model using the SaveAs method mBaseObject.Extension.SaveAs(savePath, (int)version, (int)options, pdfExportData?.ExportData, ref errors, ref warnings); // If this fails, try another way if (errors != 0) { mBaseObject.SaveAs4(savePath, (int)version, (int)options, ref errors, ref warnings); } // Add any warnings results.Warnings = (SaveAsWarnings)warnings; // Add any errors results.Errors = (SaveAsErrors)errors; // If successful... if (results.Successful) { // Reload model data ReloadModelData(); } // Return result return results; }, SolidDnaErrorTypeCode.SolidWorksModel, SolidDnaErrorCode.SolidWorksModelSaveAsError, Localization.GetString("SolidWorksModelGetMaterialError"))); }