예제 #1
0
        private bool SavePartToDXF(PartDoc part, string partConfiguration, string savePath)
        {
            try
            {
                var partModel = part as ModelDoc2;

                if (partModel.IsSheetMetal() == false)
                {
                    Print(partModel.GetTitle() + " - skipped, not sheet metal");
                    return(false);
                }

                if (templateDrawing == null)
                {
                    templateDrawing = CreateDrawing();
                }

                var sheet     = templateDrawing.IGetCurrentSheet();
                var modelName = Path.GetFileNameWithoutExtension(partModel.GetPathName());
                sheet.SetName(modelName);

                Print(partModel.GetTitle() + " - Creating flat pattern.");
                SolidWorks.Interop.sldworks.View view;
                view = templateDrawing.CreateFlatPatternViewFromModelView3(partModel.GetPathName(), partConfiguration, 0, 0, 0, false, false);
                view.ShowSheetMetalBendNotes = true;

                var drawingModel = templateDrawing as ModelDoc2;
                drawingModel.ViewZoomtofit2();

                if (HasSupressedBends(view))
                {
                    Print("A bend is suppressed, please check flat pattern!", Color.Red);
                }

                if (HideModelSketches(view))
                {
                    // delete the current view that has sketches shown
                    drawingModel.SelectByName(0, view.Name);
                    drawingModel.DeleteSelection(false);

                    // recreate the flat pattern view
                    view = templateDrawing.CreateFlatPatternViewFromModelView3(partModel.GetPathName(), partConfiguration, 0, 0, 0, false, false);
                    view.ShowSheetMetalBendNotes = true;
                }

                if (viewFlipDecider.ShouldFlip(view))
                {
                    Print(partModel.GetTitle() + " - Flipped view", Color.Blue);
                    view.FlipView = true;
                }

                drawingModel.SaveAs(savePath);

                Print(partModel.GetTitle() + " - Saved to \"" + savePath + "\"", Color.Green);


                drawingModel.SelectByName(0, view.Name);
                drawingModel.DeleteSelection(false);

                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(false);
            }
        }