private Inventor.ExtrudeFeature CreateFlangeExtrustion(ref Inventor.PartDocument PartDocument, string FlangeDiaOD, string FlangeDiaID, string FlangeThickness) { Inventor.UnitsOfMeasure UnitsOfMeasure; Inventor.PlanarSketch Sketch; Inventor.TransientGeometry TransientGeometry; Inventor.SketchCircle SketchCircle; Inventor.WorkPoint WorkPoint; Inventor.WorkPlane BaseWorkPlane; Inventor.RadiusDimConstraint RadiusDimConstraint = null; Inventor.SketchEntity SketchEntity; Inventor.ObjectCollection SketchObjectCollection; Inventor.Profile Profile; Inventor.ExtrudeDefinition ExtrudeDefinition; Inventor.ExtrudeFeature ExtrudeFeature = null; SketchObjectCollection = InvApp.TransientObjects.CreateObjectCollection(); UnitsOfMeasure = PartDocument.UnitsOfMeasure; double DiaOD = 0, DiaID = 0, Thickness = 0; DiaOD = UnitsOfMeasure.GetValueFromExpression(FlangeDiaOD, Inventor.UnitsTypeEnum.kMillimeterLengthUnits); DiaID = UnitsOfMeasure.GetValueFromExpression(FlangeDiaID, Inventor.UnitsTypeEnum.kMillimeterLengthUnits); Thickness = UnitsOfMeasure.GetValueFromExpression(FlangeThickness, Inventor.UnitsTypeEnum.kMillimeterLengthUnits); TransientGeometry = InvApp.TransientGeometry; WorkPoint = PartDocument.ComponentDefinition.WorkPoints[1]; BaseWorkPlane = GetPartDocumentWorkPlane(ref PartDocument, "XY"); Sketch = PartDocument.ComponentDefinition.Sketches.Add(BaseWorkPlane, false); SketchEntity = Sketch.AddByProjectingEntity(WorkPoint); SketchCircle = Sketch.SketchCircles.AddByCenterRadius(TransientGeometry.CreatePoint2d(0, 0), DiaOD / 2); RadiusDimConstraint = Sketch.DimensionConstraints.AddRadius((Inventor.SketchEntity)SketchCircle, TransientGeometry.CreatePoint2d(0, 0), false); Sketch.GeometricConstraints.AddCoincident(SketchEntity, (Inventor.SketchEntity)SketchCircle.CenterSketchPoint); RadiusDimConstraint = null; SketchCircle = null; SketchCircle = Sketch.SketchCircles.AddByCenterRadius(TransientGeometry.CreatePoint2d(0, 0), DiaID / 2); RadiusDimConstraint = Sketch.DimensionConstraints.AddRadius((Inventor.SketchEntity)SketchCircle, TransientGeometry.CreatePoint2d(0, 0), false); Sketch.GeometricConstraints.AddCoincident(SketchEntity, (Inventor.SketchEntity)SketchCircle.CenterSketchPoint); SketchObjectCollection.Add(SketchCircle); Profile = Sketch.Profiles.AddForSolid(true, SketchObjectCollection); ExtrudeDefinition = PartDocument.ComponentDefinition.Features.ExtrudeFeatures.CreateExtrudeDefinition(Profile, Inventor.PartFeatureOperationEnum.kNewBodyOperation); ExtrudeDefinition.SetDistanceExtent(Thickness, Inventor.PartFeatureExtentDirectionEnum.kPositiveExtentDirection); ExtrudeFeature = PartDocument.ComponentDefinition.Features.ExtrudeFeatures.Add(ExtrudeDefinition); ExtrudeFeature.Name = "FlangeBase"; return(ExtrudeFeature); }
private Inventor.ExtrudeFeature Extrude_FlangeBody(ref Inventor.PartDocument PartDocument) { Inventor.TransientGeometry TransientGeometry; Inventor.SketchCircle SketchCircle; Inventor.RadiusDimConstraint RadiusDimConstraint = null; Inventor.Profile SketchProfile; Inventor.ExtrudeDefinition ExtrudeDefinition; Inventor.ExtrudeFeature ExtrudeFeature = null; Inventor.PlanarSketch Sketch; Inventor.SketchEntity SketchEntity; PartDocument = AddSketchProjectCenterPoint(PartDocument, out Sketch, out SketchEntity); TransientGeometry = InvApp.TransientGeometry; SketchCircle = Sketch.SketchCircles.AddByCenterRadius(TransientGeometry.CreatePoint2d(0, 0), FlangeDiaOD / 2); RadiusDimConstraint = Sketch.DimensionConstraints.AddRadius((Inventor.SketchEntity)SketchCircle, TransientGeometry.CreatePoint2d(0, 0), false); Sketch.GeometricConstraints.AddCoincident(SketchEntity, (Inventor.SketchEntity)SketchCircle.CenterSketchPoint); RadiusDimConstraint = null; SketchCircle = null; Inventor.ObjectCollection SketchObjectCollection; SketchObjectCollection = InvApp.TransientObjects.CreateObjectCollection(); SketchCircle = Sketch.SketchCircles.AddByCenterRadius(TransientGeometry.CreatePoint2d(0, 0), FlangeDiaID / 2); RadiusDimConstraint = Sketch.DimensionConstraints.AddRadius((Inventor.SketchEntity)SketchCircle, TransientGeometry.CreatePoint2d(0, 0), false); Sketch.GeometricConstraints.AddCoincident(SketchEntity, (Inventor.SketchEntity)SketchCircle.CenterSketchPoint); SketchObjectCollection.Add(SketchCircle); SketchProfile = Sketch.Profiles.AddForSolid(true, SketchObjectCollection); ExtrudeDefinition = PartDocument.ComponentDefinition.Features.ExtrudeFeatures.CreateExtrudeDefinition(SketchProfile, Inventor.PartFeatureOperationEnum.kNewBodyOperation); ExtrudeDefinition.SetDistanceExtent(FlangeThickness, Inventor.PartFeatureExtentDirectionEnum.kPositiveExtentDirection); //Extrude The Sketch Profile ExtrudeFeature = PartDocument.ComponentDefinition.Features.ExtrudeFeatures.Add(ExtrudeDefinition); ExtrudeFeature.Name = "FlangeBody"; return(ExtrudeFeature); }
public Inventor.ExtrudeFeature Extrude_FlangeBody() { Inventor.TransientGeometry TransientGeometry; Inventor.SketchCircle SketchCircle; Inventor.RadiusDimConstraint RadiusDiamension = null; Inventor.Profile SketchProfile; Inventor.ExtrudeDefinition ExtrudeDefinition; Inventor.ExtrudeFeature ExtrudeFeature = null; Inventor.PlanarSketch Sketch; Inventor.SketchEntity SketchEntity; //Create Sketch on wp project 0,0,0 work point Geometry PartDocument = AddSketchProjectCenterPoint(PartDocument, out Sketch, out SketchEntity); //Get the Transient Geometry Object from Inventor TransientGeometry = InvApp.TransientGeometry; //Draw Outside Hole DrawCircle_Constrain_Diamension(TransientGeometry.CreatePoint2d(0, 0), out SketchCircle, out RadiusDiamension, Sketch, SketchEntity, FlangeDiaOD / 2); RadiusDiamension = null; // reset for next use SketchCircle = null; Inventor.ObjectCollection SketchObjectCollection; SketchObjectCollection = InvApp.TransientObjects.CreateObjectCollection(); //Draw Inside Hole Add to sketch objects DrawCircle_Constrain_Diamension(TransientGeometry.CreatePoint2d(0, 0), out SketchCircle, out RadiusDiamension, Sketch, SketchEntity, FlangeDiaID / 2); //Add to sketch Collection ready for Extrude SketchObjectCollection.Add(SketchCircle); //Convert to profileing SketchProfile = Sketch.Profiles.AddForSolid(true, SketchObjectCollection); ExtrudeDefinition = PartDocument.ComponentDefinition.Features.ExtrudeFeatures.CreateExtrudeDefinition(SketchProfile, Inventor.PartFeatureOperationEnum.kNewBodyOperation); ExtrudeDefinition.SetDistanceExtent(FlangeThickness, Inventor.PartFeatureExtentDirectionEnum.kPositiveExtentDirection); //Extrude The Sketch Profile ExtrudeFeature = PartDocument.ComponentDefinition.Features.ExtrudeFeatures.Add(ExtrudeDefinition); ExtrudeFeature.Name = "FlangeBody"; return(ExtrudeFeature); }
private Inventor.ObjectCollection CreateHoleSketch(ref Inventor.PartDocument PartDocument, ref Inventor.ExtrudeFeature ExtrudeFeature, string PCD, string PCDAngle) { Inventor.UnitsOfMeasure UnitsOfMeasure; Inventor.PlanarSketch Sketch = null; Inventor.WorkPoint WorkPoint = null; Inventor.SketchEntity CenterPointSketchEntity = null; Inventor.SketchArc pcdSketchArc = null; Inventor.SketchLine AngleSketchLine = null; Inventor.SketchLine CenterSketchLine = null; Inventor.SketchPoint SketchPoint = null; Inventor.TransientGeometry TransientGeometry; Inventor.RadiusDimConstraint RadiusDimConstraint = null; Inventor.TwoLineAngleDimConstraint TwoLineAngleDimConstraint = null; Inventor.ObjectCollection ObjectCollection = null; Inventor.ModelParameter ModelParameter = null; ObjectCollection = InvApp.TransientObjects.CreateObjectCollection(); double pcdDia = 0, pcdAngle = 0.0; UnitsOfMeasure = PartDocument.UnitsOfMeasure; pcdDia = UnitsOfMeasure.GetValueFromExpression(PCD, Inventor.UnitsTypeEnum.kMillimeterLengthUnits); pcdAngle = UnitsOfMeasure.GetValueFromExpression(PCDAngle, Inventor.UnitsTypeEnum.kDegreeAngleUnits); WorkPoint = PartDocument.ComponentDefinition.WorkPoints[1]; TransientGeometry = InvApp.TransientGeometry; foreach (Inventor.Face Face in ExtrudeFeature.EndFaces) { if (Face.SurfaceType == Inventor.SurfaceTypeEnum.kPlaneSurface) { Sketch = PartDocument.ComponentDefinition.Sketches.Add(Face, false); CenterPointSketchEntity = Sketch.AddByProjectingEntity(WorkPoint); CenterSketchLine = Sketch.SketchLines.AddByTwoPoints(TransientGeometry.CreatePoint2d(0, 0), TransientGeometry.CreatePoint2d(0, pcdDia / 2)); CenterSketchLine.Construction = true; AngleSketchLine = Sketch.SketchLines.AddByTwoPoints(CenterSketchLine.StartSketchPoint, TransientGeometry.CreatePoint2d(20, pcdDia / 2)); AngleSketchLine.Construction = true; Sketch.GeometricConstraints.AddCoincident(CenterPointSketchEntity, (Inventor.SketchEntity)CenterSketchLine.StartSketchPoint); Sketch.GeometricConstraints.AddEqualLength(CenterSketchLine, AngleSketchLine); pcdSketchArc = Sketch.SketchArcs.AddByCenterStartEndPoint(CenterSketchLine.StartSketchPoint, CenterSketchLine.EndSketchPoint, AngleSketchLine.EndSketchPoint, false); pcdSketchArc.Construction = true; Sketch.GeometricConstraints.AddVertical((Inventor.SketchEntity)CenterSketchLine, false); Sketch.GeometricConstraints.AddCoincident(CenterPointSketchEntity, (Inventor.SketchEntity)pcdSketchArc.CenterSketchPoint); SketchPoint = Sketch.SketchPoints.Add(TransientGeometry.CreatePoint2d(0, 0), true); Sketch.GeometricConstraints.AddCoincident((Inventor.SketchEntity)SketchPoint, (Inventor.SketchEntity)AngleSketchLine.EndSketchPoint); RadiusDimConstraint = Sketch.DimensionConstraints.AddRadius((Inventor.SketchEntity)pcdSketchArc, pcdSketchArc.Geometry.Center, false); if (RadiusDimConstraint.Parameter.ParameterType == Inventor.ParameterTypeEnum.kModelParameter) { ModelParameter = (Inventor.ModelParameter)RadiusDimConstraint.Parameter; if (ModelParameter.BuiltIn) { ModelParameter.Name = "PCD"; ModelParameter.Value = pcdDia / 2; } } TwoLineAngleDimConstraint = Sketch.DimensionConstraints.AddTwoLineAngle(CenterSketchLine, AngleSketchLine, TransientGeometry.CreatePoint2d(1, 1), false); if (TwoLineAngleDimConstraint.Parameter.ParameterType == Inventor.ParameterTypeEnum.kModelParameter) { ModelParameter = null; ModelParameter = (Inventor.ModelParameter)TwoLineAngleDimConstraint.Parameter; if (ModelParameter.BuiltIn) { ModelParameter.Name = "Angle"; ModelParameter.Value = pcdAngle / 2; } } ObjectCollection.Add(SketchPoint); } PartDocument.Update(); } return(ObjectCollection); }
private void DrawCircle_Constrain_Diamension(Inventor.Point2d CenterPoint, out Inventor.SketchCircle SketchCircle, out Inventor.RadiusDimConstraint RadiusDimConstraint, Inventor.PlanarSketch Sketch, Inventor.SketchEntity SketchEntity, double Radius) { //Draw SketchCircle = Sketch.SketchCircles.AddByCenterRadius(CenterPoint, Radius); //Dim RadiusDimConstraint = Sketch.DimensionConstraints.AddRadius((Inventor.SketchEntity)SketchCircle, CenterPoint, false); //Anchor Sketch.GeometricConstraints.AddCoincident(SketchEntity, (Inventor.SketchEntity)SketchCircle.CenterSketchPoint); }