liuxinkai 发表于 2024-1-9 17:22:25

DCL调用子函数

请教下大神:
dcl按确定按钮后, 分别执行几个函数,其中一个子函数是选取坐标点(getpoint)+插入文字(command“text”。。。。),经过测试有两个地方解决不了,求教这是为什么。
1、子函数带(command“text”)的时候会蹦出“VEVAL-STR+ARX对话框,提示错误”
2、子函数注释掉(command“text”),只留下(getpoint)的时候,不提示错误,不提示选取点。
3、为测试是否调用函数,注释掉(getpoint)和(command“text”),增加 (alert "8888") 语句,可弹出alert 提示框。


(defun dcl_jl   ()

(setq dcl_id (load_dialog "jl"))

(new_dialog "jl" dcl_id)

(def_jl)

(action_tile "jilu""(setq neirong $value)")

(action_tile "accept" "(done_dialog 1)(get_zigao)(xieru_cad)(xieru_txt)");关闭对话框,写到txt,写到cad

(start_dialog)

)

(defun xieru_txt ( )

***

    )



(defun xieru_cad ( )

(alert "8888")

;;; (setq pt1 (getpoint "记录插入点:"))

;;;

;;;      (command "text"

;;;       "m"

;;;       pt1

;;;       zigao

;;;       0

;;;       (strcat date-time neirong)

;;;       )

)

hhh454 发表于 2024-1-10 10:40:13

输入多个数据时,DCL可视化一次多数据输入很方便,或者是多个按钮,单个按钮触发指定小程序,dcl代码有特定的结构组成,想实现你的功能,可以把文字直接用输入框,点击确认按钮后触发“拾取指定点”代码就可以,论坛有自动生成对话框的小程序,可以看一下。

[不死猫原创] 利用文字排列实现可视化DCL开发(开源)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=81777&fromuid=363233
(出处: 明经CAD社区)

liuxinkai 发表于 2024-1-10 16:39:02

hhh454 发表于 2024-1-10 10:40
输入多个数据时,DCL可视化一次多数据输入很方便,或者是多个按钮,单个按钮触发指定小程序,dcl代码有特定 ...

感谢,现在还有个问题解决不了。我这个程序平常输入命令用,并且我是做了个dwg反应器,在关闭dwg的时候弹出面板,输入文字插入到dwg。现在关闭dwg的时候能弹出面板,但是在插入的时候程序就执行关闭dwg了,没法插入。有什么好的办法吗?

liuxinkai 发表于 2024-1-11 11:28:00

wzg356 发表于 2024-1-11 11:21
done_dialog表示结束对话框了,这类取点,command等需要退出来执行,如要获取对话框的数据或计算则放在done ...

感觉结束对话框跟执行其他函数,是并列的关系吧。如果不需要知道done_dialog的值,就无所谓前后了吧,先关闭对话框就先关闭呗。不知道我理解的对不对。
但是你说的是标准的写法,以后我改正。;P

tigcat 发表于 2024-1-9 17:35:51

对话框使用时,是不能调用command命令的。这时你应该给他一个结束的值。done_dialog,然后通过调用对话框函数返回来才行。可以在论坛搜搜对话框的程序,看看它的组成结构。

liuxinkai 发表于 2024-1-9 20:28:20

tigcat 发表于 2024-1-9 17:35
对话框使用时,是不能调用command命令的。这时你应该给他一个结束的值。done_dialog,然后通过调用对话框函 ...

感谢,明早看看,再请教。

liuxinkai 发表于 2024-1-10 16:40:20

tigcat 发表于 2024-1-9 17:35
对话框使用时,是不能调用command命令的。这时你应该给他一个结束的值。done_dialog,然后通过调用对话框函 ...

麻烦看看我给其他人留言的新问题,看看会不会解决:P-

hhh454 发表于 2024-1-10 21:50:17

liuxinkai 发表于 2024-1-10 16:39
感谢,现在还有个问题解决不了。我这个程序平常输入命令用,并且我是做了个dwg反应器,在关闭dwg的时候弹 ...

检查一下是不是把exit放到插入前面了

liuxinkai 发表于 2024-1-11 08:51:47

hhh454 发表于 2024-1-10 21:50
检查一下是不是把exit放到插入前面了

本来就是监测到执行关闭动作才反应的,我们按了关闭按钮然后反应器动作,才进行写入。
做这个的本意就是在关闭dwg的时候提醒作图人员做记录。
有没有好的方法?

努.力 发表于 2024-1-11 09:17:30

liuxinkai 发表于 2024-1-10 16:39
感谢,现在还有个问题解决不了。我这个程序平常输入命令用,并且我是做了个dwg反应器,在关闭dwg的时候弹 ...

大神,方便分享一下关闭dwg的反应器吗?谢谢

liuxinkai 发表于 2024-1-11 10:24:51

努.力 发表于 2024-1-11 09:17
大神,方便分享一下关闭dwg的反应器吗?谢谢

(vlr-dwg-reactor nil '((:vlr-beginClose . zdjl)));关闭的时候自动记录
(defun zdjl(a b);必须带两个参数,可以不用,但是必须写进去
(C:jl)
)
页: [1] 2
查看完整版本: DCL调用子函数