Example #1
0
    public override void Apply()
    {
        if (string.IsNullOrEmpty(sMODELNUMBER.Value))
        {
            ShowMessage("模具编号不能为空!");
            return;
        }

        if (string.IsNullOrEmpty(sMRNUMBER.Value))
        {
            ShowMessage("钢件编号不能为空!");
            return;
        }

        if (eMATERAL.SelectedIndex < 0)
        {
            ShowMessage("钢件材质不能为空!");
            return;
        }

        Snap.NX.Body steel = GetSteel();
        steel.SetStringAttribute("MODEL_NUMBER", sMODELNUMBER.Value);
        steel.SetStringAttribute("MR_NUMBER", sMRNUMBER.Value);
        steel.SetStringAttribute("MR_MATERAL", _items[eMATERAL.SelectedIndex]);
        MouldInfo = EactBom.EactBomBusiness.Instance.GetMouldInfo(steel);
        if (enum0.SelectedItem == "指定")
        {
            MouldInfo.Origin      = coord_system0.SpecifiedCsys.Origin;
            MouldInfo.Orientation = coord_system0.SpecifiedCsys.Orientation;
        }
        else if (enum0.SelectedItem == "绝对")
        {
            MouldInfo.Origin      = new Snap.Position();
            MouldInfo.Orientation = Snap.Orientation.Identity;
        }
        else if (enum0.SelectedItem == "工作")
        {
            MouldInfo.Origin      = Snap.Globals.Wcs.Origin;
            MouldInfo.Orientation = Snap.Globals.Wcs.Orientation;
        }
        else //TODO 默认
        {
            var box = steel.Box;
            MouldInfo.Orientation = Snap.Orientation.Identity;
            MouldInfo.Origin      = new Snap.Position((box.MinX + box.MaxX) / 2, (box.MinY + box.MaxY) / 2, box.MaxZ);
        }

        //Snap.Globals.Wcs.Origin = MouldInfo.Origin;
        NXOpen.UF.UFSession.GetUFSession().Csys.SetOrigin(Snap.Globals.Wcs.NXOpenTag, MouldInfo.Origin.Array);
        Snap.Globals.WcsOrientation = MouldInfo.Orientation;

        Result = System.Windows.Forms.DialogResult.OK;
    }
Example #2
0
    /// <summary>
    /// 设置镜像属性
    /// </summary>
    void SetGeomcopyAttr(Snap.NX.Body body, NXOpen.Plane plane, bool isJC)
    {
        if (isJC)
        {
            return;
        }
        var electrode = ElecManage.Electrode.GetElectrode(body);

        if (electrode == null)
        {
            return;
        }
        electrode.InitAllFace();
        //var transRef = Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal));

        Snap.NX.Face preXFace = null, preYFace = null;

        body.Faces.ToList().ForEach(u =>
        {
            if (u.GetAttributeInfo().Where(m => m.Title == "EACT_ELECT_X_FACE").Count() > 0)
            {
                u.DeleteAttributes(Snap.NX.NXObject.AttributeType.String, "EACT_ELECT_X_FACE");
                u.DeleteAttributes(Snap.NX.NXObject.AttributeType.String, "EACT_ELECT_Y_FACE");
                preXFace = u;
            }
            else if (u.GetAttributeInfo().Where(m => m.Title == "EACT_ELECT_Y_FACE").Count() > 0)
            {
                u.DeleteAttributes(Snap.NX.NXObject.AttributeType.String, "EACT_ELECT_X_FACE");
                u.DeleteAttributes(Snap.NX.NXObject.AttributeType.String, "EACT_ELECT_Y_FACE");
                preYFace = u;
            }
        });

        //if (preXFace == null || preYFace == null) return;
        var topDir      = -electrode.BaseFace.GetFaceDirection();
        var orientation = ElecManage.Electrode.GetSidelongOrientation(new Snap.Orientation(topDir));
        var xFace       = electrode.BaseSideFaces.FirstOrDefault(u => SnapEx.Helper.Equals(orientation.AxisX, u.GetFaceDirection()));
        var yFace       = electrode.BaseSideFaces.FirstOrDefault(u => SnapEx.Helper.Equals(orientation.AxisY, u.GetFaceDirection()));

        if (xFace != null && yFace != null)
        {
            xFace.SetStringAttribute("EACT_ELECT_X_FACE", "1");
            yFace.SetStringAttribute("EACT_ELECT_Y_FACE", "1");
        }

        body.SetStringAttribute("EACT_EDM_OPERATE_DIR", ElecManage.Electrode.GetCNC_DIRECTION(topDir));
        body.SetStringAttribute("EACT_ELEC_QUADRANT_OF_CHAMFER", ((int)electrode.GetQuadrantType(orientation) + 1).ToString());
    }
