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> <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/> <font color="#008000">0</font><br/> <font color="#ff00ff">"cecolor"</font><br/> <font color="#ff00ff">"1"</font><font color="#ff0000">)</font><br/> <font color="#800080">;;初始时设置的变量</font><br/> <font color="#008000">0</font> <font color="#800080">;;</font><br/> '<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> <font color="#800080">;;如果出错,取消亮显</font><br/> <font color="#ff0000">)</font><br/> <font color="#ff0000">)</font><br/> <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/princ.htm" target="_black"><font color="#0000ff">princ</font></a><br/> <font color="#ff00ff">"\n测试开始!!"</font><font color="#ff0000">)</font><br/> <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/initget.htm" target="_black"><font color="#0000ff">initget</font></a><br/> <font color="#008000">1</font><font color="#ff0000">)</font><br/> <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/> <font color="#ff00ff">"\n点1: "</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/> <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/initget.htm" target="_black"><font color="#0000ff">initget</font></a><br/> <font color="#008000">1</font><font color="#ff0000">)</font><br/> <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/> <font color="#ff0000">(</font>lt:sysvar-set '<font color="#ff0000">(</font><font color="#ff00ff">"osmode"</font><br/> <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> <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/> <font color="#008000">0</font><br/> <font color="#ff00ff">"cecolor"</font><br/> <font color="#ff00ff">"1"<font color="#ff0000"> </font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font></font><font color="#ff0000">)</font><br/> <font color="#800080">;;初始时设置的变量</font><br/> <font color="#008000">0</font> <font color="#800080">;;</font><br/> '<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> <font color="#800080">;;如果出错,取消亮显</font><br/> <font color="#ff0000">)</font><br/> <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/> <font color="#008000">0</font><br/> <font color="#ff00ff">"cecolor"</font><br/> <font color="#ff00ff">"1"</font><font color="#ff0000">)</font><br/> <font color="#800080">;;初始时设置的变量</font><br/> <font color="#008000">0</font> <font color="#800080">;;</font><br/> '<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> <font color="#800080">;;如果出错,取消亮显</font><br/> <font color="#ff0000">)</font><br/> <font color="#ff0000">)</font><br/> <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/princ.htm" target="_black"><font color="#0000ff">princ</font></a><br/> <font color="#ff00ff">"\n测试开始!!"</font><font color="#ff0000">)</font><br/> <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/initget.htm" target="_black"><font color="#0000ff">initget</font></a><br/> <font color="#008000">1</font><font color="#ff0000">)</font><br/> <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/> <font color="#ff00ff">"\n点1: "</font><font color="#ff0000">)</font><font color="#ff0000">)</font><br/> <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/initget.htm" target="_black"><font color="#0000ff">initget</font></a><br/> <font color="#008000">1</font><font color="#ff0000">)</font><br/> <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/> <font color="#ff0000">(</font>lt:sysvar-set '<font color="#ff0000">(</font><font color="#ff00ff">"osmode"</font><br/> <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> <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/> <font color="#008000">0</font><br/> <font color="#ff00ff">"cecolor"</font><br/> <font color="#ff00ff">"1"<font color="#ff0000"> </font><font color="#ff00ff">"osmode" </font><font color="#008000">0</font></font><font color="#ff0000">)</font><br/> <font color="#800080">;;初始时设置的变量</font><br/> <font color="#008000">0</font> <font color="#800080">;;</font><br/> '<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> <font color="#800080">;;如果出错,取消亮显</font><br/> <font color="#ff0000">)</font><br/> <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>;; [功能] 出错处理初始化<br/>;; [参数] lst---表(元素1 元素2 元素3)<br/>;; 元素1: 包含系统变量及其值的列表<br/>;; 元素2: nil--->不操作<br/>;; 0----->放置 UNDO 的 BEGIN 和 END 标志<br/>;; 1或T-->放置 UNDO 的 BEGIN 和 END 标志,但出错时 UNDO 回操作前状态<br/>;; 元素3: 出错时执行的特殊操作</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 nil '(redraw)))</p>liminnet 发表于 2008-12-9 09:15:00
<font color="#ff0000"> 中途设置的变量为了确保能够在出错后恢复,可以使用 lt:sysvar-set 函数,</font><p><font color="#ff0000"> 后面我们再详细说明</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/> (ls:error-init (list nil nil nil))<br/> (errormsg "你的程序在程序TT中出错啦,请查询程序TT的代码")<br/> (明经);故意在这一步让程序出错,以调式,是不是显示“你的程序在程序TT中出错啦,请查询程序TT的代码”这一行字<br/> (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/> (princ "鬼谷子温馨提示:你用Esc键中止了程序!!!")<br/>)</p><p>(defun c:qqqq ()<br/> (ls:error-init (list nil nil nil))<br/> (明经)<br/> (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>