コード例 #1
0
        /// <summary>
        /// 框架结构的一键标注;
        /// </summary>
        /// <param name="nType"></param>
        public void DrawDrawingOneKey(string strDimType)
        {
            DrawingHandler drawingHandler = new DrawingHandler();
            Drawing        drawing        = drawingHandler.GetActiveDrawing();

            if (null == drawing)
            {
                return;
            }
            AssemblyDrawing assemblyDrawing = drawing as AssemblyDrawing;

            if (assemblyDrawing == null)
            {
                return;
            }
//             try
//             {
            Assembly assembly = new Assembly
            {
                Identifier = assemblyDrawing.AssemblyIdentifier
            };

            assembly.Select();
            Identifier identifier = assembly.GetMainPart().Identifier;

            TSM.Part modelObject = mModel.SelectModelObject(identifier) as TSM.Part;

            //1.首先创建自动剖面;
            if (CCommonPara.mAutoSectionType == MrAutoSectionType.MrOneKeyDim || CCommonPara.mAutoSectionType == MrAutoSectionType.MrTwoTypeDim)
            {
                CreateAutoSection(strDimType, modelObject, assemblyDrawing);
            }

            //2.对图纸进行标注;
            DrawingObjectEnumerator allViews = assemblyDrawing.GetSheet().GetAllViews();

            while (allViews.MoveNext())
            {
                if (allViews.Current != null)
                {
                    TSD.View view = allViews.Current as TSD.View;

                    if (view != null)
                    {
                        DrawDrawingByView(view, modelObject, strDimType);
                    }
                }
            }
            assemblyDrawing.IsFrozen = true;
            assemblyDrawing.PlaceViews();
            assemblyDrawing.Modify();
//             }
//             catch (System.Exception ex)
//             {
//                 string strName = assemblyDrawing.Name;
//                 MessageBox.Show("图纸" + strName + "标注失败,请确认模型或图纸内是否有问题。异常信息:" + ex.Message);
//             }

            MessageBox.Show("扬州Tekla培训石头哥提示您标注结束,感谢您对智能标注系统的支持。");
        }
コード例 #2
0
        private void SetAssemblyDrawingNumber(AssemblyDrawing drawing)
        {
            var assemblyType = 0;

            drawing.GetUserProperty(@"DR_SET_ASS_TYPE", ref assemblyType);
            if (assemblyType == 0)
            {
                var assemblyId = drawing.AssemblyIdentifier;
                var assembly   = new Model().SelectModelObject(assemblyId) as Assembly;
                if (assembly.AssemblyNumber.Prefix.StartsWith("SA"))
                {
                    var mainPart = assembly.GetMainPart() as Part;
                    if (mainPart != null)
                    {
                        var markParam = "";
                        mainPart.GetUserProperty("SA_DWG_N", ref markParam);
                        var markRev = "";
                        mainPart.GetUserProperty("SA_REV_DWG", ref markRev);
                        drawing.SetUserProperty("DR_SET_PLOT", $"{markParam}_{markRev}");
                    }
                }
                else
                {
                    var mainPart = assembly.GetMainPart() as Part;
                    if (mainPart != null)
                    {
                        var markParam = "";
                        mainPart.GetUserProperty("DWG_N", ref markParam);
                        var markRev = "";
                        mainPart.GetUserProperty("REV_DWG", ref markRev);
                        drawing.SetUserProperty("DR_SET_PLOT", $"{markParam}_{markRev}");
                    }
                }
            }
        }
コード例 #3
0
 public static dynamic GetTSObject(AssemblyDrawing dynObject)
 {
     if (dynObject is null)
     {
         return(null);
     }
     return(dynObject.teklaObject);
 }
