private void btnOK_Click(object sender, EventArgs e) { string userFolder = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "RebarPos"); string userStylesFile = System.IO.Path.Combine(userFolder, "TableStyles.txt"); string newStylesFile = System.IO.Path.Combine(userFolder, "TableStyles.new"); BOQStyle.ClearBOQStyles(); foreach (TableStyleCopy copy in m_Copies) { if (!copy.IsBuiltin) { BOQStyle style = new BOQStyle(); style.Name = copy.Name; style.Columns = copy.Columns; style.PosLabel = copy.PosColumn; style.CountLabel = copy.CountColumn; style.DiameterLabel = copy.DiameterColumn; style.LengthLabel = copy.LengthColumn; style.ShapeLabel = copy.ShapeColumn; style.TotalLengthLabel = copy.TotalLengthColumn; style.DiameterListLabel = copy.DiameterListColumn; style.DiameterLengthLabel = copy.TotalLengthRow; style.UnitWeightLabel = copy.UnitWeightRow; style.WeightLabel = copy.WeightRow; style.GrossWeightLabel = copy.GrossWeightRow; style.MultiplierHeadingLabel = copy.MultiplierHeadingLabel; style.TextStyleId = copy.TextStyleId; style.HeadingStyleId = copy.HeadingStyleId; style.FootingStyleId = copy.FootingStyleId; BOQStyle.AddBOQStyle(style); } } try { BOQStyle.SaveBOQStylesToFile(newStylesFile); System.IO.File.Delete(userStylesFile); System.IO.File.Move(newStylesFile, userStylesFile); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show("Error: " + ex.Message, "RebarPos", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } BOQStyle.ReadBOQStylesFromFile(userStylesFile); Close(); }
public bool Init() { m_Styles = BOQStyle.GetAllBOQStyles(); if (m_Styles.Count == 0) { return(false); } foreach (string item in m_Styles) { TableStyleCopy copy = new TableStyleCopy(); BOQStyle style = BOQStyle.GetBOQStyle(item); copy.Name = item; copy.IsBuiltin = style.IsBuiltIn; copy.Columns = style.Columns; copy.PosColumn = style.PosLabel; copy.CountColumn = style.CountLabel; copy.DiameterColumn = style.DiameterLabel; copy.LengthColumn = style.LengthLabel; copy.ShapeColumn = style.ShapeLabel; copy.TotalLengthColumn = style.TotalLengthLabel; copy.DiameterListColumn = style.DiameterListLabel; copy.TotalLengthRow = style.DiameterLengthLabel; copy.UnitWeightRow = style.UnitWeightLabel; copy.WeightRow = style.WeightLabel; copy.GrossWeightRow = style.GrossWeightLabel; copy.MultiplierHeadingLabel = style.MultiplierHeadingLabel; copy.TextStyleId = style.TextStyleId; copy.HeadingStyleId = style.HeadingStyleId; copy.FootingStyleId = style.FootingStyleId; m_Copies.Add(copy); } m_TextStyles = DWGUtility.GetTextStyles(); foreach (string name in m_TextStyles.Keys) { cbTextStyle.Items.Add(name); cbHeadingStyle.Items.Add(name); cbFootingStyle.Items.Add(name); } PopulateList(); return(true); }
public bool Init() { foreach (string style in BOQStyle.GetAllBOQStyles()) { cbStyle.Items.Add(style); } // Read from settings cbStyle.SelectedIndex = Properties.Settings.Default.DrawBOQ_TableStyle; chkHideMissing.Checked = Properties.Settings.Default.DrawBOQ_HideMissing; txtTextHeight.Text = Properties.Settings.Default.DrawBOQ_TextHeight.ToString(); txtTableMargin.Text = Properties.Settings.Default.DrawBOQ_TableMargin.ToString(); cbDisplayUnit.SelectedIndex = Properties.Settings.Default.DrawBOQ_DisplayUnit; cbPrecision.SelectedIndex = Properties.Settings.Default.DrawBOQ_Precision; return(true); }
public void ReadUserTableStyles() { string userFolder = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "RebarPos"); string userStylesFile = System.IO.Path.Combine(userFolder, "TableStyles.txt"); try { if (System.IO.File.Exists(userStylesFile)) { BOQStyle.ClearBOQStyles(); BOQStyle.ReadBOQStylesFromFile(userStylesFile); } } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show("Error: " + ex.Message, "RebarPos", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } }
private bool DrawBOQ() { using (DrawBOQForm form = new DrawBOQForm()) { // Pos error check PromptSelectionResult sel = DWGUtility.SelectAllPosUser(); if (sel.Status != PromptStatus.OK) { return(false); } ObjectId[] items = sel.Value.GetObjectIds(); List <PosCheckResult> errors = PosCheckResult.CheckAllInSelection(items, true, false); List <PosCheckResult> warnings = PosCheckResult.CheckAllInSelection(items, false, true); if (errors.Count != 0) { PosCheckResult.ConsoleOut(errors); } if (warnings.Count != 0) { PosCheckResult.ConsoleOut(warnings); } if (errors.Count != 0) { Autodesk.AutoCAD.ApplicationServices.Application.DisplayTextScreen = true; return(false); } // Pos similarity check if (warnings.Count != 0) { Autodesk.AutoCAD.ApplicationServices.Application.DisplayTextScreen = true; PromptKeywordOptions opts = new PromptKeywordOptions("\nMetraja devam edilsin mi? [Evet/Hayir]", "Yes No"); PromptResult res = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetKeywords(opts); if (res.Status != PromptStatus.OK || res.StringResult == "No") { return(true); } } if (!form.Init()) { return(false); } if (Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(null, form, false) != System.Windows.Forms.DialogResult.OK) { return(true); } List <PosCopy> posList = new List <PosCopy>(); try { posList = PosCopy.ReadAllInSelection(items, true, PosCopy.PosGrouping.PosMarker); } catch (System.Exception ex) { MessageBox.Show("Error: " + ex.Message, "RebarPos", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (posList.Count == 0) { MessageBox.Show("Seçilen grupta poz mevcut değil.", "RebarPos", MessageBoxButtons.OK, MessageBoxIcon.Information); return(false); } posList = RemoveEmpty(posList); if (!form.HideMissing) { posList = AddMissing(posList); } posList = SortList(posList); PromptPointResult result = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetPoint("Baz noktası: "); if (result.Status != PromptStatus.OK) { return(true); } Database db = HostApplicationServices.WorkingDatabase; using (Transaction tr = db.TransactionManager.StartTransaction()) { try { BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite); BOQTable table = new BOQTable(); table.SuspendUpdate(); Point3d pt = result.Value; table.TransformBy(Matrix3d.Displacement(pt.GetAsVector())); table.TransformBy(Matrix3d.Scaling(form.TextHeight, pt)); table.Note = form.TableNote; table.Heading = form.TableHeader; table.Footing = form.TableFooter; table.DisplayUnit = form.DisplayUnit; table.Precision = form.Precision; table.Multiplier = form.Multiplier; BOQStyle style = form.TableStyle; table.ColumnDef = style.Columns; table.TextStyleId = style.TextStyleId; table.HeadingStyleId = style.HeadingStyleId; table.FootingStyleId = style.FootingStyleId; table.PosLabel = style.PosLabel; table.CountLabel = style.CountLabel; table.DiameterLabel = style.DiameterLabel; table.LengthLabel = style.LengthLabel; table.ShapeLabel = style.ShapeLabel; table.TotalLengthLabel = style.TotalLengthLabel; table.DiameterListLabel = style.DiameterListLabel; table.DiameterLengthLabel = style.DiameterLengthLabel; table.UnitWeightLabel = style.UnitWeightLabel; table.WeightLabel = style.WeightLabel; table.GrossWeightLabel = style.GrossWeightLabel; table.MultiplierHeadingLabel = style.MultiplierHeadingLabel; table.MaxRows = form.TableRows; table.TableSpacing = form.TableMargin; double lengthScale = 1.0; switch (table.DisplayUnit) { case BOQTable.DrawingUnits.Millimeter: lengthScale = 1.0; break; case BOQTable.DrawingUnits.Centimeter: lengthScale = 0.1; break; case BOQTable.DrawingUnits.Decimeter: lengthScale = 0.01; break; case BOQTable.DrawingUnits.Meter: lengthScale = 0.001; break; } // Add rows foreach (PosCopy copy in posList) { if (copy.existing) { string a = string.Empty; string b = string.Empty; string c = string.Empty; string d = string.Empty; string e = string.Empty; string f = string.Empty; if (copy.isVarA) { a = (copy.minA * lengthScale).ToString("F0") + "~" + (copy.maxA * lengthScale).ToString("F0"); } else { a = (copy.minA * lengthScale).ToString("F0"); } if (copy.isVarB) { b = (copy.minB * lengthScale).ToString("F0") + "~" + (copy.maxB * lengthScale).ToString("F0"); } else { b = (copy.minB * lengthScale).ToString("F0"); } if (copy.isVarC) { c = (copy.minC * lengthScale).ToString("F0") + "~" + (copy.maxC * lengthScale).ToString("F0"); } else { c = (copy.minC * lengthScale).ToString("F0"); } if (copy.isVarD) { d = (copy.minD * lengthScale).ToString("F0") + "~" + (copy.maxD * lengthScale).ToString("F0"); } else { d = (copy.minD * lengthScale).ToString("F0"); } if (copy.isVarE) { e = (copy.minE * lengthScale).ToString("F0") + "~" + (copy.maxE * lengthScale).ToString("F0"); } else { e = (copy.minE * lengthScale).ToString("F0"); } if (copy.isVarF) { f = (copy.minF * lengthScale).ToString("F0") + "~" + (copy.maxF * lengthScale).ToString("F0"); } else { f = (copy.minF * lengthScale).ToString("F0"); } table.Items.Add(int.Parse(copy.pos), copy.count, double.Parse(copy.diameter), copy.length1, copy.length2, copy.isVarLength, copy.shapename, a, b, c, d, e, f); } else { table.Items.Add(int.Parse(copy.pos)); } } table.ResumeUpdate(); table.SetDatabaseDefaults(db); btr.AppendEntity(table); tr.AddNewlyCreatedDBObject(table, true); tr.Commit(); } catch (System.Exception ex) { MessageBox.Show("Error: " + ex.Message, "RebarPos", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } return(true); }