×

工业设计互动平台

手机短信,快捷登录

微信登录,快人一步

QQ登录

只需一步,快速开始

通过选择相同的曲线退出连续操作

发布于 2021-3-11 1 点赞 0 评论 1021 浏览


one by one 处理对象时的一种退出方式,应用于不能用RhinoGet.GetMultipleObjects()而必须用GetOneObject的情况.   用在操作中用while循环,避免了重复操作命令。只好想了这个办法退出,否则按ESC都退不出来。  分享供参考,有更好办法请告知 谢谢 上菜
        public static Result Test1(RhinoDoc doc)
        {
            List<Guid> ids = new List<Guid>();//记录处理过的对象            
            while (true)
            {
                //GET CURVES 获取要处理的对象
                const Rhino.DocObjects.ObjectType filter = Rhino.DocObjects.ObjectType.Curve;
                Rhino.DocObjects.ObjRef objRef;
                Rhino.Commands.Result rc =
                    Rhino.Input.RhinoGet.GetOneObject("选择修改的曲线", false, filter, out objRef);

                if (rc == Result.Success)
                {
                    Rhino.Geometry.Curve curve = objRef.Curve();
                    if (curve != null)
                    {
                        Guid id = objRef.ObjectId;
                        if (ids.Contains(id))
                        {
                            Rhino.RhinoApp.WriteLine("通过选择相同的曲线退出了连续操作");
                            //因为是循环操作,通过这种方法强制退出
                            return Result.Success;
                        }
                        ids.Add(id);//每处理一条曲线就留下一条记录
                        /*处理方法
                         *
                         * 处理方法*/
                        doc.Views.Redraw();
                        objRef.Object().Select(false);
                    }
                }
            }
        }

通过选择相同的曲线退出连续操作.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩回复

文明上网理性发言、请文明用语

成为第一个回答人