Example #3
0
    void Apply()
    {
        Snap.NX.Body selectedObj = bodySelect0.GetSelectedObjects().FirstOrDefault() as NXOpen.Body;
        var          workPart    = Snap.Globals.WorkPart;

        selectedObj.SetStringAttribute("2323", "3333");
        var templateName = _paramFileList.Where(u => u.Contains(selectTemplate0.ValueAsString)).FirstOrDefault();

        //新建图纸页
        var ds = SnapEx.Create.DrawingSheet("test_dds", templateName);

        //var baseView = SnapEx.Create.BaseView(Snap.Globals.WorkPart, new NXOpen.Point2d(expressionX.Value, expressionY.Value));
        CreateBaseView(ds, selectedObj);

        //解决位置固定问题
        var topView1     = CreateView(ds, Snap.Globals.WorkPart.Bodies.Where(u => u.NXOpenTag != selectedObj.NXOpenTag).FirstOrDefault(), workPart.NXOpenPart.ModelingViews.FindObject("TOP").Tag, new Snap.Position(40, 60));
        var size         = GetBorderSize(topView1);
        var theUFSession = NXOpen.UF.UFSession.GetUFSession();

        theUFSession.Draw.SetViewScale(topView1, 40 / size.X);
        theUFSession.Draw.UpdateOneView(ds.Tag, topView1);

        Test(ds);
    }
