/// <summary> /// 绘制主梁外侧法向与X轴平行的零件标注; /// </summary> private void DrawXNormalAlonePartDim() { List <CMrPart> xNormalAlonePartList = CMrCylinderDoorFrontManager.GetInstance().mXNormalAloneDimPartList; CMrPart leftPart = CMrCylinderDoorFrontManager.GetInstance().mLeftPart; CMrPart leftTopPart = CMrCylinderDoorFrontManager.GetInstance().mLeftTopPart; CMrPart leftTopMiddlePart = CMrCylinderDoorFrontManager.GetInstance().mLeftTopMiddlePart; CMrPart rightPart = CMrCylinderDoorFrontManager.GetInstance().mRightPart; CMrPart rightTopPart = CMrCylinderDoorFrontManager.GetInstance().mRightTopPart; CMrPart rightTopMiddlePart = CMrCylinderDoorFrontManager.GetInstance().mRightTopMiddlePart; double leftPartMinX = leftPart.GetMinXPoint().X; double rightPartMaxX = rightPart.GetMaxXPoint().X; foreach (CMrPart mrPart in xNormalAlonePartList) { double partMinX = mrPart.GetMinXPoint().X; double partMaxX = mrPart.GetMaxXPoint().X; if (partMinX < leftPartMinX) { PointList pointList = new PointList(); Point minXmaxYPoint = mrPart.GetMinXMaxYPoint(); pointList.Add(minXmaxYPoint); double dimDistance = CCommonPara.mDefaultDimDistance; Vector dimVector = new Vector(0, 1, 0); if (leftTopPart != null && leftTopPart.GetMinXMinYPoint().Y < minXmaxYPoint.Y) { pointList.Add(new Point(leftTopPart.GetMinXPoint().X, minXmaxYPoint.Y, 0)); } else if (leftTopMiddlePart != null && leftTopMiddlePart.GetMinXMinYPoint().Y < minXmaxYPoint.Y) { pointList.Add(new Point(leftTopMiddlePart.GetMinXPoint().X, minXmaxYPoint.Y, 0)); } else { pointList.Add(new Point(leftPartMinX, minXmaxYPoint.Y, 0)); } CDimTools.GetInstance().DrawDimensionSet(mViewBase, pointList, dimVector, dimDistance, CCommonPara.mSizeDimPath); } else if (partMaxX > rightPartMaxX) { PointList pointList = new PointList(); Point maxXmaxYPoint = mrPart.GetMaxXMaxYPoint(); pointList.Add(maxXmaxYPoint); double dimDistance = CCommonPara.mDefaultDimDistance; Vector dimVector = new Vector(0, 1, 0); if (rightTopPart != null && rightTopPart.GetMaxXMinYPoint().Y < maxXmaxYPoint.Y) { pointList.Add(new Point(rightTopPart.GetMaxXPoint().X, maxXmaxYPoint.Y, 0)); } else if (rightTopMiddlePart != null && rightTopMiddlePart.GetMaxXMinYPoint().Y < maxXmaxYPoint.Y) { pointList.Add(new Point(rightTopMiddlePart.GetMaxXPoint().X, maxXmaxYPoint.Y, 0)); } else { pointList.Add(new Point(rightPartMaxX, maxXmaxYPoint.Y, 0)); } CDimTools.GetInstance().DrawDimensionSet(mViewBase, pointList, dimVector, dimDistance, CCommonPara.mSizeDimPath); } } }