明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4052|回复: 4

【求助】???两个DCL如何连接???

[复制链接]
发表于 2012-3-19 11:53:30 | 显示全部楼层 |阅读模式
本帖最后由 429014673 于 2012-3-19 12:28 编辑


              (1)                       (2)
如上图,如何点图1"HELP"就去取图2的届面,当点“返回”时就回到图1届面。


  1. (defun c:1 ()
  2.        (setvar "cmdecho" 0)
  3.        (initget 6)
  4.        (setq dcl_id (load_dialog "ok" ))
  5.        (new_dialog "cd" dcl_id)
  6.        (action_tile "bb1" "(done_dialog 1)" )
  7.        (action_tile "bb2" "(done_dialog 2)" )
  8.        (setq dd (start_dialog))
  9.        (cond
  10.               ((= dd 1) (C:XXX))
  11.               ((= dd 2) (C:XXXX))
  12. (t (princ))));end defun





  1. cd:dialog {
  2.     label = "编辑" ;
  3.     :spacer {
  4.         height = 0.5 ;
  5.     }
  6.     :row {
  7.         label = "编辑" ;
  8.         :column {
  9.             :button {
  10.                 alignment = centered ;
  11.                 fixed_width = true ;
  12.                 key = "bb1" ;
  13.                 label = "XX" ;
  14.                 width = 10 ;
  15.             }
  16.             :button {
  17.                 alignment = centered ;
  18.                 fixed_width = true ;
  19.                 key = "bb2" ;
  20.                 label = "XXX" ;
  21.                 width = 10 ;
  22.             }
  23.             :spacer {
  24.                 height = 0.2 ;
  25.             }
  26.         }
  27.     }
  28.     :spacer {
  29.         height = 0.2 ;
  30.     }
  31.     :spacer {
  32.         height = 0.2 ;
  33.     }
  34.     :row {
  35.         :button {
  36.             alignment = right ;
  37.             fixed_width = true ;
  38.             is_cancel = true ;
  39.             key = "ORDER1" ;
  40.             label = "HELP" ;
  41.             width = 10 ;
  42.         }
  43.         :button {
  44.             label = "关闭" ;
  45.             key = "cancel" ;
  46.             is_cancel = true ;
  47.             width = 10 ;
  48.             fixed_width = true ;
  49.             alignment = right ;
  50.         }
  51.     }
  52. }

  53. cdd:dialog {
  54.     label = "HELP" ;
  55.     :spacer {
  56.         height = 0.5 ;
  57.     }
  58.     :text {
  59.         label = "DSFDGTG" ;
  60.     }
  61.     :text {
  62.         label = "ASDFDF" ;
  63.     }
  64.     :spacer {
  65.         height = 0.2 ;
  66.     }
  67.     :row {
  68.         :button {
  69.             alignment = right ;
  70.             fixed_width = true ;
  71.             is_cancel = true ;
  72.             key = "cancel" ;
  73.             label = "返回" ;
  74.             width = 10 ;
  75.         }
  76.     }
  77. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-3-19 22:03:17 | 显示全部楼层
呵呵,这个我也想学习下。。。高手帮忙呀,。。
发表于 2012-3-20 00:18:54 | 显示全部楼层
本帖最后由 langjs 于 2012-3-20 00:21 编辑

我是这样做的,可能其他老大有更好的办法吧

如果第二个对话框有交互操作,采用的方法是关闭第一个对话框,打开第第二个,关闭第二个,再打开第一个。做个循环就可以,例子:
(defun c:qq (/ dcl_id dd uuu)
  (setvar "cmdecho" 0)
  (setq uuu 888)
  (while (= uuu 888)
    (initget 6)
    (setq dcl_id (load_dialog "ok"))
    (new_dialog "cd" dcl_id)
    (action_tile "bb1" "(done_dialog 1)")
    (action_tile "bb2" "(done_dialog 2)")
    (action_tile "ORDER1" "(done_dialog 3)")
    (setq dd (start_dialog))
    (cond
      ((= dd 3)
        (zzz)
      )
      (t
        (setq uuu 999)
      )
    )
    (cond
      ((= dd 1)
        (xxx)
      )
      ((= dd 2)
        (xxxx)
      )
      (t
        (princ)
      )
    )
  )
  (princ)
)
(defun zzz()
  (alert "\nssssssssssssssssssssssss")
)




如果第二个对话框仅仅是alert警告帮助之类的没有交互操作的对框框,采用的方法是直接弹出就可以了
(先把你的对话框 key = "ORDER1" 按钮的  is_cancel = true ;一句去掉,我说怎么一点help按钮就关闭对话框呢! )例子:
(defun c:qq (/ dcl_id dd)
  (setvar "cmdecho" 0)
  (initget 6)
  (setq dcl_id (load_dialog "ok"))
  (new_dialog "cd" dcl_id)
  (action_tile "bb1" "(done_dialog 1)")
  (action_tile "bb2" "(done_dialog 2)")
  (action_tile "ORDER1" "(zzz ) ")
  (setq dd (start_dialog))
  (cond
    ((= dd 1)
      (xxx)
    )
    ((= dd 2)
      (xxxx)
    )
    (t
      (princ)
    )
  )
  (princ)
)
(defun zzz ()
  (alert "\nssssssssssssssssssssssss")
)


 楼主| 发表于 2012-3-20 00:53:12 | 显示全部楼层
langjs 发表于 2012-3-20 00:18
我是这样做的,可能其他老大有更好的办法吧

如果第二个对话框有交互操作,采用的方法是关闭第一个对话框 ...

第一种情况,但不知为什么当我按ESC时,退不出程序。
发表于 2012-3-20 19:25:55 | 显示全部楼层
本帖最后由 1993063 于 2012-3-20 01:26 编辑

看看这个吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

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

GMT+8, 2025-9-25 05:48 , Processed in 0.168145 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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