/// <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培训石头哥提示您标注结束,感谢您对智能标注系统的支持。"); }
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}"); } } } }
public static dynamic GetTSObject(AssemblyDrawing dynObject) { if (dynObject is null) { return(null); } return(dynObject.teklaObject); }
/// <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培训石头哥提示您标注结束,感谢您对智能标注系统的支持。"); }
/// <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(); } }
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(); } } } }
/// <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); } }
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); } }
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; }
/// <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); }
/// <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; } } }
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); } }
/// <summary> /// 构造函数; /// </summary> /// <param name="mainPart"></param> /// <param name="assemblyDrawing"></param> public CCylinderAutoSection(TSM.Part mainPart, AssemblyDrawing assemblyDrawing) { this.mMainPart = mainPart; this.mAssemblyDrawing = assemblyDrawing; }
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); } }
/// <summary> /// 构造函数; /// </summary> /// <param name="mainPart"></param> /// <param name="assemblyDrawing"></param> public CBeamAutoSectionDoor(TSM.Part mainPart, AssemblyDrawing assemblyDrawing) { this.mMainPart = mainPart; this.mAssemblyDrawing = assemblyDrawing; }
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); }
/// <summary> /// 构造函数; /// </summary> /// <param name="assemblyDrawing"></param> public CMrAssemblyDrawing(AssemblyDrawing assemblyDrawing) { this.mAssemblyDring = assemblyDrawing; }
/// <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培训石头哥提示您标注结束,感谢您对智能标注系统的支持。"); }
/// <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培训石头哥提示您标注结束,感谢您对智能标注系统的支持。"); }