Exemple #1
0
        internal void ErzeugeFase()
        {
            part_Schraube.InWorkObject = part_Schraube;

            Reference reffase = (Reference)part_Schraube.CreateReferenceFromName("");

            Chamfer fase1 = shapefac.AddNewChamfer(reffase, CatChamferPropagation.catMinimalChamfer, CatChamferMode.catLengthAngleChamfer, CatChamferOrientation.catNoReverseChamfer, 1, 45);

            Bodies             bodies1             = part_Schraube.Bodies;
            Body               bodie1              = bodies1.Item("Hauptkörper");
            Shapes             schapes1            = bodie1.Shapes;
            ConstRadEdgeFillet constRadEdgeFillet1 = (ConstRadEdgeFillet)schapes1.Item("Kanntenverundung");
            Reference          reference2          = part_Schraube.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(Pad.1;1);None:();Cf11:());Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;1)));None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", constRadEdgeFillet1);

            fase1.AddElementToChamfer(reference2);
            fase1.Mode        = CatChamferMode.catLengthAngleChamfer;
            fase1.Propagation = CatChamferPropagation.catTangencyChamfer;
            fase1.Orientation = CatChamferOrientation.catNoReverseChamfer;

            part_Schraube.Update();
        }
Exemple #2
0
        static void Main(string[] args)
        {
            INFITF.Application catia;
            try
            {
                catia = (INFITF.Application)Marshal.GetActiveObject("CATIA.Application");
            }
            catch (Exception)
            {
                catia = (INFITF.Application)Activator.CreateInstance(Type.GetTypeFromProgID("CATIA.Application"));
            }
            catia.Visible = true;

            PartDocument prtDoc   = (PartDocument)catia.Documents.Add("Part");
            Part         prt      = prtDoc.Part;
            Bodies       bdys     = prt.Bodies;
            Body         PartBody = bdys.Item(1);

            INFITF.Reference xypln  = (INFITF.Reference)prt.OriginElements.PlaneXY; //다른 body에서 사용가능
            ShapeFactory     shpfac = (ShapeFactory)prt.ShapeFactory;

            //1 body1생성-----------------------
            Body      bdy1  = bdys.Add();
            Sketches  skts  = bdy1.Sketches;
            Sketch    skt   = skts.Add(xypln);
            Factory2D fac2d = skt.OpenEdition();

            CreateRectangle(fac2d, prt, skt, 50, 50, 100, 100); //사각형을 만든 method를 작성했다

            skt.CloseEdition();

            Pad p1 = shpfac.AddNewPad(skt, 80);

            //2--------------------------------
            Body   bdy2 = bdys.Add();
            Sketch skt2 = bdy2.Sketches.Add(xypln);

            fac2d = skt2.OpenEdition();

            Circle2D c = fac2d.CreateClosedCircle(75, 75, 20);

            skt2.CloseEdition();
            Pad p2 = shpfac.AddNewPad(skt2, 100);

            //3----------------------------------
            Body   bdy3 = bdys.Add();
            Sketch skt3 = bdy3.Sketches.Add(xypln);

            fac2d = skt3.OpenEdition();

            Point2D pt1 = fac2d.CreatePoint(75, 80);
            Point2D pt2 = fac2d.CreatePoint(70, 70);
            Point2D pt3 = fac2d.CreatePoint(80, 70);

            CreateTriangle(fac2d, prt, skt3, pt1, pt2, pt3);        //삼각형을 만든 method를 작성했다

            skt3.CloseEdition();
            Pad p3 = shpfac.AddNewPad(skt3, 100);

            //----------------------------------------------
            prt.InWorkObject = PartBody;        //workobject 지정한다

            shpfac.AddNewAdd(bdy1);
            shpfac.AddNewAdd(bdy2);
            shpfac.AddNewRemove(bdy3);

            prt.Update();
        }