private void btnShow_Click(object sender, EventArgs e)
        {
            lblMessage.Text = "";

            DrawingHandler MyDrawingHandler = new DrawingHandler();
            int            nDrawings        = 0;

            if (MyDrawingHandler.GetConnectionStatus())
            {
                DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected();
                int iCounter = 0;
                while (SelectedDrawings.MoveNext())
                {
                    iCounter++;
                }
                nDrawings = iCounter;
            }

            progressBar1.Minimum = 0;
            progressBar1.Maximum = nDrawings;
            progressBar1.Step    = 1;

            if (MyDrawingHandler.GetConnectionStatus())
            {
                DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected();
                int iCounter = 1;
                while (SelectedDrawings.MoveNext())
                {
                    progressBar1.PerformStep();

                    Drawing      currentDrawing = SelectedDrawings.Current;
                    ListViewItem currentRow     = new ListViewItem(currentDrawing.Mark);

                    currentRow.SubItems.Add(currentDrawing.Name);
                    string strHeight = currentDrawing.Layout.SheetSize.Height.ToString();
                    string strWidth  = currentDrawing.Layout.SheetSize.Width.ToString();
                    currentRow.SubItems.Add(strWidth + "x" + strHeight);
                    string PrinterInstance = "QP_" + strWidth + "x" + strHeight;

                    //TSM.Operations.Operation.DisplayPrompt("Drawing " + currentDrawing.Name + ": " + iCounter.ToString() + "/" + nDrawings.ToString());
                    lblMessage.Text = "";
                    lblMessage.Text = "Drawing " + currentDrawing.Name + ": " + iCounter.ToString() + "/" + nDrawings.ToString();
                    iCounter++;

                    if (chkPDF.Checked)
                    {
                        WriteCurrentDrawing(currentDrawing, PrinterInstance);
                    }

                    if (chkDWG.Checked)
                    {
                        PrintToFile(currentDrawing);
                    }
                }
            }

            //TSM.Operations.Operation.DisplayPrompt("Write command completed!");
            lblMessage.Text    = "Write command completed!";
            progressBar1.Value = 0;
        }
예제 #2
0
        private void btnShow_Click(object sender, EventArgs e)
        {
            lblMessage.Text = "";

            DrawingHandler MyDrawingHandler = new DrawingHandler();
            int nDrawings = 0;
            if (MyDrawingHandler.GetConnectionStatus())
            {
                DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected();
                int iCounter = 0;
                while (SelectedDrawings.MoveNext())
                {
                    iCounter++;
                }
                nDrawings = iCounter;
            }

            progressBar1.Minimum = 0;
            progressBar1.Maximum = nDrawings;
            progressBar1.Step = 1;

            if (MyDrawingHandler.GetConnectionStatus())
            {
                DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected();
                int iCounter = 1;
                while (SelectedDrawings.MoveNext())
                {
                    progressBar1.PerformStep();

                    Drawing currentDrawing = SelectedDrawings.Current;
                    ListViewItem currentRow = new ListViewItem(currentDrawing.Mark);

                    currentRow.SubItems.Add(currentDrawing.Name);
                    string strHeight = currentDrawing.Layout.SheetSize.Height.ToString();
                    string strWidth = currentDrawing.Layout.SheetSize.Width.ToString();
                    currentRow.SubItems.Add(strWidth + "x" + strHeight);
                    string PrinterInstance = "QP_" + strWidth + "x" + strHeight;

                    //TSM.Operations.Operation.DisplayPrompt("Drawing " + currentDrawing.Name + ": " + iCounter.ToString() + "/" + nDrawings.ToString());
                    lblMessage.Text = "";
                    lblMessage.Text = "Drawing " + currentDrawing.Name + ": " + iCounter.ToString() + "/" + nDrawings.ToString();
                    iCounter++;

                    if (chkPDF.Checked)
                        WriteCurrentDrawing(currentDrawing, PrinterInstance);

                    if (chkDWG.Checked)
                        PrintToFile(currentDrawing);
                }
            }

            //TSM.Operations.Operation.DisplayPrompt("Write command completed!");
            lblMessage.Text = "Write command completed!";
            progressBar1.Value = 0;
        }
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            Model             model              = new Model();
            ModelInfo         modelInfo          = model.GetInfo();
            string            drawingsFolderPath = modelInfo.ModelPath + @"\drawings\";
            DrawingHandler    drawingHandler     = new DrawingHandler();
            DrawingEnumerator drawingEnum        = drawingHandler.GetDrawingSelector().GetSelected();

            if (drawingEnum.GetSize() == 1)
            {
                while (drawingEnum.MoveNext())
                {
                    System.Reflection.PropertyInfo propertyInfo = drawingEnum.Current.GetType().GetProperty("Identifier", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                    object value = propertyInfo.GetValue(drawingEnum.Current, null);

                    Identifier Identifier = (Identifier)value;
                    Beam       tempBeam   = new Beam();
                    tempBeam.Identifier = Identifier;

                    string             drawingFile = "";
                    bool               result      = tempBeam.GetReportProperty("DRAWING_PLOT_FILE", ref drawingFile);
                    System.IO.FileInfo file        = new System.IO.FileInfo(drawingsFolderPath + drawingFile);
                    if (file.Exists)
                    {
                        System.Diagnostics.Process.Start("Explorer.exe", @"/select, " + file.FullName);
                    }
                }
            }
        }
        private DrawingEnumerator getSelectedDrawings()
        {
            DrawingHandler myDrawingHandler = new DrawingHandler();
            DrawingEnumerator selectedDrawings = myDrawingHandler.GetDrawingSelector().GetSelected();

            return selectedDrawings;
        }
