示例#1
0
        /// <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();
            }
        }