/// <summary> /// 创建垂直方向的剖面; /// </summary> private void CreateVerticalSection(CMrSection mrSection) { //判断是否需要创建该剖面或者只是添加零件标记; CMrSection mrSameSection = null; View.ViewAttributes viewAttributes = new View.ViewAttributes(); viewAttributes.LoadAttributes(CCommonPara.mSectionAttPath); SectionMarkBase.SectionMarkAttributes sectionMarkAttributes = new SectionMarkBase.SectionMarkAttributes(); sectionMarkAttributes.LoadAttributes(CCommonPara.mSectionMarkNotePath); View sectionView = null; SectionMark setionMark = null; double dblX = 50; Point sectionMinXPt = null; Point sectionMaxXPt = null; double mainBeamMinX = CMrMainBeam.GetInstance().GetMinXPoint().X; double mainBeamMaxX = CMrMainBeam.GetInstance().GetMaxXPoint().X; mrSection.GetSectionMinXAndMaxXPoint(ref sectionMinXPt, ref sectionMaxXPt); if (sectionMaxXPt.X < mainBeamMaxX) { sectionMaxXPt.X = mainBeamMaxX; } if (sectionMinXPt.X > mainBeamMinX) { sectionMinXPt.X = mainBeamMinX; } Point startPt = new Point(sectionMaxXPt.X + dblX, mrSection.mSectionMidY, 0); Point endPt = new Point(sectionMinXPt.X - dblX, mrSection.mSectionMidY, 0); if (CCommonPara.mVerticalSection == MrSectionOrientation.MrSectionDown) { Point tempPt = startPt; startPt = endPt; endPt = startPt; } bool bNeedCreateView = IsTheSectionNeedCreateView(mrSection, ref mrSameSection); if (bNeedCreateView) { mSectionMarkIndex++; mrSection.mSectionMark = mSectionMarkArray[mSectionMarkIndex]; View.CreateSectionView(mFrontView, startPt, endPt, new Point(0, 0, 0), CCommonPara.mDblSectionUpDepth , CCommonPara.mDblSectionDownDepth, viewAttributes, sectionMarkAttributes, out sectionView, out setionMark); } else if (CCommonPara.mbShowSameSectionMark) { sectionMarkAttributes.MarkName = mrSameSection.mSectionMark; setionMark = new SectionMark(mFrontView, startPt, endPt, sectionMarkAttributes); setionMark.Insert(); mFrontView.Modify(); } }