Exemplo n.º 1
0
    void AutoSelectPoint()
    {
        DeleteNodes();
        var body       = selectCuprum.SelectedObjects.FirstOrDefault() as Snap.NX.Body;
        var pointDatas = new List <PointData>();
        var mark       = Snap.Globals.SetUndoMark(Snap.Globals.MarkVisibility.Invisible, "ComponentHelperAutoSelectPoint");

        try
        {
            pointDatas = CMMBusiness.AutoSelPoint(_electrode, _config, false);
        }
        catch (Exception ex)
        {
            pointDatas = new List <PointData>();
            selectCuprum.SelectedObjects = new Snap.NX.NXObject[] { };
            _electrode = null;
            NXOpen.UF.UFSession.GetUFSession().Ui.DisplayMessage(ex.Message, 1);
        }

        Snap.Globals.UndoToMark(mark, "ComponentHelperAutoSelectPoint");
        UFDisp(pointDatas);
    }
Exemplo n.º 2
0
    public override void Update(NXOpen.BlockStyler.UIBlock block)
    {
        RefreshUI();
        var body = selectCuprum.SelectedObjects.FirstOrDefault() as Snap.NX.Body;

        if (block == btnAutoSelectPoint.NXOpenBlock)
        {
            if (body != null)
            {
                AutoSelectPoint();
                RefreshUI();
            }
        }
        else if (block == selectCuprum.NXOpenBlock)
        {
            _electrode = null;
            if (body != null)
            {
                var elec = ElecManage.Electrode.GetElectrode(body);
                if (elec != null)
                {
                    elec.InitAllFace();
                    _electrode = elec;
                }
                else
                {
                    selectCuprum.SelectedObjects = new Snap.NX.NXObject[] { };
                    NXOpen.UF.UFSession.GetUFSession().Ui.DisplayMessage("该电极无法识别", 1);
                }
            }
        }
        else if (block == toggle0.NXOpenBlock)
        {
            UFDisp();
            DeleteNodes();
        }
        else if (block == btnDown.NXOpenBlock)
        {
            var node = GetSelectNode();
            if (node != null)
            {
                var list  = GetNodes();
                var index = list.IndexOf(node) + 1;
                index = index > list.Count - 1 ? list.Count - 1 : index;
                list.Remove(node);
                list.Insert(index, node);
                UFDisp(GetPointDatasFromTree(list));
            }
        }
        else if (block == btnUP.NXOpenBlock)
        {
            var node = GetSelectNode();
            if (node != null)
            {
                var list  = GetNodes();
                var index = list.IndexOf(node) - 1;
                index = index < 0 ? 0 : index;
                list.Remove(node);
                list.Insert(index, node);
                UFDisp(GetPointDatasFromTree(list));
            }
        }
        else if (block == btnRemove.NXOpenBlock)
        {
            var node = GetSelectNode();
            if (node != null)
            {
                var pd = GetPointData(node);
                if (pd != null && pd.PointType == PointType.HeadFace)
                {
                    var list = GetNodes();
                    list.Remove(node);
                    UFDisp(GetPointDatasFromTree(list));
                    theUI.NXMessageBox.Show("提示", NXOpen.NXMessageBox.DialogType.Information, "删除成功!");
                }
                else
                {
                    theUI.NXMessageBox.Show("提示", NXOpen.NXMessageBox.DialogType.Information, "无法删除该点!");
                }
            }
        }
        else if (block == selectionPoint.NXOpenBlock)
        {
            if (body != null && selectionPoint.SelectedObjects.Count() > 0)
            {
                PointData data = null;
                ComponentHelper(() =>
                {
                    data = CMMBusiness.IsInterveneBySelPoint(_electrode, selectionPoint.PickPoint, _config);
                });

                if (data != null)
                {
                    var points = GetPointDatasFromTree();
                    points.Add(data);
                    UFDisp(points);
                }
                else
                {
                    theUI.NXMessageBox.Show("提示", NXOpen.NXMessageBox.DialogType.Information, "无法取该点,请重新选点!");
                }
            }

            selectionPoint.SelectedObjects = new Snap.NX.NXObject[] { };
        }
        else if (block == btnExport.NXOpenBlock)
        {
            if (body != null)
            {
                var list = new List <PointData>();
                GetNodes().ForEach(u =>
                {
                    list.Add(Newtonsoft.Json.JsonConvert.DeserializeObject <PointData>(u.GetNodeData().GetString(_propertyName)));
                });
                if (list.Count > 0)
                {
                    //导出
                    CMMBusiness.WriteCMMFileByPointData(_electrode, list, _config);
                    NXOpen.UF.UFSession.GetUFSession().Ui.DisplayMessage("导出成功", 1);
                }
            }
            else
            {
                //ImportPart(  Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CMM_INSPECTION", enumSelectTool.ValueAsString));
            }
        }
    }