예제 #5
0
        private void WorkerThread_DoWork(object sender, DoWorkEventArgs e)
        {
            DrawingHandler dh       = new DrawingHandler();
            List <Drawing> drawings = Com.EnumtoArrayDr(dh.GetDrawingSelector().GetSelected()).OfType <TSD.Drawing>().ToList().OrderBy(x => x.Title1).ToList();
            int            count    = 1;

            foreach (TSD.Drawing Dr in drawings)
            {
                string msg = "Total Drawings" + " - Total : " + drawings.Count.ToString() + " Remaining : " + (drawings.Count - count);

                workerThread.ReportProgress(count, msg);
                if (workerThread.CancellationPending)
                {
                    e.Cancel = true;
                    break;
                }

                try
                {
                    if (dh.SetActiveDrawing(Dr, true))
                    {
                        CD.ProceedDrawing(Dr, chkDeleteDim.Checked, lbCode);
                        dh.SaveActiveDrawing();
                        dh.CloseActiveDrawing(true);
                    }
                }
                catch (Exception ex)
                { }
                count++;
            }
        }
예제 #6
0
        private static DrawingEnumerator getSelectedDrawings()
        {
            DrawingHandler    myDrawingHandler = new DrawingHandler();
            DrawingEnumerator selectedDrawings = myDrawingHandler.GetDrawingSelector().GetSelected();

            return(selectedDrawings);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            DrawingHandler MyDrawingHandler = new DrawingHandler();

            PrintAttributes printAttributes = new PrintAttributes();

            printAttributes.Scale = 1.0;
            printAttributes.PrintToMultipleSheet = false;
            printAttributes.NumberOfCopies       = 1;
            printAttributes.Orientation          = DotPrintOrientationType.Auto;
            printAttributes.PrintArea            = DotPrintAreaType.EntireDrawing;
            printAttributes.PrinterInstance      = "PDF_594x420";

            if (MyDrawingHandler.GetConnectionStatus())
            {
                DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected();
                while (SelectedDrawings.MoveNext())
                {
                    Drawing currentDrawing = SelectedDrawings.Current;

                    //Get print attributes: we need only PrinterInstance
                    MyDrawingHandler.PrintDrawing(currentDrawing, printAttributes);
                }
            }
        }
