コード例 #1
0
ファイル: KompasClass.cs プロジェクト: xeruvim-xxi/KompasKMD
        public ISheetFormat GetSheetFormatDrawing(IKompasDocument2D doc2d) // получить интерфейс формат чертежа
        {
            ILayoutSheets LayoutSheets = doc2d.LayoutSheets;               // коллекция листов

            if (LayoutSheets == null)
            {
                // MessageBox.Show("Не удалось подключить интерфейс ILayoutSheets.");
                return(null);
            }
            ILayoutSheet LayoutSheet = (ILayoutSheet)LayoutSheets[0]; // лист оформления

            if (LayoutSheet == null)
            {
                //MessageBox.Show("Не удалось подключить интерфейс ILayoutSheet.");
                return(null);
            }
            ISheetFormat SheetFormat = LayoutSheet.Format; // интерфейс формата листа

            if (SheetFormat == null)
            {
                // MessageBox.Show("Не удалось подключить интерфейс ISheetFormat.");
                return(null);
            }

            /*ksDocumentFormatEnum formatLayout = SheetFormat.Format; // формат листа (значение)
             * format = (int)formatLayout;
             * long H = (long)SheetFormat.FormatHeight;
             * long W = (long)SheetFormat.FormatWidth;
             * MessageBox.Show("Высота формата: " + H.ToString() + "; Ширина формата: "+W.ToString());*/
            return(SheetFormat);
        }
コード例 #2
0
ファイル: KompasClass.cs プロジェクト: xeruvim-xxi/KompasKMD
        public IKompasDocument2D OpenDrawing(string pathDrawing) // открыть чертеж в компасе
        {
            IDocuments docs7 = TestKompas7();

            if (docs7 == null)
            {
                //MessageBox.Show("Не удалось подключить интерфейс Компас.IDocuments.");
                return(null);
            }

            if (!File.Exists(pathDrawing))
            {
                pathDrawing = DirProj + Path.DirectorySeparatorChar + "Чертежи" + Path.DirectorySeparatorChar + Path.GetFileName(pathDrawing);
                if (!File.Exists(pathDrawing))
                {
                    MessageBox.Show("Не удалось найти файл " + Path.GetFileName(pathDrawing) + ".");
                    return(null);
                }
            }

            IKompasDocument2D doc2d = (IKompasDocument2D)docs7.Open(pathDrawing, true, false);

            if (doc2d == null)
            {
                MessageBox.Show("Не удалось открыть докумемент.");
                return(null);
            }

            doc2d.Active = true;

            return(doc2d);
        }
コード例 #3
0
ファイル: KompasClass.cs プロジェクト: xeruvim-xxi/KompasKMD
 public bool CloseDrawing(IKompasDocument2D doc2D)
 {
     if (doc2D.Close(DocumentCloseOptions.kdSaveChanges))
     {
         return(true);
     }
     return(false);
 }
コード例 #4
0
ファイル: KompasClass.cs プロジェクト: xeruvim-xxi/KompasKMD
        public IDrawingTables GetTables(IKompasDocument2D doc2d, string NameView) // получить интерфейс коллекции таблиц (входной параметр: имя вида расположения таблицы)
        {
            IViewsAndLayersManager ViewsManadger = doc2d.ViewsAndLayersManager;   // менеджер видов и слоев

            if (ViewsManadger == null)
            {
                //MessageBox.Show("Не удалось получить интерфейс IViewsAndLayersManager.");
                return(null);
            }
            IViews views = ViewsManadger.Views; // коллекция видов

            if (views == null)
            {
                // MessageBox.Show("Не удалось получить интерфейс IViews.");
                return(null);
            }
            IView viewSpecif = views.get_View(NameView); // вид с ведомостями

            if (viewSpecif == null)
            {
                viewSpecif = views.Add(LtViewType.vt_Normal);
                if (viewSpecif == null)
                {
                    //MessageBox.Show("Не удалось получить интерфейс IView.");
                    return(null);
                }
                viewSpecif.Name = NameView;
                viewSpecif.X    = 0;
                viewSpecif.Y    = 0;
                if (!(viewSpecif.Update()))
                {
                    MessageBox.Show("Не удалось обновить вид.");
                    return(null);
                }
            }
            viewSpecif.Current = true;
            viewSpecif.Update();

            ISymbols2DContainer ContainerTables = (ISymbols2DContainer)viewSpecif; // контейнер таблиц

            if (ContainerTables == null)
            {
                //MessageBox.Show("Не удалось получить интерфейс ISymbols2DContainer.");
                return(null);
            }
            IDrawingTables Tables = ContainerTables.DrawingTables; // коллекция таблиц

            if (Tables == null)
            {
                //MessageBox.Show("Не удалось получить интерфейс IDrawingTables.");
                return(null);
            }
            return(Tables);
        }
