예제 #1
0
        // Erzeugt ein Gewindefeature auf dem vorher erzeugten Schaft.
        internal void ErzeugeGewindeFeature(Gewinderichtung gr, Double bezeichnung, double gewindelaenge)
        {
            // Gewinde...
            // ... Referenzen lateral und limit erzeugen
            Reference RefMantelflaeche = hsp_catiaPart.Part.CreateReferenceFromBRepName(
                "RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;1)));None:();Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", SchaftFase);
            Reference RefFrontflaeche = hsp_catiaPart.Part.CreateReferenceFromBRepName(
                "RSur:(Face:(Brp:(Pad.1;2);None:();Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", SchaftFase);

            ShapeFactory catshapeFactoryThread = (ShapeFactory)hsp_catiaPart.Part.ShapeFactory;

            // ... Gewinde erzeugen, Parameter setzen
            PARTITF.Thread thread1 = catshapeFactoryThread.AddNewThreadWithOutRef();
            if (gr == Gewinderichtung.Rechtsgewinde)     //Gewinderichtung festlegen
            {
                thread1.Side = CatThreadSide.catRightSide;
            }
            else
            {
                thread1.Side = CatThreadSide.catLeftSide;
            }
            thread1.Diameter = bezeichnung; //Gewindegröße
            thread1.Depth    = gewindelaenge;

            thread1.LateralFaceElement = RefMantelflaeche; // Referenz lateral
            thread1.LimitFaceElement   = RefFrontflaeche;  // Referenz limit

            // ... Standardgewinde gesteuert über eine Konstruktionstabelle
            thread1.CreateUserStandardDesignTable("Metric_Thick_Pitch", @"C:\Program Files\Dassault Systemes\B28\win_b64\resources\standard\thread\Metric_Thick_Pitch.xml");

            thread1.set_Name("Gewinde");

            // Part update und fertig
            hsp_catiaPart.Part.Update();
        }
예제 #2
0
        internal void ErzeugeGewindeFeature(Schraube [] arr, int i)
        {
            //Referenzen für das Gewinde Festlegen
            Reference RefMantelfläche = part_Schraube.CreateReferenceFromBRepName("RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;1)));None:();Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", schaft);
            Reference RefFrontfläche  = part_Schraube.CreateReferenceFromBRepName("RSur:(Face:(Brp:(Pad.1;2);None:();Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", schaft);

            //Gewinde Erzeugen, Parameter setzen

            PARTITF.Thread thread1 = shapefac.AddNewThreadWithOutRef();
            thread1.Side               = CatThreadSide.catRightSide;
            thread1.Diameter           = arr[i].durchmesser;     //Gewindedurchmesser
            thread1.Depth              = arr[i].gewindelaenge;   //Gewindelänge
            thread1.Pitch              = arr[i].gewindesteigung; //Gewindesteigung
            thread1.LateralFaceElement = RefMantelfläche;        //Mantelfäache als Referenz
            thread1.LimitFaceElement   = RefFrontfläche;         //Startelement

            part_Schraube.Update();
        }
