明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 740|回复: 0

[提问] 单选对话框,为什么执行时出现未知错误?

[复制链接]
发表于 2015-6-4 15:56:22 | 显示全部楼层 |阅读模式
练习写单选对话框,选择后,运行命令出现未知错误
源码

  1. (defun show_sld (key sld)
  2.       ;(setq key "lmimage")
  3.       (setq px (dimx_tile key));;获取图像右下角X坐标
  4.      (setq py (dimy_tile key));;获取图像右下角Y坐标
  5.      (start_image key);;开始处理图像对象
  6.      (fill_image 0 0 px py -2);先处理图像对象
  7.      (slide_image 0 0 px py sld);;展示幻灯片
  8.      (end_image);;结束
  9. )

  10. (defun dcl_pqfh ()
  11. (setq dcl_id (load_dialog "pqfh"))
  12. (if (not (new_dialog "pqfh" dcl_id))
  13. (exit)
  14. )
  15. (setq zs_err 1)
  16. (sub_kk1)
  17. (set_tile "hxs_kk" "1") ;;;设置剖切方向为横向上
  18. (set_tile "bl_kk" (rtos (getvar "DIMSCALE")));;设置比例初始值为当前标注比例
  19. (if $syth_sc$
  20.     (set_tile "syh_kk" $syth_sc$)
  21.     (set_tile "syh_kk" "索引号")
  22.    );如果索引号为空,则设置为索引号,否则设置为上次输入值
  23. (if $syym_sc$
  24.      (set_tile "syym_kk" $syym_sc$)
  25.      (set_tile "syym_kk" "索引页码")
  26. );如果索引页码为空,则设置为索引页码,否则设置为上次输入值

  27. (action_tile "syh_kk" "(setq keyk $Value)")
  28. (action_tile "syym_kk" "(setq keyp $Value)")
  29. (action_tile "hxs_kk" "(sub_kk1)")
  30. (action_tile "hxx_kk" "(sub_kk2)")
  31. (action_tile "zxz_kk" "(sub_kk3)")
  32. (action_tile "zxy_kk" "(sub_kk4)")
  33. (action_tile "ins_ok" "(ok_pqfh) (done_dialog 1)")
  34. (setq dd (start_dialog))
  35. (if (= dd 1)
  36. (inst_pqfh)
  37. )
  38. (UNLOAD_DIALOG dcl_id)
  39. )

  40. (defun ok_pqfh ()
  41. (setq n1 (get_tile "bl_kk"));;;当前标注比例
  42. (if (= n1 "")
  43.    (setq n1 n2)
  44. )
  45. (setq keyk (get_tile "syh_kk")) ;;;;;请输入索引图号,如D-01,D-02,D-03.
  46. (setq $syth_sc$ keyk)
  47. $syth_sc$
  48. (if (= keyk "")
  49.    (setq keyk "索引号")
  50. )
  51. (setq keyp (get_tile "syym_kk")) ;;;;; 请输入本图名称,如1,2,3... A,B,C...<1>:
  52. (setq $syym_sc$ keyp)
  53. (if (= keyp "")
  54.    (setq keyp "索引页码")
  55. )
  56. )

  57. (defun sub_kk1 ()
  58.    (setq ddtype 1)
  59.    (show_sld "lmimage" "hxsfh")
  60. )
  61. (defun sub_kk2 ()
  62.    (setq ddtype 2)
  63.    (show_sld "lmimage" "hxxfh")
  64. )
  65. (defun sub_kk3 ()
  66.    (setq ddtype 3)
  67.    (show_sld "lmimage" "zxzfh")
  68. )
  69. (defun sub_kk4 ()
  70.    (setq ddtype 4)
  71.    (show_sld "lmimage" "zxyfh")
  72. )

  73. (defun inst_pqfh (/ p1 p2 n1 n2 keyk keyp fh_layer)
  74. (setq g_yesorno 1);设置是否编组
  75. (setq p1 (getpoint "\n指定剖切线第一点:"))
  76. (setq p2 (getpoint p1 "\n指定剖切线下一点:"))
  77. (Set_layer)
  78. (command "layer" "s" fh_layer "")
  79. (command ".line" p1 p2 "")
  80. (setq obj_line (entlast))
  81. (setq n5 (getvar "ltscale"))
  82. (setq n6 (/ (* 6 (getvar "DIMSCALE")) n5))
  83. (command "change" obj_line "" "p" "lt" "CENTER" "c" "6" "s" n6 "");;这一部执行完,下来就出错,未知命令
  84. (cond
  85.         ((= ddtype 1)
  86.          (command "INSERT" "kpmfhp02" p2 n1 n1 "" keyk keyp)
  87.          (setq obj_nb (entlast))
  88.          (command "INSERT" "kpmfhp01" p1 n1 n1 "")
  89.          (setq obj_na (entlast))
  90.           )
  91.          ((= ddtype 2)
  92.            (command "INSERT" "kpmfhp02x" p2 n1 n1 "" keyk keyp)
  93.            (setq obj_nb (entlast))
  94.            (command "INSERT" "kpmfhp01x" p1 n1 n1 "")
  95.            (setq obj_na (entlast))
  96.           )
  97.         ((= ddtype 3)
  98.                  (command "INSERT" "kpmfhp04" p2 n1 n1 "" keyk keyp)
  99.                 (setq obj_nb (entlast))
  100.                  (command "INSERT" "kpmfhp03" p1 n1 n1 "")
  101.                  (setq obj_na (entlast))
  102.           )
  103.         ((= ddtype 4)
  104.                (command "INSERT" "kpmfhp04y" p2 n1 n1 "" keyk keyp)
  105.                (setq obj_nb (entlast))
  106.                 (command "INSERT" "kpmfhp03y" p1 n1 n1 "")
  107.                 (setq obj_na (entlast))
  108.            )
  109.   )
  110. ;(command "" "")
  111. (if (= g_yesorno 1) ;编组
  112.       (progn
  113.        (setq obj_together (ssadd obj_na  (ssadd obj_nb (ssadd obj_line))))
  114.        ;生成匿名组
  115.        (command "-group" "c" "*" "符号标注" obj_together "")
  116.       )
  117.      )
  118. )

  119. ;剖切符号插入命令,作者:凯凯
  120. (defun c:test (/ lst ptt1 pt1 n1 n2 n8 n2 keyk keyp keyl fh_layer)
  121. (command "undo" "be")
  122. (command  "ATTDIA" 0)
  123. (YL_begin)
  124. (dcl_pqfh)
  125. (YL_end) ;
  126. (command "undo" "e")
  127. (princ)
  128. )
