乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 103|回复: 6

我调试的autolisp程序运行不稳定,怎么解决?

[复制链接]

8

主题

17

帖子

3

银币

初来乍到

Rank: 1

铜币
49
发表于 2003-11-10 10:38:00 | 显示全部楼层 |阅读模式
最近,我开始学习autolisp,第一个例子,我做的是里的花园小径,在做到第五课之前,我基本都自己输入书上的源程序,而且调试通过。但在第五课,我发现程序加载没有问题,但是运行出现错误,提示为:“错误: 参数类型错误: stringp ni”
所以,我改用cad自带的turorial里面leson5里面的程序,同样在运行时出现这个错误,但花园小径的教材上说,到这课程序基本完成,能够实现课程开始提出的问题。所以,请文问过这个程序的朋友们,你们在学习过程中是否出现这个问题以及你们是怎么解决的?
第二个例子是《AutoCAD 2002 定制与开发》(清华大学出版社 郭朝勇等编著)上的绘制楼梯的程序,该程序我基本条是通过,但是在调试中发现运行不稳定,比如绘制台阶时,有时出现绘制的是斜线,还有填充,本应该填充砖墙,可有时填充的是别的短竖线。这两个问题在所绘制的楼梯在屏幕上显示很小时发生的几率高。还有原教材上有(setvar "cmdecho" 0)设置系统参数,但在调试中提示系统不允许修改,这跟问题有关吗?如果有关怎么解决呢?
朋友们,请帮帮我,我会非常感激的。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-10 11:52:00 | 显示全部楼层
你说的这些问题应该说完全可以排除系统不稳定的可能,因为都是一些常见的问题,是你的程序不正确。
你可以将你调试出错的程序贴上来,看看是哪儿出了问题。因为这些是常见的错误提示,无法具体说明错在哪儿
回复

使用道具 举报

8

主题

17

帖子

3

银币

初来乍到

Rank: 1

铜币
49
发表于 2003-11-10 12:12:00 | 显示全部楼层
;下面是c:ladder.lsp程序文件
;------------------------------------------------------------------
;  This function enable you to draw the outline of the staircase   
;------------------------------------------------------------------
(defun calculate_draw(pt_start stair_L        stair_H          stair_N   /
                              pt_Corner        pt_top          pt0            pt1
                              pt2        i          stepWidth stepHeight
                             )
    ;计算楼梯的其他绘图参数
    (setq pt_corner (POLAR pt_start 0.0 stair_L))
    (setq pt_top (POLAR pt_corner (/ pi 2.0) stair_H))
    (setq stepWidth (/ stair_L stair_N)
          stepHeight (/ stair_H stair_N)
    )
    (command "LINE" pt_start pt_corner pt_top "")
    (setq i 1)
    (setq pt0 pt_start)
    (while ( what 1)
        (if (not (new_dialog "ladder" id))
            (exit)
        )
        (dlg1)
        (if (= what 2)
            (dlg2)
        )
        (if (/= what 2)
            (setq what (start_dialog))
        )
        (if (= what 2)
            (progn
                (initget 1)
                (setq pt_base (getpoint "\n楼梯左下角点位置:"))
                (setq x        (car pt_base)
                      y        (cadr pt_base)
                )
            )
        )
    )
    (setq pt_base (list x y))
    (if(= what 1)
        (progn
            (setq pt_corner (POLAR pt_base 0.0 L))
            (setq pt_top (POLAR pt_corner (/ pi 2.0) H))
            (calculate_draw pt_base L H N)
            
            (lt_wall pt_base pt_top)
        )
    )
    (unload_dialog id)
    (princ "\nddladder.lsp程序已调入,键入ladder绘制楼梯.")
    (princ)
)
;;;下面是对话框ladder.dcl程序文件
/*ladder.dcl*/
ladder:dialog{
label="楼梯参数设置";
:row{
        :image{width=35;
                height=9;
                key="ladder1";
                color=-2;
                }
        :column{:edit_box{label="总长度(L)";
                                key="L";
                        }
                :edit_box{label="总高度(H)";
                                key="H";
                        }
                :edit_box{label="楼梯台阶级数(N)";
                                key="N";
                        }
                :button{label="楼梯左下角点...";
                                key="base";
                        }
                }
        }
ok_cancel;
}
base_pt:dialog{
        label="确定楼梯的左下角点";
        :row{
                :image{width=20;
                        height=4;key="ladder2";color=-2;
                        }
                :boxed_column{label="左下角点";
                                :button{label="光标拾取<";
                                        key="pick";
                                        }
                                :edit_box{label="x坐标=";
                                          key="x";
                                          }
                                :edit_box{label="y坐标=";
                                          key="y";
                                          }         
                                }
        }
        ok_cancel;
        }
;还有两个幻灯片文件
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-10 12:28:00 | 显示全部楼层
你说的第一个错误我这里没有出现,程序一直运行正常。
关于那个填充的问题,主要是选择物体时用了‘W’,窗选,如果窗选中的点PT1 PT2有一点在屏幕外面,就无法选中全部对象。
你将屏幕缩小,使之能放下整个画好的梯子,而且屏幕里最好不要有别的对象,你这样再试试。
刚开始学,遇到很多问题是很正常的,慢慢来,等你熟练以后就会好了
回复

使用道具 举报

21

主题

48

帖子

10

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
124
发表于 2003-11-10 20:03:00 | 显示全部楼层
没办法!一定要用心一行一行的看,以后碰到的问题还要多还要烦,不过多做以后经验多了,找出问题回愈来愈快的。
回复

使用道具 举报

21

主题

216

帖子

9

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
305
发表于 2003-11-11 03:52:00 | 显示全部楼层
经验!
经验多重要!如果你不知道,PLEASE PLAY GAMES。
回复

使用道具 举报

8

主题

17

帖子

3

银币

初来乍到

Rank: 1

铜币
49
发表于 2003-11-11 17:33:00 | 显示全部楼层
谢谢,meflying说的对,错误就是在那种情况下发生的,我没有注意到原因是这个。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 21:48 , Processed in 0.657867 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表