EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

萧闫子 发表于 2014-1-8 15:24:45

[用户交互] AutoCAD 与用户交互的问题

刚写好了个统计拆迁房屋工程量的程序,用户交互比较多,长长的,看的头都大了,于是可以把各个交互放在不同的方法中,方法返回true false,主程序通过返回的值(rue false)来定是否要return(一般用户按ESC就退出),调用的主程序通过ref传入参数来接受交互返回的数据。


    public bool GetTablePoint(Database db, Editor ed, ref Point3d PointBack)
      {
            PromptPointOptions optPoint = new PromptPointOptions("\n请输入第一个点<100,200>");
            optPoint.AllowNone = true;
            PromptPointResult resPoint = ed.GetPoint(optPoint);
            if (resPoint.Status == PromptStatus.Cancel)
                return false;//如果是取消就退出
            if (resPoint.Status == PromptStatus.None)
                PointBack = new Point3d(100, 200, 0);
            else
                PointBack = resPoint.Value;
            return true;
      }

调用的主程序
            Point3d ResPoint=new Point3d();
            if (!GetTablePoint(db, ed, ref ResPoint))
            {
                return;//如果没有返回得到字符串并中断,那就这里也中断
            }如果GetTablePoint中用户按了ESC,那就返回false,然后主程序中收到false就return;
如果GetTablePoint中正常,那就返回true,同时主程序中用ref 传参数得到交互的值ResPoint。
貌似目前觉得这样不错,不晓得啊有更好、更清晰的方法。

页: [1]
查看完整版本: [用户交互] AutoCAD 与用户交互的问题