예제 #3
0
        internal void Gewindefeature(object[] ParameterListe)
        {
            // Listen Werte wieder in richtige Datentypen umwandeln
            int    Kopf                 = Convert.ToInt32(ParameterListe[0]);
            double Durchmesser          = Convert.ToDouble(ParameterListe[1]);
            double Gewindelänge         = Convert.ToDouble(ParameterListe[2]);
            double Schaftlänge          = Convert.ToDouble(ParameterListe[3]);
            double Steigung             = Convert.ToDouble(ParameterListe[4]);
            int    Gewindeart           = Convert.ToInt32(ParameterListe[5]);
            double Schlüsselweite       = Convert.ToDouble(ParameterListe[6]);
            double Kopfhöhe             = Convert.ToDouble(ParameterListe[7]);
            double Kopfdurchmesser      = Convert.ToDouble(ParameterListe[8]);
            int    SchraubenrichtungInt = Convert.ToInt32(ParameterListe[9]);

            myPart = hsp_catiaPart.Part;
            // Gewinde...
            // ... Referenzen lateral und limit erzeugen

            Reference RefMantelflaeche;
            Reference RefFrontflaeche;

            if (Kopf != 3)
            {
                RefMantelflaeche = myPart.CreateReferenceFromBRepName(
                    "RSur:(Face:(Brp:(Pad.2;0:(Brp:(Sketch.2;1)));None:();Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", Schaft);

                RefFrontflaeche = myPart.CreateReferenceFromBRepName(
                    "RSur:(Face:(Brp:(Pad.2;2);None:();Cf11:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", Schaft);

                // ... Gewinde erzeugen, Parameter setzen
                PARTITF.Thread thread1 = SF.AddNewThreadWithOutRef();


                thread1.Side = CatThreadSide.catRightSide;

                if (SchraubenrichtungInt == 1)
                {
                    thread1.Side = CatThreadSide.catLeftSide;
                }

                thread1.Diameter           = Durchmesser;
                thread1.Depth              = Gewindelänge;
                thread1.LateralFaceElement = RefMantelflaeche; // Referenz lateral
                thread1.LimitFaceElement   = RefFrontflaeche;  // Referenz limit

                if (Gewindeart == 1)
                {
                    thread1.CreateUserStandardDesignTable("Metric_Thick_Pitch", @"C:\Program Files\Dassault Systemes\B28\win_b64\resources\standard\thread\Metric_Thick_Pitch.xml");
                }

                if (Gewindeart == 2)
                {
                    // Kein Standard, weil individuelle Steigungen eingegeben werden können!
                }

                if (Gewindeart == 3)
                {
                    thread1.CreateUserStandardDesignTable("Rohrgewinde I A ISO228", @"C:\Program Files\Dassault Systemes\B30\win_b64\resources\standard\thread\Rohrgewinde I A ISO228.xml");
                }
                // ... Standardgewinde gesteuert über eine Konstruktionstabelle
                thread1.Diameter = Durchmesser;
                thread1.Pitch    = Steigung;
            }

            if (Kopf == 3)
            {
                RefMantelflaeche = myPart.CreateReferenceFromBRepName(
                    "RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.2;1)));None:();Cf12:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR29)", Schaft);

                RefFrontflaeche = myPart.CreateReferenceFromBRepName(
                    "RSur:(Face:(Brp:(Pad.1;2);None:();Cf12:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR29)", Schaft);

                // ... Gewinde erzeugen, Parameter setzen
                PARTITF.Thread thread1 = SF.AddNewThreadWithOutRef();

                thread1.Side = CatThreadSide.catRightSide;

                if (SchraubenrichtungInt == 1)
                {
                    thread1.Side = CatThreadSide.catLeftSide;
                }

                thread1.Diameter           = Durchmesser;
                thread1.Depth              = Gewindelänge;
                thread1.LateralFaceElement = RefMantelflaeche; // Referenz lateral
                thread1.LimitFaceElement   = RefFrontflaeche;  // Referenz limit


                if (Gewindeart == 1)
                {
                    thread1.CreateUserStandardDesignTable("Metric_Thick_Pitch", @"C:\Program Files\Dassault Systemes\B28\win_b64\resources\standard\thread\Metric_Thick_Pitch.xml");
                }

                if (Gewindeart == 2)
                {
                    // Kein Standard, weil individuelle Steigungen eingegeben werden können!
                }

                if (Gewindeart == 3)
                {
                    thread1.CreateUserStandardDesignTable("Rohrgewinde I A ISO228", @"C:\Program Files\Dassault Systemes\B30\win_b64\resources\standard\thread\Rohrgewinde I A ISO228.xml");
                }

                // ... Standardgewinde gesteuert über eine Konstruktionstabelle
                thread1.Diameter = Durchmesser;
                thread1.Pitch    = Steigung;
            }


            // Part update und fertig
            myPart.Update();
        }