public static AbstractCircleFace Create(Face face) { FaceData data = FaceUtils.AskFaceData(face); AbstractCircleFace abs = null; switch (face.SolidFaceType) { case Face.FaceType.Cylindrical: abs = new CylinderFace(data); break; case Face.FaceType.Conical: abs = new CircularConeFace(data); break; case Face.FaceType.Planar: List <ArcEdgeData> edge = new List <ArcEdgeData>(); if (CircleAnnylusFace.IsCircleAnnylus(face, out edge)) { abs = new CircleAnnylusFace(data, edge); } break; default: break; } return(abs); }
public BodyCircleFeater(Body body) { this.body = body; foreach (Face face in body.GetFaces()) { AbstractCircleFace af = CircleFaceFactory.Create(face); if (af != null) { circleFaces.Add(af); } } }
/// <summary> /// 判断是否是一个凸台并添加 /// </summary> /// <param name="cf"></param> /// <returns></returns> public bool IsInThisStep(AbstractCircleFace cf) { if (this.CircleFaceList.Count == 0 || this.CircleFaceList == null) { this.CircleFaceList.Add(cf); return(true); } else { if (this.CircleFaceList[0].IsCircleStep(cf)) { this.CircleFaceList.Add(cf); return(true); } } return(false); }