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; }
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; }
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++; } }
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); } } }
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!"); }
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); } }
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; } } }
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"); } }
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); }
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); } } }
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); }
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; }
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); } }
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; } } }
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); } }
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); } } }
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); } }