コード例 #4
0
        /// <summary>
        /// 绘制门式框架结构中选择的多张图纸;
        /// </summary>
        public void DrawSelectListDrawingDoor()
        {
            DrawingHandler drawingHandler = new DrawingHandler();

            foreach (CMrAssemblyDrawing mrDrawing in mrAssemblyDrawingList)
            {
                AssemblyDrawing assemblyDrawing = mrDrawing.mAssemblyDring;

                Identifier assemblyDrawingIdentifier = assemblyDrawing.AssemblyIdentifier;

                if (assemblyDrawing == null)
                {
                    continue;
                }
                try
                {
                    Assembly assembly = new Assembly
                    {
                        Identifier = assemblyDrawing.AssemblyIdentifier
                    };

                    assembly.Select();
                    Identifier identifier  = assembly.GetMainPart().Identifier;
                    Beam       modelObject = mModel.SelectModelObject(identifier) as Beam;
                    drawingHandler.SetActiveDrawing(assemblyDrawing, true);
                    DrawingObjectEnumerator allViews = assemblyDrawing.GetSheet().GetAllViews();

                    while (allViews.MoveNext())
                    {
                        if (allViews.Current != null)
                        {
                            TSD.View view = allViews.Current as TSD.View;

                            if (view != null)
                            {
                                DrawDrawingDoorByView(view, modelObject, mrDrawing.mDimType);
                            }
                        }
                    }
                    assemblyDrawing.IsFrozen = true;
                    assemblyDrawing.PlaceViews();
                    assemblyDrawing.Modify();
                    drawingHandler.SaveActiveDrawing();
                    drawingHandler.CloseActiveDrawing();
                }
                catch (System.Exception ex)
                {
                    string strName = assemblyDrawing.Name;

                    MessageBox.Show("图纸" + strName + "标注失败,请确认模型或图纸内是否有问题。异常信息:" + ex.Message);
                    drawingHandler.SaveActiveDrawing();
                    drawingHandler.CloseActiveDrawing();
                    continue;
                }
            }
            MessageBox.Show("扬州Tekla培训石头哥提示您标注结束,感谢您对智能标注系统的支持。");
        }
コード例 #5
0
 /// <summary>
 /// 自动创建门式框架结构的剖面;
 /// </summary>
 /// <param name="strType"></param>
 private void CreateAutoSectionDoor(string strType, TSM.Part mainPart, AssemblyDrawing assemblyDrawing)
 {
     if (strType.Equals("梁标注"))
     {
         CBeamAutoSectionDoor beamAutoSection = new CBeamAutoSectionDoor(mainPart, assemblyDrawing);
         beamAutoSection.CreateSection();
     }
     else if (strType.Equals("柱标注"))
     {
         CCylinderAutoSectionDoor cylinderAutoSection = new CCylinderAutoSectionDoor(mainPart, assemblyDrawing);
         cylinderAutoSection.CreateSection();
     }
 }
コード例 #6
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();
                    }
                }
            }
        }
