chengx2000 发表于 2011-6-12 20:14:00

DCL关联到Lisp出现问题,请大家指教

这是第一次写带DCL的程序,调试时出了点问题,不知道如何解决。大致说一下吧,源码在附件中。我的DCL文件时没问题的,但是回调函数关联DCL中出现了问题:
(defun getdate ()
   (setq id (load_dialog "D:\\sp_dcl.DCL"))
   (if (< id 0)
      (exit)
   )
   (if (not (new_dialog "gg" id))
      (exit)
   )
   (action_tile "p_n" "(setq nn (+ (atoi $value) 3)")
   (action_tile "a1" "(setq a 1)")   ;设定a的值,确定是否拟合Pline线
   (action_tile "a0" "(setq a 0)")   
   (action_tile "b1" "(setq b 1)")   ;b的值,确定是否删除原有SPLINE线
   (action_tile "b0" "(setq b 0)")
   (action_tile "accept" "(done_dialog 1)")
   (start_dialog)
;程序在这里卡着了,对话框点哪都不动
   (unload_dialog id)
)

lisp也是没问题的,这个我调试过能达到我的目的。

chengx2000 发表于 2011-6-12 21:00:15

此帖难道要石沉大海吗?
等待大侠出现。只是一个关联函数,应该难不住大家的。

zhynt 发表于 2011-6-12 21:23:49

这是我执行的情况,我认为对话框是没问题的,调用也没问题,程序本身有问题。
命令: STP

选择对象: 找到 1 个

选择对象:
:参数类型错误: numberp: nil程序退出!
命令: STP
输入的列表有缺陷
命令:
命令:
STP _.undo 当前设置: 自动 = 开,控制 = 全部,合并 = 是,图层 = 是
输入要放弃的操作数目或 [自动(A)/控制(C)/开始(BE)/结束(E)/标记(M)/后退(B)] <1>: be
命令:
选择对象: 找到 1 个

选择对象:
:参数类型错误: numberp: nil程序退出!
命令:

chengx2000 发表于 2011-6-12 21:34:50

lisp本身也是没问题的,以下附件是我没考虑配DCL对话框的源码,是没有问题的。应该还是回调函数的问题。

zhynt 发表于 2011-6-12 21:49:49

本帖最后由 zhynt 于 2011-6-12 22:02 编辑

完成:改了三个地方,主要是加了默认判断。
对话框的按钮你不动它是没有值的,所有必须有默认值
页: [1]
查看完整版本: DCL关联到Lisp出现问题,请大家指教