public override void CreateModule(ParameterBase Parameter) { parCylineDoor = Parameter as ParCylinderDoor; if (parCylineDoor == null) { return; } init(); PartDocument part = InventorTool.CreatePart(); PartComponentDefinition partDef = part.ComponentDefinition; PlanarSketch osketch = partDef.Sketches.Add(partDef.WorkPlanes[3]); SketchEllipticalArc Arc1 = osketch.SketchEllipticalArcs.Add(InventorTool.Origin, InventorTool.Left, parCylineDoor.DoorRadius, parCylineDoor.InRadius, 0, Math.PI / 2); SketchEllipticalArc Arc2 = osketch.SketchEllipticalArcs.Add(InventorTool.Origin, InventorTool.Left, parCylineDoor.DoorRadius + parCylineDoor.Thickness, parCylineDoor.InRadius + parCylineDoor.Thickness, 0, Math.PI / 2); osketch.GeometricConstraints.AddConcentric((SketchEntity)Arc1, (SketchEntity)Arc2); SketchLine Line1 = osketch.SketchLines.AddByTwoPoints(Arc1.StartSketchPoint, Arc2.StartSketchPoint); SketchLine Line2 = osketch.SketchLines.AddByTwoPoints(Arc1.EndSketchPoint, Arc2.EndSketchPoint); osketch.GeometricConstraints.AddHorizontalAlign(Arc1.StartSketchPoint, Arc1.CenterSketchPoint); osketch.GeometricConstraints.AddVerticalAlign(Arc1.EndSketchPoint, Arc1.CenterSketchPoint); osketch.GeometricConstraints.AddHorizontal((SketchEntity)Line1); osketch.GeometricConstraints.AddVertical((SketchEntity)Line2); osketch.DimensionConstraints.AddEllipseRadius((SketchEntity)Arc1, true, InventorTool.TranGeo.CreatePoint2d(-parCylineDoor.DoorRadius / 2, 0)); osketch.DimensionConstraints.AddEllipseRadius((SketchEntity)Arc1, false, InventorTool.TranGeo.CreatePoint2d(0, -parCylineDoor.InRadius / 2)); Point2d p = InventorTool.TranGeo.CreatePoint2d((Line1.StartSketchPoint.Geometry.X + Line1.EndSketchPoint.Geometry.X) / 2 + 1, (Line1.StartSketchPoint.Geometry.Y + Line1.EndSketchPoint.Geometry.Y) / 2 + 1); osketch.DimensionConstraints.AddTwoPointDistance(Line1.StartSketchPoint, Line1.EndSketchPoint, DimensionOrientationEnum.kAlignedDim, p); Profile profile = osketch.Profiles.AddForSolid(); RevolveFeature revolve = partDef.Features.RevolveFeatures.AddFull(profile, Line1, PartFeatureOperationEnum.kNewBodyOperation); }
/// <summary> /// 偏移 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="osketch"></param> /// <param name="source"></param> /// <param name="distance"></param> /// <param name="Direction"></param> /// <returns></returns> private T offsetLine <T>(PlanarSketch osketch, T source, double distance, bool Direction) { ObjectCollection obj = InventorTool.Inventor.TransientObjects.CreateObjectCollection(); obj.Add(source); SketchEntitiesEnumerator Entities = osketch.OffsetSketchEntitiesUsingDistance(obj, distance, Direction, true, true); return(InventorTool.GetFirstFromIEnumerator <T>(Entities.GetEnumerator())); }
public override void CreateModule(ParameterBase Parameter) { parCylinder = Parameter as ParCylinder; if (parCylinder == null) { return; } init(); PartDocument part = InventorTool.CreatePart(); PartComponentDefinition partDef = part.ComponentDefinition; PlanarSketch osketch = partDef.Sketches.Add(partDef.WorkPlanes[3]); SketchEllipticalArc Arc1, Arc2; SketchLine Line1, Line2; CreateLines(osketch, out Arc1, out Line1, parCylinder.CapRadius, parCylinder.InRadius, parCylinder.Length); //SketchLine line5= offsetLine<SketchLine>(osketch, Line1, 2, true); //SketchOffsetSpline arc5 = (SketchOffsetSpline)offsetLine(osketch, Arc1, 2, true); //SketchLine Line3 = osketch.SketchLines.AddByTwoPoints(Arc1.StartSketchPoint, arc5.StartSketchPoint); //SketchLine Line4 = osketch.SketchLines.AddByTwoPoints(Line1.EndSketchPoint, line5.EndSketchPoint); //osketch.GeometricConstraints.AddHorizontal((SketchEntity)Line3); //osketch.GeometricConstraints.AddVertical((SketchEntity)Line4); //osketch.GeometricConstraints.AddEqualLength(Line3, Line4); //osketch.DimensionConstraints.AddEllipseRadius((SketchEntity)Arc1, true, InventorTool.TranGeo.CreatePoint2d(-parCylinder.CapRadius / 2, 0)); //osketch.DimensionConstraints.AddEllipseRadius((SketchEntity)Arc1, false, InventorTool.TranGeo.CreatePoint2d(0, -parCylinder.InRadius / 2)); //Point2d p = InventorTool.TranGeo.CreatePoint2d((Line1.StartSketchPoint.Geometry.X + Line1.EndSketchPoint.Geometry.X) / 2, (Line1.StartSketchPoint.Geometry.Y + Line1.EndSketchPoint.Geometry.Y) / 2 + 1); //osketch.DimensionConstraints.AddTwoPointDistance(Line1.StartSketchPoint, Line1.EndSketchPoint, DimensionOrientationEnum.kAlignedDim, p); //p = InventorTool.TranGeo.CreatePoint2d((Line4.StartSketchPoint.Geometry.X + Line4.EndSketchPoint.Geometry.X) / 2 + 1, (Line4.StartSketchPoint.Geometry.Y + Line4.EndSketchPoint.Geometry.Y) / 2); //osketch.DimensionConstraints.AddTwoPointDistance(Line4.StartSketchPoint, Line4.EndSketchPoint, DimensionOrientationEnum.kAlignedDim, p); CreateLines(osketch, out Arc2, out Line2, parCylinder.CapRadius + parCylinder.Thickness, parCylinder.InRadius + parCylinder.Thickness, parCylinder.Length); SketchLine Line3 = osketch.SketchLines.AddByTwoPoints(Arc1.StartSketchPoint, Arc2.StartSketchPoint); SketchLine Line4 = osketch.SketchLines.AddByTwoPoints(Line1.EndSketchPoint, Line2.EndSketchPoint); osketch.GeometricConstraints.AddHorizontalAlign(Arc1.StartSketchPoint, Arc1.CenterSketchPoint); osketch.GeometricConstraints.AddVerticalAlign(Arc1.EndSketchPoint, Arc1.CenterSketchPoint); osketch.GeometricConstraints.AddHorizontal((SketchEntity)Line3); osketch.GeometricConstraints.AddVertical((SketchEntity)Line4); osketch.GeometricConstraints.AddEqualLength(Line3, Line4); osketch.GeometricConstraints.AddConcentric((SketchEntity)Arc1, (SketchEntity)Arc2); // osketch.GeometricConstraints.AddCoincident((SketchEntity)InventorTool.Origin, (SketchEntity)Arc1.CenterSketchPoint); osketch.DimensionConstraints.AddEllipseRadius((SketchEntity)Arc1, true, InventorTool.TranGeo.CreatePoint2d(-parCylinder.CapRadius / 2, 0)); osketch.DimensionConstraints.AddEllipseRadius((SketchEntity)Arc1, false, InventorTool.TranGeo.CreatePoint2d(0, -parCylinder.InRadius / 2)); Point2d p = InventorTool.TranGeo.CreatePoint2d((Line1.StartSketchPoint.Geometry.X + Line1.EndSketchPoint.Geometry.X) / 2, (Line1.StartSketchPoint.Geometry.Y + Line1.EndSketchPoint.Geometry.Y) / 2 + 1); osketch.DimensionConstraints.AddTwoPointDistance(Line1.StartSketchPoint, Line1.EndSketchPoint, DimensionOrientationEnum.kAlignedDim, p); p = InventorTool.TranGeo.CreatePoint2d((Line4.StartSketchPoint.Geometry.X + Line4.EndSketchPoint.Geometry.X) / 2 + 1, (Line4.StartSketchPoint.Geometry.Y + Line4.EndSketchPoint.Geometry.Y) / 2); osketch.DimensionConstraints.AddTwoPointDistance(Line4.StartSketchPoint, Line4.EndSketchPoint, DimensionOrientationEnum.kAlignedDim, p); CreateRibs(osketch, Line2); Profile profile = osketch.Profiles.AddForSolid(); RevolveFeature revolve = partDef.Features.RevolveFeatures.AddFull(profile, Line3, PartFeatureOperationEnum.kNewBodyOperation); }
public override void CreateModule(ParameterBase Parameter) { parPedestal = Parameter as ParPedestal; if (parPedestal == null) { return; } init(); part = InventorTool.CreatePart(); partDef = part.ComponentDefinition; PlanarSketch osketch = partDef.Sketches.Add(partDef.WorkPlanes[3]); }