/// <summary> /// 构建垂直连接板左右侧的对称性; /// </summary> /// <param name="mrPart"></param> private void InitMrPart(CMrPart mrPart) { Vector normal = mrPart.mNormal; //1.板的法向与Y轴平行或者法向在XY平面内才可以进行对称性判断; if (!(CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(0, 1, 0)) || CDimTools.GetInstance().IsVectorInXYPlane(normal))) { return; } //2.需要判断板的位置; if (mrPart.GetCylinderTopViewInfo().mPostionType == MrPositionType.LEFT) { Point maxXMaxY = mrPart.GetMaxXMaxYPoint(); Point maxXMinY = mrPart.GetMaxXMinYPoint(); String strAttribute1 = ((int)maxXMaxY.Y).ToString(); if (mDicAttributePart.ContainsKey(strAttribute1)) { CMrPart symPart = mDicAttributePart[strAttribute1]; mrPart.GetCylinderTopViewInfo().mSymPart = symPart; symPart.GetCylinderTopViewInfo().mSymPart = mrPart; } else { mDicAttributePart.Add(strAttribute1, mrPart); } } if (mrPart.GetCylinderTopViewInfo().mPostionType == MrPositionType.RIGHT) { Point minXMaxY = mrPart.GetMinXMaxYPoint(); Point minXMinY = mrPart.GetMinXMinYPoint(); String strAttribute1 = ((int)minXMaxY.Y).ToString(); if (mDicAttributePart.ContainsKey(strAttribute1)) { CMrPart symPart = mDicAttributePart[strAttribute1]; mrPart.GetCylinderTopViewInfo().mSymPart = symPart; symPart.GetCylinderTopViewInfo().mSymPart = mrPart; } else { mDicAttributePart.Add(strAttribute1, mrPart); } } }