예제 #1
0
 public override void CreateExp(double x, int xNumber, double y, int yNumber, bool zDatum)
 {
     base.CreateDefault(zDatum);
     ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveX"), "-(xNCopies-1)*xPitchDistance/2");
     if (zDatum)
     {
         ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveX"), "-(xNCopies-2)*xPitchDistance/2");
         ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveBoxX"), "-(xNCopies)*xPitchDistance/2");
     }
 }
예제 #2
0
 public static void SetAttrExp()
 {
     ExpressionUtils.SetAttrExp("PitchX", "PitchX", NXObject.AttributeType.Real);
     ExpressionUtils.SetAttrExp("PitchXNum", "PitchXNum", NXObject.AttributeType.Integer);
     ExpressionUtils.SetAttrExp("PitchY", "PitchY", NXObject.AttributeType.Real);
     ExpressionUtils.SetAttrExp("PitchYNum", "PitchYNum", NXObject.AttributeType.Integer);
     ExpressionUtils.SetAttrExp("PreparationX", "Preparation", NXObject.AttributeType.Integer, 0);
     ExpressionUtils.SetAttrExp("PreparationY", "Preparation", NXObject.AttributeType.Integer, 1);
     ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("xNCopies"), "PitchXNum");
     ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("yNCopies"), "PitchYNum");
     ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("xPitchDistance"), "PitchX");
     ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("yPitchDistance"), "-PitchY");
 }
예제 #3
0
        private static void SetMoveExpForNoDatum(double anlge)
        {
            Expression moveXExp = ExpressionUtils.CreateExp("moveX=0", "Number");
            Expression moveYExp = ExpressionUtils.CreateExp("moveY=0", "Number");

            ExpressionUtils.CreateExp("moveZ=0", "Number");
            ExpressionUtils.EditExp(moveXExp, "-(xNCopies-1)*xPitchDistance/2");
            if (UMathUtils.IsEqual(anlge, Math.PI))
            {
                ExpressionUtils.EditExp(moveYExp, "(yNCopies-1)*yPitchDistance/2");
            }
            else
            {
                ExpressionUtils.EditExp(moveYExp, "-(yNCopies-1)*yPitchDistance/2");
            }
        }
예제 #4
0
 public override void CreateExp(double x, int xNumber, double y, int yNumber, bool zDatum)
 {
     base.CreateDefault(zDatum);
     ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveX"), "-(xNCopies-1)*xPitchDistance/2");
     ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveY"), "-(yNCopies-1)*yPitchDistance/2");
     if (zDatum)
     {
         double[] pre = GetPreparation(x, xNumber, y, yNumber, zDatum);
         if (pre[0] >= pre[1])
         {
             ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveX"), "-(xNCopies-2)*xPitchDistance/2");
             ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveBoxX"), "-(xNCopies)*xPitchDistance/2");
         }
         else
         {
             ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveY"), "-(yNCopies-2)*yPitchDistance/2");
             ExpressionUtils.EditExp(ExpressionUtils.GetExpByName("moveBoxY"), "-(yNCopies)*yPitchDistance/2");
         }
     }
 }
예제 #5
0
        private static void SetMoveExpForZDatum(int[] pre, double anlge)
        {
            Expression moveXExp    = ExpressionUtils.CreateExp("moveX=0", "Number");
            Expression moveBoxXExp = ExpressionUtils.CreateExp("moveBoxX=0", "Number");
            Expression moveBoxYExp = ExpressionUtils.CreateExp("moveBoxY=0", "Number");
            Expression moveYExp    = ExpressionUtils.CreateExp("moveY=0", "Number");

            ExpressionUtils.CreateExp("moveZ=0", "Number");
            ExpressionUtils.CreateExp("moveBoxZ=0", "Number");
            if (pre[0] > pre[1])
            {
                ExpressionUtils.EditExp(moveXExp, "-(xNCopies-2)*xPitchDistance/2");
                ExpressionUtils.EditExp(moveBoxXExp, "-(xNCopies)*xPitchDistance/2");
                if (UMathUtils.IsEqual(anlge, Math.PI))
                {
                    ExpressionUtils.EditExp(moveYExp, "(yNCopies-1)*yPitchDistance/2");
                }
                else
                {
                    ExpressionUtils.EditExp(moveYExp, "-(yNCopies-1)*yPitchDistance/2");
                }
            }
            else
            {
                ExpressionUtils.EditExp(moveXExp, "-(xNCopies-1)*xPitchDistance/2");
                if (UMathUtils.IsEqual(anlge, Math.PI))
                {
                    ExpressionUtils.EditExp(moveYExp, "(yNCopies-2)*yPitchDistance/2");
                    ExpressionUtils.EditExp(moveBoxYExp, "(yNCopies)*yPitchDistance/2");
                }
                else
                {
                    ExpressionUtils.EditExp(moveYExp, "-(yNCopies-2)*yPitchDistance/2");
                    ExpressionUtils.EditExp(moveBoxYExp, "-(yNCopies)*yPitchDistance/2");
                }
            }
        }