public static Electrode GetElectrode(Snap.NX.Body body) { Electrode result = null; var elecName = body.Name; var faces = body.Faces; //顶面 var topFace = faces.FirstOrDefault(u => u.MatchAttrValue(BASE_BOT, 1)); //基准面 var baseFaces = faces.Where(u => u.MatchAttrValue(BASE_TOP, 1)).ToList(); var baseFace = baseFaces.FirstOrDefault(); if (baseFaces.Count > 1) { baseFace = baseFaces.OrderByDescending(u => Snap.Compute.Perimeter(u)).FirstOrDefault(); } var attrValue = body.GetAttrValue(EACT_ELECT_GROUP); //基准点 var elecBasePoint = Snap.Globals.WorkPart.Points.FirstOrDefault(u => !string.IsNullOrEmpty(attrValue) && u.MatchAttrValue(EACT_ELECT_GROUP, attrValue)); if (!string.IsNullOrEmpty(elecName) && topFace != null && baseFace != null) { var model = new EactElectrode(); model.BaseFace = baseFace; model.TopFace = topFace; model.ElecBasePoint = elecBasePoint; model.ElecBody = body; result = model; model.AllObject.Add(body); if (elecBasePoint != null) { model.AllObject.Add(elecBasePoint); } } return(result); }
public static Electrode GetElectrode(Snap.NX.Body body) { Electrode result = null; result = XKElectrode.GetElectrode(body); if (result == null) { result = UPElectrode.GetElectrode(body); } if (result == null) { result = JYElectrode.GetElectrode(body); } if (result == null) { result = EactElectrode.GetElectrode(body); } return(result); }