jonathann3891 发表于 2022-7-5 17:26:42

DCL帮助

我在玩DCL,用Afralisp和Jeff Sanders。
 
是否可以取消取消按钮,只使用右上角的“X”按钮??
 
这是我目前为止的Lisp程序:
(defun c:test (/ dcl_id z)
(setq dcl_id (load_dialog "ModZ.dcl"))
(if (not (new_dialog "ModZ" dcl_id))
   (exit)
)
(set_tile "Z" "0.00")
(action_tile "But1" "(doButton 1)")
(action_tile "But2" "(doButton 2)")
(action_tile "But3" "(doButton 3)")
(action_tile "Cancel""(done_dialog)")
(start_dialog)
(unload_dialog dcl_id)

(princ)

);defun

(defun doButton(a)
(cond
   ((= a 1)(alert "Button 1 was pressed!"))
   ((= a 2)(alert "Button 2 was pressed!"))
   ((= a 3)(alert "Button 3 was pressed!"))
)
)
 
我的DCL:
ModZ : dialog {

label = "Modify Z";

: edit_box
{
label = "Elevation :";
key = "Z";
alignment = centered;
edit_limit = 20;
edit_width = 20;
//allow_accept = true
}

: row {
        : spacer { height = 1; }
        }

        :row {
       
: button {
label = "Single";
key = "But1";
alignment = centered;
width = 12;
}

: button {
label = "Fence";
key = "But2";
alignment = centered;
width = 12;
}

: button {
label = "All";
key = "But3";
alignment = centered;
width = 12;
}

: button {
label = "Cancel";
key = "Cancele";
alignment = centered;
width = 12;
is_cancel = true;
}
}
}


jonathann3891 发表于 2022-7-5 17:53:03

此外,我想在按下按钮1时隐藏dcl。但我不能让它工作。Afralisp正在使用标志,但我无法使其工作。
 
有人能告诉我如何做到这一点吗?
 
谢谢

jonathann3891 发表于 2022-7-5 17:58:11

DCL专家在哪里?我仍在试图找出如何隐藏dcl,以便选择一个对象。

rlx 发表于 2022-7-5 18:26:40

你好,乔纳森,
 
 
网上有很多关于这个主题的东西。请尝试以下链接:
 
 
http://www.afralisp.net/dialog-control-language/tutorials/hiding-dialog-boxes.php
 
 
gr.Rlx

jonathann3891 发表于 2022-7-5 18:28:35

我终于成功了。
 
请随意评论我的代码!
 
Lisp程序:
(defun c:modz (/ dcl_id )
(if(not Elv)
   (setq Elv "0.00")
   )
(setq flag 3)
(setq dcl_id (load_dialog "ModZ.dcl"))
(while (> flag 2)
(if (not (new_dialog "ModZ" dcl_id))
   (exit)
)
(set_tile "Elv" Elv)
(action_tile "Elv" "(setq Elv $value)")
(action_tile "Accept" "(saveVars)(done_dialog 1)")
(action_tile "Cancel""(done_dialog 0)(setq Elv nil)")
   (setq flag (start_dialog))
   (if (= flag 1)
   (progn
(setq ss (ssget))
   (unload_dialog dcl_id)
        (command "_.CHANGE" ss "" "_P" "_E" Elv "")
(princ(strcat "Object(s) Elevation set to " Elv))
)
   )
   )
(princ)

);defun

(defun saveVars(/ Elv)

(setq Elv(distof(get_tile "Elv")))

)
 
DCL:
ModZ : dialog {

label = "Modify Z";

: edit_box
{
label = "Elevation:";
key = "Elv";
alignment = left;
edit_limit = 20;
edit_width = 20;
}

: row {
        : spacer { height = 1; }
        }

        :row {
       
: button {
label = "PICK OBJ";
key = "Accept";
alignment = centered;
width = 12;
is_default = true;
allow_accept = true;
mnemonic = "P";
}

: button {
label = "CANCEL";
key = "Cancel";
alignment = centered;
width = 12;
is_default = false;
is_cancel = true;
mnemonic = "C";
}
}
}


页: [1]
查看完整版本: DCL帮助