明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1668|回复: 9

[已解答] 求助论坛老师帮完善这个简单的程序!

[复制链接]
发表于 2014-10-20 14:10:19 | 显示全部楼层 |阅读模式
新手求助!
求助论坛老师帮完善这个简单的程序,谢谢!
  1. (defun c:test()
  2. ;;添加完善此程序
  3. (princ)
  4. )
  5. (defun make-dcl  (/ lst_str str file f)
  6.     (setq lst_str '(
  7. "temp:dialog  "
  8. "{label=\"对话框测试\" ;  "
  9. " :boxed_column { label = \"test\" ;"
  10. " :column {"
  11. " :row {"
  12. " :button { key = \"t1\" ;label = \"test1\" ;width = 15 ; }" ;; 想让此按钮打开系统计算器,此对话框不退出
  13. " :button { key = \"t2\" ;label = \"test2\" ;width = 15 ; }}";; 想让此按钮CAD命令“line”,执行后退出此对话框
  14. " :column {"
  15. " :row {"
  16. " :button { key = \"t3\" ;label = \"test3\" ;width = 15 ; }" ;; 想让此按钮调用自定命令“tt”,执行后退出此对话框
  17. " :button { key = \"t4\" ;label = \"test4\" ;width = 15 ; }}}}}";;想让此按钮打开网站"bbs.mjtd.com",此对话框不退出
  18. "ok_cancel;"
  19. "}"
  20.    )
  21.     )
  22.     (setq file (vl-filename-mktemp "temp3.dcl"))
  23.     (setq f (open file "w"))
  24.     (foreach str lst_str
  25.   (princ "\n" f)
  26.   (princ str f)
  27.     )
  28.     (close f)
  29.     ;;返回
  30.     file
  31. )

 楼主| 发表于 2014-10-20 19:43:03 | 显示全部楼层
有好心人帮助一下么?
发表于 2014-10-20 21:21:51 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2014-10-21 12:55 编辑

游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0
 楼主| 发表于 2014-10-20 22:48:20 来自手机 | 显示全部楼层
ZZXXQQ 发表于 2014-10-20 21:21
[/post]

谢谢超级版主,可是运行命令显示"无法加载对话框"

点评

程序已改,再试试。  发表于 2014-10-21 12:58
发表于 2014-10-21 00:28:24 | 显示全部楼层
本帖最后由 lucas_3333 于 2014-10-21 17:00 编辑
ZZXXQQ 发表于 2014-10-20 21:21
[/post]

参考Z版程序,东拼西凑了一个, 4个按钮都能打开对应的功能, 只是点击按钮后执行相关功能时,对话框都退出了, 不知道怎么使对话框不退出

楼下改好了,见8楼!

点评

不是参考了三楼程序吗  发表于 2014-10-21 12:58
 楼主| 发表于 2014-10-21 14:48:50 | 显示全部楼层
ZZXXQQ 发表于 2014-10-20 21:21
[/post]

谢谢超级版主, 可是对话框还是无法加载
 楼主| 发表于 2014-10-21 14:50:47 | 显示全部楼层
lucas_3333 发表于 2014-10-21 00:28
参考Z版程序,东拼西凑了一个, 4个按钮都能打开对应的功能, 只是点击按钮后执行相关功能时,对话框都退出了 ...

谢谢lucas_3333, 可以执行,就是对话框都退出了.还是要谢谢你的帮助!
发表于 2014-10-21 16:57:44 | 显示全部楼层
本帖最后由 lucas_3333 于 2014-10-21 16:59 编辑
sibelle_hu 发表于 2014-10-21 14:50
谢谢lucas_3333, 可以执行,就是对话框都退出了.还是要谢谢你的帮助!

哈哈,这次改好了,加个while , 试试吧

  1. (defun c:test()
  2. (dhk)
  3. (princ)
  4. )
  5. (defun make-dcl  (/ lst_str str file f)
  6.                 (setq lst_str '(
  7. "temp:dialog  "
  8. "{label=\"对话框测试\" ;  "
  9. " :boxed_column { label = \"test\" ;"
  10. " :column {"
  11. " :row {"
  12. " :button { key = \"t1\" ;label = \"test1\" ;width = 15 ; }" ;; 想让此按钮打开系统计算器,此对话框不退出
  13. " :button { key = \"t2\" ;label = \"test2\" ;width = 15 ; }}";; 想让此按钮CAD命令“line”,执行后退出此对话框
  14. " :column {"
  15. " :row {"
  16. " :button { key = \"t3\" ;label = \"test3\" ;width = 15 ; }" ;; 想让此按钮调用自定命令“tt”,执行后退出此对话框
  17. " :button { key = \"t4\" ;label = \"test4\" ;width = 15 ; }}}}}";;想让此按钮打开网站"bbs.mjtd.com",此对话框不退出
  18. "ok_cancel;"
  19. "}"
  20. )
  21. )
  22.     (setq file (vl-filename-mktemp "temp3.dcl"))
  23.     (setq f (open file "w"))
  24.     (foreach str lst_str
  25.         (princ "\n" f)
  26.         (princ str f)
  27.     )
  28.     (close f)
  29.     ;;返回
  30.     file
  31. )
  32. (defun dhk(/ Dialog_Return dcl_id )
  33. (setq dcl_id (load_dialog (make-dcl)))
  34. (setq Dialog_Return 2)
  35. (while
  36. (or (= Dialog_Return 2)(= Dialog_Return 5))
  37. (new_dialog "temp" dcl_id)
  38. (action_tile "t1" "(done_dialog 2)")
  39. (action_tile "t2" "(done_dialog 3)")
  40. (action_tile "t3" "(done_dialog 4)")
  41. (action_tile "t4" "(done_dialog 5)")
  42. (action_tile "accept" "(done_dialog 1)")
  43. (action_tile "cancel" "(done_dialog 0)")
  44. (setq Dialog_Return (start_dialog))
  45. (cond
  46. ((= Dialog_Return 2) (startapp "calc"))
  47. ((= Dialog_Return 3) (command "Line"))
  48. ((= Dialog_Return 4) (c:tt))
  49. ((= Dialog_Return 5) (startapp "C:\\Program Files\\Internet Explorer\\iexplore.exe" "bbs.mjtd.com"))
  50. )
  51. )
  52. (unload_dialog dcl_id)
  53. )
  54. ;;倾斜的文字变水平
  55. (defun c:tt (/ ent i ss)
  56.   (if (setq ss (ssget '((0 . "*TEXT"))))
  57.     (repeat (setq i (sslength ss))
  58.       (setq ent (entget (ssname ss (setq i (1- i))))
  59.      ent (subst  (cons 50 0.0)  (assoc 50 ent) ent )
  60.       )
  61.       (entmod (subst (cons 51 0.0) (assoc 51 ent) ent ))
  62.     )
  63.   )
  64.   (princ)
  65. )

评分

参与人数 2明经币 +2 收起 理由
Kye + 1 很给力!
sibelle_hu + 1 很给力!

查看全部评分

 楼主| 发表于 2014-10-21 19:10:45 | 显示全部楼层
lucas_3333 发表于 2014-10-21 16:57
哈哈,这次改好了,加个while , 试试吧

嗯,现在好了! 达到要求了,谢谢!
发表于 2014-10-22 15:11:55 | 显示全部楼层
lucas_3333 发表于 2014-10-21 16:57
哈哈,这次改好了,加个while , 试试吧

这个WHILE 真是用得太神奇了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 09:33 , Processed in 0.236661 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表