// 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(); }
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(); }
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(); }