在屏上选点时如何退出DCL窗体?
DCL窗体如下:
DCL窗体的代码如下:
attline:dialog{
label="直线属性查看修改";
:button{
label="选择直线<";
key="bt_selectline";
}
:row{
:boxed_column{
label="直线原始属性";
:edit_box{
label="图元名:";
edit_width=10;
key="line_tuyu";
}
:edit_box{
label="图层名称:";
edit_width=10;
key="line_tuceng";
}
:edit_box{
label="起点坐标:";
edit_width=10;
key="line_qizuobiao";
}
:edit_box{
label="终点坐标:";
edit_width=10;
key="line_zhongzuobiao";
}
}
:boxed_column{
label="直线可修改项";
alignment=left;
spacer_1;
:edit_box{
label="新图元名:";
edit_width=10;
key="line_tuyu_new";
}
:row{
:edit_box{
label="新起点坐标:";
edit_width=10;
key="line_qizuobiao_new";
}
:button{
label="屏选起点<";
key="bt_qidiansel";
}
}
:row{
:edit_box{
label="新终点坐标:";
edit_width=10;
key="line_zhongzuobiao_new";
}
:button{
label="屏选终点<";
key="btn_zhongdiansel";
}
}
}
}
spacer_1;
ok_cancel;
}我的lisp程序如下:
(defun c:cx ()
(setvar "cmdecho" 0)
(setq osm (getvar "osmode"))
(setvar "osmode" 0) ;
(setq
dcl_id (load_dialog
"D:\\Autodesk\\AutoCAD 2019\\Support\\lispbag\\winatt"
)
)
(setq dd 2)
; (while (> dd 1)
(new_dialog "attline" dcl_id)
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancer" "(done_dialog 0)")
(action_tile "bt_selectline" "(done_dialog 2)")
(setq dd (start_dialog))
(if(= dd 2)
progn
(
(initget 1)
(setq p (getpoint "\nPlease get a point:"))
(setq x (car p) y (cadr p))
)
;
)
; )
(if (= dd 0)
(print "00")
)
(if (= dd 1)
(print "11")
)
(unload_dialog dcl_id)
(setvar "osmode" osm)
)
按窗体上的第一个按钮(选择直线<)时,我想在屏上选择一点。我点击时实际执行了。但是窗体不隐藏。不知道为什么?点“确定”按钮后会执行我选点时的命令。
注册后提问的第一个问题,请大家多多帮忙。:handshake 不知道你讲的啥意思,但是我觉得这样是正常的
(defun c:cx (/ osm dcl_id dd p x y)
(setvar "cmdecho" 0)
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setq
dcl_id (load_dialog "D:\\abc.dcl")
)
(setq dd 2)
(while (> dd 1)
(new_dialog "attline" dcl_id)
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancer" "(done_dialog 0)")
(action_tile "bt_selectline" "(done_dialog 2)")
(setq dd (start_dialog))
(cond
((= dd 2)
(progn
(initget 1)
(setq p (getpoint "\nPlease get a point:"))
(setq x (car p)
y (cadr p)
)
)
)
((= dd 0)
(print "00")
)
((= dd 1)
(print "11")
)
)
)
(unload_dialog dcl_id)
(setvar "osmode" osm)
(prin1)
) 是你while中写错了吧
"新终点坐标:"key="line_zhongzuobiao_new"。在while中没有 菜卷鱼 发表于 2022-4-29 09:15
不知道你讲的啥意思,但是我觉得这样是正常的
谢谢,终于解决了。我当初对着教学截图看了一天。都没发现问题,原来问题在最上边。谢谢,真得非常谢谢。 自贡黄明儒 发表于 2022-4-29 09:27
是你while中写错了吧
"新终点坐标:"key="line_zhongzuobiao_new"。在while中没有
谢谢。按三楼的方法解决了。非常感谢。
页:
[1]