Example #4
0
    NXOpen.DisplayableObject GeomcopyElec(bool isPreview, NXOpen.Body body, NXOpen.Plane plane)
    {
        Snap.NX.Body SnapBody    = body;
        var          oldWorkPart = theSession.Parts.Work;
        var          objs        = new List <NXOpen.NXObject> {
            body
        };

        Snap.NX.Body newBody = null;

        if (body.OwningComponent != null && body.Prototype != null)
        {
            //析出
            SnapEx.Create.ExtractObject(objs, oldWorkPart.FullPath, false, false);
            newBody = oldWorkPart.Bodies.ToArray().FirstOrDefault(u => u.Name == body.Name);
        }
        else
        {
            newBody = SnapBody.Copy();
        }

        if (newBody == null)
        {
            return(newBody);
        }

        var guid = Guid.NewGuid().ToString();

        var tempElecOrigin = SnapEx.Helper.GetElecMidPosition(oldWorkPart, body);

        if (tempElecOrigin == null)
        {
            theUI.NXMessageBox.Show("提示", NXOpen.NXMessageBox.DialogType.Information, "该电极未发现基准点!");
            return(null);
        }

        var transRef       = Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal));
        var topFace        = SnapEx.Helper.GetTopFace(newBody);
        var bottomFace     = SnapEx.Helper.GetBottomFace(newBody);
        var minU           = topFace.BoxUV.MinU;
        var minV           = topFace.BoxUV.MinV;
        var maxU           = topFace.BoxUV.MaxU;
        var maxV           = topFace.BoxUV.MaxV;
        var centerPosition = (Snap.Position)tempElecOrigin;
        var movePosition   = centerPosition.Copy(transRef);

        bool isJC = toggle0.Value && topFace.NXOpenTag != bottomFace.NXOpenTag;

        if (isJC) //继承
        {
            var markId1 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "reflectionBody");
            var normal  = topFace.Normal(minU, minV);
            var point   = topFace.Position(minU, minV);

            var datumPlane     = Snap.Create.DatumPlane(point, normal);
            var splitBody      = Snap.Create.SplitBody(newBody, datumPlane);
            var topBody        = splitBody.Bodies.FirstOrDefault(b => SnapEx.Helper.GetTopFace(b) == null).Copy();
            var reflectionBody = splitBody.Bodies.FirstOrDefault(b => SnapEx.Helper.GetTopFace(b) != null).Copy();
            splitBody.Delete();
            newBody.Delete();
            topBody.Move(transRef);
            reflectionBody.Move(Snap.Geom.Transform.CreateTranslation(movePosition - centerPosition));
            var result = Snap.Create.Unite(reflectionBody, topBody);
            result.Orphan();

            datumPlane.Delete();

            theSession.UpdateManager.DoUpdate(markId1);
            theSession.DeleteUndoMark(markId1, null);

            newBody = reflectionBody;
        }
        else
        {
            newBody.Move(transRef);
        }

        var x     = expressionX.Value;
        var y     = expressionY.Value;
        var z     = expressionZ.Value;
        var trans = Snap.Geom.Transform.CreateTranslation(new Snap.Vector(x, y, z));

        newBody.Move(trans);
        if (!isPreview)
        {
            newBody.SetStringAttribute("EACT_MIRROR_ELECT", "Y");
            if (topFace != null)
            {
                //SetJZJAttr(topFace, newBody);
                SetGeomcopyAttr(newBody, plane, isJC);
            }
            var oldPoint = SnapEx.Helper.GetElecMidPointInPart(Snap.Globals.WorkPart, body);
            var newPoint = SnapEx.Helper.GetElecMidPoint(Snap.Globals.WorkPart, body);

            if (newPoint != null)
            {
                //newPoint.SetStringAttribute(SnapEx.EactConstString.EACT_ELECT_GROUP, guid);
                newPoint.Move(Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal)));
                newPoint.Move(trans);
            }

            if (body.OwningComponent != null && body.Prototype != null)
            {
            }
            else
            {
                if (oldPoint != null)
                {
                    oldPoint.Delete();
                }
                SnapBody.Delete();
            }
        }

        return(newBody);
    }
