// Post
        public override void TranslateT2C(TransCAD.IFeature tFeature)
        {
            TransCAD.IStdSolidProtrusionExtrudeFeature proExtrude = (TransCAD.IStdSolidProtrusionExtrudeFeature)tFeature;

            // 스케치 변환
            FeatureSketch SketchManager = new FeatureSketch(PartManager);

            TransCAD.IFeature profilesketch = PartManager.GetFeatureFromReference(proExtrude.ProfileSketch);
            SketchManager.TranslateT2C(profilesketch);

            double sD = proExtrude.StartDepth;

            TransCAD.StdExtrudeEndType sC = proExtrude.StartCondition;
            double eD = proExtrude.EndDepth;

            TransCAD.StdExtrudeEndType eC = proExtrude.EndCondition;
            bool isFlip = proExtrude.IsFlip;

            PARTITF.Pad cPad = PartManager.cShapeFactory.AddNewPadFromRef(SketchManager.cReference, sD);
            cPad.FirstLimit.Dimension.Value  = sD;
            cPad.SecondLimit.Dimension.Value = eD;

            if (sC == TransCAD.StdExtrudeEndType.Blind)
            {
                cPad.FirstLimit.LimitMode = PARTITF.CatLimitMode.catOffsetLimit;
            }
            else if (sC == TransCAD.StdExtrudeEndType.ThroughAll)
            {
                cPad.FirstLimit.LimitMode = PARTITF.CatLimitMode.catUpToLastLimit;
            }

            if (eC == TransCAD.StdExtrudeEndType.Blind)
            {
                cPad.SecondLimit.LimitMode = PARTITF.CatLimitMode.catOffsetLimit;
            }
            else if (eC == TransCAD.StdExtrudeEndType.ThroughAll)
            {
                cPad.SecondLimit.LimitMode = PARTITF.CatLimitMode.catUpToLastLimit;
            }

            if (isFlip == false)
            {
                cPad.DirectionOrientation = PARTITF.CatPrismOrientation.catRegularOrientation;
            }
            else if (isFlip == true)
            {
                cPad.DirectionOrientation = PARTITF.CatPrismOrientation.catInverseOrientation;
            }

            PartManager.cPart.UpdateObject(cPad);
            PartManager.ReferenceManager.NameMap.Add(proExtrude.Name, cPad.get_Name());
        }
        // Pre
        public override void TranslateC2T(MECMOD.Shape cShape)
        {
            PARTITF.Pad cPad = (PARTITF.Pad)cShape;

            // 스케치 변환
            FeatureSketch SketchManager = new FeatureSketch(PartManager);

            SketchManager.TranslateC2T(cPad.Sketch);

            string name = cPad.get_Name();

            PARTITF.Limit first  = cPad.FirstLimit;
            PARTITF.Limit second = cPad.SecondLimit;

            TransCAD.StdExtrudeEndType firstCond  = TransCAD.StdExtrudeEndType.Blind;
            TransCAD.StdExtrudeEndType secondCond = TransCAD.StdExtrudeEndType.Blind;

            if (first.LimitMode.ToString() == "catUpToLastLimit")
            {
                firstCond = TransCAD.StdExtrudeEndType.ThroughAll;
            }

            if (second.LimitMode.ToString() == "catUpToLastLimit")
            {
                secondCond = TransCAD.StdExtrudeEndType.ThroughAll;
            }

            bool isFlip = false;

            if (cPad.DirectionOrientation == PARTITF.CatPrismOrientation.catInverseOrientation)
            {
                isFlip = true;
            }

            PartManager.tFeatures.AddNewSolidProtrusionExtrudeFeature(name, SketchManager.tReference,
                                                                      first.Dimension.Value, firstCond, second.Dimension.Value, secondCond, isFlip);
        }