示例#1
0
        private void GetData(DrawingDoc swDraw)
        {
            // var swDraw = (DrawingDoc) swModel;

            //  var ModelDoc

            var getFirstView = (View)swDraw.GetFirstView();

            MessageBox.Show(getFirstView.ReferencedDocument.GetTitle());


            swDraw.ResolveOutOfDateLightWeightComponents();
            swDraw.ForceRebuild();

            // Движение по листам
            var vSheetName = (string[])swDraw.GetSheetNames();

            foreach (var name in vSheetName)
            {
                swDraw.ResolveOutOfDateLightWeightComponents();
                var swSheet = swDraw.Sheet[name];
                swDraw.ActivateSheet(swSheet.GetName());

                if ((!swSheet.IsLoaded()))
                {
                    continue;
                }

                var sheetviews1 = (object[])swSheet.GetViews();
                var firstView1  = (View)sheetviews1[0];
                var baseView1   = firstView1.IGetBaseView();
                var dispData1   = (IModelDoc2)baseView1.ReferencedDocument;
                MessageBox.Show(dispData1.GetTitle());

                try
                {
                    var sheetviews = (object[])swSheet.GetViews();
                    var firstView  = (View)sheetviews[0];
                    firstView.SetLightweightToResolved();

                    var baseView = firstView.IGetBaseView();
                    var dispData = (IModelDoc2)baseView.ReferencedDocument;

                    MessageBox.Show(dispData.GetTitle());
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
            }
        }
示例#2
0
        public string PdfLoad(string filepath, bool deep, string pathpdf)
        {
            try
            {
                SwModel = SolidWorksAdapter.SldWoksAppExemplare.OpenDoc6(filepath, (int)swDocumentTypes_e.swDocDRAWING,
                                                                         (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0);
                SwDraw = (DrawingDoc)SwModel;

                SwDraw.ResolveOutOfDateLightWeightComponents();
                SwDraw.ForceRebuild();

                var vSheetName = (string[])SwDraw.GetSheetNames();


                foreach (var name in vSheetName)
                {
                    if (name != null)
                    {
                        SwDraw.ResolveOutOfDateLightWeightComponents();
                        var swSheet = SwDraw.Sheet[name];

                        SwDraw.ActivateSheet(swSheet.GetName());

                        if ((swSheet.IsLoaded()))
                        {
                            var sheetviews = (object[])swSheet.GetViews();

                            if (sheetviews != null)
                            {
                                var firstView = (View)sheetviews[0];

                                firstView.SetLightweightToResolved();
                            }
                        }

                        if (!deep)
                        {
                            continue;
                        }
                        var views = (object[])swSheet.GetViews();

                        if (views != null)
                        {
                            foreach (var drwView in views.Cast <View>())
                            {
                                drwView.SetLightweightToResolved();
                            }
                        }
                    }
                }

                var errors   = 0;
                var warnings = 0;
                var newpath  = pathpdf + "\\" + Path.GetFileNameWithoutExtension(SwModel.GetPathName()) + ".pdf";
                //var newpath = Path.GetFullPath(SwModel.GetPathName().Replace("slddrw".ToUpper(), "pdf"));// + Path.GetFileNameWithoutExtension(SwModel.GetPathName()) + ".pdf";
                SwModel.Extension.SaveAs(newpath, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_UpdateInactiveViews, null, ref errors, ref warnings);
                SolidWorksAdapter.SldWoksAppExemplare.CloseDoc(Path.GetFileNameWithoutExtension(new FileInfo(newpath).FullName));
                //SolidWorksAdapter.KillProcsses("SLDWORKS");

                return(newpath);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                throw;
            }
        }
示例#3
0
        public void CheckAndUpdateGaugeNotes2()
        {
            String currPage = swDraw.GetCurrentSheet().ToString();
            Int32  shtCount = swDraw.GetSheetCount();

            String[] shtName = (String[])swDraw.GetSheetNames();

            for (int page = 0; page < shtCount; page++)
            {
                swFrame.SetStatusBarText(String.Format("Activating page {0}...", shtName[page]));
                swDraw.ActivateSheet(shtName[page]);
                swView = (View)swDraw.GetFirstView();

                while (swView != null)
                {
                    swDispDim = swView.GetFirstDisplayDimension5();

                    while (swDispDim != null)
                    {
                        swDim = (Dimension)swDispDim.GetDimension2(0);
                        swFrame.SetStatusBarText(String.Format("Processing '{0}' => '{1}'...", swDim.Name, swDim.Value.ToString()));
                        string dimtext = swDispDim.GetText((Int32)swDimensionTextParts_e.swDimensionTextCalloutBelow);
                        dimtext = dimtext.Replace(@"(", string.Empty).Replace(@")", string.Empty).Trim();
                        if (gaugeRegex.IsMatch(dimtext))
                        {
                            string[] texts_ = dimtext.Split(' ');
                            gaugeNote = Regex.Replace(texts_[texts_.Length - 1], "[0-9]", string.Empty);
                            Double og;
                            if (!Double.TryParse(swDim.GetSystemValue2("").ToString(), out og))
                            {
                                throw new GaugeSetterException("Couldn't parse dimension value.");
                            }
                            ourGauge = og / 0.0254;

                            for (int i = 0; i < Gauges.Gauge.Length; i++)
                            {
                                Double dCellVal;

                                if (!Double.TryParse(Gauges.Gauge[i].Thickness, out dCellVal))
                                {
                                    throw new GaugeSetterException("Couldn't parse gauge thickness.");
                                }
                                else

                                if (Math.Abs(ourGauge - dCellVal) < 0.00003)
                                {
                                    String gaugeCell   = String.Empty;
                                    String gaugeString = String.Empty;
                                    gaugeNotFound = false;

                                    swDispDim.ShowParenthesis = true;
                                    gaugeString = String.Format("{0} {1}", Gauges.Gauge[i].GaugeNumber, gaugeNote.ToUpper());
                                    swDispDim.SetText((int)swDimensionTextParts_e.swDimensionTextCalloutBelow, gaugeString);
                                }
                            }
                            if (gaugeNotFound)
                            {
                                if (!APathSet.SilenceGaugeErrors)
                                {
                                    StringBuilder sb = new StringBuilder("Non-standard gauge thickness detected:\n");
                                    sb.AppendFormat(get_format_txt(), swDim.Name, swView.Name, ourGauge);
                                    swApp.SendMsgToUser2(sb.ToString()
                                                         , (int)swMessageBoxIcon_e.swMbWarning
                                                         , (int)swMessageBoxBtn_e.swMbOk);
                                }
                                gaugeNotFound = false;
                            }
                        }
                        swDispDim = swDispDim.GetNext5();
                    }
                    swView = (View)swView.GetNextView();
                }
            }
            swDraw.ActivateSheet(currPage);

            if (gaugeNotFound)               // Why waste time rebuilding?
            {
                swFrame.SetStatusBarText("Rebuilding");
                swDraw.ForceRebuild();
            }
            swFrame.SetStatusBarText(String.Empty);
        }