/// <summary>
        /// 创建中心点
        /// </summary>
        private void CreateCenterPoint(ElectrodePartBuilder part, bool zDatum)
        {
            UFSession theUFSession = UFSession.GetUFSession();
            Point3d   center       = part.GetSetValuePoint(zDatum);
            Matrix4   inver        = condition.Work.Info.Matr.GetInversMatrix();

            inver.ApplyPos(ref center);
            this.condition.ExpAndMatr.Matr.EleMatr.ApplyPos(ref center);
            Point pt = PointUtils.CreatePointFeature(center);

            pt.Color = 186;
            pt.Layer = 254;
            theUFSession.Obj.SetName(pt.Tag, "SetValuePoint");
        }
        public List <string> CreateBuider()
        {
            List <string>        err  = new List <string>();
            ElectrodePartBuilder part = new ElectrodePartBuilder(GetEleInfo(), condition.Work.WorkpieceDirectoryPath);
            bool ptOk = part.CreatPart();

            if (ptOk)
            {
                List <Body>           bodys     = new List <Body>();
                List <Body>           headBodys = new List <Body>();
                bool                  isok      = false;
                ElectrodeDatumBuilder datum     = null;
                try
                {
                    headBodys = part.WaveEleHeadBody(condition.HeadBodys);
                }
                catch (NXException ex)
                {
                    err.Add("连接体错!             " + ex.Message);
                    return(err);
                }
                try
                {
                    isok = condition.ExpAndMatr.Exp.CreateExp(zDatum, allInfo.Preparetion.Preparation);
                }
                catch (NXException ex)
                {
                    err.Add("创建表达式错误!         " + ex.Message);
                    return(err);
                }
                try
                {
                    ElectrodeSketchBuilder sketch = new ElectrodeSketchBuilder(allInfo.Preparetion.Preparation[0], allInfo.Preparetion.Preparation[1], -allInfo.Datum.EleHeight);
                    datum = new ElectrodeDatumBuilder(sketch);
                    ElectrodeMoveBuilder move = new ElectrodeMoveBuilder(headBodys, allInfo.Datum, allInfo.GapValue, allInfo.Pitch);
                    datum.SetParentBuilder(sketch);
                    sketch.SetParentBuilder(move);
                    sketch.CreateBuilder();
                    move.CreateBuilder();
                    datum.CreateBuilder();
                    bodys.AddRange(move.AllBodys);
                    if (zDatum)
                    {
                        ElectrodeFeelerBuilder feeler = new ElectrodeFeelerBuilder(sketch, this.allInfo.Datum);
                        feeler.CreateBuilder();
                        bodys.Add(feeler.FeelerBody);
                    }
                }
                catch (NXException ex)
                {
                    err.Add("创建电极特征错误!          " + ex.Message);
                    return(err);
                }
                try
                {
                    string errs;
                    Body   by = CreateUnite(datum.DatumBody, bodys, out errs);
                    SetEleColor(by);
                    if (errs != "")
                    {
                        err.Add(errs);
                    }
                }
                catch (NXException ex)
                {
                    err.Add("电极求和错误!          " + ex.Message);
                }
                CreateCenterPoint(part, zDatum);
                PartUtils.SetPartWork(null);
                part.MoveEleComp(condition.Work.Info.Matr, part.GetMove(zDatum));
                MoveHeadTolayer();
                MoveEleComp(part.EleComp);
            }
            else
            {
                err.Add("创建电极档错误!");
            }

            return(err);
        }