Jeff101217 发表于 2008-12-5 09:55:00

<p>拿好笔记本,搬个板凳,学习~~~~~</p>

liminnet 发表于 2008-12-8 17:00:00

本帖最后由 作者 于 2008-12-8 17:02:54 编辑 <br /><br /> <p>&nbsp;<font color="#ff0000">(</font>lt:error-init <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/list.htm" target="_black"><font color="#0000ff">list</font></a> '<font color="#ff0000">(</font><font color="#ff00ff">"cmdecho"</font><br/>&nbsp;&nbsp;<font color="#008000">0</font><br/>&nbsp;&nbsp;<font color="#ff00ff">"cecolor"</font><br/>&nbsp;&nbsp;<font color="#ff00ff">"1"</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp;<font color="#800080">;;初始时设置的变量</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">0</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080">;;</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/if.htm" target="_black"><font color="#0000ff">if</font></a> e <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/redraw.htm" target="_black"><font color="#0000ff">redraw</font></a> e <font color="#008000">4</font><font color="#ff0000">)</font><font color="#ff0000">)</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#800080">;;如果出错,取消亮显</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/princ.htm" target="_black"><font color="#0000ff">princ</font></a><br/>&nbsp;&nbsp;<font color="#ff00ff">"\n测试开始!!"</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/initget.htm" target="_black"><font color="#0000ff">initget</font></a><br/>&nbsp;&nbsp;<font color="#008000">1</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/setq.htm" target="_black"><font color="#0000ff">setq</font></a> p1 <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/getpoint.htm" target="_black"><font color="#0000ff">getpoint</font></a><br/>&nbsp;&nbsp;<font color="#ff00ff">"\n点1: "</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/initget.htm" target="_black"><font color="#0000ff">initget</font></a><br/>&nbsp;&nbsp;<font color="#008000">1</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/setq.htm" target="_black"><font color="#0000ff">setq</font></a> p2 <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/getpoint.htm" target="_black"><font color="#0000ff">getpoint</font></a> p1 <font color="#ff00ff">"\n点2: "</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font>lt:sysvar-set '<font color="#ff0000">(</font><font color="#ff00ff">"osmode"</font><br/>&nbsp;&nbsp;<font color="#008000">0</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/></p><p>这一句<font color="#ff0000">(</font>lt:sysvar-set '<font color="#ff0000">(</font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font><font color="#ff0000">)</font><font color="#ff0000">)中的<font color="#000000">'</font><font color="#ff0000">(</font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/></font>可以设置在</p><p>&nbsp;<font color="#ff0000">(</font>lt:error-init <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/list.htm" target="_black"><font color="#0000ff">list</font></a> '<font color="#ff0000">(</font><font color="#ff00ff">"cmdecho"</font><br/>&nbsp;&nbsp;<font color="#008000">0</font><br/>&nbsp;&nbsp;<font color="#ff00ff">"cecolor"</font><br/>&nbsp;&nbsp;<font color="#ff00ff">"1"<font color="#ff0000">&nbsp; </font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font></font><font color="#ff0000">)</font><br/>&nbsp;&nbsp;<font color="#800080">;;初始时设置的变量</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">0</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080">;;</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/if.htm" target="_black"><font color="#0000ff">if</font></a> e <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/redraw.htm" target="_black"><font color="#0000ff">redraw</font></a> e <font color="#008000">4</font><font color="#ff0000">)</font><font color="#ff0000">)</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#800080">;;如果出错,取消亮显</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">)</font><br/>这一句吗?<br/></p>

caoyin 发表于 2008-12-8 17:08:00

哪一句啊?

liminnet 发表于 2008-12-8 17:12:00

<p><font color="#ff0000">(</font>lt:error-init <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/list.htm" target="_black"><font color="#0000ff">list</font></a> '<font color="#ff0000">(</font><font color="#ff00ff">"cmdecho"</font><br/>&nbsp;&nbsp;<font color="#008000">0</font><br/>&nbsp;&nbsp;<font color="#ff00ff">"cecolor"</font><br/>&nbsp;&nbsp;<font color="#ff00ff">"1"</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp;<font color="#800080">;;初始时设置的变量</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">0</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080">;;</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/if.htm" target="_black"><font color="#0000ff">if</font></a> e <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/redraw.htm" target="_black"><font color="#0000ff">redraw</font></a> e <font color="#008000">4</font><font color="#ff0000">)</font><font color="#ff0000">)</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#800080">;;如果出错,取消亮显</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/princ.htm" target="_black"><font color="#0000ff">princ</font></a><br/>&nbsp;&nbsp;<font color="#ff00ff">"\n测试开始!!"</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/initget.htm" target="_black"><font color="#0000ff">initget</font></a><br/>&nbsp;&nbsp;<font color="#008000">1</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/setq.htm" target="_black"><font color="#0000ff">setq</font></a> p1 <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/getpoint.htm" target="_black"><font color="#0000ff">getpoint</font></a><br/>&nbsp;&nbsp;<font color="#ff00ff">"\n点1: "</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/initget.htm" target="_black"><font color="#0000ff">initget</font></a><br/>&nbsp;&nbsp;<font color="#008000">1</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/setq.htm" target="_black"><font color="#0000ff">setq</font></a> p2 <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/getpoint.htm" target="_black"><font color="#0000ff">getpoint</font></a> p1 <font color="#ff00ff">"\n点2: "</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">(</font>lt:sysvar-set '<font color="#ff0000">(</font><font color="#ff00ff">"osmode"</font><br/>&nbsp;&nbsp;<font color="#008000">0</font><font color="#ff0000">)</font><font color="#ff0000">)</font></p><p><font color="#ff0000">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</font><br/></p><p>这一句<font color="#ff0000">(</font>lt:sysvar-set '<font color="#ff0000">(</font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font><font color="#ff0000">)</font><font color="#ff0000">)中的<font color="#000000">'</font><font color="#ff0000">(</font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/></font>可以设置在这一句中去吗?</p><p>**************************************</p><p>&nbsp;<font color="#ff0000">(</font>lt:error-init <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/list.htm" target="_black"><font color="#0000ff">list</font></a> '<font color="#ff0000">(</font><font color="#ff00ff">"cmdecho"</font><br/>&nbsp;&nbsp;<font color="#008000">0</font><br/>&nbsp;&nbsp;<font color="#ff00ff">"cecolor"</font><br/>&nbsp;&nbsp;<font color="#ff00ff">"1"<font color="#ff0000">&nbsp; </font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font></font><font color="#ff0000">)</font><br/>&nbsp;&nbsp;<font color="#800080">;;初始时设置的变量</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">0</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#800080">;;</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/if.htm" target="_black"><font color="#0000ff">if</font></a> e <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/redraw.htm" target="_black"><font color="#0000ff">redraw</font></a> e <font color="#008000">4</font><font color="#ff0000">)</font><font color="#ff0000">)</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#800080">;;如果出错,取消亮显</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000">)</font><br/>&nbsp;&nbsp; <font color="#ff0000">)</font><br/>**********</p><p>还有为什么要用<font color="#ff0000">(</font>lt:sysvar-set '<font color="#ff0000">(</font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font><font color="#ff0000">)</font><font color="#ff0000">)这一句呀,不用不行吗</font></p>

liminnet 发表于 2008-12-8 17:18:00

<p>;;&nbsp; [功能] 出错处理初始化<br/>;;&nbsp; [参数] lst---表(元素1 元素2 元素3)<br/>;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 元素1:&nbsp; 包含系统变量及其值的列表<br/>;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 元素2:&nbsp; nil---&gt;不操作<br/>;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0-----&gt;放置 UNDO 的 BEGIN 和 END 标志<br/>;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1或T--&gt;放置 UNDO 的 BEGIN 和 END 标志,但出错时 UNDO 回操作前状态<br/>;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 元素3:&nbsp; 出错时执行的特殊操作</p><p>还有你上面的元素1和3如果没变量要设置或没有出错执行的东东时,值是不是都是nilak 呀</p>

caoyin 发表于 2008-12-9 08:55:00

<p>是的</p><p>(lt-error-init '(nil 1 nil))</p><p>(lt-error-init '(("osmode" 0)))</p><p>(lt-error-init '(nil&nbsp;nil '(redraw)))</p>

liminnet 发表于 2008-12-9 09:15:00

<font color="#ff0000">&nbsp; 中途设置的变量为了确保能够在出错后恢复,可以使用 lt:sysvar-set 函数,</font>
        <p><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 后面我们再详细说明</font></p><p>r刚看到啦,谢谢 caoyin版主,我有一个想法你看一下你的的程序可以实现吗?</p><p>就是主程序中我定义啦</p><p>(defun errormsg (definmsg)<br/>(setq $ko-errormsg$ '(if (= msg "函数被取消") (setq msg "鬼谷子温馨提示:你用Esc键中止了程序!!!") (setq msg defin)))<br/>)</p><p>(defun c:qqqq ()<br/>&nbsp;(ls:error-init (list nil nil nil))<br/>&nbsp;(errormsg "你的程序在程序TT中出错啦,请查询程序TT的代码")<br/>&nbsp;(明经);故意在这一步让程序出错,以调式,是不是显示“你的程序在程序TT中出错啦,请查询程序TT的代码”这一行字<br/>&nbsp;(lt:error-restore)<br/>) </p><p>caoyin版主,为什么上面的不会显示“你的程序在程序TT中出错啦,请查询程序TT的代码”这一行字呀??</p>

caoyin 发表于 2008-12-9 09:34:00

<p>(setq *error1* *error*)<br/>(defun *error* (definmsg)<br/>&nbsp; (princ "鬼谷子温馨提示:你用Esc键中止了程序!!!")<br/>)</p><p>(defun c:qqqq ()<br/>&nbsp;(ls:error-init (list nil nil nil))<br/>&nbsp;(明经)<br/>&nbsp;(lt:error-restore)<br/>) </p>

liminnet 发表于 2008-12-9 09:57:00

本帖最后由 作者 于 2008-12-9 9:58:27 编辑 <br /><br /> <p>不是这个意思啦,老大,我的本意是想如果是用户用ESC来退程序的话就显示("鬼谷子温馨提示:你用Esc键中止了程序!!!"),在而进入那个主程序或通用函数的时候如果程序出错就显示("你的程序在某某程序或函数调用时中出错,请查询某某程序或函数段的代码")</p><p>所以我想通过用户定义全局变量 $lt:-errormsg$ 而改变默认出错信息:$lt:-errormsg$这个全局变量不是可以改变错误信息的吗?</p>

samshs 发表于 2008-12-11 13:38:00

<p>严重学习一下</p>
页: 1 2 [3] 4 5 6
查看完整版本: [原创] 出错处理的点滴经验