コード例 #7
0
        /// <summary>
        /// 框架结构的一键标注;
        /// </summary>
        /// <param name="nType"></param>
        public void CreateAutoSectionTest(string strDimType, int nFlag)
        {
            DrawingHandler drawingHandler = new DrawingHandler();
            Drawing        drawing        = drawingHandler.GetActiveDrawing();

            if (null == drawing)
            {
                return;
            }
            AssemblyDrawing assemblyDrawing = drawing as AssemblyDrawing;

            if (assemblyDrawing == null)
            {
                return;
            }
            try
            {
                Assembly assembly = new Assembly
                {
                    Identifier = assemblyDrawing.AssemblyIdentifier
                };
                assembly.Select();

                if (nFlag == 0)
                {
                    Identifier identifier  = assembly.GetMainPart().Identifier;
                    TSM.Part   modelObject = mModel.SelectModelObject(identifier) as TSM.Part;
                    CreateAutoSection(strDimType, modelObject, assemblyDrawing);
                }
                else if (nFlag == 1)
                {
                    Identifier identifier  = assembly.GetMainPart().Identifier;
                    TSM.Part   modelObject = mModel.SelectModelObject(identifier) as TSM.Part;
                    CreateAutoSectionDoor(strDimType, modelObject, assemblyDrawing);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
コード例 #8
0
        private List <Shared.Models.Detail> AddMainDetailDrawingObjects(AssemblyDrawing parentDrawing, int CountMark)
        {
            try
            {
                List <Shared.Models.Detail> Details = new List <SZMK.TeklaInteraction.Shared.Models.Detail>();

                Assembly assembly = model.SelectModelObject(parentDrawing.AssemblyIdentifier) as Assembly;

                ModelObject modelObject = assembly.GetMainPart();

                Details.Add(GetDetailAttribute(assembly, modelObject, 1));

                AddsSecondariesDrawingObjectsToTreeNode(assembly, Details, CountMark);

                return(Details);
            }
            catch (Exception E)
            {
                throw new Exception(E.Message, E);
            }
        }
コード例 #9
0
        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;
        }
コード例 #10
0
        /// <summary>
        /// 双击打开图纸;
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView_DrawingDoor_DoubleClick(object sender, EventArgs e)
        {
            ListView.SelectedListViewItemCollection lvItems = listView_DrawingDoor.SelectedItems;

            if (lvItems.Count == 0)
            {
                return;
            }

            ListViewItem lvItem = lvItems[0];

            object tag = lvItem.Tag;

            if (tag == null)
            {
                return;
            }

            CMrAssemblyDrawing mrDrawing       = tag as CMrAssemblyDrawing;
            DrawingHandler     drawingHandler  = new DrawingHandler();
            AssemblyDrawing    assemblyDrawing = mrDrawing.mAssemblyDring;

            drawingHandler.SetActiveDrawing(assemblyDrawing, true);
        }
コード例 #11
0
        /// <summary>
        /// 初始化主梁对象;
        /// </summary>
        /// <returns></returns>
        private void InitMainPart()
        {
            DrawingHandler drawingHandler = new DrawingHandler();

            if (mModel.GetConnectionStatus() && drawingHandler.GetConnectionStatus())
            {
                DrawingHandler.SetMessageExecutionStatus(DrawingHandler.MessageExecutionModeEnum.INSTANT);
                AssemblyDrawing assemblyDrawing = drawingHandler.GetActiveDrawing() as AssemblyDrawing;
                if (assemblyDrawing != null)
                {
                    Assembly assembly = new Assembly
                    {
                        Identifier = assemblyDrawing.AssemblyIdentifier
                    };

                    assembly.Select();
                    TSM.Part mainPart = assembly.GetMainPart() as TSM.Part;

                    //创建自定义的主梁对象;
                    CMrMainBeam mainBeam = new CMrMainBeam(mainPart, null);
                    CMrMainBeam.SetInstance(mainBeam);

                    double dblFlangeThickness = 0.0;
                    double dblWebThickness    = 0.0;

                    //assembly.GetMainPart().GetReportProperty(CDogTools.GetInstance().GetFLANGEStr(), ref dblFlangeThickness);//YB 01 101 6 PROFILE.FLANGE_THICKNESS
                    //assembly.GetMainPart().GetReportProperty(CDogTools.GetInstance().GetWEBStr(), ref dblWebThickness);      //111 6  PROFILE.WEB_THICKNESS

                    assembly.GetMainPart().GetReportProperty("PROFILE.FLANGE_THICKNESS", ref dblFlangeThickness);
                    assembly.GetMainPart().GetReportProperty("PROFILE.WEB_THICKNESS", ref dblWebThickness);

                    mainBeam.mFlangeThickness = dblFlangeThickness;
                    mainBeam.mWebThickness    = dblWebThickness;
                }
            }
        }
コード例 #12
0
        public bool GetDrawing(Assembly assembly, AssemblyDrawing parentDrawing)
        {
            try
            {
                string _dataMatrix     = "";
                string _assembly       = "";
                string _order          = "";
                string _place          = "";
                string _list           = "";
                string _mark           = "";
                string _executor       = "";
                double _weightMark     = 0;
                int    _countMark      = 0;
                double _subTotalWeight = 0;
                double _subTotallenght = 0;
                long   _countDetail    = 0;

                assembly.GetReportProperty("LENGTH", ref _subTotallenght);

                _assembly = assembly.Name;

                assembly.GetReportProperty("CUSTOM.Zakaz", ref _order);

                if (!CheckedOrder(_order))
                {
                    throw new Exception($"Номер заказа должен быть записан по шаблону 0000(00)");
                }

                assembly.GetReportProperty("DRAWING.USERDEFINED.ru_mesto", ref _place);
                assembly.GetReportProperty("CUSTOM.Drw_SheetRev", ref _list);

                string[] splitter = _list.Split('и');

                while (splitter[0][0] == '0')
                {
                    splitter[0] = splitter[0].Remove(0, 1);
                }

                if (splitter.Length != 1)
                {
                    _list = splitter[0] + "и" + splitter[1];
                }
                else
                {
                    _list = splitter[0];
                }

                assembly.GetReportProperty("ASSEMBLY_POS", ref _mark);
                assembly.GetReportProperty("DRAWING.USERDEFINED.ru_11_fam_dop", ref _executor);

                if (!CheckedExecutor(_executor))
                {
                    throw new Exception($"Исполнитель не указан");
                }
                else
                {
                    _executor = _executor.Replace(" ", "");
                    _executor = _executor.Insert(_executor.IndexOf('.') - 1, " ");
                }

                assembly.GetReportProperty("CUSTOM.SZ_AssWeight", ref _weightMark);
                assembly.GetReportProperty("MODEL_TOTAL", ref _countMark);

                _subTotalWeight = _weightMark * _countMark;

                if (!CheckedUnique(_order, _list, _mark))
                {
                    throw new Exception($"Чертеж с Номером:{_order},Листом:{_list}, Маркой:{_mark} уже существует");
                }

                List <Shared.Models.Detail> Details = AddMainDetailDrawingObjects(parentDrawing);

                _countDetail = Details.Sum(p => p.Count);

                Drawings.Add(new Shared.Models.Drawing {
                    Assembly = _assembly, Order = _order.Replace(" ", ""), Place = _place, List = _list, Mark = _mark, Executor = _executor, WeightMark = Convert.ToDouble(_weightMark.ToString("F2")), CountMark = _countMark, SubTotalWeight = Convert.ToDouble(_subTotalWeight.ToString("F2")), SubTotalLenght = Convert.ToDouble(_subTotallenght.ToString("F2")), CountDetail = _countDetail, Details = Details
                });

                return(true);
            }
            catch (Exception E)
            {
                throw new Exception(E.Message, E);
            }
        }
コード例 #13
0
 /// <summary>
 /// 构造函数;
 /// </summary>
 /// <param name="mainPart"></param>
 /// <param name="assemblyDrawing"></param>
 public CCylinderAutoSection(TSM.Part mainPart, AssemblyDrawing assemblyDrawing)
 {
     this.mMainPart        = mainPart;
     this.mAssemblyDrawing = assemblyDrawing;
 }
コード例 #14
0
        public bool GetDrawing(Assembly assembly, AssemblyDrawing parentDrawing)
        {
            try
            {
                string _assembly       = "";
                string _order          = "";
                string _place          = "";
                string _list           = "";
                string _mark           = "";
                string _executor       = "";
                double _weightMark     = 0;
                int    _countMark      = 0;
                double _subTotalWeight = 0;
                double _subTotallenght = 0;
                long   _countDetail    = 0;

                assembly.GetReportProperty("LENGTH", ref _subTotallenght);

                _assembly = assembly.Name;

                assembly.GetReportProperty("CUSTOM.Zakaz", ref _order);

                if (!CheckedOrder(_order))
                {
                    if (MessageBox.Show($"Номер заказа {_order} записан не по шаблону, подтвердить?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                    {
                        throw new Exception($"Номер заказа должен быть записан по шаблону 0000(00)");
                    }
                }

                assembly.GetReportProperty("DRAWING.USERDEFINED.ru_mesto", ref _place);
                assembly.GetReportProperty("CUSTOM.Drw_SheetRev", ref _list);

                string[] splitter = _list.Split('и');

                while (splitter[0][0] == '0')
                {
                    splitter[0] = splitter[0].Remove(0, 1);
                }

                if (splitter.Length != 1)
                {
                    _list = splitter[0] + "и" + splitter[1];
                }
                else
                {
                    _list = splitter[0];
                }

                assembly.GetReportProperty("ASSEMBLY_POS", ref _mark);

                if (CheckMark(_mark))
                {
                    throw new Exception(@"В написании марки нельзя использовать / \ * : ? | "" < > _ ");
                }

                assembly.GetReportProperty("DRAWING.USERDEFINED.ru_11_fam_dop", ref _executor);

                if (!CheckedExecutor(_executor))
                {
                    throw new Exception($"Исполнитель не указан");
                }
                else
                {
                    try
                    {
                        _executor = _executor.Replace(" ", "");
                        _executor = _executor.Insert(_executor.IndexOf('.') - 1, " ");
                    }
                    catch
                    {
                        throw new Exception($"Исполнитель указан не по шаблону, Шаблон: Иванов И.И.");
                    }
                }

                assembly.GetReportProperty("CUSTOM.SZ_AssWeight", ref _weightMark);
                assembly.GetReportProperty("MODEL_TOTAL", ref _countMark);

                _subTotalWeight = _weightMark * _countMark;

                if (!CheckedUnique(_order, _list, _mark))
                {
                    throw new Exception($"Чертеж с Номером:{_order},Листом:{_list}, Маркой:{_mark} уже существует");
                }

                List <Shared.Models.Detail> Details = AddMainDetailDrawingObjects(parentDrawing, _countMark);

                _countDetail = Details.Sum(p => p.Count);

                bool BadStartNumber = false;

                for (int i = 0; i < Details.Count; i++)
                {
                    if (Details[i].StartNumber.ToString()[0] == '9')
                    {
                        BadStartNumber = true;
                        DetailsErrors.Add(new StringErrorBindingModel {
                            Order = _order.Replace(" ", ""), List = _list.Trim(), Error = $"В детали с позицией {Details[i].Position} начальный номер равен {Details[i].StartNumber}"
                        });
                    }
                    else if (Details[i].StartNumber != 1)
                    {
                        DetailsWarnings.Add(new StringErrorBindingModel {
                            Order = _order.Replace(" ", ""), List = _list.Trim(), Error = $"В детали с позицией {Details[i].Position} начальный номер равен {Details[i].StartNumber}"
                        });
                    }
                }

                if (!BadStartNumber)
                {
                    Drawings.Add(new Shared.Models.Drawing {
                        Assembly = _assembly, Order = _order.Replace(" ", ""), Place = _place, List = _list.Trim(), Mark = _mark, Executor = _executor, WeightMark = Convert.ToDouble(_weightMark.ToString("F2")), CountMark = _countMark, SubTotalWeight = Convert.ToDouble(_subTotalWeight.ToString("F2")), WeightDifferent = GetWeightDifferent(_order, _list, _mark, Convert.ToDouble(_subTotalWeight.ToString("F2"))), SubTotalLenght = Convert.ToDouble(_subTotallenght.ToString("F2")), CountDetail = _countDetail, Details = Details, Revision = GetRevision(assembly, _list)
                    });
                }

                return(true);
            }
            catch (Exception E)
            {
                throw new Exception(E.Message, E);
            }
        }
コード例 #15
0
 /// <summary>
 /// 构造函数;
 /// </summary>
 /// <param name="mainPart"></param>
 /// <param name="assemblyDrawing"></param>
 public CBeamAutoSectionDoor(TSM.Part mainPart, AssemblyDrawing assemblyDrawing)
 {
     this.mMainPart        = mainPart;
     this.mAssemblyDrawing = assemblyDrawing;
 }
コード例 #16
0
ファイル: Form1.cs プロジェクト: 0xmbe/TEKLA-Drawing-Renamer
        private void RenameDrawingTitle(DrawingEnumerator DrawingList)
        {
            this.progressBar1.Maximum = DrawingList.GetSize();
            int  num           = 1;
            int  num2          = 0;
            int  num3          = 0;
            int  num4          = 0;
            bool needsUpdating = false;

            while (DrawingList.MoveNext())
            {
                this.progressBar1.Value++;
                this.CurrentNo.Text = num++.ToString() + '/' + DrawingList.GetSize().ToString();
                this.CurrentNo.Refresh();

                string mainpartname        = "";
                string existingDrawingname = "";    // Name of the drawing before modify

                Tekla.Structures.Model.ModelObject modelObject = null;

                Drawing currentDrawing = DrawingList.Current;
                if (currentDrawing.UpToDateStatus.ToString() != "DrawingIsUpToDate")
                {
                    needsUpdating = true;
                    continue;
                }

                if (DrawingList.Current is AssemblyDrawing)
                {
                    AssemblyDrawing assemblyDrawing    = DrawingList.Current as AssemblyDrawing;
                    Identifier      assemblyIdentifier = assemblyDrawing.AssemblyIdentifier;
                    modelObject = this.My_model.SelectModelObject(assemblyIdentifier);

                    modelObject.GetReportProperty("ASSEMBLY_NAME", ref mainpartname);

                    num2++;
                }

                if (DrawingList.Current is SinglePartDrawing)
                {
                    SinglePartDrawing singlePartDrawing = DrawingList.Current as SinglePartDrawing;
                    Identifier        partIdentifier    = singlePartDrawing.PartIdentifier;
                    modelObject = this.My_model.SelectModelObject(partIdentifier);

                    modelObject.GetReportProperty("NAME", ref mainpartname);
                }
                if (modelObject != null)
                {
                    // Check if drawing name already contains the automatic drawing name:
                    existingDrawingname = DrawingList.Current.Name;
                    bool drawingNameMatch = existingDrawingname.Contains(mainpartname);

                    if ((drawingNameMatch == true) || (drawingNameMatch = existingDrawingname.Contains("DS")))
                    {
                        num4++;
                    }
                    if (drawingNameMatch == false)
                    {
                        DrawingList.Current.Name = mainpartname;
                        DrawingList.Current.Modify();
                        num3++;
                    }
                }
            }

            if (needsUpdating == true)
            {
                MessageBox.Show("Some of the drawings are not up to date!\n\nNames were not updated for that drawings.", Variables.title);
            }

            MessageBox.Show(string.Concat(new object[]
            {
                num3,
                " Drawing's name changed \n",
                num4,
                " Drawings kept the existing name"
            }), Variables.title);
        }
コード例 #17
0
 /// <summary>
 /// 构造函数;
 /// </summary>
 /// <param name="assemblyDrawing"></param>
 public CMrAssemblyDrawing(AssemblyDrawing assemblyDrawing)
 {
     this.mAssemblyDring = assemblyDrawing;
 }
コード例 #18
0
        /// <summary>
        /// 门式框架结构的一键标注;
        /// </summary>
        /// <param name="nType"></param>
        public void DrawDrawingDoorOneKey(string strDimType)
        {
            DrawingHandler drawingHandler = new DrawingHandler();
            Drawing        drawing        = drawingHandler.GetActiveDrawing();

            if (null == drawing)
            {
                return;
            }
            AssemblyDrawing assemblyDrawing = drawing as AssemblyDrawing;

            if (assemblyDrawing == null)
            {
                return;
            }
            try
            {
                Assembly assembly = new Assembly
                {
                    Identifier = assemblyDrawing.AssemblyIdentifier
                };

                assembly.Select();
                Identifier identifier  = assembly.GetMainPart().Identifier;
                TSM.Part   modelObject = mModel.SelectModelObject(identifier) as TSM.Part;

                if (modelObject == null)
                {
                    MessageBox.Show("标注失败,无法获取主梁对象!");
                    return;
                }

                //1.首先创建门刚的自动剖面;
                //CreateAutoSectionDoor(strDimType, modelObject, assemblyDrawing);

                DrawingObjectEnumerator allViews = assemblyDrawing.GetSheet().GetAllViews();

                while (allViews.MoveNext())
                {
                    if (allViews.Current != null)
                    {
                        TSD.View view = allViews.Current as TSD.View;

                        if (view != null)
                        {
                            DrawDrawingDoorByView(view, modelObject, strDimType);
                        }
                    }
                }
                assemblyDrawing.IsFrozen = true;
                assemblyDrawing.PlaceViews();
                assemblyDrawing.Modify();
            }
            catch (System.Exception ex)
            {
                string strName = assemblyDrawing.Name;

                MessageBox.Show("图纸" + strName + "标注失败,请确认模型或图纸内是否有问题。异常信息:" + ex.Message);
            }

            MessageBox.Show("扬州Tekla培训石头哥提示您标注结束,感谢您对智能标注系统的支持。");
        }
コード例 #19
0
        /// <summary>
        /// 线程图纸标注函数;
        /// </summary>
        /// <param name="message"></param>
        private void DimDrawingThreadFunc(object message)
        {
            DrawingHandler drawingHandler = new DrawingHandler();

            int nIndex = 0;
            int nCount = mrAssemblyDrawingList.Count;

            mMainForm.SetWholeProgressMax(nCount);

            string strCurrentTips = "";
            string strWholeTips   = "";

            foreach (CMrAssemblyDrawing mrDrawing in mrAssemblyDrawingList)
            {
                nIndex++;
                mMainForm.SetWholeProgressPos(nIndex);
                strWholeTips = "总进度:" + nIndex + "/" + nCount.ToString();
                mMainForm.SetWholeLabelText(strWholeTips);

                int             nViewIndex                = 0;
                AssemblyDrawing assemblyDrawing           = mrDrawing.mAssemblyDring;
                Identifier      assemblyDrawingIdentifier = assemblyDrawing.AssemblyIdentifier;

                if (assemblyDrawing == null)
                {
                    continue;
                }
                try
                {
                    Assembly assembly = new Assembly
                    {
                        Identifier = assemblyDrawing.AssemblyIdentifier
                    };

                    assembly.Select();
                    Identifier identifier  = assembly.GetMainPart().Identifier;
                    Beam       modelObject = mModel.SelectModelObject(identifier) as Beam;
                    drawingHandler.SetActiveDrawing(assemblyDrawing, true);
                    DrawingObjectEnumerator allViews = assemblyDrawing.GetSheet().GetAllViews();

                    //1.判断是否需要创建自动剖面;
                    if (CCommonPara.mAutoSectionType == MrAutoSectionType.MrListDim || CCommonPara.mAutoSectionType == MrAutoSectionType.MrTwoTypeDim)
                    {
                        CreateAutoSection(mrDrawing.mDimType, modelObject, assemblyDrawing);
                    }

                    int nViewCount = allViews.GetSize();
                    mMainForm.SetCurrentProgressMax(nViewCount);

                    while (allViews.MoveNext())
                    {
                        if (allViews.Current != null)
                        {
                            nViewIndex++;
                            mMainForm.SetCurrentProgressPos(nViewIndex);
                            strCurrentTips = "当前进度:" + nViewIndex + "/" + nViewCount.ToString();
                            mMainForm.SetCurrentLabelText(strCurrentTips);

                            TSD.View view = allViews.Current as TSD.View;
                            if (view != null)
                            {
                                DrawDrawingByView(view, modelObject, mrDrawing.mDimType);
                            }
                        }
                    }
                    assemblyDrawing.IsFrozen = true;
                    assemblyDrawing.PlaceViews();
                    assemblyDrawing.Modify();
                    drawingHandler.SaveActiveDrawing();
                    drawingHandler.CloseActiveDrawing();
                }
                catch (System.Exception ex)
                {
                    string strName = assemblyDrawing.Name;
                    MessageBox.Show("图纸" + strName + "标注失败,请确认模型或图纸内是否有问题。异常信息:" + ex.Message);
                    drawingHandler.SaveActiveDrawing();
                    drawingHandler.CloseActiveDrawing();

                    nIndex++;
                    mMainForm.SetWholeProgressPos(nIndex);
                    strWholeTips = "总进度:" + nIndex + "/" + nCount.ToString();
                    mMainForm.SetWholeLabelText(strWholeTips);
                    continue;
                }
            }

            MessageBox.Show("扬州Tekla培训石头哥提示您标注结束,感谢您对智能标注系统的支持。");
        }