NDCADTECH 发表于 2022-7-5 18:50:44

对话框按钮。。。帮助

因此,我试图编写下面的代码来运行defun“STR”(在我的原始.lsp文件中写在这段代码上面,它本身运行良好,没有对话框),并且在单击“隐藏”按钮时不会返回对话框(我正在添加第二个“填充信息,而不是从图形中选择信息”选项,这就是我需要对话框的原因)。我承认我不知道我在做什么,我已经为此工作了两天。对话框按指示弹出,但所有三个按钮(隐藏、接受、取消)做相同的事情,关闭对话框,什么也不做。我需要改变和/或添加什么才能使它按我需要的方式工作?
 
;STR_test2.lsp 23July2015 AAR (yippyskippy86@gmail.com)

(defun C:STR_test ()

(if(not(setq dcl_id (load_dialog "STR_test2.dcl")))
   (progn(alert "The DCL file could not be loaded.")(exit))

   (progn(if(not(new_dialog "STR_test2" dcl_id))(progn(alert "The STR_test2 definition could not be found in the DCL file!")(exit))

       (progn(action_tile "hide" "("STR")")(action_tile "accept" "(done_dialog 1)")(action_tile "cancel" "(done_dialog 0)")
       (start_dialog)(unload_dialog dcl_id))
   )
)
)
(princ))

Lee Mac 发表于 2022-7-5 19:06:13

以下几点可以让你从正确的方向开始:
(定义c:str\U测试(/dch)(条件((

NDCADTECH 发表于 2022-7-5 19:13:55

命令:
命令:STR_TEST
 
用户按下OK
 
命令:
命令:
STR_测试
 
用户按了取消
 
命令:
命令:
STR_测试
; 错误:没有函数定义:STR
 
(defun STR()是我试图让按钮运行的内容(基本上它读取图形中的测量点,并在需要的地方放置文本)。

NDCADTECH 发表于 2022-7-5 19:16:46

我关闭了AutoCAD,重新打开并重新加载了lisp,然后再次运行,这次命令行给了我选择对象的选项(这是我希望它做的),但没有关闭对话框。我的画在那里冻结了,不让我做任何其他事情。为了解决这个问题,需要在代码中修改什么?

Lee Mac 发表于 2022-7-5 19:26:27

 
这表明未定义函数“str”(即未加载)。
 
 
正如我所建议的:
 
 
如果您提供了有关“str”功能用途的更多信息,则可以避免此类问题。

Lee Mac 发表于 2022-7-5 19:38:56

您可以使用这种方法:
(定义c:str_测试(/dch rtn)(条件((

NDCADTECH 发表于 2022-7-5 19:46:27

最后一个很好用!非常感谢。以后发帖时,我会尽量提供更多信息。我一定会记下你提供的代码。我确信这不会是我在为对话框的后半部分编写代码时遇到的最后一个问题。。。
 
再次感谢!

Lee Mac 发表于 2022-7-5 19:55:59

不客气
页: [1]
查看完整版本: 对话框按钮。。。帮助