예제 #1
0
        private void ShowResultList()
        {
            lvResult.BeginUpdate();
            lvResult.Items.Clear();

            List <VIZCore3D.NET.Data.ClashTestResultItem> items = null;

            if (clash.TestKind != Data.ClashTest.ClashTestKind.GROUP_VS_MOVING_GROUP)
            {
                items = vizcore3d.Clash.GetResultItem(clash, ckResultAssembly.Checked == true ? Manager.ClashManager.ResultGroupingOptions.ASSEMBLY : Manager.ClashManager.ResultGroupingOptions.PART);
            }
            else
            {
                //items = vizcore3d.Clash.GetResultItem(clash, 0, ckResultAssembly.Checked == true ? Manager.ClashManager.ResultGroupingOptions.ASSEMBLY : Manager.ClashManager.ResultGroupingOptions.PART);
                items = vizcore3d.Clash.GetResultAllSubItem(clash, ckResultAssembly.Checked == true ? Manager.ClashManager.ResultGroupingOptions.ASSEMBLY : Manager.ClashManager.ResultGroupingOptions.PART);
            }

            for (int i = 0; i < items.Count; i++)
            {
                VIZCore3D.NET.Data.ClashTestResultItem item = items[i];

                ListViewItem lvi = new ListViewItem(
                    new string[]
                {
                    Convert.ToString(i + 1)
                    , item.ID.ToString()
                    , item.SUBID.ToString()
                    , item.Path != null ? item.Path.ToString() : String.Empty
                    , item.GetResultKindString()
                    , item.NodeIndexA.ToString()
                    , item.NodeIndexB.ToString()
                    , item.NodeNameA
                    , item.NodeNameB
                    , item.Distance.ToString()
                    , item.HotPoint.ToString()
                    , item.FrameStringX
                    , item.FrameStringY
                    , item.FrameStringZ
                    , item.Flag.ToString()
                    , item.NodeIdA.ToString()
                    , item.NodeIdB.ToString()
                    , item.Comment1
                    , item.Comment2
                    , item.ParentNodeNameA
                    , item.ParentNodeNameB
                    , item.NodePathA
                    , item.NodePathB
                }
                    );
                lvi.Tag = item;
                lvResult.Items.Add(lvi);
            }

            lvResult.EndUpdate();
        }
예제 #2
0
        private void ShowResultList(List <VIZCore3D.NET.Data.ClashTestResultItem> items)
        {
            lvResult.BeginUpdate();
            lvResult.Items.Clear();

            for (int i = 0; i < items.Count; i++)
            {
                VIZCore3D.NET.Data.ClashTestResultItem item = items[i];

                ListViewItem lvi = new ListViewItem(
                    new string[]
                {
                    Convert.ToString(i + 1)
                    , item.ID.ToString()
                    , item.SUBID.ToString()
                    , item.Path != null ? item.Path.ToString() : String.Empty
                    , item.GetResultKindString()
                    , item.NodeIndexA.ToString()
                    , item.NodeIndexB.ToString()
                    , item.NodeNameA
                    , item.NodeNameB
                    , item.Distance.ToString()
                    , item.HotPoint.ToString()
                    , item.FrameStringX
                    , item.FrameStringY
                    , item.FrameStringZ
                    , item.Flag.ToString()
                    , item.NodeIdA.ToString()
                    , item.NodeIdB.ToString()
                    , item.Comment1
                    , item.Comment2
                    , item.ParentNodeNameA
                    , item.ParentNodeNameB
                    , item.NodePathA
                    , item.NodePathB
                }
                    );
                lvi.Tag = item;

                lvResult.Items.Add(lvi);
            }

            gbResult.Text = string.Format("Result : {0:N0} EA", lvResult.Items.Count);

            lvResult.EndUpdate();
        }
예제 #3
0
        private void lvResult_DoubleClick(object sender, EventArgs e)
        {
            if (lvResult.SelectedItems.Count == 0)
            {
                return;
            }
            if (lvResult.SelectedItems[0].Tag == null)
            {
                return;
            }

            VIZCore3D.NET.Data.ClashTestResultItem item = (VIZCore3D.NET.Data.ClashTestResultItem)lvResult.SelectedItems[0].Tag;

            vizcore3d.BeginUpdate();

            // Xray Mode
            if (vizcore3d.View.XRay.Enable == false)
            {
                vizcore3d.View.XRay.Enable = true;
            }

            // Xray Mode Option
            vizcore3d.View.XRay.ColorType             = Data.XRayColorTypes.OBJECT_COLOR;
            vizcore3d.View.XRay.SelectionObject3DType = Data.SelectionObject3DTypes.OPAQUE_OBJECT3D;

            // Clear Selection
            vizcore3d.View.XRay.Clear();

            // Select
            vizcore3d.View.XRay.Select(new List <int>()
            {
                item.NodeIndexA, item.NodeIndexB
            }, true);

            // Fly
            vizcore3d.View.FlyToObject3d(new List <int>()
            {
                item.NodeIndexA, item.NodeIndexB
            }, 2);

            // Add Vertex :: HOT POINT
            vizcore3d.ShapeDrawing.Clear();
            vizcore3d.ShapeDrawing.AddVertex(new List <Data.Vertex3D>()
            {
                item.HotPoint
            }, 0, Color.Red, 10.0f, 10.0f, true);

            // Set Pivot :: Rotation
            vizcore3d.View.SetPivotPosition(item.HotPoint);

            // Add Note :: Result Item
            VIZCore3D.NET.Data.Vertex3D v1 = vizcore3d.Object3D.GetSurfaceVertexClosestToModelCenter(new List <int>()
            {
                item.NodeIndexA
            });
            VIZCore3D.NET.Data.Vertex3D v2 = vizcore3d.Object3D.GetSurfaceVertexClosestToModelCenter(new List <int>()
            {
                item.NodeIndexB
            });

            vizcore3d.Review.Note.Clear();

            vizcore3d.Review.Note.AddNoteSurface(item.NodeNameA, v1.Clone().AddValue(Data.Axis.Y, 1000.0f), v1);
            vizcore3d.Review.Note.AddNoteSurface(item.NodeNameB, v2.Clone().AddValue(Data.Axis.Y, 1000.0f), v2);

            vizcore3d.EndUpdate();
        }