DCL源码
pqfh : dialog {
     label = "剖切符号插入工具——by  凯 凯";
        : row {
      alignment=centered;
      fixed_width=true;
    : column{
        : row {
    : column{
     : boxed_column {
      alignment=centered;
      fixed_width=true;
       label = "索引选项:";
              is_bold=true;
        : edit_box {
              label = "索 引 号:";
              key = "syh_kk";
              edit_width = 10;
              edit_limit =15;
            }
        : edit_box {
              label = "索引页码:";
              key = "syym_kk";
              edit_width = 10;
              edit_limit =15;
            }
}   
        :spacer {
}
       : boxed_column {
alignment=centered;
      fixed_width=true;
              label = "SCALE:";
        : edit_box {
              label = "当前比例:";
              key = "bl_kk";
              edit_width =10;
              edit_limit =15;
            }
}
        :spacer {
}
       : boxed_column {
alignment=centered;
fixed_width=false;
            // width = 27;
              label = "选择剖切方向:";
: row {
//alignment=centered;
//fixed_width=true;
       : radio_button {
              label = "横向上";
              key = "hxs_kk";
            }
       : radio_button {
              label = "横向下";
              key = "hxx_kk";
            }
}
: row {
       : radio_button {
              label = "纵向左";
              key = "zxz_kk";
            }
       : radio_button {
              label = "纵向右";
              key = "zxy_kk";
         alignment=right;
            }
}
}
}
         :image {
              key = "lmimage";
              width = 45;
              height = 20;
              fixed_width = true;
              fixed_height = false;
              color = -15;
             allow_accept=true;
            //alignment=centered;
              }
}

}
}
            errtile;
    : row {
      alignment=centered;
      fixed_width=true;

      : button {
                      label = "确定";
                      key = "ins_ok";
                      width = 8;
                      is_default=true;
       }
       : spacer { width =4;}
        cancel_button;
    }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 23:33 , Processed in 0.185118 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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