明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 798|回复: 5

[提问] 在屏上选点时如何退出DCL窗体?

[复制链接]
发表于 2022-4-28 21:32:37 | 显示全部楼层 |阅读模式

DCL窗体如下:

DCL窗体的代码如下:

  1. attline:dialog{
  2. label="直线属性查看修改";
  3. :button{
  4. label="选择直线<";
  5. key="bt_selectline";
  6. }
  7. :row{
  8. :boxed_column{
  9. label="直线原始属性";
  10. :edit_box{
  11. label="图元名:";
  12. edit_width=10;
  13. key="line_tuyu";
  14. }
  15. :edit_box{
  16. label="图层名称:";
  17. edit_width=10;
  18. key="line_tuceng";
  19. }
  20. :edit_box{
  21. label="起点坐标:";
  22. edit_width=10;
  23. key="line_qizuobiao";
  24. }
  25. :edit_box{
  26. label="终点坐标:";
  27. edit_width=10;
  28. key="line_zhongzuobiao";
  29. }
  30. }
  31. :boxed_column{
  32. label="直线可修改项";
  33. alignment=left;
  34. spacer_1;
  35. :edit_box{

  36. label="新图元名:";
  37. edit_width=10;
  38. key="line_tuyu_new";
  39. }
  40. :row{
  41. :edit_box{
  42. label="新起点坐标:";
  43. edit_width=10;
  44. key="line_qizuobiao_new";
  45. }
  46. :button{
  47. label="屏选起点<";
  48. key="bt_qidiansel";
  49. }
  50. }
  51. :row{
  52. :edit_box{
  53. label="新终点坐标:";
  54. edit_width=10;
  55. key="line_zhongzuobiao_new";

  56. }
  57. :button{
  58. label="屏选终点<";
  59. key="btn_zhongdiansel";
  60. }
  61. }
  62. }
  63. }

  64. spacer_1;

  65. ok_cancel;

  66. }
我的lisp程序如下:
  1. (defun c:cx ()
  2.   (setvar "cmdecho" 0)
  3.   (setq osm (getvar "osmode"))
  4.   (setvar "osmode" 0)      ;
  5.   (setq
  6.     dcl_id (load_dialog
  7.        "D:\\Autodesk\\AutoCAD 2019\\Support\\lispbag\\winatt"
  8.      )
  9.   )
  10.   (setq dd 2)
  11. ; (while (> dd 1)
  12.     (new_dialog "attline" dcl_id)
  13.     (action_tile "accept" "(done_dialog 1)")
  14.     (action_tile "cancer" "(done_dialog 0)")
  15.     (action_tile "bt_selectline" "(done_dialog 2)")
  16.     (setq dd (start_dialog))
  17.     (if  (= dd 2)
  18.       progn
  19.       (
  20.        (initget 1)
  21.   (setq p (getpoint "\nPlease get a point:"))
  22.   (setq x (car p) y (cadr p))
  23.       )
  24.       ;
  25.     )
  26.    
  27. ; )
  28.   (if (= dd 0)
  29.     (print "00")
  30.   )
  31.   (if (= dd 1)
  32.     (print "11")
  33.   )
  34.   (unload_dialog dcl_id)
  35.   (setvar "osmode" osm)
  36.   
  37. )
按窗体上的第一个按钮(选择直线<)时,我想在屏上选择一点。我点击时实际执行了。但是窗体不隐藏。不知道为什么?点“确定”按钮后会执行我选点时的命令。

本帖子中包含更多资源

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

x
 楼主| 发表于 2022-4-28 21:36:18 | 显示全部楼层
注册后提问的第一个问题,请大家多多帮忙。
发表于 2022-4-29 09:15:44 | 显示全部楼层
不知道你讲的啥意思,但是我觉得这样是正常的
  1. (defun c:cx (/ osm dcl_id dd p x y)
  2.   (setvar "cmdecho" 0)
  3.   (setq osm (getvar "osmode"))
  4.   (setvar "osmode" 0)
  5.   (setq
  6.     dcl_id (load_dialog "D:\\abc.dcl")
  7.   )
  8.   (setq dd 2)
  9.   (while (> dd 1)
  10.     (new_dialog "attline" dcl_id)
  11.     (action_tile "accept" "(done_dialog 1)")
  12.     (action_tile "cancer" "(done_dialog 0)")
  13.     (action_tile "bt_selectline" "(done_dialog 2)")
  14.     (setq dd (start_dialog))
  15.     (cond
  16.       ((= dd 2)
  17.        (progn
  18.          (initget 1)
  19.          (setq p (getpoint "\nPlease get a point:"))
  20.          (setq x (car p)
  21.                y (cadr p)
  22.          )
  23.        )
  24.       )
  25.       ((= dd 0)
  26.        (print "00")
  27.       )
  28.       ((= dd 1)
  29.        (print "11")
  30.       )
  31.     )
  32.   )
  33.   (unload_dialog dcl_id)
  34.   (setvar "osmode" osm)
  35.   (prin1)
  36. )
发表于 2022-4-29 09:27:28 | 显示全部楼层
是你while中写错了吧
"新终点坐标:"key="line_zhongzuobiao_new"。在while中没有
 楼主| 发表于 2022-4-29 19:41:25 | 显示全部楼层
菜卷鱼 发表于 2022-4-29 09:15
不知道你讲的啥意思,但是我觉得这样是正常的

谢谢,终于解决了。我当初对着教学截图看了一天。都没发现问题,原来问题在最上边。谢谢,真得非常谢谢。
 楼主| 发表于 2022-4-29 19:51:19 | 显示全部楼层
自贡黄明儒 发表于 2022-4-29 09:27
是你while中写错了吧
"新终点坐标:"key="line_zhongzuobiao_new"。在while中没有

谢谢。按三楼的方法解决了。非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:48 , Processed in 0.267579 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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