Example #5
0
    public override void Apply()
    {
        if (string.IsNullOrEmpty(sMODELNUMBER.Value))
        {
            ShowMessage("模具编号不能为空!");
            return;
        }

        if (string.IsNullOrEmpty(sMRNUMBER.Value))
        {
            ShowMessage("钢件编号不能为空!");
            return;
        }

        if (eMATERAL.SelectedIndex < 0)
        {
            ShowMessage("钢件材质不能为空!");
            return;
        }

        Snap.NX.Body steel = GetSteel();
        steel.SetStringAttribute("MODEL_NUMBER", sMODELNUMBER.Value.Trim().ToUpper());
        steel.SetStringAttribute("MR_NUMBER", sMRNUMBER.Value.Trim().ToUpper());
        steel.SetStringAttribute("MR_MATERAL", _items[eMATERAL.SelectedIndex]);
        MouldInfo = EactBom.EactBomBusiness.Instance.GetMouldInfo(steel);
        if (enum0.SelectedItem == "指定")
        {
            MouldInfo.Origin      = coord_system0.SpecifiedCsys.Origin;
            MouldInfo.Orientation = coord_system0.SpecifiedCsys.Orientation;
        }
        else if (enum0.SelectedItem == "绝对")
        {
            MouldInfo.Origin      = new Snap.Position();
            MouldInfo.Orientation = Snap.Orientation.Identity;
        }
        else if (enum0.SelectedItem == "工作")
        {
            MouldInfo.Origin      = Snap.Globals.Wcs.Origin;
            MouldInfo.Orientation = Snap.Globals.Wcs.Orientation;
        }
        else //TODO 默认
        {
            var box = steel.Box;
            MouldInfo.Orientation = Snap.Orientation.Identity;
            MouldInfo.Origin      = new Snap.Position((box.MinX + box.MaxX) / 2, (box.MinY + box.MaxY) / 2, box.MaxZ);
        }

        if (toggleSInsert.Value)
        {
            if (integerSInsertLayer.Show)
            {
                var bodies = Snap.Globals.WorkPart.Bodies.Where(u => u.Layer == integerSInsertLayer.Value).ToList();
                bodies = bodies.Where(u => u.NXOpenTag != steel.NXOpenTag).ToList();
                //foreach (var item in bodies.ToList())
                //{
                //    var distance = Snap.Compute.Distance(steel, item);
                //    bool isContact = distance <= SnapEx.Helper.Tolerance;
                //    if (!isContact)
                //    {
                //        bodies.RemoveAll(u=>u.NXOpenTag==item.NXOpenTag);
                //    }
                //}

                MouldInfo.SInsertBodies = bodies;
            }
            else
            {
                MouldInfo.SInsertBodies = Enumerable.Select(selectionSInsert.SelectedObjects, u => Snap.NX.Body.Wrap(u.NXOpenTag)).ToList();
            }
        }

        if (groupElec.Show)
        {
            MouldInfo.ElecBodies = Enumerable.Select(selectElec.SelectedObjects, u => Snap.NX.Body.Wrap(u.NXOpenTag)).ToList();
        }
        else if (groupElecLayer.Show)
        {
            MouldInfo.ElecBodies = Snap.Globals.WorkPart.Bodies.Where(u => u.Layer >= integerElecStartLayer.Value && u.Layer <= integerElecEndLayer.Value).ToList();
        }

        NXOpen.UF.UFSession.GetUFSession().Csys.SetOrigin(Snap.Globals.Wcs.NXOpenTag, MouldInfo.Origin.Array);
        Snap.Globals.WcsOrientation = MouldInfo.Orientation;
        ElecManage.Entry.Instance.DefaultQuadrantType   = (QuadrantType)enumSelectedXX.SelectedIndex;
        ElecManage.Entry.Instance.IsDistinguishSideElec = EactBom.EactBomBusiness.Instance.ConfigData.IsDistinguishSideElec;
        ElecManage.Entry.Edition = EactBom.EactBomBusiness.Instance.ConfigData.Edition;
        steel.SetIntegerAttribute(EactBom.EactBomBusiness.EACT_DEFAULTQUADRANTTYPE, enumSelectedXX.SelectedIndex);


        Result = System.Windows.Forms.DialogResult.OK;
    }
    NXOpen.DisplayableObject GeomcopyElec(bool isPreview, NXOpen.Body body, NXOpen.Plane plane, int order)
    {
        Snap.NX.Body SnapBody    = body;
        var          oldWorkPart = theSession.Parts.Work;
        var          objs        = new List <NXOpen.NXObject> {
            body
        };

        Snap.NX.Body newBody = null;

        if (body.OwningComponent != null && body.Prototype != null)
        {
            //析出
            SnapEx.Create.ExtractObject(objs, oldWorkPart.FullPath, false, false);
            newBody = oldWorkPart.Bodies.ToArray().FirstOrDefault(u => u.Name == body.Name);
        }
        else
        {
            newBody = Snap.NX.Body.Wrap(oldWorkPart.Bodies.ToArray().FirstOrDefault(u => u.Name == body.Name).Tag).Copy();
        }

        if (newBody == null)
        {
            return(newBody);
        }

        var guid = Guid.NewGuid().ToString();

        //TODO 修改名称 修改属性
        newBody.Name = GetElecName(order - 1);
        newBody.SetStringAttribute("EACT_ELEC_NAME", newBody.Name);
        newBody.SetStringAttribute("EACT_ELECT_GROUP", guid);
        newBody.Move(Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal)));
        newBody.Layer = order;
        Snap.Globals.LayerStates[order] = isPreview ? Snap.Globals.LayerState.Visible : Snap.Globals.LayerState.Selectable;

        if (toggle0.Value) //继承
        {
            var markId1        = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "reflectionBody");
            var topFace        = SnapEx.Helper.GetTopFace(newBody);
            var minU           = topFace.BoxUV.MinU;
            var minV           = topFace.BoxUV.MinV;
            var maxU           = topFace.BoxUV.MaxU;
            var maxV           = topFace.BoxUV.MaxV;
            var centerPosition = topFace.Position((minU + maxU) / 2, (minV + maxV) / 2);
            var normal         = topFace.Normal(minU, minV);
            var point          = topFace.Position(minU, minV);

            var datumPlane = Snap.Create.DatumPlane(point, normal);
            var splitBody  = Snap.Create.SplitBody(newBody, datumPlane);
            var topBody    = splitBody.Bodies.FirstOrDefault(b => SnapEx.Helper.GetTopFace(b) == null);

            var reflectionBody = splitBody.Bodies.FirstOrDefault(b => SnapEx.Helper.GetTopFace(b) != null);
            var newDatumPlane  = Snap.Create.DatumPlane(centerPosition, new Snap.Orientation(normal).AxisY);
            reflectionBody.Move(Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(centerPosition, newDatumPlane.Normal)));
            var result = Snap.Create.Unite(reflectionBody, topBody);
            result.Orphan();

            datumPlane.Delete();
            newDatumPlane.Delete();

            theSession.UpdateManager.DoUpdate(markId1);
            theSession.DeleteUndoMark(markId1, null);

            newBody = reflectionBody;
        }

        var x     = expressionX.Value;
        var y     = expressionY.Value;
        var z     = expressionZ.Value;
        var trans = Snap.Geom.Transform.CreateTranslation(new Snap.Vector(x, y, z));

        newBody.Move(trans);
        if (!isPreview)
        {
            newBody.SetStringAttribute("EACT_MIRROR_ELECT", "Y");
            var topFace = SnapEx.Helper.GetTopFace(newBody);
            if (topFace != null)
            {
                SetJZJAttr(topFace, newBody);
            }
            var newPoint = SnapEx.Helper.GetElecMidPoint(Snap.Globals.WorkPart, body);
            if (newPoint != null)
            {
                newPoint.SetStringAttribute(SnapEx.EactConstString.EACT_ELECT_GROUP, guid);
                newPoint.Move(Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal)));
                newPoint.Move(trans);
            }

            if (toggleJiaju.Value && selectionJiaju.Show)
            {
                Snap.NX.Body jiaju = selectionJiaju.GetSelectedObjects().FirstOrDefault() as NXOpen.Body;
                if (jiaju != null)
                {
                    jiaju       = jiaju.Copy();
                    jiaju.Layer = order;
                    jiaju.Move(Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal)));
                    jiaju.SetStringAttribute("EACT_MIRROR_ELECT", "Y");
                    jiaju.Move(trans);
                }
            }
        }

        return(newBody);
    }
