コード例 #1
0
ファイル: Rotate_0.cs プロジェクト: wolinski/Tekla-scripts
        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();
        }
コード例 #2
0
 public static dynamic GetTSObject(MarkBase dynObject)
 {
     if (dynObject is null)
     {
         return(null);
     }
     return(dynObject.teklaObject);
 }
コード例 #3
0
        private void alignMarks(MarkBase baseMark, List <MarkBase> barMarks)
        {
            TSG.Point  basePoint         = baseMark.InsertionPoint;
            MarkBase[] sortedBarMarks    = barMarks.ToArray();
            Double[]   sortedBarMarkXpos = new Double[barMarks.Count];
            bool       reversed          = false;

            //create array of barmark positions for sorting
            for (int i = 0; i < sortedBarMarks.Length; i++)
            {
                TSDrg.LeaderLinePlacing placing = (LeaderLinePlacing)sortedBarMarks[i].Placing;
                //drawcircle(placing.StartPoint, sortedBarMarks[i].GetView());
                sortedBarMarkXpos[i] = placing.StartPoint.X;
            }

            //sort and check for position of the basemark, if basemark is at the end, then reverse order of marks for sorting
            Array.Sort(sortedBarMarkXpos, sortedBarMarks);
            if (basePoint.X > sortedBarMarkXpos.Last())
            {
                reversed = true;
                Array.Reverse(sortedBarMarks);
                Array.Reverse(sortedBarMarkXpos);
            }

            Double newInsertionYpos = basePoint.Y - PS.Default.usr_BarMarkYOffset;

            //move barmarks
            for (int i = 0; i < sortedBarMarks.Length; i++)
            {
                TSG.Point currBarMarkPosition = sortedBarMarks[i].InsertionPoint;
                double    newInsertionXpos    = 0.0;

                if (reversed == true)
                {
                    newInsertionXpos = sortedBarMarkXpos[i] + 75 + sortedBarMarks[i].GetObjectAlignedBoundingBox().Width / 2;
                }
                else
                {
                    newInsertionXpos = sortedBarMarkXpos[i] - 75 - sortedBarMarks[i].GetObjectAlignedBoundingBox().Width / 2;
                }

                TSG.Point  newInsertionPoint = new TSG.Point(newInsertionXpos, newInsertionYpos);
                TSG.Vector moveVector        = new TSG.Vector(
                    newInsertionPoint.X - currBarMarkPosition.X,
                    newInsertionPoint.Y - currBarMarkPosition.Y,
                    0.0);
                sortedBarMarks[i].MoveObjectRelative(moveVector);
                sortedBarMarks[i].Modify();

                newInsertionYpos -= PS.Default.usr_BarMarkYOffset;
            }
        }
コード例 #4
0
        private void btn_alignSeries_Click(object sender, EventArgs e)
        {
            resetForm();
            try
            {
                List <DrawingObject> usrObjects  = getObjectsFromSelection(typeof(MarkBase));
                List <MarkBase>      usrBarMarks = new List <MarkBase>();
                foreach (MarkBase mark in usrObjects)
                {
                    usrBarMarks.Add(mark);
                }
                MarkBase usrBaseMark = getSingleObjectFromUser <MarkBase>() as MarkBase;

                alignMarks(usrBaseMark, usrBarMarks);
            }
            catch (NullReferenceException nullEx)
            {
                lbl_info.Text = "Action interrupted.";
            }
        }
コード例 #5
0
 private void onDragEnd(MarkBase obj)
 {
     this.textBox_markerx.Text = obj.X.ToString();
     this.textBox_markery.Text = obj.Y.ToString();
 }