コード例 #5
0
ファイル: KompasClass.cs プロジェクト: xeruvim-xxi/KompasKMD
        public ksStamp GetStamp(IKompasDocument2D doc)
        {
            ksDocument2D doc2d = (ksDocument2D)Kompas.TransferInterface(doc, (int)ksAPITypeEnum.ksAPI5Auto, 0);

            if (doc2d == null)
            {
                // MessageBox.Show("Не удалось преобразовать в интерфейс ksDocument2D.");
                return(null);
            }
            ksStamp stamp = doc2d.GetStamp();

            if (stamp == null)
            {
                return(null);
            }
            return(stamp);
        }
コード例 #6
0
ファイル: KompasClass.cs プロジェクト: xeruvim-xxi/KompasKMD
        public string GetFormatDrawing(string pathDrawing)
        {
            IKompasDocument2D doc         = OpenDrawing(pathDrawing);
            ISheetFormat      sheetformat = GetSheetFormatDrawing(doc);

            if (sheetformat == null)
            {
                return("не определен");
            }
            ksDocumentFormatEnum format   = sheetformat.Format;
            long   formatMultiplicity     = sheetformat.FormatMultiplicity;
            string str_formatMultiplicity = "";

            if (formatMultiplicity > 1)
            {
                str_formatMultiplicity = "x" + formatMultiplicity.ToString();
            }
            switch (format)
            {
            case ksDocumentFormatEnum.ksFormatA0:
                return("А0" + str_formatMultiplicity);

            case ksDocumentFormatEnum.ksFormatA1:
                return("А1" + str_formatMultiplicity);

            case ksDocumentFormatEnum.ksFormatA2:
                return("А2" + str_formatMultiplicity);

            case ksDocumentFormatEnum.ksFormatA3:
                return("А3" + str_formatMultiplicity);

            case ksDocumentFormatEnum.ksFormatA4:
                return("А4" + str_formatMultiplicity);

            case ksDocumentFormatEnum.ksFormatA5:
                return("А5" + str_formatMultiplicity);

            case ksDocumentFormatEnum.ksFormatUser:
                return(sheetformat.FormatWidth.ToString() + "x" + sheetformat.FormatHeight.ToString());

            default:
                return("не определен");
            }
        }
コード例 #7
0
ファイル: KompasClass.cs プロジェクト: xeruvim-xxi/KompasKMD
        public bool SaveCDW_in_Rastr(IKompasDocument2D doc7)
        {
            ksDocument2D  doc  = (ksDocument2D)Kompas.TransferInterface(doc7, (int)ksAPITypeEnum.ksAPI5Auto, 0);
            DocumentParam docP = (DocumentParam)Kompas.GetParamStruct((short)StructType2DEnum.ko_DocumentParam);

            if (docP == null)
            {
                //Kompas.ksMessage("Не удалось получить интерфейс DocumentParam");
                return(false);
            }
            int    t        = doc.ksGetObjParam(doc.reference, docP);
            string filename = docP.fileName;

            filename = filename.Substring(0, filename.Length - 4);
            RasterFormatParam formatRasret = doc.RasterFormatParam();

            //if (formatRasret.Init())
            //{
            //    kompas.ksMessage("Обнулились параметры RasterFormatParam");
            //}
            formatRasret.format          = 2;
            formatRasret.colorBPP        = 24;
            formatRasret.colorType       = 1;
            formatRasret.extResolution   = 300;
            formatRasret.extScale        = 1;
            formatRasret.greyScale       = false;
            formatRasret.onlyThinLine    = false;
            formatRasret.multiPageOutput = false;
            string fileTiff_f = filename + ".jpg";

            if (!doc.SaveAsToRasterFormat(fileTiff_f, formatRasret))
            {
                return(false);
            }
            return(true);
        }