예제 #4
0
        private void ShowResultList()
        {
            // 침투만 조회
            bool PenetrationOnly = ckPenetration.Checked;

            lvResult.BeginUpdate();
            lvResult.Items.Clear();

            List <VIZCore3D.NET.Data.ClashTestResultItem> items = null;

            if (clash.TestKind != VIZCore3D.NET.Data.ClashTest.ClashTestKind.GROUP_VS_MOVING_GROUP)
            {
                items = vizcore3d.Clash.GetResultItem(
                    clash
                    , ckResultAssembly.Checked == true
                    ? VIZCore3D.NET.Manager.ClashManager.ResultGroupingOptions.ASSEMBLY
                    : VIZCore3D.NET.Manager.ClashManager.ResultGroupingOptions.PART
                    );
            }
            else
            {
                //items = vizcore3d.Clash.GetResultItem(clash, 0, ckResultAssembly.Checked == true ? Manager.ClashManager.ResultGroupingOptions.ASSEMBLY : Manager.ClashManager.ResultGroupingOptions.PART);
                items = vizcore3d.Clash.GetResultAllSubItem(
                    clash
                    , ckResultAssembly.Checked == true
                    ? VIZCore3D.NET.Manager.ClashManager.ResultGroupingOptions.ASSEMBLY
                    : VIZCore3D.NET.Manager.ClashManager.ResultGroupingOptions.PART
                    );
            }

            // 인접면 법선벡터 구하기
            bool checkConnectedSurfaceNormalVector = ckConnectedSurfaceNormalVector.Checked;

            for (int i = 0; i < items.Count; i++)
            {
                VIZCore3D.NET.Data.ClashTestResultItem item = items[i];

                string normal      = String.Empty;
                string projection1 = String.Empty;
                string projection2 = String.Empty;

                if (checkConnectedSurfaceNormalVector == true)
                {
                    VIZCore3D.NET.Data.ConnectedSurfaceNormalVectorItem normalVector =
                        vizcore3d.GeometryUtility.GetConnectedSurfaceNormalVector(
                            item.NodeIndexA
                            , item.NodeIndexB
                            , item.HotPoint
                            , 10.0f
                            );

                    normal      = normalVector.Normal.ToString();
                    projection1 = normalVector.Projection1.ToString();
                    projection2 = normalVector.Projection2.ToString();
                }

                ListViewItem lvi = new ListViewItem(
                    new string[]
                {
                    Convert.ToString(i + 1)
                    , item.ID.ToString()
                    , item.SUBID.ToString()
                    , item.Path != null ? item.Path.ToString() : String.Empty
                    , item.GetResultKindString()
                    , item.NodeIndexA.ToString()
                    , item.NodeIndexB.ToString()
                    , item.NodeNameA
                    , item.NodeNameB
                    , item.Distance.ToString()
                    , item.HotPoint.ToString()
                    , item.FrameStringX
                    , item.FrameStringY
                    , item.FrameStringZ
                    , item.Flag.ToString()
                    , item.NodeIdA.ToString()
                    , item.NodeIdB.ToString()
                    , item.Comment1
                    , item.Comment2
                    , item.ParentNodeNameA
                    , item.ParentNodeNameB
                    , item.NodePathA
                    , item.NodePathB
                    , normal
                    , projection1
                    , projection2
                }
                    );
                lvi.Tag = item;

                if (PenetrationOnly == true && item.ResultKind == Data.ClashTestResultItem.ClashResultKind.PENETRATION)
                {
                    lvResult.Items.Add(lvi);
                }
                else if (PenetrationOnly == false)
                {
                    lvResult.Items.Add(lvi);
                }
            }

            gbResult.Text = string.Format("Result : {0:N0} EA", lvResult.Items.Count);

            lvResult.EndUpdate();
        }