예제 #1
0
        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();
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
        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();
        }
예제 #6
0
        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);
        }