Example #7
0
    NXOpen.DisplayableObject GeomcopyElec(bool isPreview, NXOpen.Body body, NXOpen.Plane plane, int order)
    {
        Snap.NX.Body SnapBody    = body;
        var          oldWorkPart = theSession.Parts.Work;
        var          objs        = new List <NXOpen.NXObject> {
            body
        };

        Snap.NX.Body newBody = null;

        if (body.OwningComponent != null && body.Prototype != null)
        {
            //析出
            SnapEx.Create.ExtractObject(objs, oldWorkPart.FullPath, false, false);
            newBody = oldWorkPart.Bodies.ToArray().FirstOrDefault(u => u.Name == body.Name);
        }
        else
        {
            newBody = SnapBody.Copy();
        }

        if (newBody == null)
        {
            return(newBody);
        }

        var tempElecOrigin = SnapEx.Helper.GetElecMidPosition(oldWorkPart, body);

        if (tempElecOrigin == null)
        {
            theUI.NXMessageBox.Show("提示", NXOpen.NXMessageBox.DialogType.Information, "该电极未发现基准点!");
            return(null);
        }

        var guid = Guid.NewGuid().ToString();

        //TODO 修改名称 修改属性
        newBody.Name = GetElecName(order - 1);
        newBody.SetStringAttribute("EACT_ELEC_NAME", newBody.Name);
        newBody.SetStringAttribute("EACT_ELECT_GROUP", guid);
        newBody.Layer = order;
        Snap.Globals.LayerStates[order] = isPreview ? Snap.Globals.LayerState.Visible : Snap.Globals.LayerState.Selectable;

        var transRef       = Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal));
        var topFace        = SnapEx.Helper.GetTopFace(newBody);
        var bottomFace     = SnapEx.Helper.GetBottomFace(newBody);
        var minU           = topFace.BoxUV.MinU;
        var minV           = topFace.BoxUV.MinV;
        var maxU           = topFace.BoxUV.MaxU;
        var maxV           = topFace.BoxUV.MaxV;
        var centerPosition = (Snap.Position)tempElecOrigin;
        var movePosition   = centerPosition.Copy(transRef);

        bool isJC = toggle0.Value && topFace.NXOpenTag != bottomFace.NXOpenTag;

        if (isJC) //继承
        {
            var markId1 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "reflectionBody");

            var normal = topFace.Normal(minU, minV);
            var point  = topFace.Position(minU, minV);

            var datumPlane     = Snap.Create.DatumPlane(point, normal);
            var splitBody      = Snap.Create.SplitBody(newBody, datumPlane);
            var topBody        = splitBody.Bodies.FirstOrDefault(b => SnapEx.Helper.GetTopFace(b) == null).Copy();
            var reflectionBody = splitBody.Bodies.FirstOrDefault(b => SnapEx.Helper.GetTopFace(b) != null).Copy();
            splitBody.Delete();
            newBody.Delete();
            topBody.Move(transRef);
            reflectionBody.Move(Snap.Geom.Transform.CreateTranslation(movePosition - centerPosition));
            var result = Snap.Create.Unite(reflectionBody, topBody);
            result.Orphan();

            datumPlane.Delete();

            theSession.UpdateManager.DoUpdate(markId1);
            theSession.DeleteUndoMark(markId1, null);

            newBody = reflectionBody;
        }
        else
        {
            newBody.Move(transRef);
        }

        var x     = expressionX.Value;
        var y     = expressionY.Value;
        var z     = expressionZ.Value;
        var trans = Snap.Geom.Transform.CreateTranslation(new Snap.Vector(x, y, z));

        newBody.Move(trans);
        if (!isPreview)
        {
            newBody.SetStringAttribute("EACT_MIRROR_ELECT", "Y");
            topFace = SnapEx.Helper.GetTopFace(newBody);
            if (topFace != null)
            {
                SetGeomcopyAttr(newBody, plane, isJC);
            }
            var newPoint = SnapEx.Helper.GetElecMidPoint(Snap.Globals.WorkPart, body);
            if (newPoint != null)
            {
                newPoint.SetStringAttribute(SnapEx.EactConstString.EACT_ELECT_GROUP, guid);
                newPoint.Layer = order;
                newPoint.Move(Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal)));
                newPoint.Move(trans);
            }

            if (toggleJiaju.Value && selectionJiaju.Show)
            {
                var          tempJiaju = selectionJiaju.SelectedObjects.FirstOrDefault();
                Snap.NX.Body jiaju     = tempJiaju == null ? null : Snap.NX.Body.Wrap(tempJiaju.NXOpenTag);
                if (jiaju != null)
                {
                    jiaju       = jiaju.Copy();
                    jiaju.Layer = order;
                    jiaju.Move(Snap.Geom.Transform.CreateTranslation(movePosition - centerPosition));
                    //if (toggle0.Value) //继承
                    //{
                    //    var firstPos = new Snap.Position((jiaju.Box.MinX + jiaju.Box.MaxX) / 2, (jiaju.Box.MinY + jiaju.Box.MaxY) / 2, (jiaju.Box.MinZ + jiaju.Box.MaxZ) / 2);
                    //    var twoPos = firstPos.Copy(Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal)));
                    //    jiaju.Move(Snap.Geom.Transform.CreateTranslation(twoPos - firstPos));
                    //}
                    //else
                    //{
                    //    jiaju.Move(Snap.Geom.Transform.CreateReflection(new Snap.Geom.Surface.Plane(plane.Origin, plane.Normal)));
                    //}
                    jiaju.SetStringAttribute("EACT_MIRROR_ELECT", "Y");
                    jiaju.Move(trans);
                }
            }
        }

        return(newBody);
    }