public void Modify(PropertyValueChangedEventArgs e) { string label = e.ChangedItem.Label; Drawing drawing = drawingHandler.GetActiveDrawing(); DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected(); while (drawingObjectEnum.MoveNext()) { if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Bolt) { Tekla.Structures.Drawing.Bolt drawingBolt = (Tekla.Structures.Drawing.Bolt)drawingObjectEnum.Current; if (label == "BoltRepresentation") { drawingBolt.Attributes.Representation = boltRepresentation; } if (label == "SymbolContainsAxis") { drawingBolt.Attributes.SymbolContainsAxis = bool.Parse(symbolContainsAxis.ToString()); } if (label == "SymbolContainsHole") { drawingBolt.Attributes.SymbolContainsHole = bool.Parse(symbolContainsHole.ToString()); } if (label == "Colour") { drawingBolt.Attributes.Color = colour; } drawingBolt.Modify(); drawing.CommitChanges(); } } }
public static void Run(Tekla.Technology.Akit.IScript akit) { try { Model model = new Model(); DrawingHandler drawingHandler = new DrawingHandler(); DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected(); ArrayList ModelObjectArray = new ArrayList(); if (drawingObjectEnum.GetSize() > 0) { while (drawingObjectEnum.MoveNext()) { if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Part) { Tekla.Structures.Drawing.Part part = drawingObjectEnum.Current as Tekla.Structures.Drawing.Part; ModelObjectArray.Add(model.SelectModelObject(new Identifier(part.ModelIdentifier.ID))); } if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Bolt) { Tekla.Structures.Drawing.Bolt bolt = drawingObjectEnum.Current as Tekla.Structures.Drawing.Bolt; ModelObjectArray.Add(model.SelectModelObject(new Identifier(bolt.ModelIdentifier.ID))); } } } Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector(); modelObjectSelector.Select(ModelObjectArray); akit.Callback("acmd_display_selected_object_dialog", "", "main_frame"); } catch { } }
/// <summary> /// 初始化; /// </summary> protected void Init() { if (mViewBase == null) { return; } CDimTools dimTools = CDimTools.GetInstance(); //初始化视图包围盒; dimTools.InitViewBox(); //获取所有螺钉的数据字典; Dictionary <Identifier, TSD.Bolt> dicIdentifierBolt = dimTools.GetAllBoltInDrawing(mViewBase); //获取所有Drawing视图中的Part; List <TSD.Part> partList = dimTools.GetAllPartInDrawing(mViewBase); foreach (TSD.Part partInDrawing in partList) { //1.获取部件的信息; TSM.ModelObject modelObjectInModel = dimTools.TransformDrawingToModel(partInDrawing); TSM.Part partInModel = modelObjectInModel as TSM.Part; CMrPart mrPart = null; if (CMrMainBeam.GetInstance().mPartInModel.Identifier.GUID == partInModel.Identifier.GUID) { mrPart = CMrMainBeam.GetInstance(); mMainBeam = CMrMainBeam.GetInstance(); mMainBeam.mPartInDrawing = partInDrawing; } else { mrPart = new CMrPart(partInModel, partInDrawing); } dimTools.InitMrPart(modelObjectInModel, mViewBase, mrPart); AppendMrPart(mrPart); InitMrPart(mrPart); mrPart.GetBeamTopViewInfo().InitMrPartTopViewInfo(); //2.获取部件中的所有螺钉组; List <BoltArray> boltArrayList = dimTools.GetAllBoltArray(partInModel); foreach (BoltArray boltArray in boltArrayList) { TSD.Bolt boltInDrawing = dicIdentifierBolt[boltArray.Identifier]; CMrBoltArray mrBoltArray = new CMrBoltArray(boltArray, boltInDrawing); dimTools.InitMrBoltArray(boltArray, mViewBase, mrBoltArray); InitMrBoltArray(mrBoltArray); mrPart.AppendMrBoltArray(mrBoltArray); } dimTools.UpdateViewBox(mrPart); } CMrMarkManager.GetInstance().Clear(); }
/// <summary> /// 螺钉组的构造函数; /// </summary> /// <param name="boltArray"></param> public CMrBoltArray(TSM.BoltArray boltArray, TSD.Bolt boltInDrawing) { mName = "BoltArray"; mBoltArrayInModel = boltArray; mBoltInDrawing = boltInDrawing; mBoltArrayShapeType = MrBoltArrayShapeType.ARRAY; mMrBoltArrayInfo = new CMrBoltArrayInfo(this); }
private void GetIdNumbers_Click(object sender, EventArgs e) { Model model = new Model(); Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector(); Drawing drawing = drawingHandler.GetActiveDrawing(); DrawingObjectEnumerator drawingObjectEnumerator = drawingHandler.GetDrawingObjectSelector().GetSelected(); ArrayList SelectedObjectArray = new ArrayList(); ArrayList MarkArray = new ArrayList(); while (drawingObjectEnumerator.MoveNext()) { if (drawingObjectEnumerator.Current is Tekla.Structures.Drawing.Part) { Tekla.Structures.Drawing.Part part = drawingObjectEnumerator.Current as Tekla.Structures.Drawing.Part; SelectedObjectArray.Add(model.SelectModelObject(new Identifier(part.ModelIdentifier.ID))); DrawingObjectArray.Add(part); } if (drawingObjectEnumerator.Current is Tekla.Structures.Drawing.Bolt) { Tekla.Structures.Drawing.Bolt bolt = drawingObjectEnumerator.Current as Tekla.Structures.Drawing.Bolt; SelectedObjectArray.Add(model.SelectModelObject(new Identifier(bolt.ModelIdentifier.ID))); DrawingObjectArray.Add(bolt); } } modelObjectSelector.Select(SelectedObjectArray); Tekla.Structures.Model.ModelObjectEnumerator modelObjectEnumerator = model.GetModelObjectSelector().GetSelectedObjects(); while (modelObjectEnumerator.MoveNext()) { if (modelObjectEnumerator.Current is Tekla.Structures.Model.Part) { Tekla.Structures.Model.Part modelPart = modelObjectEnumerator.Current as Tekla.Structures.Model.Part; MarkArray.Add(modelPart.Identifier.ID.ToString()); } if (modelObjectEnumerator.Current is Tekla.Structures.Model.BoltGroup) { Tekla.Structures.Model.BoltGroup modelBolt = modelObjectEnumerator.Current as Tekla.Structures.Model.BoltGroup; MarkArray.Add(modelBolt.Identifier.ID.ToString()); } } MarkArray.Sort(); string MarkList = ""; foreach (string strMark in MarkArray) { MarkList = strMark + " " + MarkList; } Clipboard.SetDataObject(MarkList); richTextBox1.Text = MarkList; drawingHandler.GetDrawingObjectSelector().SelectObjects(DrawingObjectArray, false); }
public void GetProperties() { DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected(); if (drawingObjectEnum.GetSize() == 1) { while (drawingObjectEnum.MoveNext()) { if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Bolt) { Tekla.Structures.Drawing.Bolt drawingBolt = (Tekla.Structures.Drawing.Bolt)drawingObjectEnum.Current; boltRepresentation = drawingBolt.Attributes.Representation; if (drawingBolt.Attributes.SymbolContainsAxis) { symbolContainsAxis = Bool.True; } else { symbolContainsAxis = Bool.False; } if (drawingBolt.Attributes.SymbolContainsHole) { symbolContainsHole = Bool.True; } else { symbolContainsHole = Bool.False; } colour = drawingBolt.Attributes.Color; } } } else if (drawingObjectEnum.GetSize() > 1) { boltRepresentation = new Bolt.Representation(); symbolContainsAxis = new Bool(); SymbolContainsHole = new Bool(); colour = new DrawingColors(); } }
public static void Run(Tekla.Technology.Akit.IScript akit) { try { Model model = new Model(); DrawingHandler drawingHandler = new DrawingHandler(); Drawing drawing = drawingHandler.GetActiveDrawing(); if (drawing != null) { Tekla.Structures.Drawing.StraightDimension sd = null; Tekla.Structures.Drawing.Bolt bolt = null; DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected(); while (drawingObjectEnum.MoveNext()) { if (drawingObjectEnum.Current is Tekla.Structures.Drawing.StraightDimension) { sd = (Tekla.Structures.Drawing.StraightDimension)drawingObjectEnum.Current; } if (drawingObjectEnum.Current is Tekla.Structures.Drawing.Bolt) { bolt = (Tekla.Structures.Drawing.Bolt)drawingObjectEnum.Current; } } if (bolt == null) { Tekla.Structures.Drawing.UI.Picker picker = drawingHandler.GetPicker(); DrawingObject drawingObject = null; Tekla.Structures.Drawing.ViewBase viewBase = null; Tekla.Structures.Geometry3d.Point pickedPoint = null; Type[] TypeFilter = new Type[] { typeof(Tekla.Structures.Drawing.Bolt) }; picker.PickObject("pick bolt", TypeFilter, out drawingObject, out viewBase, out pickedPoint); bolt = (Tekla.Structures.Drawing.Bolt)drawingObject; } Tekla.Structures.Model.BoltGroup mBolt = (Tekla.Structures.Model.BoltGroup)model.SelectModelObject((Identifier)bolt.ModelIdentifier); string note = ""; if (mBolt is BoltArray) { BoltArray boltArray = (BoltArray)mBolt; if (boltArray.GetBoltDistYCount() == 1 && boltArray.GetBoltDistY(0) == 0) { note = (mBolt.BoltPositions.Count - 1).ToString() + " No SPACES @ " + boltArray.GetBoltDistX(1).ToString() + " = "; } if (boltArray.GetBoltDistY(0) > 0) { } } else if (mBolt is BoltXYList) { BoltXYList boltXYList = (BoltXYList)mBolt; note = (boltXYList.BoltPositions.Count - 1).ToString() + " STAGGERED No SPACES @ " + (boltXYList.GetBoltDistX(1)).ToString() + " = "; } Tekla.Structures.Drawing.UI.DrawingObjectSelector drawingObjectSelector = drawingHandler.GetDrawingObjectSelector(); drawingObjectSelector.SelectObject(sd); akit.ValueChange("main_frame", "gr_sel_dimension", "1"); akit.Callback("acmd_display_attr_dialog", "dim_dial", "main_frame"); akit.PushButton("dim_set", "dim_dial"); akit.TabChange("dim_dial", "tabWndDimAttrib", "tabMarks"); akit.PushButton("dim_on_off", "dim_dial"); akit.ValueChange("dim_dial", "txtFldPrefix", note); akit.PushButton("dim_modify", "dim_dial"); akit.PushButton("dim_cancel", "dim_dial"); } } catch { } }
/// <summary> /// 初始化; /// </summary> protected void Init() { if (mViewBase == null) { return; } CDimTools dimTools = CDimTools.GetInstance(); //初始化视图包围盒; dimTools.InitViewBox(); //获取所有螺钉的数据字典; Dictionary <Identifier, TSD.Bolt> dicIdentifierBolt = dimTools.GetAllBoltInDrawing(mViewBase); //获取所有Drawing视图中的Part; List <TSD.Part> partList = dimTools.GetAllPartInDrawing(mViewBase); foreach (TSD.Part partInDrawing in partList) { //1.获取部件的信息; TSM.ModelObject modelObjectInModel = dimTools.TransformDrawingToModel(partInDrawing); TSM.Part partInModel = modelObjectInModel as TSM.Part; CMrPart mrPart = null; if (CMrMainBeam.GetInstance().mPartInModel.Identifier.GUID == partInModel.Identifier.GUID) { mrPart = CMrMainBeam.GetInstance(); mMainBeam = CMrMainBeam.GetInstance(); mMainBeam.mPartInDrawing = partInDrawing; } else { mrPart = new CMrPart(partInModel, partInDrawing); } dimTools.InitMrPart(modelObjectInModel, mViewBase, mrPart); AppendMrPart(mrPart); mrPart.GetCylinderTopViewInfo().InitCylinderTopViewInfo(); InitMrPart(mrPart); //第一次遍历时就把所有的垂直加筋板保存起来,后面需要使用; if (CDimTools.GetInstance().IsTwoVectorParallel(mrPart.mNormal, new Vector(1, 0, 0))) { mVerticalConnectPlateList.Add(mrPart); } //2.获取部件中的所有螺钉组; List <BoltArray> boltArrayList = dimTools.GetAllBoltArray(partInModel); foreach (BoltArray boltArray in boltArrayList) { TSD.Bolt boltInDrawing = dicIdentifierBolt[boltArray.Identifier]; CMrBoltArray mrBoltArray = new CMrBoltArray(boltArray, boltInDrawing); dimTools.InitMrBoltArray(boltArray, mViewBase, mrBoltArray); mrPart.AppendMrBoltArray(mrBoltArray); } dimTools.UpdateViewBox(mrPart); } InitCylinderGridLine(); //构建剪切板的拓扑结构; CMrClipPlateManager.GetInstance().BuildMrClipPlate(mMrPartList, MrViewType.CylinderTopView); //清空标记管理器中的数据; CMrMarkManager.GetInstance().Clear(); }
/// <summary> /// 初始化函数; /// </summary> protected void Init() { if (mViewBase == null) { return; } //初始化视图的包围盒; CDimTools.GetInstance().InitViewBox(); //获取所有螺钉的数据字典; Dictionary <Identifier, TSD.Bolt> dicIdentifierBolt = CDimTools.GetInstance().GetAllBoltInDrawing(mViewBase); //获取所有Drawing视图中的Part; List <TSD.Part> partList = CDimTools.GetInstance().GetAllPartInDrawing(mViewBase); foreach (TSD.Part partInDrawing in partList) { //1.获取部件的信息; TSM.ModelObject modelObjectInModel = CDimTools.GetInstance().TransformDrawingToModel(partInDrawing); TSM.Part partInModel = modelObjectInModel as TSM.Part; CMrPart mrPart = null; if (CMrMainBeam.GetInstance().mPartInModel.Identifier.GUID == partInModel.Identifier.GUID) { mrPart = CMrMainBeam.GetInstance(); mMainBeam = CMrMainBeam.GetInstance(); mMainBeam.mPartInDrawing = partInDrawing; CDimTools.GetInstance().InitMrPart(modelObjectInModel, mViewBase, mrPart); AppendMrPart(mrPart); } else { mrPart = new CMrPart(partInModel, partInDrawing); CDimTools.GetInstance().InitMrPart(modelObjectInModel, mViewBase, mrPart); AppendMrPart(mrPart); } //2.获取部件中的所有螺钉组; List <BoltArray> boltArrayList = CDimTools.GetInstance().GetAllBoltArray(partInModel); foreach (BoltArray boltArray in boltArrayList) { TSD.Bolt boltInDrawing = dicIdentifierBolt[boltArray.Identifier]; CMrBoltArray mrBoltArray = new CMrBoltArray(boltArray, boltInDrawing); CDimTools.GetInstance().InitMrBoltArray(boltArray, mViewBase, mrBoltArray); mrPart.AppendMrBoltArray(mrBoltArray); } CDimTools.GetInstance().UpdateViewBox(mrPart); UpdateMinAndMaxYPart(mrPart); } //移除主柱子; mMrPartList.Remove(mMainBeam); //清空零件标记管理器中的零件标记; CMrMarkManager.GetInstance().Clear(); //构建门式框架结构柱标注顶视图的拓扑; CMrCylinderDoorTopManager.GetInstance().BuildCylinderDoorTopTopo(mMrPartList); }
/// <summary> /// 初始化函数; /// </summary> protected void Init() { if (mViewBase == null) { return; } CDimTools dimTools = CDimTools.GetInstance(); //初始化视图的包围盒; dimTools.InitViewBox(); Point viewMinPoint = mViewBase.RestrictionBox.MinPoint; Point viewMaxPoint = mViewBase.RestrictionBox.MaxPoint; //获取所有螺钉的数据字典; Dictionary <Identifier, TSD.Bolt> dicIdentifierBolt = dimTools.GetAllBoltInDrawing(mViewBase); //获取所有Drawing视图中的Part; List <TSD.Part> partList = dimTools.GetAllPartInDrawing(mViewBase); foreach (TSD.Part partInDrawing in partList) { //1.获取部件的信息; TSM.ModelObject modelObjectInModel = dimTools.TransformDrawingToModel(partInDrawing); TSM.Part partInModel = modelObjectInModel as TSM.Part; CMrPart mrPart = null; if (CMrMainBeam.GetInstance().mPartInModel.Identifier.GUID == partInModel.Identifier.GUID) { mrPart = CMrMainBeam.GetInstance(); mMainBeam = CMrMainBeam.GetInstance(); mMainBeam.mPartInDrawing = partInDrawing; } else { mrPart = new CMrPart(partInModel, partInDrawing); } dimTools.InitMrPart(modelObjectInModel, mViewBase, mrPart); List <Point> pointList = mrPart.GetPointList(); int nCount = pointList.Count; Comparison <Point> sorterX = new Comparison <Point>(CDimTools.ComparePointX); pointList.Sort(sorterX); Point minXPoint = pointList[0]; Point maxXPoint = pointList[nCount - 1]; if (minXPoint.X > viewMaxPoint.X || maxXPoint.X < viewMinPoint.X) { continue; } Comparison <Point> sorterY = new Comparison <Point>(CDimTools.ComparePointY); pointList.Sort(sorterY); Point minYPoint = pointList[0]; Point maxYPoint = pointList[nCount - 1]; if (minYPoint.Y > viewMaxPoint.Y || maxYPoint.Y < viewMinPoint.Y) { continue; } Comparison <Point> sorterZ = new Comparison <Point>(CDimTools.ComparePointZ); pointList.Sort(sorterZ); Point minZPoint = pointList[0]; Point maxZPoint = pointList[nCount - 1]; if (minZPoint.Z > viewMaxPoint.Z || maxZPoint.Z < viewMinPoint.Z) { continue; } dimTools.UpdateViewBox(mrPart); AppendMrPart(mrPart); //2.获取部件中的所有螺钉组; List <BoltArray> boltArrayList = dimTools.GetAllBoltArray(partInModel); foreach (BoltArray boltArray in boltArrayList) { TSD.Bolt boltInDrawing = dicIdentifierBolt[boltArray.Identifier]; CMrBoltArray mrBoltArray = new CMrBoltArray(boltArray, boltInDrawing); dimTools.InitMrBoltArray(boltArray, mViewBase, mrBoltArray); mrPart.AppendMrBoltArray(mrBoltArray); } } CMrMarkManager.GetInstance().Clear(); }
/// <summary> /// 初始化函数; /// </summary> protected void Init() { if (mViewBase == null) { return; } mDicBoltPoint.Clear(); mYDicAttributeBoltArray.Clear(); mXDicAttributeBoltArray.Clear(); CDimTools dimTools = CDimTools.GetInstance(); Point viewMinPoint = mViewBase.RestrictionBox.MinPoint; Point viewMaxPoint = mViewBase.RestrictionBox.MaxPoint; //获取所有螺钉的数据字典; Dictionary <Identifier, TSD.Bolt> dicIdentifierBolt = dimTools.GetAllBoltInDrawing(mViewBase); //获取所有Drawing视图中的Part; List <TSD.Part> partList = dimTools.GetAllPartInDrawing(mViewBase); foreach (TSD.Part partInDrawing in partList) { //1.获取部件的信息; TSM.ModelObject modelObjectInModel = dimTools.TransformDrawingToModel(partInDrawing); TSM.Part partInModel = modelObjectInModel as TSM.Part; CMrPart mrPart = null; if (CMrMainBeam.GetInstance().mPartInModel.Identifier.GUID == partInModel.Identifier.GUID) { mrPart = CMrMainBeam.GetInstance(); mMainBeam = CMrMainBeam.GetInstance(); mMainBeam.mPartInDrawing = partInDrawing; } else { mrPart = new CMrPart(partInModel, partInDrawing); } dimTools.InitMrPart(modelObjectInModel, mViewBase, mrPart); Point minXPoint = mrPart.GetMinXPoint(); Point maxXPoint = mrPart.GetMaxXPoint(); if (minXPoint.X > viewMaxPoint.X || maxXPoint.X < viewMinPoint.X) { continue; } Point minYPoint = mrPart.GetMinYPoint(); Point maxYPoint = mrPart.GetMaxYPoint(); if (minYPoint.Y > viewMaxPoint.Y || maxYPoint.Y < viewMinPoint.Y) { continue; } Point minZPoint = mrPart.GetMinZPoint(); Point maxZPoint = mrPart.GetMaxZPoint(); if (minZPoint.Z > viewMaxPoint.Z || maxZPoint.Z < viewMinPoint.Z) { continue; } AppendMrPart(mrPart); //2.获取部件中的所有螺钉组; List <BoltArray> boltArrayList = dimTools.GetAllBoltArray(partInModel); foreach (BoltArray boltArray in boltArrayList) { TSD.Bolt boltInDrawing = dicIdentifierBolt[boltArray.Identifier]; CMrBoltArray mrBoltArray = new CMrBoltArray(boltArray, boltInDrawing); dimTools.InitMrBoltArray(boltArray, mViewBase, mrBoltArray); mrPart.AppendMrBoltArray(mrBoltArray); InitMrBoltArray(mrBoltArray); } } CMrMarkManager.GetInstance().Clear(); }