private DrawingEnumerator getSelectedDrawings() { DrawingHandler myDrawingHandler = new DrawingHandler(); DrawingEnumerator selectedDrawings = myDrawingHandler.GetDrawingSelector().GetSelected(); return selectedDrawings; }
public static void Run(Tekla.Technology.Akit.IScript akit) { //Idea is to get only objects in selected view ViewBase view; DrawingObject dob; var handler = new DrawingHandler(); Picker picker = handler.GetPicker(); picker.PickObject("Select any object in intended view", out dob, out view); var reinforcement = view.GetAllObjects(typeof(ReinforcementBase)); DrawingHandler.SetMessageExecutionStatus(DrawingHandler.MessageExecutionModeEnum.BY_COMMIT); foreach (ReinforcementBase reinf in reinforcement) { if (reinf.Hideable.IsHidden) { reinf.Hideable.ShowInDrawingView(); reinf.Modify(); } } DrawingHandler.SetMessageExecutionStatus(DrawingHandler.MessageExecutionModeEnum.INSTANT); handler.GetActiveDrawing().CommitChanges(); Tekla.Structures.Model.Operations.Operation.DisplayPrompt("Operation finished"); }
public static void Run(Tekla.Technology.Akit.IScript akit) { var handler = new DrawingHandler(); var selection = handler.GetDrawingObjectSelector().GetSelected(); PointList pointlist = new PointList(); List <double> X = new List <double>(); List <double> Y = new List <double>(); while (selection.MoveNext()) { if (selection.Current is Polygon) { Polygon polygon = selection.Current as Polygon; pointlist = polygon.Points; foreach (Point i in pointlist) { X.Add(i.X); Y.Add(i.Y); } } } int n = X.Count; double area = polygonArea(X, Y, n) / 1000000; string msg = String.Format("Polygon area is: {0} m2", Math.Round(area, 3)); System.Windows.Forms.MessageBox.Show(msg); }
public void DrawWith(DrawingHandler drawingHandler) { try { _oldObject = Native.SelectObject(_memDc, HBitmap); if (_graphics == null) { _graphics = Graphics.FromHdc(_memDc); _graphics.CompositingQuality = CompositingQuality.HighSpeed; _graphics.SmoothingMode = SmoothingMode.AntiAlias; } //using (_graphics) //{ drawingHandler(_graphics); //} } finally { Native.SelectObject(_memDc, _oldObject); //Native.ReleaseDC(IntPtr.Zero, screenDc); } }
/// <summary> /// 绘制上翼板左右倾斜时的零件标记; /// </summary> private void DrawPartMarkNormal() { mMrPartList.Remove(mMainBeam); DrawingHandler drawingHandler = new DrawingHandler(); TSD.UI.DrawingObjectSelector DS = drawingHandler.GetDrawingObjectSelector(); foreach (CMrPart mrPart in mMrPartList) { CMrMark mrMark = mrPart.GetBeamDoorFrontViewInfo().GetPartMarkNormal(); if (null == mrMark) { continue; } DS.SelectObject(mrPart.mPartInDrawing); } mMrPartList.Add(mMainBeam); DS.SelectObject(mMainBeam.mPartInDrawing); //绘制主梁上的螺钉标记; DrawMainBeamBoltMark(1); CDimTools.GetInstance().DrawMarkByMacro(); }
/// <summary> /// 绘制主梁与Y轴平行时的零件标记; /// </summary> private void DrawYParallelPartMark() { Vector zVector = new Vector(0, 0, 1); DrawingHandler drawingHandler = new DrawingHandler(); TSD.UI.DrawingObjectSelector DS = drawingHandler.GetDrawingObjectSelector(); foreach (CMrPart mrPart in mMrPartList) { Vector normal = mrPart.mNormal; if (!CDimTools.GetInstance().IsTwoVectorParallel(normal, zVector)) { continue; } DS.SelectObject(mrPart.mPartInDrawing); //2.对螺钉组进行标注; List <CMrBoltArray> mrBoltArrayList = mrPart.GetBoltArrayList(); foreach (CMrBoltArray mrBoltArray in mrBoltArrayList) { Vector boltNormal = mrBoltArray.mNormal; if (!CDimTools.GetInstance().IsTwoVectorParallel(boltNormal, zVector)) { continue; } DS.SelectObject(mrBoltArray.mBoltInDrawing); } } CDimTools.GetInstance().DrawMarkByMacro(); }
/// <summary> /// Executes a macro in the view. /// </summary> /// <param name="macroName">Macro name.</param> public void RunMacro(string macroName) { Model CurrentModel = new Model(); DrawingHandler DrawingHandler = new DrawingHandler(); if (DrawingHandler.GetActiveDrawing() != null) { macroName = @"..\drawings\" + macroName; } if (CurrentModel.GetConnectionStatus()) { if (!Path.HasExtension(macroName)) { macroName += ".cs"; } while (Operation.IsMacroRunning()) { Thread.Sleep(100); } Operation.RunMacro(macroName); } }
private static DrawingEnumerator getSelectedDrawings() { DrawingHandler myDrawingHandler = new DrawingHandler(); DrawingEnumerator selectedDrawings = myDrawingHandler.GetDrawingSelector().GetSelected(); return(selectedDrawings); }
private void button1_Click(object sender, EventArgs e) { DrawingHandler MyDrawingHandler = new DrawingHandler(); PrintAttributes printAttributes = new PrintAttributes(); printAttributes.Scale = 1.0; printAttributes.PrintToMultipleSheet = false; printAttributes.NumberOfCopies = 1; printAttributes.Orientation = DotPrintOrientationType.Auto; printAttributes.PrintArea = DotPrintAreaType.EntireDrawing; printAttributes.PrinterInstance = "PDF_594x420"; if (MyDrawingHandler.GetConnectionStatus()) { DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected(); while (SelectedDrawings.MoveNext()) { Drawing currentDrawing = SelectedDrawings.Current; //Get print attributes: we need only PrinterInstance MyDrawingHandler.PrintDrawing(currentDrawing, printAttributes); } } }
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> /// 绘制主梁法向朝X方向的零件标记; /// </summary> private void DrawXVectorPartMark() { DrawingHandler drawingHandler = new DrawingHandler(); TSD.UI.DrawingObjectSelector DS = drawingHandler.GetDrawingObjectSelector(); foreach (CMrPart mrPart in mMrPartList) { Vector vector = mrPart.mNormal; if (!CDimTools.GetInstance().IsTwoVectorParallel(vector, new Vector(0, 0, 1))) { continue; } if (!mrPart.IsHaveBolt()) { continue; } DS.SelectObject(mrPart.mPartInDrawing); //2.绘制螺钉组标记; List <CMrBoltArray> mrBoltArrayList = mrPart.GetBoltArrayList(); foreach (CMrBoltArray mrBoltArray in mrBoltArrayList) { if (CDimTools.GetInstance().IsTwoVectorParallel(mrBoltArray.mNormal, new Vector(0, 0, 1))) { DS.SelectObject(mrBoltArray.mBoltInDrawing); } } } CDimTools.GetInstance().DrawMarkByMacro(); }
public static void CreateStraightDimension(double distance) { PointList pointList = new PointList(); ViewBase view; Point firstPoint; Point SecondPoint; Picker picker = new DrawingHandler().GetPicker(); picker.PickTwoPoints("Pick first point", "Pick second point", out firstPoint, out SecondPoint, out view); pointList.Add(firstPoint); pointList.Add(SecondPoint); Vector direction = new Vector(firstPoint.Y - SecondPoint.Y, SecondPoint.X - firstPoint.X, firstPoint.Z); StraightDimensionSet sds = new StraightDimensionSetHandler().CreateDimensionSet(view, pointList, direction, distance); sds.Attributes.LeftLowerTag.Add(new TextElement("LeftLow")); sds.Attributes.LeftMiddleTag.Add(new TextElement("LeftMiddle")); sds.Attributes.LeftUpperTag.Add(new TextElement("LeftUpper")); sds.Attributes.RightLowerTag.Add(new TextElement("RightLow")); sds.Attributes.RightMiddleTag.Add(new TextElement("RightMiddle")); sds.Attributes.RightUpperTag.Add(new TextElement("RightUpper")); bool isOk = sds.Modify(); }
static void PickPoints(int numberToPick, ref PointList pointList, ref ViewBase view) { if (Repeat) { view = lastView; foreach (Point point in lastPoints) { pointList.Add(new Point(point)); } return; } var picker = new DrawingHandler().GetPicker(); int ii = numberToPick; lastPoints.Clear(); while (--ii != -1) { Point point; picker.PickPoint("Pick point", out point, out view); pointList.Add(point); lastPoints.Add(new Point(point)); } lastView = view; }
public static void Run(Tekla.Technology.Akit.IScript akit) { var handler = new DrawingHandler(); var selection = handler.GetDrawingObjectSelector().GetSelected(); DrawingHandler.SetMessageExecutionStatus(DrawingHandler.MessageExecutionModeEnum.BY_COMMIT); double rotang = 0; while (selection.MoveNext()) { if (selection.Current is MarkBase) { MarkBase mark = selection.Current as MarkBase; mark.Attributes.RotationAngle = rotang; mark.Attributes.PlacingAttributes.IsFixed = true; mark.Modify(); } else { Text text = selection.Current as Text; text.Attributes.Angle = rotang; text.Attributes.PlacingAttributes.IsFixed = true; text.Modify(); } } DrawingHandler.SetMessageExecutionStatus(DrawingHandler.MessageExecutionModeEnum.INSTANT); handler.GetActiveDrawing().CommitChanges(); }
/// <summary> /// 绘制主梁法向朝Y方向的零件标记; /// </summary> private void DrawYVectorPartMark() { BuildLeftAndRightPart(); DrawingHandler drawingHandler = new DrawingHandler(); TSD.UI.DrawingObjectSelector DS = drawingHandler.GetDrawingObjectSelector(); foreach (CMrPart mrPart in mMrPartList) { Vector normal = mrPart.mNormal; //如果零件的法向量与Z轴平行; if (CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(0, 0, 1))) { DS.SelectObject(mrPart.mPartInDrawing); List <CMrBoltArray> mrBoltArrayList = mrPart.GetBoltArrayList(); foreach (CMrBoltArray mrBoltArray in mrBoltArrayList) { if (CDimTools.GetInstance().IsTwoVectorParallel(mrBoltArray.mNormal, new Vector(0, 0, 1))) { DS.SelectObject(mrBoltArray.mBoltInDrawing); } } } else if (CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(1, 0, 0))) { DS.SelectObject(mrPart.mPartInDrawing); } } CDimTools.GetInstance().DrawMarkByMacro(); }
public override List <InputDefinition> DefineInput() { // // This is an example for selecting two points; change this to suit your needs. // List <InputDefinition> inputs = new List <InputDefinition>(); DrawingHandler drawingHandler = new DrawingHandler(); if (drawingHandler.GetConnectionStatus()) { Picker picker = drawingHandler.GetPicker(); ViewBase view = null; PointList points = new PointList(); StringList prompts = new StringList(); prompts.Add("Pick first point"); prompts.Add("Pick second point"); picker.PickPoints(2, prompts, out points, out view); inputs.Add(InputDefinitionFactory.CreateInputDefinition(view, points)); } return(inputs); }
private void btnShow_Click(object sender, EventArgs e) { lblMessage.Text = ""; DrawingHandler MyDrawingHandler = new DrawingHandler(); int nDrawings = 0; if (MyDrawingHandler.GetConnectionStatus()) { DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected(); int iCounter = 0; while (SelectedDrawings.MoveNext()) { iCounter++; } nDrawings = iCounter; } progressBar1.Minimum = 0; progressBar1.Maximum = nDrawings; progressBar1.Step = 1; if (MyDrawingHandler.GetConnectionStatus()) { DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected(); int iCounter = 1; while (SelectedDrawings.MoveNext()) { progressBar1.PerformStep(); Drawing currentDrawing = SelectedDrawings.Current; ListViewItem currentRow = new ListViewItem(currentDrawing.Mark); currentRow.SubItems.Add(currentDrawing.Name); string strHeight = currentDrawing.Layout.SheetSize.Height.ToString(); string strWidth = currentDrawing.Layout.SheetSize.Width.ToString(); currentRow.SubItems.Add(strWidth + "x" + strHeight); string PrinterInstance = "QP_" + strWidth + "x" + strHeight; //TSM.Operations.Operation.DisplayPrompt("Drawing " + currentDrawing.Name + ": " + iCounter.ToString() + "/" + nDrawings.ToString()); lblMessage.Text = ""; lblMessage.Text = "Drawing " + currentDrawing.Name + ": " + iCounter.ToString() + "/" + nDrawings.ToString(); iCounter++; if (chkPDF.Checked) { WriteCurrentDrawing(currentDrawing, PrinterInstance); } if (chkDWG.Checked) { PrintToFile(currentDrawing); } } } //TSM.Operations.Operation.DisplayPrompt("Write command completed!"); lblMessage.Text = "Write command completed!"; progressBar1.Value = 0; }
public static void Run(Tekla.Technology.Akit.IScript akit) { try { Model model = new Model(); DrawingHandler drawingHandler = new DrawingHandler(); ArrayList ModelObjectArray = new ArrayList(); if (drawingHandler.GetActiveDrawing() != null) { DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected(); while (drawingObjectEnum.MoveNext()) { Tekla.Structures.Drawing.ModelObject dModelObject = (Tekla.Structures.Drawing.ModelObject)drawingObjectEnum.Current; ModelObjectArray.Add(model.SelectModelObject(dModelObject.ModelIdentifier)); } } else { ModelObjectEnumerator modelObjectEnum = model.GetModelObjectSelector().GetSelectedObjects(); while (modelObjectEnum.MoveNext()) { Tekla.Structures.Model.ModelObject modelObject = (Tekla.Structures.Model.ModelObject)modelObjectEnum.Current; ModelObjectArray.Add(model.SelectModelObject(modelObject.Identifier)); } } Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector(); modelObjectSelector.Select(ModelObjectArray); akit.Callback("acmdCreateViewBySelectedObjectsExtrema", "", "main_frame"); akit.Callback("acmd_interrupt", "", "main_frame"); } catch { } }
public static void Run(Tekla.Technology.Akit.IScript akit) { try { Model model = new Model(); DrawingHandler drawingHandler = new DrawingHandler(); ArrayList ModelObjectArray = new ArrayList(); if (drawingHandler.GetActiveDrawing() != null) { DrawingObjectEnumerator drawingObjectEnum = drawingHandler.GetDrawingObjectSelector().GetSelected(); if (drawingObjectEnum.GetSize() > 0) { while (drawingObjectEnum.MoveNext()) { Tekla.Structures.Drawing.ModelObject dModelObject = (Tekla.Structures.Drawing.ModelObject)drawingObjectEnum.Current; ModelObjectArray.Add(model.SelectModelObject(dModelObject.ModelIdentifier)); } } Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector(); modelObjectSelector.Select(ModelObjectArray); } akit.Callback("acmdZoomToSelected", "", "main_frame"); } catch { } }
/// <summary> /// Connects the drawing interface. /// </summary> /// <returns>A boolean value indicating whether the interface is connected.</returns> public bool Connect() { try { if (this.connection == null) { this.connection = new TSDrawingConnection(); SeparateThread.Execute( delegate { TSDrawingConnection.SetMessageExecutionStatus( TSDrawingConnection.MessageExecutionModeEnum.BY_COMMIT); }); } if (this.events == null) { this.events = new TSDrawingEvents(); this.RegisterEvents(); } } catch (Exception ex) { Debug.WriteLine(ex); this.Disconnect(); } return(this.IsActive); }
/// <summary> /// 绘制主梁上螺钉的标记; /// </summary> public void DrawMainPartBoltMark() { CBeamTopViewSetting beamTopViewSetting = CBeamDimSetting.GetInstance().mTopViewSetting; bool bNeedMark = beamTopViewSetting.FindMarkValueByName(CBeamTopViewSetting.mstrBolt); if (!bNeedMark) { return; } List <CMrBoltArray> mrBoltArrayList = mMainBeam.GetBoltArrayList(); Vector zVector = new Vector(0, 0, 1); DrawingHandler drawingHandler = new DrawingHandler(); TSD.UI.DrawingObjectSelector DS = drawingHandler.GetDrawingObjectSelector(); foreach (CMrBoltArray mrBoltArray in mrBoltArrayList) { //只有与Z轴平行的螺钉组才进行编号; if (!CDimTools.GetInstance().IsTwoVectorParallel(zVector, mrBoltArray.mNormal)) { continue; } DS.SelectObject(mrBoltArray.mBoltInDrawing); } CDimTools.GetInstance().DrawMarkByMacro(); }
/// <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 WorkerThread_DoWork(object sender, DoWorkEventArgs e) { DrawingHandler dh = new DrawingHandler(); List <Drawing> drawings = Com.EnumtoArrayDr(dh.GetDrawingSelector().GetSelected()).OfType <TSD.Drawing>().ToList().OrderBy(x => x.Title1).ToList(); int count = 1; foreach (TSD.Drawing Dr in drawings) { string msg = "Total Drawings" + " - Total : " + drawings.Count.ToString() + " Remaining : " + (drawings.Count - count); workerThread.ReportProgress(count, msg); if (workerThread.CancellationPending) { e.Cancel = true; break; } try { if (dh.SetActiveDrawing(Dr, true)) { CD.ProceedDrawing(Dr, chkDeleteDim.Checked, lbCode); dh.SaveActiveDrawing(); dh.CloseActiveDrawing(true); } } catch (Exception ex) { } count++; } }
/// <summary> /// 绘制法向与Z轴平行的中间零部件上螺钉的标记; /// </summary> public void DrawZNormalMiddleBoltMark() { DrawingHandler drawingHandler = new DrawingHandler(); TSD.UI.DrawingObjectSelector DS = drawingHandler.GetDrawingObjectSelector(); foreach (CMrPart mrPart in mMrPartList) { Vector normal = mrPart.mNormal; double minX = mrPart.GetMinXPoint().X; double maxX = mrPart.GetMaxXPoint().X; if (!CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(0, 0, 1)) || !mrPart.IsHaveBolt()) { continue; } if (CDimTools.GetInstance().CompareTwoDoubleValue(minX, 0) >= 0 || CDimTools.GetInstance().CompareTwoDoubleValue(maxX, 0) <= 0) { continue; } List <CMrBoltArray> mrBoltArrayList = mrPart.GetBoltArrayList(); foreach (CMrBoltArray mrBoltArray in mrBoltArrayList) { if (!CDimTools.GetInstance().IsTwoVectorParallel(mrBoltArray.mNormal, new Vector(0, 0, 1))) { continue; } DS.SelectObject(mrBoltArray.mBoltInDrawing); } } CDimTools.GetInstance().DrawMarkByMacro(); }
public static void Run(Tekla.Technology.Akit.IScript akit) { Model model = new Model(); ModelInfo modelInfo = model.GetInfo(); string drawingsFolderPath = modelInfo.ModelPath + @"\drawings\"; DrawingHandler drawingHandler = new DrawingHandler(); DrawingEnumerator drawingEnum = drawingHandler.GetDrawingSelector().GetSelected(); if (drawingEnum.GetSize() == 1) { while (drawingEnum.MoveNext()) { System.Reflection.PropertyInfo propertyInfo = drawingEnum.Current.GetType().GetProperty("Identifier", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); object value = propertyInfo.GetValue(drawingEnum.Current, null); Identifier Identifier = (Identifier)value; Beam tempBeam = new Beam(); tempBeam.Identifier = Identifier; string drawingFile = ""; bool result = tempBeam.GetReportProperty("DRAWING_PLOT_FILE", ref drawingFile); System.IO.FileInfo file = new System.IO.FileInfo(drawingsFolderPath + drawingFile); if (file.Exists) { System.Diagnostics.Process.Start("Explorer.exe", @"/select, " + file.FullName); } } } }
public static void Run(Tekla.Technology.Akit.IScript akit) { Model model = new Model(); //Tekla.Structures.Model.UI.ModelObjectSelector modelObjectSelector = new Tekla.Structures.Model.UI.ModelObjectSelector(); DrawingHandler dh = new DrawingHandler(); DrawingObjectEnumerator doe = dh.GetDrawingObjectSelector().GetSelected(); while (doe.MoveNext()) { string CONN_CODE_END1 = "", CONN_CODE_END2 = ""; if (doe.Current is Tekla.Structures.Drawing.Part) { Tekla.Structures.Drawing.Part dPart = (Tekla.Structures.Drawing.Part)doe.Current; Tekla.Structures.Model.Part mPart = (Tekla.Structures.Model.Part)model.SelectModelObject((Identifier)dPart.ModelIdentifier); if (mPart is Beam) { Beam beam = (Beam)mPart; ViewBase view = dPart.GetView(); mPart.GetUserProperty("CONN_CODE_END1", ref CONN_CODE_END1); mPart.GetUserProperty("CONN_CODE_END2", ref CONN_CODE_END2); if (CONN_CODE_END1 != "") { Tekla.Structures.Drawing.Text text = new Tekla.Structures.Drawing.Text(view, beam.StartPoint + new Point(200, 200), CONN_CODE_END1, new LeaderLinePlacing(beam.StartPoint)); text.Insert(); } if (CONN_CODE_END2 != "") { Tekla.Structures.Drawing.Text text = new Tekla.Structures.Drawing.Text(view, beam.EndPoint + new Point(200, 200), CONN_CODE_END2, new LeaderLinePlacing(beam.EndPoint)); text.Insert(); } } } } }
public static dynamic GetTSObject(DrawingHandler 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培训石头哥提示您标注结束,感谢您对智能标注系统的支持。"); }
public Form1() { InitializeComponent(); base.InitializeForm(); FootingSize.Text = "1500"; MyModel = new Model(); SteelMaterials = new List <MaterialItem>(); MyDrawingHandler = new DrawingHandler(); }
public void ReturnFullNameToTextFile() { string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); string document = "drawings.csv"; DrawingHandler drawingHandler = new DrawingHandler(); DrawingEnumerator selectedDrawings = drawingHandler.GetDrawingSelector().GetSelected(); string result = string.Empty; string title1 = string.Empty; string title2 = string.Empty; string number = string.Empty; string projectNumber = string.Empty; string drType = string.Empty; while (selectedDrawings.MoveNext()) { var currentDrawingInfo = new DrawingInfo(); Drawing drawing = selectedDrawings.Current; currentDrawingInfo.BaseName = drawing.GetType() + drawing.Mark; currentDrawingInfo.DrawingName = drawing.Name; drawing.GetUserProperty("PM_DRAWING_TITLE_1", ref title1); drawing.GetUserProperty("PM_DRAWING_TITLE_2", ref title2); drawing.GetUserProperty("PM_DRAWING_TYPE", ref drType); drawing.GetUserProperty("Nr_dokumentu", ref number); drawing.GetUserProperty("Nr_projektu", ref projectNumber); currentDrawingInfo.DrawingTitle1 = title1; currentDrawingInfo.DrawingTitle2 = title2; currentDrawingInfo.DrawingType = drType; currentDrawingInfo.DrawingTitle2Expanded = this.ReturnFullTitle(title2); currentDrawingInfo.DrawingProjectNumber = projectNumber; currentDrawingInfo.DrawingNumber = number; result += currentDrawingInfo.ToString() + "\n"; } var lines = result.Split('\n'); using (StreamWriter outputFile = new StreamWriter(path + @"\" + document)) { foreach (string line in lines) { outputFile.WriteLine(line); } } MessageBox.Show("All done!"); }
private void btnShow_Click(object sender, EventArgs e) { lblMessage.Text = ""; DrawingHandler MyDrawingHandler = new DrawingHandler(); int nDrawings = 0; if (MyDrawingHandler.GetConnectionStatus()) { DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected(); int iCounter = 0; while (SelectedDrawings.MoveNext()) { iCounter++; } nDrawings = iCounter; } progressBar1.Minimum = 0; progressBar1.Maximum = nDrawings; progressBar1.Step = 1; if (MyDrawingHandler.GetConnectionStatus()) { DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected(); int iCounter = 1; while (SelectedDrawings.MoveNext()) { progressBar1.PerformStep(); Drawing currentDrawing = SelectedDrawings.Current; ListViewItem currentRow = new ListViewItem(currentDrawing.Mark); currentRow.SubItems.Add(currentDrawing.Name); string strHeight = currentDrawing.Layout.SheetSize.Height.ToString(); string strWidth = currentDrawing.Layout.SheetSize.Width.ToString(); currentRow.SubItems.Add(strWidth + "x" + strHeight); string PrinterInstance = "QP_" + strWidth + "x" + strHeight; //TSM.Operations.Operation.DisplayPrompt("Drawing " + currentDrawing.Name + ": " + iCounter.ToString() + "/" + nDrawings.ToString()); lblMessage.Text = ""; lblMessage.Text = "Drawing " + currentDrawing.Name + ": " + iCounter.ToString() + "/" + nDrawings.ToString(); iCounter++; if (chkPDF.Checked) WriteCurrentDrawing(currentDrawing, PrinterInstance); if (chkDWG.Checked) PrintToFile(currentDrawing); } } //TSM.Operations.Operation.DisplayPrompt("Write command completed!"); lblMessage.Text = "Write command completed!"; progressBar1.Value = 0; }
private void SelectedDrawing_Click(object sender, EventArgs e) { this.progressBar1.Value = 0; DrawingHandler drawingHandler = new DrawingHandler(); if (drawingHandler.GetConnectionStatus()) { DrawingEnumerator selected = drawingHandler.GetDrawingSelector().GetSelected(); this.RenameDrawingTitle(selected); } }
public static void Run(Tekla.Technology.Akit.IScript akit) { string fileName = @"Reports/test.csv"; try { if (File.Exists(fileName)) { File.Delete(fileName); } } catch { } int drawingNr = 1; DrawingHandler myDrawingHandler = new DrawingHandler(); DrawingEnumerator selectedDrawings = myDrawingHandler.GetDrawingSelector().GetSelected(); var csv = new StringBuilder(); foreach (Drawing currentDrawing in selectedDrawings) { string name = currentDrawing.Title1; string nr = currentDrawing.Name; DateTime dmtDate = new DateTime(1970, 1, 1); int dmtDateSeconds = 0; currentDrawing.GetUserProperty("DR_RESP_DSGNR_DATE", ref dmtDateSeconds); dmtDate = dmtDate.AddSeconds(dmtDateSeconds); DateTime revisionDate = new DateTime(1970, 1, 1); int revisionDateSeconds = 0; string revisionMark = ""; DateLastMark(currentDrawing, out revisionMark, out revisionDateSeconds); revisionDate = revisionDate.AddSeconds(revisionDateSeconds); string newLine = string.Format("{0} ;{1} ;{2} ;{3} ;{4} ;", name, nr, revisionMark, dmtDate.ToShortDateString(), revisionDate.ToShortDateString()); csv.AppendLine(newLine); //MessageBox.Show(newLine); drawingNr++; } try { File.WriteAllText(fileName, csv.ToString()); } catch { MessageBox.Show("write failed"); } }
public static void DateLastMark(Drawing croquis, out string revisionMark, out int revisionDateSeconds) { DrawingHandler drawingHandler = new DrawingHandler(); Type drawingType = croquis.GetType(); PropertyInfo propertyInfo = drawingType.GetProperty("Identifier", BindingFlags.Instance | BindingFlags.NonPublic); object value = propertyInfo.GetValue(croquis, null); Identifier identifier = (Identifier)value; Beam fakeBeam = new Beam { Identifier = identifier }; revisionMark = ""; fakeBeam.GetReportProperty("REVISION.LAST_MARK", ref revisionMark); revisionDateSeconds = 0; fakeBeam.GetReportProperty("REVISION.LAST_DATE_CREATE", ref revisionDateSeconds); }
public static void Run(Tekla.Technology.Akit.IScript akit) { DrawingHandler myDrawingHandler = new DrawingHandler(); if (myDrawingHandler.GetConnectionStatus()) { DrawingObjectEnumerator selectedObjects = myDrawingHandler.GetDrawingObjectSelector().GetSelected(); while (selectedObjects.MoveNext()) { if (selectedObjects.Current is StraightDimensionSet) { StraightDimensionSet curDimSet = selectedObjects.Current as TSD.StraightDimensionSet; TSD.ContainerElement LUT = curDimSet.Attributes.LeftUpperTag as TSD.ContainerElement; TSD.ContainerElement RUT = curDimSet.Attributes.RightUpperTag as TSD.ContainerElement; curDimSet.Attributes.LeftUpperTag = RUT; curDimSet.Attributes.RightUpperTag = LUT; curDimSet.Modify(); } } } }
public CircleOpening(DrawingHandler drawingHandler) { _drawingHandler = drawingHandler; }
private bool PrintToFile(Drawing currentDrawing) { bool Result = false; double scale = 1.0; if (rbtnSCALE.Checked) { //get scale of the first view //scale = GetScaleFromTheView(); } DrawingHandler MyDrawingHandler = new DrawingHandler(); PrintAttributes printAttributes = new PrintAttributes(); printAttributes.Scale = scale; printAttributes.PrintToMultipleSheet = false; printAttributes.NumberOfCopies = 1; printAttributes.Orientation = DotPrintOrientationType.Auto; printAttributes.PrintArea = DotPrintAreaType.EntireDrawing; printAttributes.PrinterInstance = "DWG"; string DrawingType = GetDrawingTypeCharacter(currentDrawing); /* set XS_DRAWING_PLOT_FILE_DIRECTORY=.\PlotFiles set XS_DRAWING_PLOT_FILE_NAME_A=%%UDA:PROJECT_USERFIELD_1%%-%%NAME.-%%%%REV_MARK?_Rev%%%%REV_MARK%% set XS_DRAWING_PLOT_FILE_NAME_W=%%UDA:PROJECT_USERFIELD_1%%-%%NAME.-%%%%REV_MARK?_Rev%%%%REV_MARK%% set XS_DRAWING_PLOT_FILE_NAME_C=%%UDA:PROJECT_USERFIELD_1%%-%%NAME.-%%%%REV_MARK?_Rev%%%%REV_MARK%% set XS_DRAWING_PLOT_FILE_NAME_G=%%UDA:PROJECT_USERFIELD_1%%-%%TITLE.-%%%%REV_MARK?_Rev%%%%REV_MARK%% set XS_DRAWING_PLOT_FILE_NAME_M=%%UDA:PROJECT_USERFIELD_1%%-%%TITLE.-%%%%REV_MARK?_Rev%%%%REV_MARK%% */ //string output_path = Environment.GetEnvironmentVariable("XS_DRAWING_PLOT_FILE_DIRECTORY"); string output_path = "c:\\pdf"; string output_file = "out.dwg"; Model CurrentModel = new Model(); ProjectInfo ProjectInfo = CurrentModel.GetProjectInfo(); if (CurrentModel.GetConnectionStatus()) { output_file = ProjectInfo.ProjectNumber; } string DrawingName = ""; //TSM.Operations.Operation.DisplayPrompt("DrawingType" + DrawingType); switch (DrawingType) { case "A": //output_file = Environment.GetEnvironmentVariable("XS_DRAWING_PLOT_FILE_NAME_A"); case "W": //output_file = Environment.GetEnvironmentVariable("XS_DRAWING_PLOT_FILE_NAME_W"); case "C": //output_file = Environment.GetEnvironmentVariable("XS_DRAWING_PLOT_FILE_NAME_C"); DrawingName = currentDrawing.Mark; DrawingName = RemoveBrackets(DrawingName); break; case "G": //output_file = Environment.GetEnvironmentVariable("XS_DRAWING_PLOT_FILE_NAME_G"); case "M": //output_file = Environment.GetEnvironmentVariable("XS_DRAWING_PLOT_FILE_NAME_M"); DrawingName = currentDrawing.Name; break; default: goto case "A"; } DrawingName = DrawingName.Replace('.', '-'); output_file += "-" + DrawingName + ".dwg"; if (!String.IsNullOrEmpty(output_path) && !String.IsNullOrEmpty(output_file)) Result = MyDrawingHandler.PrintDrawing(currentDrawing, printAttributes, output_path + "\\" + output_file); return Result; }
private bool WriteCurrentDrawing(Drawing currentDrawing, string PrinterInstance) { bool Result = false; DrawingHandler MyDrawingHandler = new DrawingHandler(); PrintAttributes printAttributes = new PrintAttributes(); printAttributes.Scale = 1.0; printAttributes.PrintToMultipleSheet = false; printAttributes.NumberOfCopies = 1; printAttributes.Orientation = DotPrintOrientationType.Auto; printAttributes.PrintArea = DotPrintAreaType.EntireDrawing; printAttributes.PrinterInstance = PrinterInstance; Result = MyDrawingHandler.PrintDrawing(currentDrawing, printAttributes); return Result; }
public static void Init(GraphicsDeviceManager gdm, ContentManager cm) { _graphicsManager = gdm; _contentManager = cm; _currentScreen = new Stack<Screen>(); //Set Events Drawing += new DrawingHandler(Draw); Exiting += new EventHandler(Exit); Loading += new LoadingHandler(Load); PoppingScreen += new PoppingScreenHandler(PopScreen); PushingScreen += new PushingScreenHandler(PushScreen); ReloadingScreen += new ReloadingScreenHandler(ReloadScreen); Unloading += new EventHandler(Unload); Updating += new UpdatingHandler(Update); }
public RectOpening(DrawingHandler drawingHandler) { _drawingHandler = drawingHandler; }
public static void Run(Tekla.Technology.Akit.IScript akit) { DrawingHandler drawingHandler = new DrawingHandler(); if (drawingHandler.GetConnectionStatus()) { CircleOpening program = new CircleOpening(drawingHandler); program.main(); } else { MessageBox.Show("Ei leia joonist"); } }
private void PaintBlueRectangle() { ArrayList ItemList = new ArrayList(); Drawing ActivatedDrawing; bool DrawingFound = false; DrawingHandler MyDrawingHandler = new DrawingHandler(); if (MyDrawingHandler.GetConnectionStatus()) { DrawingEnumerator SelectedDrawings = MyDrawingHandler.GetDrawingSelector().GetSelected(); while (SelectedDrawings.MoveNext() && !DrawingFound) { ActivatedDrawing = SelectedDrawings.Current; double sheetHeight = ActivatedDrawing.Layout.SheetSize.Height; double sheetWidth = ActivatedDrawing.Layout.SheetSize.Width; double minX = 0.0; double minY = 0.0; double maxX = sheetWidth; double maxY = sheetHeight; TSD.ContainerView currentSheet = ActivatedDrawing.GetSheet(); TSD.DrawingObjectEnumerator viewEnum = currentSheet.GetViews(); while (viewEnum.MoveNext()) { TSD.View currentView = viewEnum.Current as TSD.View; RectangleBoundingBox ViewAABB = currentView.GetAxisAlignedBoundingBox(); double rbbx = ViewAABB.UpperLeft.X; double rbby = ViewAABB.UpperLeft.Y; double rbbW = ViewAABB.Width; double rbbH = ViewAABB.Height; double viewScale = currentView.Attributes.Scale; //MessageBox.Show("rbbx=" + Convert.ToString(rbbx) + ", rbby=" + Convert.ToString(rbby) + ", rbbW=" + Convert.ToString(rbbW) + ", rbbH=" + Convert.ToString(rbbH)); ItemList.Add(rbbx); ItemList.Add(rbby); ItemList.Add(rbbW); ItemList.Add(rbbH); ItemList.Add(viewScale); if (ViewAABB.UpperLeft.X < minX) { minX = ViewAABB.UpperLeft.X; } if (ViewAABB.LowerLeft.Y < minY) { minY = ViewAABB.LowerLeft.Y; } if (ViewAABB.UpperRight.X > maxX) { maxX = ViewAABB.UpperRight.X; } if (ViewAABB.UpperLeft.Y > maxY) { maxY = ViewAABB.UpperLeft.Y; } } double bufferWidth = Math.Abs(minX) + maxX; double bufferHeight = Math.Abs(minY) + maxY; //panel1.Width = (int)Convert.ToInt32(bufferWidth); //panel1.Height = (int)Convert.ToInt32(bufferHeight); //btnPreview2.Location = new Point(panel1.Width - btnPreview2.Size.Width - 15, panel1.Height + btnPreview2.Size.Height); //checkBox1.Location = new Point((int)Convert.ToInt32(0.2 * panel1.Width), panel1.Height + checkBox1.Size.Height + 20); this.Size = new System.Drawing.Size(panel1.Width + 20, panel1.Height + btnPreview2.Size.Height + 20); buffer = new Bitmap((int)Convert.ToInt32(bufferWidth), (int)Convert.ToInt32(bufferHeight)); //////////////////////////////////////////////////////////////////////////////////////// /* double scaleFactorX = 297 / bufferWidth; double scaleFactorY = 210 / bufferHeight; double scaleFactor = 0; if (scaleFactorX <= scaleFactorY) { scaleFactor = scaleFactorX; }else{ scaleFactor=scaleFactorY; } panel1.Width = (int)Convert.ToInt32(bufferWidth * scaleFactor); panel1.Height = (int)Convert.ToInt32(bufferHeight * scaleFactor); btnPreview2.Location = new Point(panel1.Width - btnPreview2.Size.Width - 15, panel1.Height + btnPreview2.Size.Height); checkBox1.Location = new Point((int)Convert.ToInt32(0.2*panel1.Width), panel1.Height + checkBox1.Size.Height + 20); this.Size = new System.Drawing.Size(panel1.Width + 20, panel1.Height + btnPreview2.Size.Height + 20); buffer = new Bitmap((int)Convert.ToInt32(bufferWidth * scaleFactor), (int)Convert.ToInt32(bufferHeight * scaleFactor)); */ ////////////////////////////////////////////////////////////////////////////////////// // Draw blue rectangle into the buffer using (Graphics bufferGrph = Graphics.FromImage(buffer)) { Pen drwPen = new Pen(Color.DarkBlue, 4); bufferGrph.Clear(Color.White); System.Drawing.Rectangle myRectangle = new System.Drawing.Rectangle((int)Convert.ToInt32(Math.Abs(minX)), (int)Convert.ToInt32(Math.Abs(maxY)-sheetHeight), (int)Convert.ToInt32(sheetWidth), (int)Convert.ToInt32(sheetHeight)); bufferGrph.DrawRectangle(drwPen, myRectangle); for (int i = 0; i <= ItemList.Count / 5 - 1; i++) { int w = (int)Convert.ToInt32(ItemList[5 * i + 2]); int h = (int)Convert.ToInt32(ItemList[5 * i + 3]) ; int x = (int)Convert.ToInt32(ItemList[5 * i]) + (int)Convert.ToInt32(Math.Abs(minX)); int y = (int)Convert.ToInt32(Math.Abs(maxY) - Convert.ToDouble(ItemList[5 * i + 1])); bufferGrph.DrawRectangle(new Pen(Color.Blue, 2), x, y, w, h); if (checkBox1.Checked) { int sx, sy; // Create string to draw. String drawString = "Scale:" + Convert.ToString(ItemList[5 * i + 4]); // Create font and brush. Font drawFont = new Font("Arial", 8); SolidBrush drawBrush = new SolidBrush(Color.Black); // Set format of string. StringFormat drawFormat = new StringFormat(); if (h > w) { // Create point for upper-left corner of drawing. sx = x + (int)(0.5 * w); sy = y + (int)(0.25 * h); drawFormat.FormatFlags = StringFormatFlags.DirectionVertical; } else { // Create point for upper-left corner of drawing. sx = x + (int)(0.25 * w); sy = y + (int)(0.5 * h); drawFormat.FormatFlags = StringFormatFlags.DisplayFormatControl; } // Draw string to screen. bufferGrph.DrawString(drawString, drawFont, drawBrush, sx, sy, drawFormat); } } //Be sure the dispose of the pench drwPen.Dispose(); } // Invalidate the panel. This will lead to a call of 'panel1_Paint' panel1.Invalidate(); //only one loop DrawingFound = true; } } }