예제 #8
0
        public void ReturnFullNameToTextFile()
        {
            string path     = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            string document = "drawings.csv";

            DrawingHandler drawingHandler = new DrawingHandler();

            DrawingEnumerator selectedDrawings = drawingHandler.GetDrawingSelector().GetSelected();

            string result = string.Empty;

            string title1        = string.Empty;
            string title2        = string.Empty;
            string number        = string.Empty;
            string projectNumber = string.Empty;
            string drType        = string.Empty;

            while (selectedDrawings.MoveNext())
            {
                var currentDrawingInfo = new DrawingInfo();

                Drawing drawing = selectedDrawings.Current;

                currentDrawingInfo.BaseName = drawing.GetType() + drawing.Mark;

                currentDrawingInfo.DrawingName = drawing.Name;

                drawing.GetUserProperty("PM_DRAWING_TITLE_1", ref title1);
                drawing.GetUserProperty("PM_DRAWING_TITLE_2", ref title2);
                drawing.GetUserProperty("PM_DRAWING_TYPE", ref drType);
                drawing.GetUserProperty("Nr_dokumentu", ref number);
                drawing.GetUserProperty("Nr_projektu", ref projectNumber);

                currentDrawingInfo.DrawingTitle1         = title1;
                currentDrawingInfo.DrawingTitle2         = title2;
                currentDrawingInfo.DrawingType           = drType;
                currentDrawingInfo.DrawingTitle2Expanded = this.ReturnFullTitle(title2);
                currentDrawingInfo.DrawingProjectNumber  = projectNumber;
                currentDrawingInfo.DrawingNumber         = number;

                result += currentDrawingInfo.ToString() + "\n";
            }

            var lines = result.Split('\n');

            using (StreamWriter outputFile = new StreamWriter(path + @"\" + document))
            {
                foreach (string line in lines)
                {
                    outputFile.WriteLine(line);
                }
            }

            MessageBox.Show("All done!");
        }
예제 #9
0
        private void SelectedDrawing_Click(object sender, EventArgs e)
        {
            this.progressBar1.Value = 0;
            DrawingHandler drawingHandler = new DrawingHandler();

            if (drawingHandler.GetConnectionStatus())
            {
                DrawingEnumerator selected = drawingHandler.GetDrawingSelector().GetSelected();
                this.RenameDrawingTitle(selected);
            }
        }
예제 #10
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            string fileName = @"Reports/test.csv";

            try
            {
                if (File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
            }
            catch { }

            int               drawingNr        = 1;
            DrawingHandler    myDrawingHandler = new DrawingHandler();
            DrawingEnumerator selectedDrawings = myDrawingHandler.GetDrawingSelector().GetSelected();

            var csv = new StringBuilder();

            foreach (Drawing currentDrawing in selectedDrawings)
            {
                string name = currentDrawing.Title1;
                string nr   = currentDrawing.Name;

                DateTime dmtDate        = new DateTime(1970, 1, 1);
                int      dmtDateSeconds = 0;
                currentDrawing.GetUserProperty("DR_RESP_DSGNR_DATE", ref dmtDateSeconds);
                dmtDate = dmtDate.AddSeconds(dmtDateSeconds);

                DateTime revisionDate        = new DateTime(1970, 1, 1);
                int      revisionDateSeconds = 0;
                string   revisionMark        = "";
                DateLastMark(currentDrawing, out revisionMark, out revisionDateSeconds);
                revisionDate = revisionDate.AddSeconds(revisionDateSeconds);

                string newLine = string.Format("{0} ;{1} ;{2} ;{3} ;{4} ;", name, nr, revisionMark, dmtDate.ToShortDateString(), revisionDate.ToShortDateString());
                csv.AppendLine(newLine);

                //MessageBox.Show(newLine);

                drawingNr++;
            }

            try
            {
                File.WriteAllText(fileName, csv.ToString());
            }
            catch
            {
                MessageBox.Show("write failed");
            }
        }
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            string fileName = @"Reports/test.csv";

            try
            {
                if (File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
            }
            catch { }

            int drawingNr = 1;
            DrawingHandler myDrawingHandler = new DrawingHandler();
            DrawingEnumerator selectedDrawings = myDrawingHandler.GetDrawingSelector().GetSelected();

            var csv = new StringBuilder();

            foreach (Drawing currentDrawing in selectedDrawings)
            {
                string name = currentDrawing.Title1;
                string nr = currentDrawing.Name;

                DateTime dmtDate = new DateTime(1970, 1, 1);
                int dmtDateSeconds = 0;
                currentDrawing.GetUserProperty("DR_RESP_DSGNR_DATE", ref dmtDateSeconds);
                dmtDate = dmtDate.AddSeconds(dmtDateSeconds);

                DateTime revisionDate = new DateTime(1970, 1, 1);
                int revisionDateSeconds = 0;
                string revisionMark = "";
                DateLastMark(currentDrawing, out revisionMark, out revisionDateSeconds);
                revisionDate = revisionDate.AddSeconds(revisionDateSeconds);

                string newLine = string.Format("{0} ;{1} ;{2} ;{3} ;{4} ;", name, nr, revisionMark, dmtDate.ToShortDateString(), revisionDate.ToShortDateString());
                csv.AppendLine(newLine);

                //MessageBox.Show(newLine);

                drawingNr++;
            }

            try
            {
                File.WriteAllText(fileName, csv.ToString());
            }
            catch
            {
                MessageBox.Show("write failed");
            }
        }
        private void PickExtraSheets_Click(object sender, EventArgs e)
        {
            ExtraSheets.Clear();
            ExtraSheetsList.Items.Clear();
            bool      error             = false;
            Model     model             = new Model();
            ModelInfo modelInfo         = model.GetInfo();
            string    drawingFolderPath = modelInfo.ModelPath + @"\drawings\";

            DrawingHandler    drawingHandler = new DrawingHandler();
            DrawingEnumerator drawingEnum    = drawingHandler.GetDrawingSelector().GetSelected();

            if (drawingEnum.GetSize() > 0)
            {
                while (drawingEnum.MoveNext())
                {
                    if (drawingEnum.Current is AssemblyDrawing)
                    {
                        PropertyInfo pi         = drawingEnum.Current.GetType().GetProperty("Identifier", BindingFlags.Instance | BindingFlags.NonPublic);
                        object       value      = pi.GetValue(drawingEnum.Current, null);
                        Identifier   Identifier = (Identifier)value;
                        Beam         temporary  = new Beam();
                        temporary.Identifier = Identifier;

                        string dgFileName = "";
                        bool   dg         = temporary.GetReportProperty("DRAWING_PLOT_FILE", ref dgFileName);

                        FileInfo dgFile = new FileInfo(drawingFolderPath + dgFileName);
                        if (dgFile.Exists)
                        {
                            ExtraSheets.Add(dgFile.FullName);
                            ExtraSheetsList.Items.Add(drawingEnum.Current.Mark);
                        }
                    }
                    else
                    {
                        error = true;
                    }
                }
                CopyViews.Enabled = true;
                if (error == true)
                {
                    MessageBox.Show("Pick Assembly Drawings Only");
                    ExtraSheets.Clear();
                    ExtraSheetsList.Items.Clear();
                    CopyViews.Enabled = false;
                }
            }
        }
예제 #13
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            Model             model          = new Model();
            DrawingHandler    drawingHandler = new DrawingHandler();
            DrawingEnumerator drawingEnum    = drawingHandler.GetDrawingSelector().GetSelected();

            if (drawingHandler.GetActiveDrawing() == null)
            {
                while (drawingEnum.MoveNext())
                {
                    if (drawingEnum.Current is AssemblyDrawing)
                    {
                        AssemblyDrawing assemblyDrawing = drawingEnum.Current as AssemblyDrawing;
                        drawingHandler.SetActiveDrawing(assemblyDrawing, false);
                        DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetActiveDrawing().GetSheet().GetAllObjects();
                        while (drawingObjectEnum.MoveNext())
                        {
                            if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Part)
                            {
                                Tekla.Structures.Drawing.Part part = drawingObjectEnum.Current as Tekla.Structures.Drawing.Part;
                                ArrayList array = new ArrayList();
                                array.Add(model.SelectModelObject(new Tekla.Structures.Identifier(part.ModelIdentifier.ID)));
                                Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
                                modelObjectSelector.Select(array);
                                ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects();
                                while (modelObjectEnum.MoveNext())
                                {
                                    if (modelObjectEnum.Current is Tekla.Structures.Model.Part)
                                    {
                                        Tekla.Structures.Model.Part     mpart    = modelObjectEnum.Current as Tekla.Structures.Model.Part;
                                        Tekla.Structures.Model.Assembly assembly = mpart.GetAssembly();
                                        Tekla.Structures.Model.Part     mainPart = (Tekla.Structures.Model.Part)assembly.GetMainPart();
                                        assemblyDrawing.Name = mainPart.Name;
                                        assemblyDrawing.Modify();
                                        assemblyDrawing.CommitChanges();
                                    }
                                }
                                modelObjectSelector.Select(new ArrayList());
                            }
                        }
                        drawingHandler.CloseActiveDrawing();
                    }
                }
            }
        }
        private void PickMainDrawing_Click(object sender, EventArgs e)
        {
            Model     model             = new Model();
            ModelInfo modelInfo         = model.GetInfo();
            string    drawingFolderPath = modelInfo.ModelPath + @"\drawings\";

            DrawingHandler    drawingHandler = new DrawingHandler();
            DrawingEnumerator drawingEnum    = drawingHandler.GetDrawingSelector().GetSelected();

            if (drawingEnum.GetSize() == 1)
            {
                while (drawingEnum.MoveNext())
                {
                    if (drawingEnum.Current is AssemblyDrawing)
                    {
                        PropertyInfo pi         = drawingEnum.Current.GetType().GetProperty("Identifier", BindingFlags.Instance | BindingFlags.NonPublic);
                        object       value      = pi.GetValue(drawingEnum.Current, null);
                        Identifier   Identifier = (Identifier)value;
                        Beam         temporary  = new Beam();
                        temporary.Identifier = Identifier;

                        string dgFileName = "";
                        bool   dg         = temporary.GetReportProperty("DRAWING_PLOT_FILE", ref dgFileName);

                        FileInfo dgFile = new FileInfo(drawingFolderPath + dgFileName);
                        if (dgFile.Exists)
                        {
                            MainDrawing            = dgFile.FullName;
                            MainDrawingNumber.Text = drawingEnum.Current.Mark;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Pick ONE Assembly Drawing");
                    }
                }
                CreateExtraSheets.Enabled = true;
            }
            else
            {
                MessageBox.Show("Pick ONE Assembly Drawing");
            }
        }
예제 #15
0
        public string GetMultiInfo()
        {
            string result = string.Empty;

            DrawingHandler drawingHandler = new DrawingHandler();

            DrawingEnumerator selectedDrawings = drawingHandler.GetDrawingSelector().GetSelected();

            List <DrawingInfo> listOfDrawings = new List <DrawingInfo>();

            string number        = string.Empty;
            string projectNumber = string.Empty;
            string title1        = string.Empty;
            string title2        = string.Empty;
            string name          = string.Empty;

            while (selectedDrawings.MoveNext())
            {
                var currentDrawingInfo = new DrawingInfo();

                Drawing drawing = selectedDrawings.Current;

                currentDrawingInfo.BaseName = drawing.GetType() + drawing.Mark;

                currentDrawingInfo.DrawingName = drawing.Name;

                drawing.GetUserProperty("PM_DRAWING_TITLE_1", ref title1);
                drawing.GetUserProperty("PM_DRAWING_TITLE_2", ref title2);
                drawing.GetUserProperty("Nr_dokumentu", ref number);
                drawing.GetUserProperty("Nr_projektu", ref projectNumber);

                currentDrawingInfo.DrawingTitle1         = title1;
                currentDrawingInfo.DrawingTitle2         = title2;
                currentDrawingInfo.DrawingTitle2Expanded = this.ReturnFullTitle(title2);
                currentDrawingInfo.DrawingProjectNumber  = projectNumber;
                currentDrawingInfo.DrawingNumber         = number;

                name = currentDrawingInfo.ToString();
            }

            return(name);
        }
예제 #16
0
 private void BtnApply_Click(object sender, EventArgs e)
 {
     lbCode.Text        = "";
     lbResult.Text      = "";
     SelectedDrawings   = new List <Drawing>();
     progressBar1.Value = 0;
     CD.DetailName      = cbCode.Text;
     if (chkAutoApply.Checked)
     {
         if (btnApply.Text == "Apply")
         {
             DrawingHandler dh = new DrawingHandler();
             SelectedDrawings = Com.EnumtoArrayDr(dh.GetDrawingSelector().GetSelected()).OfType <TSD.Drawing>().ToList().OrderBy(x => x.Title1).ToList();
             if (SelectedDrawings?.Count > 0)
             {
                 progressBar1.Maximum = SelectedDrawings.Count;
                 btnApply.Text        = "Cancel";
                 workerThread.RunWorkerAsync();
             }
             else
             {
                 lbResult.Text = "Please Select Drawings!!";
             }
         }
         else
         {
             workerThread.CancelAsync();
         }
     }
     else
     {
         DrawingHandler dh = new DrawingHandler();
         TSD.Drawing    Dr = dh.GetActiveDrawing();
         if (Dr != null)
         {
             CD.ProceedDrawing(Dr, chkDeleteDim.Checked, lbCode);
         }
     }
 }
예제 #17
0
        public string ReturnFullName()
        {
            string result = string.Empty;

            DrawingHandler drawingHandler = new DrawingHandler();

            DrawingEnumerator selectedDrawings = drawingHandler.GetDrawingSelector().GetSelected();

            string title2 = string.Empty;

            while (selectedDrawings.MoveNext())
            {
                Drawing drawing = selectedDrawings.Current;

                drawing.GetUserProperty("PM_DRAWING_TITLE_2", ref title2);
            }

            title2 = title2.Remove(0, 4);

            result = this.ExpandTitle(title2);

            return(result);
        }
예제 #18
0
        public void WriteNumber(string file)
        {
            DrawingHandler drawingHandler = new DrawingHandler();

            DrawingEnumerator selectedDrawings = drawingHandler.GetDrawingSelector().GetSelected();

            FileInfo toRead = new FileInfo();

            Dictionary <string, string> dictionary = new Dictionary <string, string>();

            dictionary = toRead.ConvertFileToDictionary(file);

            while (selectedDrawings.MoveNext())
            {
                Drawing drawing = selectedDrawings.Current;

                string searchedNumber = drawing.GetType() + drawing.Mark;

                string result = toRead.ReturnNumberFromDictionary(searchedNumber, dictionary);

                drawing.SetUserProperty("Nr_dokumentu", result);
                drawing.CommitChanges();
            }
        }
        private void CreateExtraSheets_Click(object sender, EventArgs e)
        {
            akit.Callback("acmd_display_attr_dialog", "adraw_dial", "main_frame"); // open drawing settings dialog
            akit.ValueChange("adraw_dial", "gr_adraw_get_menu", "KWP-blank");      // select blank attributes
            akit.PushButton("gr_adraw_get", "adraw_dial");                         // load attributes

            Model model = new Model();

            Tekla.Structures.Model.UI.ModelObjectSelector mObjSelector = new Tekla.Structures.Model.UI.ModelObjectSelector();
            DrawingHandler    drawingHandler = new DrawingHandler();
            DrawingEnumerator drawingEnum    = drawingHandler.GetDrawingSelector().GetSelected();

            if (drawingEnum.GetSize() > 0)
            {
                while (drawingEnum.MoveNext())
                {
                    if (drawingEnum.Current is AssemblyDrawing)
                    {
                        AssemblyDrawing assemblyDrawing = drawingEnum.Current as AssemblyDrawing;
                        akit.ValueChange("adraw_dial", "gr_adraw_description", assemblyDrawing.Name); // change name
                        akit.PushButton("dia_draw_select_parts", "Drawing_selection");                // select parts in drawing
                        int  count  = 0;
                        bool result = int.TryParse(RequiredSheets.Text, out count);
                        for (int i = 2; i <= count; i++)
                        {
                            akit.ValueChange("adraw_dial", "txtFldSheetNumber", i.ToString());    // change sheet number
                            akit.PushButton("gr_adraw_apply", "adraw_dial");                      // apply settings
                            akit.Callback("acmd_create_dim_assembly_drawings", "", "main_frame"); // create assembly drawing for selected part
                        }

                        mObjSelector.Select(new ArrayList());
                    }
                }
            }
            PickExtraSheets.Enabled = true;
        }
예제 #20
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string printer = cmbPrinter.Text;
                string size    = "";
                double scale   = 1;

                PrintAttributes printAttributes = new PrintAttributes();
                printAttributes.ScalingType          = DotPrintScalingType.Scale;
                printAttributes.PrintToMultipleSheet = false;
                printAttributes.NumberOfCopies       = 1;
                printAttributes.Orientation          = DotPrintOrientationType.Auto;
                printAttributes.PrintArea            = DotPrintAreaType.EntireDrawing;

                DrawingEnumerator drawingEnum = drawingHandler.GetDrawingSelector().GetSelected();
                while (drawingEnum.MoveNext())
                {
                    Drawing drawing = (Drawing)drawingEnum.Current;

                    for (int i = 0; i < printerNames.Count; i++)
                    {
                        string printerName = printerNames[i].ToString();
                        if (printerName == cmbPrinter.Text)
                        {
                            double printerScale;
                            bool   printerScaleBool = double.TryParse(printerScales[i].ToString(), out printerScale);

                            if (printerScaleBool)
                            {
                                for (int c = 0; c < papersizeDimensions.Count; c++)
                                {
                                    Tekla.Structures.Drawing.Size m = (Tekla.Structures.Drawing.Size)papersizeDimensions[c];
                                    if (drawing.Layout.SheetSize.Height == m.Height && drawing.Layout.SheetSize.Width == m.Width)
                                    {
                                        size = (string)papersizeNames[c];
                                    }
                                }

                                scale = printerScale;
                            }
                            else
                            {
                                if (cmbSize.Text != "Auto")
                                {
                                    for (int c = 0; c < printsizeNames.Count; c++)
                                    {
                                        if (cmbSize.Text == printsizeNames[c].ToString())
                                        {
                                            size = printsizeNames[c].ToString();
                                            Tekla.Structures.Drawing.Size n = (Tekla.Structures.Drawing.Size)printsizeDimensions[c];
                                            scale = n.Width / drawing.Layout.SheetSize.Width;
                                            scale = double.Parse(scale.ToString("F2"));
                                        }
                                    }
                                }

                                else if (cmbSize.Text == "Auto")
                                {
                                    for (int c = 0; c < papersizeNames.Count; c++)
                                    {
                                        Tekla.Structures.Drawing.Size m = (Tekla.Structures.Drawing.Size)papersizeDimensions[c];
                                        if (drawing.Layout.SheetSize.Height == m.Height && drawing.Layout.SheetSize.Width == m.Width)
                                        {
                                            size  = papersizeAutoPrintsizeNames[c].ToString();
                                            scale = double.Parse(papersizeAutoScales[c].ToString());
                                        }
                                    }
                                }
                            }
                        }
                    }

                    printAttributes.Scale           = scale;
                    printAttributes.PrinterInstance = printer + "-" + size;
                    drawingHandler.PrintDrawing(drawing, printAttributes);
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }
예제 #21
0
        private void PaintBlueRectangle()
        {
            ArrayList ItemList = new ArrayList();
            Drawing ActivatedDrawing;
            bool DrawingFound = false;

            DrawingHandler MyDrawingHandler = new DrawingHandler();

            if (MyDrawingHandler.GetConnectionStatus())
            {
                DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected();

                while (SelectedDrawings.MoveNext() && !DrawingFound)
                {
                    ActivatedDrawing = SelectedDrawings.Current;
                    double sheetHeight = ActivatedDrawing.Layout.SheetSize.Height;
                    double sheetWidth = ActivatedDrawing.Layout.SheetSize.Width;

                    double minX = 0.0;
                    double minY = 0.0;
                    double maxX = sheetWidth;
                    double maxY = sheetHeight;

                    TSD.ContainerView currentSheet = ActivatedDrawing.GetSheet();
                    TSD.DrawingObjectEnumerator viewEnum = currentSheet.GetViews();
                    while (viewEnum.MoveNext())
                    {
                        TSD.View currentView = viewEnum.Current as TSD.View;
                        RectangleBoundingBox ViewAABB = currentView.GetAxisAlignedBoundingBox();
                        double rbbx = ViewAABB.UpperLeft.X;
                        double rbby = ViewAABB.UpperLeft.Y;
                        double rbbW = ViewAABB.Width;
                        double rbbH = ViewAABB.Height;
                        double viewScale = currentView.Attributes.Scale;
                        //MessageBox.Show("rbbx=" + Convert.ToString(rbbx) + ", rbby=" + Convert.ToString(rbby) + ", rbbW=" + Convert.ToString(rbbW) + ", rbbH=" + Convert.ToString(rbbH));
                        ItemList.Add(rbbx);
                        ItemList.Add(rbby);
                        ItemList.Add(rbbW);
                        ItemList.Add(rbbH);
                        ItemList.Add(viewScale);

                        if (ViewAABB.UpperLeft.X < minX)
                        {
                            minX = ViewAABB.UpperLeft.X;
                        }
                        if (ViewAABB.LowerLeft.Y < minY)
                        {
                            minY = ViewAABB.LowerLeft.Y;
                        }
                        if (ViewAABB.UpperRight.X > maxX)
                        {
                            maxX = ViewAABB.UpperRight.X;
                        }
                        if (ViewAABB.UpperLeft.Y > maxY)
                        {
                            maxY = ViewAABB.UpperLeft.Y;
                        }
                    }

                    double bufferWidth = Math.Abs(minX) + maxX;
                    double bufferHeight = Math.Abs(minY) + maxY;

                    //panel1.Width = (int)Convert.ToInt32(bufferWidth);
                    //panel1.Height = (int)Convert.ToInt32(bufferHeight);
                    //btnPreview2.Location = new Point(panel1.Width - btnPreview2.Size.Width - 15, panel1.Height + btnPreview2.Size.Height);
                    //checkBox1.Location = new Point((int)Convert.ToInt32(0.2 * panel1.Width), panel1.Height + checkBox1.Size.Height + 20);
                    this.Size = new System.Drawing.Size(panel1.Width + 20, panel1.Height + btnPreview2.Size.Height + 20);
                    buffer = new Bitmap((int)Convert.ToInt32(bufferWidth), (int)Convert.ToInt32(bufferHeight));

            ////////////////////////////////////////////////////////////////////////////////////////
                    /*
                                   double scaleFactorX = 297 / bufferWidth;
                                   double scaleFactorY = 210 / bufferHeight;
                                   double scaleFactor = 0;
                                   if (scaleFactorX <= scaleFactorY)
                                   {
                                       scaleFactor = scaleFactorX;
                                   }else{
                                       scaleFactor=scaleFactorY;
                                   }

                                                       panel1.Width = (int)Convert.ToInt32(bufferWidth * scaleFactor);
                                                       panel1.Height = (int)Convert.ToInt32(bufferHeight * scaleFactor);
                                                       btnPreview2.Location = new Point(panel1.Width - btnPreview2.Size.Width - 15, panel1.Height + btnPreview2.Size.Height);
                                                       checkBox1.Location = new Point((int)Convert.ToInt32(0.2*panel1.Width), panel1.Height + checkBox1.Size.Height + 20);
                                                       this.Size = new System.Drawing.Size(panel1.Width + 20, panel1.Height + btnPreview2.Size.Height + 20);
                                                       buffer = new Bitmap((int)Convert.ToInt32(bufferWidth * scaleFactor), (int)Convert.ToInt32(bufferHeight * scaleFactor));
                                      */
             //////////////////////////////////////////////////////////////////////////////////////

                    // Draw blue rectangle into the buffer
                    using (Graphics bufferGrph = Graphics.FromImage(buffer))
                    {
                        Pen drwPen = new Pen(Color.DarkBlue, 4);
                        bufferGrph.Clear(Color.White);
                        System.Drawing.Rectangle myRectangle = new System.Drawing.Rectangle((int)Convert.ToInt32(Math.Abs(minX)), (int)Convert.ToInt32(Math.Abs(maxY)-sheetHeight), (int)Convert.ToInt32(sheetWidth), (int)Convert.ToInt32(sheetHeight));

                        bufferGrph.DrawRectangle(drwPen, myRectangle);

                        for (int i = 0; i <= ItemList.Count / 5 - 1; i++)
                        {
                            int w = (int)Convert.ToInt32(ItemList[5 * i + 2]);
                            int h = (int)Convert.ToInt32(ItemList[5 * i + 3]) ;
                            int x = (int)Convert.ToInt32(ItemList[5 * i]) + (int)Convert.ToInt32(Math.Abs(minX));
                            int y = (int)Convert.ToInt32(Math.Abs(maxY) - Convert.ToDouble(ItemList[5 * i + 1]));
                            bufferGrph.DrawRectangle(new Pen(Color.Blue, 2), x, y, w, h);

                            if (checkBox1.Checked)
                            {
                                int sx, sy;
                                // Create string to draw.
                                String drawString = "Scale:" + Convert.ToString(ItemList[5 * i + 4]);
                                // Create font and brush.
                                Font drawFont = new Font("Arial", 8);
                                SolidBrush drawBrush = new SolidBrush(Color.Black);
                                // Set format of string.
                                StringFormat drawFormat = new StringFormat();
                                if (h > w)
                                {
                                    // Create point for upper-left corner of drawing.
                                    sx = x + (int)(0.5 * w); sy = y + (int)(0.25 * h);
                                    drawFormat.FormatFlags = StringFormatFlags.DirectionVertical;
                                }
                                else
                                {
                                    // Create point for upper-left corner of drawing.
                                    sx = x + (int)(0.25 * w); sy = y + (int)(0.5 * h);
                                    drawFormat.FormatFlags = StringFormatFlags.DisplayFormatControl;
                                }
                                // Draw string to screen.
                                bufferGrph.DrawString(drawString, drawFont, drawBrush, sx, sy, drawFormat);
                            }
                        }
                        //Be sure the dispose of the pench
                        drwPen.Dispose();
                    }
                    // Invalidate the panel. This will lead to a call of 'panel1_Paint'
                    panel1.Invalidate();
                    //only one loop
                    DrawingFound = true;
                }
            }
        }
예제 #22
0
        public void GetData(Shared.Models.User user)
        {
            try
            {
                DrawingEnumerator SelectedDrawings = CourretDrawingHandler.GetDrawingSelector().GetSelected();

                logger.Info("Чертежи успешно получены");

                Drawings = new List <Shared.Models.Drawing>();

                Errors = new List <StringErrorBindingModel>();

                while (SelectedDrawings.MoveNext())
                {
                    try
                    {
                        if (SelectedDrawings.Current is AssemblyDrawing)
                        {
                            String Number = "";

                            Assembly assembly = model.SelectModelObject(((SelectedDrawings.Current as AssemblyDrawing)).AssemblyIdentifier) as Assembly;

                            if (!ChechedDate(assembly))
                            {
                                assembly.GetReportProperty("CUSTOM.Zakaz", ref Number);
                                Errors.Add(new StringErrorBindingModel {
                                    Data = $"Заказ: {Number}, Марка: {SelectedDrawings.Current.Mark}", Error = "Не заполнено поле \"Дата\""
                                });
                                continue;
                            }

                            GetDrawing(assembly, SelectedDrawings.Current as AssemblyDrawing);
                        }
                    }
                    catch (Exception E)
                    {
                        String   Number   = "";
                        String   List     = "";
                        Assembly assembly = model.SelectModelObject(((SelectedDrawings.Current as AssemblyDrawing)).AssemblyIdentifier) as Assembly;
                        assembly.GetReportProperty("CUSTOM.Zakaz", ref Number);
                        assembly.GetReportProperty("CUSTOM.Drw_SheetRev", ref List);
                        logger.Error(E.ToString());
                        Errors.Add(new StringErrorBindingModel {
                            Data = $"Заказ: {Number}, Лист: {List}", Error = E.Message
                        });
                    }
                }

                logger.Info("Чертежи добавлены");

                ModelInfo modelInfo = model.GetInfo();
                Model = new Shared.Models.Model {
                    DateCreate = DateTime.Now, Path = modelInfo.ModelPath, Drawings = Drawings
                };

                notify.Close();

                if (Errors.Count > 0)
                {
                    ReportErrors Report = new ReportErrors();
                    Report.Report_DGV.AutoGenerateColumns = false;
                    Report.Report_DGV.DataSource          = Errors;

                    Report.ShowDialog();
                }

                if (Model.Drawings.Count() > 0)
                {
                    logger.Info("Начат показ чертежей");

                    Operations operations = new Operations();
                    operations.ShowData(Model, user);
                }
            }
            catch (Exception E)
            {
                maillogger.SendErrorLog(E.ToString());
                logger.Error(E.ToString());
                MessageBox.Show("Ошибка операции", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #23
0
        private void button1_Click(object sender, EventArgs e)
        {
            DrawingHandler MyDrawingHandler = new DrawingHandler();

            PrintAttributes printAttributes = new PrintAttributes();
            printAttributes.Scale = 1.0;
            printAttributes.PrintToMultipleSheet = false;
            printAttributes.NumberOfCopies = 1;
            printAttributes.Orientation = DotPrintOrientationType.Auto;
            printAttributes.PrintArea = DotPrintAreaType.EntireDrawing;
            printAttributes.PrinterInstance = "PDF_594x420";

            if (MyDrawingHandler.GetConnectionStatus())
            {
                DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected();
                while (SelectedDrawings.MoveNext())
                {
                    Drawing currentDrawing = SelectedDrawings.Current;

                    //Get print attributes: we need only PrinterInstance
                    MyDrawingHandler.PrintDrawing(currentDrawing, printAttributes);
                }
            }
        }
예제 #24
0
        public static void Run(Tekla.Technology.Akit.IScript akit)
        {
            DrawingHandler    DrawingHandler = new DrawingHandler();
            DrawingEnumerator DrawingEnum    = DrawingHandler.GetDrawingSelector().GetSelected();

            if (DrawingEnum.GetSize() == 0)
            {
                // No drawings selected
                MessageBox.Show("No Drawings Selected");
                return;
            }

            while (DrawingEnum.MoveNext())
            {
                Drawing Drawing = DrawingEnum.Current;
                DrawingHandler.SetActiveDrawing(Drawing, false);
                DrawingObjectEnumerator DrawingObjEnum = Drawing.GetSheet().GetAllObjects();
                ArrayList MarkArray = new ArrayList();
                ArrayList PartArray = new ArrayList();
                while (DrawingObjEnum.MoveNext())
                {
                    if (DrawingObjEnum.Current is MarkBase)
                    {
                        MarkArray.Add(DrawingObjEnum.Current);
                    }

                    if (DrawingObjEnum.Current is Tekla.Structures.Drawing.Part || DrawingObjEnum.Current is Tekla.Structures.Drawing.Bolt)
                    {
                        PartArray.Add(DrawingObjEnum.Current);
                    }
                }
                DrawingHandler.GetDrawingObjectSelector().SelectObjects(MarkArray, true);

                // part mark properties
                akit.Callback("acmd_display_selected_drawing_object_dialog", "", "main_frame");
                akit.TabChange("pmark_dial", "Container_2", "gr_mark_general_tab");
                akit.PushButton("gr_pmark_place", "pmark_dial");
                akit.ValueChange("pmpl_dial", "text_placing_mode", "1");
                akit.PushButton("txpl_modify", "pmpl_dial");
                akit.PushButton("txpl_cancel", "pmpl_dial");
                akit.PushButton("pmark_cancel", "pmark_dial");

                // bolt mark properties
                akit.Callback("acmd_display_attr_dialog", "smark_dial", "main_frame");
                akit.TabChange("smark_dial", "Container_217", "gr_mark_general_tab");
                akit.PushButton("gr_smark_place", "smark_dial");
                akit.ValueChange("smpl_dial", "text_placing_mode", "1");
                akit.PushButton("txpl_modify", "smpl_dial");
                akit.PushButton("txpl_cancel", "smpl_dial");
                akit.PushButton("smark_cancel", "smark_dial");

                // connection mark properties
                akit.Callback("acmd_display_attr_dialog", "jmark_dial", "main_frame");
                akit.TabChange("jmark_dial", "Container_217", "gr_mark_general_tab");
                akit.PushButton("gr_jmark_place", "jmark_dial");
                akit.ValueChange("jmpl_dial", "text_placing_mode", "1");
                akit.PushButton("txpl_modify", "jmpl_dial");
                akit.PushButton("txpl_cancel", "jmpl_dial");
                akit.PushButton("jmark_cancel", "jmark_dial");

                DrawingHandler.GetDrawingObjectSelector().UnselectAllObjects();
                DrawingHandler.GetDrawingObjectSelector().SelectObjects(PartArray, true);
                akit.Callback("acmd_update_marks_selected", "", "main_frame");

                DrawingHandler.SaveActiveDrawing();
                DrawingHandler.CloseActiveDrawing();
            }
        }
        public void GetData(Shared.Models.User user)
        {
            try
            {
                DrawingEnumerator SelectedDrawings = CourretDrawingHandler.GetDrawingSelector().GetSelected();

                logger.Info("Чертежи успешно получены");

                Drawings = new List <Shared.Models.Drawing>();

                DrawingErrors   = new List <StringErrorBindingModel>();
                DetailsErrors   = new List <StringErrorBindingModel>();
                DetailsWarnings = new List <StringErrorBindingModel>();

                while (SelectedDrawings.MoveNext())
                {
                    try
                    {
                        if (SelectedDrawings.Current is AssemblyDrawing)
                        {
                            Assembly assembly = model.SelectModelObject(((SelectedDrawings.Current as AssemblyDrawing)).AssemblyIdentifier) as Assembly;

                            if (!ChechedDate(assembly))
                            {
                                throw new Exception("Не заполнено поле \"Дата\"");
                            }

                            GetDrawing(assembly, SelectedDrawings.Current as AssemblyDrawing);
                        }
                    }
                    catch (Exception E)
                    {
                        String   Number   = "";
                        String   List     = "";
                        Assembly assembly = model.SelectModelObject(((SelectedDrawings.Current as AssemblyDrawing)).AssemblyIdentifier) as Assembly;
                        assembly.GetReportProperty("CUSTOM.Zakaz", ref Number);
                        assembly.GetReportProperty("CUSTOM.Drw_SheetRev", ref List);
                        logger.Error(E.ToString());
                        DrawingErrors.Add(new StringErrorBindingModel {
                            Order = Number, List = List, Error = E.Message
                        });
                    }
                }

                logger.Info("Чертежи добавлены");

                ModelInfo modelInfo = model.GetInfo();
                string    ModelPath = modelInfo.ModelPath;

                if (ModelPath.Substring(0, 2) != @"\\")
                {
                    using (var managementObject = new ManagementObject())
                    {
                        managementObject.Path = new ManagementPath($"Win32_LogicalDisk='{ModelPath.Substring(0, 2)}'");
                        var driveType   = (DriveType)(uint)managementObject["DriveType"];
                        var networkPath = Convert.ToString(managementObject["ProviderName"]);

                        ModelPath = networkPath + ModelPath.Remove(0, 2);
                    }
                }

                ModelPath = ModelPath.Replace("tekla-fs", "10.0.7.249");

                Model = new Shared.Models.Model {
                    DateCreate = DateTime.Now, Path = ModelPath, Drawings = Drawings
                };


                notify.Close();

                if (DetailsWarnings.Count > 0)
                {
                    ReportWarnings Report = new ReportWarnings();
                    Report.Report_DGV.AutoGenerateColumns = false;
                    Report.Report_DGV.DataSource          = DetailsWarnings;

                    if (Report.ShowDialog() != DialogResult.OK)
                    {
                        for (int i = 0; i < DetailsWarnings.Count; i++)
                        {
                            Drawings.RemoveAll(p => p.Order == DetailsWarnings[i].Order && p.List == DetailsWarnings[i].List);
                        }
                    }
                }

                if (DetailsErrors.Count > 0)
                {
                    ReportErrors Report = new ReportErrors();
                    Report.Text        = "Отчет об ошибках деталей";
                    Report.label1.Text = "Отчет об ошибках деталей";
                    Report.Report_DGV.AutoGenerateColumns = false;
                    Report.Report_DGV.DataSource          = DetailsErrors;

                    Report.ShowDialog();
                }

                if (DrawingErrors.Count > 0)
                {
                    ReportErrors Report = new ReportErrors();
                    Report.Text        = "Отчет об ошибках чертежей";
                    Report.label1.Text = "Отчет об ошибках чертежей";
                    Report.Report_DGV.AutoGenerateColumns = false;
                    Report.Report_DGV.DataSource          = DrawingErrors;

                    Report.ShowDialog();
                }

                if (Model.Drawings.Count() > 0)
                {
                    logger.Info("Начат показ чертежей");

                    Operations operations = new Operations();
                    operations.ShowData(Model, user);
                }
            }
            catch (Exception E)
            {
                maillogger.SendErrorLog(E.ToString());
                logger.Error(E.ToString());
                MessageBox.Show("Ошибка операции", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }