/// <summary> /// 获取上翼板向两边弯时顶视图下方的标注集合; /// </summary> /// <returns></returns> public CMrDimSet GetXDownDimSetMiddle() { if (!IsNeedXDownDimMiddle()) { return(null); } CMrDimSet mrDimSet = new CMrDimSet(); CMrPart leftBottomBeam = CMrBeamDoorManager.GetInstance().mLeftBottomBeam; CMrPart rightBottomBeam = CMrBeamDoorManager.GetInstance().mRightBottomBeam; Point midMaxPoint = CMrBeamDoorManager.GetInstance().mMidMaxPoint; if (mMrPart == leftBottomBeam) { mrDimSet.AddPoint(mMrPart.mRightBottomPoint); } else if (mMrPart == rightBottomBeam) { mrDimSet.AddPoint(mMrPart.mLeftBottomPoint); } else { if (mMrPart.mLeftBottomPoint.X < midMaxPoint.X) { mrDimSet.AddPoint(mMrPart.mLeftBottomPoint); } else if (mMrPart.mLeftBottomPoint.X > midMaxPoint.X) { mrDimSet.AddPoint(mMrPart.mRightBottomPoint); } } return(mrDimSet); }
/// <summary> /// 获取顶视图上方的标注集合; /// </summary> /// <returns></returns> public CMrDimSet GetXUpDimSetNormal() { if (!IsNeedXUpDimNormal()) { return(null); } CMrDimSet mrDimSet = new CMrDimSet(); CMrPart topBeam = CMrBeamDoorManager.GetInstance().mTopBeam; Vector normal = mMrPart.mNormal; Vector topBeamNormal = topBeam.mNormal; Point leftTopPoint = topBeam.mLeftTopPoint; Point rightTopPoint = topBeam.mRightTopPoint; MrSlopeType slopeType = CDimTools.GetInstance().JudgeLineSlope(leftTopPoint, rightTopPoint); if (slopeType == MrSlopeType.MORETHAN_ZERO) { if (CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(1, 0, 0))) { mrDimSet.AddPoint(mMrPart.GetMaxXMaxYPoint()); } else { mrDimSet.AddPoint(mMrPart.mRightTopPoint); } } else if (slopeType == MrSlopeType.LESSTHAN_ZERO) { if (CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(1, 0, 0))) { mrDimSet.AddPoint(mMrPart.GetMinXMaxYPoint()); } else { mrDimSet.AddPoint(mMrPart.mLeftTopPoint); } } else { mrDimSet.AddPoint(mMrPart.mLeftTopPoint); } return(mrDimSet); }
/// <summary> /// 获取主梁右侧螺钉组的标注; /// </summary> /// <returns></returns> public CMrDimSet GetYRightBoltDim() { Vector zVector = new Vector(0, 0, 1); Vector normal = mMrPart.mNormal; double maxX = mMrPart.GetMaxXPoint().X; if (!CDimTools.GetInstance().IsTwoVectorParallel(normal, zVector)) { return(null); } if (maxX < CCommonPara.mDblError || !mMrPart.IsHaveBolt()) { return(null); } CMrDimSet mrDimSet = new CMrDimSet(); List <CMrBoltArray> mrBoltArrayList = mMrPart.GetBoltArrayList(); foreach (CMrBoltArray mrBoltArray in mrBoltArrayList) { //如果螺钉组的法向与Z轴不平行,则返回继续执行; if (!CDimTools.GetInstance().IsTwoVectorParallel(zVector, mrBoltArray.mNormal)) { continue; } if (mrBoltArray.mBoltArrayShapeType == MrBoltArrayShapeType.ARRAY) { List <Point> maxPointList = mrBoltArray.GetMaxXPointList(); mrDimSet.AddRange(maxPointList); } else if (mrBoltArray.mBoltArrayShapeType == MrBoltArrayShapeType.OBLIQUELINE) { List <Point> boltPointList = mrBoltArray.GetBoltPointList(); mrDimSet.AddRange(boltPointList); } } return(mrDimSet); }
/// <summary> /// 获得零件右侧的标注,主要是底部和顶部的零部件; /// </summary> /// <returns></returns> public CMrDimSet GetYRightPartDim() { CMrDimSet mrDimSet = new CMrDimSet(); CMrPart yNormalBottomPart = CMrCylinderDoorTopManager.GetInstance().mYNormalBottomPart; CMrPart yNormalTopPart = CMrCylinderDoorTopManager.GetInstance().mTopPart; if (mMrPart == yNormalBottomPart) { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); mrDimSet.AddPoint(mMrPart.GetMaxXMaxYPoint()); } if (mMrPart == yNormalTopPart) { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); mrDimSet.AddPoint(mMrPart.GetMaxXMaxYPoint()); } return(mrDimSet); }
/// <summary> /// 获得法向与Z轴平行的中间的零件中螺钉标注; /// </summary> /// <returns></returns> public List <CMrDimSet> GetZNormalMiddleDimSet() { List <CMrDimSet> mrDimSetList = new List <CMrDimSet>(); Vector normal = mMrPart.mNormal; double minX = mMrPart.GetMinXPoint().X; double maxX = mMrPart.GetMaxXPoint().X; if (!CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(0, 0, 1)) || !mMrPart.IsHaveBolt()) { return(mrDimSetList); } if (CDimTools.GetInstance().CompareTwoDoubleValue(minX, 0) >= 0 || CDimTools.GetInstance().CompareTwoDoubleValue(maxX, 0) <= 0) { return(mrDimSetList); } List <CMrBoltArray> mrBoltArrayList = mMrPart.GetBoltArrayList(); foreach (CMrBoltArray mrBoltArray in mrBoltArrayList) { if (!CDimTools.GetInstance().IsTwoVectorParallel(mrBoltArray.mNormal, new Vector(0, 0, 1))) { continue; } List <Point> pointList = mrBoltArray.GetMaxYPointList(); CMrDimSet mrDimSet = new CMrDimSet(); mrDimSet.AddRange(pointList); mrDimSet.mDimVector = new Vector(0, 1, 0); mrDimSet.mDimDistance = CCommonPara.mDefaultDimDistance; mrDimSetList.Add(mrDimSet); } return(mrDimSetList); }
/// <summary> /// 得到右侧向上的零部件; /// </summary> /// <returns></returns> public CMrDimSet GetRightXUpDimSetMiddle() { if (!IsNeedXUpDimMiddle()) { return(null); } Point maxXPoint = mMrPart.GetMaxXPoint(); Point midTopPoint = CMrBeamDoorManager.GetInstance().mMidMaxPoint; if (maxXPoint.X < midTopPoint.X) { return(null); } Vector normal = mMrPart.mNormal; CMrDimSet mrDimSet = new CMrDimSet(); if (CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(1, 0, 0))) { mrDimSet.AddPoint(mMrPart.GetMaxXMaxYPoint()); } else { MrBeamDoorType beamDoorType = CMrBeamDoorManager.GetInstance().mType; if (beamDoorType == MrBeamDoorType.TypeMiddle1) { mrDimSet.AddPoint(mMrPart.mLeftTopPoint); } else if (beamDoorType == MrBeamDoorType.TypeMiddle2) { mrDimSet.AddPoint(mMrPart.mRightTopPoint); } } return(mrDimSet); }
/// <summary> /// 获取主梁为类型3时的标注集合; /// </summary> /// <returns></returns> public CMrDimSet GetTypeMiddle3XUpDimSetMiddle() { if (!IsNeedXUpDimMiddle()) { return(null); } Point maxXPoint = mMrPart.GetMaxXPoint(); Vector normal = mMrPart.mNormal; CMrPart topBeam = CMrBeamDoorManager.GetInstance().mTopBeam; Vector topBeamNormal = topBeam.mNormal; CMrDimSet mrDimSet = new CMrDimSet(); if (CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(1, 0, 0))) { mrDimSet.AddPoint(mMrPart.GetMaxXMaxYPoint()); } else { MrBeamDoorType beamDoorType = CMrBeamDoorManager.GetInstance().mType; MrSlopeType mrSlopeType = CDimTools.GetInstance().JudgeLineSlope(new Point(0, 0, 0), topBeamNormal); if (mrSlopeType == MrSlopeType.MORETHAN_ZERO) { mrDimSet.AddPoint(mMrPart.mLeftTopPoint); } else if (mrSlopeType == MrSlopeType.LESSTHAN_ZERO) { mrDimSet.AddPoint(mMrPart.mRightTopPoint); } } return(mrDimSet); }
/// <summary> /// 获取顶视图下方的标注集合; /// </summary> /// <returns></returns> public CMrDimSet GetXDownDimSetNormal() { if (!IsNeedXDownDimNormal()) { return(null); } Vector normal = mMrPart.mNormal; CMrDimSet mrDimSet = new CMrDimSet(); if (CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(1, 0, 0))) { mrDimSet.AddPoint(mMrPart.mLeftBottomPoint); } else if (CDimTools.GetInstance().IsTwoVectorParallel(normal, new Vector(0, 1, 0))) { mrDimSet.AddPoint(mMrPart.mLeftBottomPoint); mrDimSet.AddPoint(mMrPart.mRightBottomPoint); } return(mrDimSet); }
/// <summary> /// 获取零件上螺钉的标注集,只有左侧或则右侧的零部件螺钉需要标注; /// </summary> /// <returns></returns> public List <CMrDimSet> GetBoltDimSetList() { List <CMrDimSet> mrDimSetList = new List <CMrDimSet>(); Vector normal = mMrPart.mNormal; Vector zVector = new Vector(0, 0, 1); double minX = mMrPart.GetMinXPoint().X; double maxX = mMrPart.GetMaxYPoint().X; if (minX < 0 && maxX > 0) { return(mrDimSetList); } if (!CDimTools.GetInstance().IsTwoVectorParallel(normal, zVector)) { return(mrDimSetList); } List <CMrBoltArray> mrBoltArrayList = mMrPart.GetBoltArrayList(); foreach (CMrBoltArray mrBoltArray in mrBoltArrayList) { if (mrBoltArray.mBoltArrayShapeType == MrBoltArrayShapeType.ARRAY) { List <Point> maxYPointList = mrBoltArray.GetMaxYPointList(); CMrDimSet mrDimSet = new CMrDimSet(); mrDimSet.AddRange(maxYPointList); mrDimSet.AddPoint(new Point(0, maxYPointList[0].Y, 0)); mrDimSet.mDimVector = new Vector(0, 1, 0); mrDimSet.mDimDistance = Math.Abs(maxYPointList[0].Y - mMrPart.GetMaxYPoint().Y) + 60; if (mrDimSet.mDimDistance > 500) { mrDimSet.mDimDistance = CCommonPara.mDefaultDimDistance; } mrDimSetList.Add(mrDimSet); } else if (mrBoltArray.mBoltArrayShapeType == MrBoltArrayShapeType.OBLIQUELINE) { List <Point> boltPointList = mrBoltArray.GetBoltPointList(); CMrDimSet mrDimSet = new CMrDimSet(); Point firstPt = mrBoltArray.mFirstPoint; Point secondPt = mrBoltArray.mSecondPoint; Vector dimVector = null; MrSlopeType mrSlopeType = CDimTools.GetInstance().JudgeLineSlope(firstPt, secondPt); if (mrSlopeType == MrSlopeType.MORETHAN_ZERO) { dimVector = new Vector(0, 1, 0); mrDimSet.mDimDistance = Math.Abs(boltPointList[0].Y - mMrPart.GetMaxYPoint().Y) + 60; } else if (mrSlopeType == MrSlopeType.LESSTHAN_ZERO) { dimVector = new Vector(0, -1, 0); mrDimSet.mDimDistance = Math.Abs(boltPointList[0].Y - mMrPart.GetMinYPoint().Y) + 60; } if (mrDimSet.mDimDistance > 500) { mrDimSet.mDimDistance = CCommonPara.mDefaultDimDistance; } mrDimSet.AddRange(boltPointList); mrDimSet.mDimVector = dimVector; mrDimSet.AddPoint(new Point(0, boltPointList[0].Y, 0)); mrDimSetList.Add(mrDimSet); } } return(mrDimSetList); }
/// <summary> /// 获取主梁右侧的标注集合; /// </summary> /// <returns></returns> public CMrDimSet GetYPartMainRightDimSet() { CMrDimSet mrDimSet = new CMrDimSet(); Vector xVector = new Vector(1, 0, 0); Vector yVector = new Vector(0, 1, 0); Vector zVector = new Vector(0, 0, 1); double mainBeamMinX = CMrMainBeam.GetInstance().GetMinXPoint().X; double mainBeamMaxX = CMrMainBeam.GetInstance().GetMaxXPoint().X; double partMinX = mMrPart.GetMinXPoint().X; double partMaxX = mMrPart.GetMaxXPoint().X; if (partMaxX < CCommonPara.mDblError) { return(null); } CMrPart mrRightPart = CMrCylinderDoorFrontManager.GetInstance().mRightPart; CMrPart mrRightTopPart = CMrCylinderDoorFrontManager.GetInstance().mRightTopPart; CMrPart mrRightTopMiddlePart = CMrCylinderDoorFrontManager.GetInstance().mRightTopMiddlePart; CMrPart mrTopPart = CMrCylinderDoorFrontManager.GetInstance().mTopPart; CMrPart mrZNormalBottomPart = CMrCylinderDoorFrontManager.GetInstance().mZNormalBottomPart; CMrPart mrYNormalBottomPart = CMrCylinderDoorFrontManager.GetInstance().mYNormalBottomPart; Vector normal = mMrPart.mNormal; //1.如果是左下侧法向与z轴平行的零部件; if (mMrPart == mrZNormalBottomPart) { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); return(mrDimSet); } //2.如果是右上侧的零部件; if (mMrPart == mrRightTopPart) { if (CDimTools.GetInstance().CompareTwoDoubleValue(partMaxX, mainBeamMaxX) < 0) { return(null); } else { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); return(mrDimSet); } } //3.如果是右上侧中间的零部件; if (mMrPart == mrRightTopMiddlePart) { mrDimSet.AddPoint(mMrPart.GetMaxXMaxYPoint()); return(mrDimSet); } //4.如果是下侧法向与Y轴平行的零部件; if (mMrPart == mrYNormalBottomPart) { mrDimSet.AddPoint(mrYNormalBottomPart.GetMaxXMaxYPoint()); mrDimSet.AddPoint(mrYNormalBottomPart.GetMaxXMinYPoint()); return(mrDimSet); } //5.如果是上侧的零部件; if (mMrPart == mrTopPart) { //A.如果上侧零件的法向与Y轴平行; if (CDimTools.GetInstance().IsTwoVectorParallel(normal, yVector)) { mrDimSet.AddPoint(mrTopPart.GetMaxXMaxYPoint()); mrDimSet.AddPoint(mrTopPart.GetMaxXMinYPoint()); return(mrDimSet); } //B.如果法向不与Y轴平行; else if (CDimTools.GetInstance().IsVectorInXYPlane(normal)) { Point minYPoint = mMrPart.GetMinYPoint(); Point maxYPoint = mMrPart.GetMaxYPoint(); MrSlopeType mrSlopeType = CDimTools.GetInstance().JudgeLineSlope(minYPoint, maxYPoint); if (mrSlopeType == MrSlopeType.LESSTHAN_ZERO) { mrDimSet.AddPoint(mMrPart.GetMaxYPoint()); mrDimSet.AddPoint(mMrPart.GetMaxXPoint()); return(mrDimSet); } } } //6.如果向量与X轴平行,并且该零部件贴在右侧板上或右上侧板上的; if (CDimTools.GetInstance().IsTwoVectorParallel(normal, xVector)) { //A.如果右上侧的零件不为空,并且该零件的左侧就是右上侧的板; if (mrRightTopPart != null && mrRightTopPart.GetMaxXMinYPoint().Y < mMrPart.GetMaxYPoint().Y) { double rightTopMaxX = mrRightTopPart.GetMaxXPoint().X; if (Math.Abs(partMinX - rightTopMaxX) < CCommonPara.mDblError) { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); CMrCylinderDoorFrontManager.GetInstance().AppendRightDimPart(mMrPart); return(mrDimSet); } else if (partMinX > rightTopMaxX) { CMrCylinderDoorFrontManager.GetInstance().AppendXNormalAloneDimPart(mMrPart); } } //B.如果右上侧中间的零件不为空,并且该零件的左侧就是右上侧中间的板; if (mrRightTopMiddlePart != null && mrRightTopMiddlePart.GetMaxXMinYPoint().Y < mMrPart.GetMaxYPoint().Y) { double rightTopMiddleMaxX = mrRightTopMiddlePart.GetMaxXPoint().X; if (Math.Abs(partMinX - rightTopMiddleMaxX) < CCommonPara.mDblError) { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); CMrCylinderDoorFrontManager.GetInstance().AppendRightDimPart(mMrPart); return(mrDimSet); } else if (partMinX > rightTopMiddleMaxX) { CMrCylinderDoorFrontManager.GetInstance().AppendXNormalAloneDimPart(mMrPart); } } //C.如果零件的左侧不是右上侧板; else { double rightMaxX = mrRightPart.GetMaxXPoint().X; if (Math.Abs(partMinX - rightMaxX) < CCommonPara.mDblError) { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); CMrCylinderDoorFrontManager.GetInstance().AppendRightDimPart(mMrPart); return(mrDimSet); } else if (partMinX > rightMaxX) { CMrCylinderDoorFrontManager.GetInstance().AppendXNormalAloneDimPart(mMrPart); } } } //7.如果向量与Y轴平行; else if (CDimTools.GetInstance().IsTwoVectorParallel(normal, yVector)) { double rightMaxX = mrRightPart.GetMaxXPoint().X; if (CDimTools.GetInstance().CompareTwoDoubleValue(partMaxX, rightMaxX) > 0 && CDimTools.GetInstance().CompareTwoDoubleValue(partMinX, rightMaxX) <= 0) { CMrApronPlate mrApronPlate = CMrCylinderDoorFrontManager.GetInstance().FindMrApronPlateByYNormalPart(mMrPart); if (mrApronPlate != null) { if (mrApronPlate.mIsUp == true) { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); } else { mrDimSet.AddPoint(mMrPart.GetMaxXMaxYPoint()); } } else { mrDimSet.AddPoint(mMrPart.GetMaxXMaxYPoint()); } CMrCylinderDoorFrontManager.GetInstance().AppendRightDimPart(mMrPart); } else if (IsYNormalPartInMainBeamMiddle(mMrPart)) { CMrCylinderDoorFrontManager.GetInstance().AppendYNormalMiddleDimPart(mMrPart); return(null); } } return(mrDimSet); }
/// <summary> /// 获取主梁左侧的标注集合; /// </summary> /// <returns></returns> public CMrDimSet GetYPartMainLeftDimSet() { CMrDimSet mrDimSet = new CMrDimSet(); Vector xVector = new Vector(1, 0, 0); Vector yVector = new Vector(0, 1, 0); Vector zVector = new Vector(0, 0, 1); double mainBeamMinX = CMrMainBeam.GetInstance().GetMinXPoint().X; double mainBeamMaxX = CMrMainBeam.GetInstance().GetMaxXPoint().X; double partMinX = mMrPart.GetMinXPoint().X; double partMaxX = mMrPart.GetMaxXPoint().X; CMrPart mrLeftPart = CMrCylinderDoorFrontManager.GetInstance().mLeftPart; CMrPart mrLeftTopPart = CMrCylinderDoorFrontManager.GetInstance().mLeftTopPart; CMrPart mrLeftTopMiddlePart = CMrCylinderDoorFrontManager.GetInstance().mLeftTopMiddlePart; CMrPart mrZNormalBottomPart = CMrCylinderDoorFrontManager.GetInstance().mZNormalBottomPart; CMrPart mrYNormalBottomPart = CMrCylinderDoorFrontManager.GetInstance().mYNormalBottomPart; CMrPart mrTopPart = CMrCylinderDoorFrontManager.GetInstance().mTopPart; CMrPart mrRightPart = CMrCylinderDoorFrontManager.GetInstance().mRightPart; Vector normal = mMrPart.mNormal; //1.如果是左下侧法向与z轴平行的零部件; if (mMrPart == mrZNormalBottomPart) { mrDimSet.AddPoint(mMrPart.GetMinXMinYPoint()); return(mrDimSet); } //2.如果是左侧上方的零部件; if (mMrPart == mrLeftTopPart) { if (CDimTools.GetInstance().CompareTwoDoubleValue(partMinX, mainBeamMinX) > 0) { return(null); } else { mrDimSet.AddPoint(mMrPart.GetMinXMinYPoint()); return(mrDimSet); } } //3.如果是左上侧上方中间的零部件; if (mMrPart == mrLeftTopMiddlePart) { mrDimSet.AddPoint(mMrPart.GetMinXMaxYPoint()); return(mrDimSet); } //4.如果是下侧法向与Y轴平行的零部件; if (mMrPart == mrYNormalBottomPart) { mrDimSet.AddPoint(mrYNormalBottomPart.GetMinXMaxYPoint()); mrDimSet.AddPoint(mrYNormalBottomPart.GetMinXMinYPoint()); return(mrDimSet); } //5.如果是上侧的零部件; if (mMrPart == mrTopPart) { //如果上侧零件的法向与Y轴平行; if (CDimTools.GetInstance().IsTwoVectorParallel(normal, yVector)) { mrDimSet.AddPoint(mrTopPart.GetMinXMaxYPoint()); mrDimSet.AddPoint(mrTopPart.GetMinXMinYPoint()); return(mrDimSet); } //如果法向不与Y轴平行; else if (CDimTools.GetInstance().IsVectorInXYPlane(normal)) { Point maxYPoint = mMrPart.GetMaxYPoint(); Point minYPoint = mMrPart.GetMinYPoint(); MrSlopeType mrSlopeType = CDimTools.GetInstance().JudgeLineSlope(minYPoint, maxYPoint); if (mrSlopeType == MrSlopeType.MORETHAN_ZERO) { mrDimSet.AddPoint(mMrPart.GetMaxYPoint()); mrDimSet.AddPoint(mMrPart.GetMinXPoint()); return(mrDimSet); } } } double leftMinX = mrLeftPart.GetMinXPoint().X; //6.如果向量与X轴平行,并且该零部件贴在左侧板上; if (CDimTools.GetInstance().IsTwoVectorParallel(normal, xVector)) { //A:如果左上侧零部件不为空; if (mrLeftTopPart != null && mrLeftTopPart.GetMinXMinYPoint().Y < mMrPart.GetMaxYPoint().Y) { double leftTopMinX = mrLeftTopPart.GetMinXPoint().X; if (Math.Abs(partMaxX - leftTopMinX) < CCommonPara.mDblError) { mrDimSet.AddPoint(mMrPart.GetMinXMinYPoint()); return(mrDimSet); } else if (partMaxX < leftTopMinX) { CMrCylinderDoorFrontManager.GetInstance().AppendXNormalAloneDimPart(mMrPart); } } //B:如果左上侧中间零件不为空; if (mrLeftTopMiddlePart != null && mrLeftTopMiddlePart.GetMinXMinYPoint().Y < mMrPart.GetMaxYPoint().Y) { double leftTopMiddleMinX = mrLeftTopMiddlePart.GetMinXPoint().X; if (Math.Abs(partMaxX - leftTopMiddleMinX) < CCommonPara.mDblError) { mrDimSet.AddPoint(mMrPart.GetMinXMinYPoint()); return(mrDimSet); } else if (partMaxX < leftTopMiddleMinX) { CMrCylinderDoorFrontManager.GetInstance().AppendXNormalAloneDimPart(mMrPart); } } else { if (Math.Abs(partMaxX - leftMinX) < CCommonPara.mDblError) { mrDimSet.AddPoint(mMrPart.GetMinXMinYPoint()); return(mrDimSet); } else if (partMaxX < leftMinX) { CMrCylinderDoorFrontManager.GetInstance().AppendXNormalAloneDimPart(mMrPart); } } } //7.如果向量与Y轴平行; else if (CDimTools.GetInstance().IsTwoVectorParallel(normal, yVector)) { if (CDimTools.GetInstance().CompareTwoDoubleValue(partMinX, leftMinX) < 0 && CDimTools.GetInstance().CompareTwoDoubleValue(partMaxX, leftMinX) >= 0) { CMrApronPlate mrApronPlate = CMrCylinderDoorFrontManager.GetInstance().FindMrApronPlateByYNormalPart(mMrPart); if (mrApronPlate != null) { if (mrApronPlate.mIsUp == true) { mrDimSet.AddPoint(mMrPart.GetMaxXMinYPoint()); } else { mrDimSet.AddPoint(mMrPart.GetMinXMaxYPoint()); } } else { mrDimSet.AddPoint(mMrPart.GetMinXMaxYPoint()); } } } return(mrDimSet); }