找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 741|回复: 0

[讨论]:对话的程序程序问题

[复制链接]
发表于 2007-4-12 22:46:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
这是一个画轴的程序,在对话框中怎样才能保留上次输入的数据,以作下次再打开时不用重新再调.
(defun c:shaft( / d l x y id std x1 y1)
  (defun getdata()  ;定义从编缉框获取D.L.x.y数据的函数
    (setq d(atof(get_tile"D_box")))    ;"atof"将字符串转换成实型数
    (setq l(atof(get_tile"L_box")))
    (setq x(atof(get_tile"X_box")))
    (setq y(atof(get_tile"Y_box")))
  )
  (setvar"cmdecho"0)                   ;不显示普通命令的提示
  (command"layer" "m" "solid" "")
  (command"layer" "m" "cen" "c" 1 "" "lt" "center" "" "")
  (setq id(load_dialog "C:\\Program Files\\Autodesk\\MDT 2004\\Support\\12-13.dcl"))  ;装入对话框文件
  (if(< id 0)(exit))       ;当加载成功后id的值会大于1
  (setq d 50 l 100 x 0 y 0 std 2 p (list 0 0))
  (while(> std 1);这里用到循环是DCL的循环显示
    (if(not(new_dialog"zhou"id))(exit))
    (setq x1(dimx_tile"image"))     ;获取图像宽度赋给变量x1
    (setq y1(dimy_tile"image"))
    (start_image"image")
    (slide_image 0 0 x1 y1 "C:\\Program Files\\Autodesk\\MDT 2004\\Support\\12-13.sld")  ;插入幻灯片
    (end_image)
    (set_tile "D_box"(rtos d 2 2))
    (set_tile "L_box"(rtos l 2 2))
    (set_tile "X_box"(rtos x 2 2))
    (set_tile "Y_box"(rtos y 2 2))
    (action_tile "pick" "(getdata)(done_dialog 2)")     ;设置屏幕取点按钮的活动
    (action_tile "accept" "(getdata)(done_dialog 1)")
    (action_tile "cancel" "(done_dialog 0)")
    (setq std(start_dialog))
    (if(= std 2)
      (progn
        (initget 1)     ;禁止空输入
        (setq p(getpoint "定位点:"))
        (setq x(car p)y(cadr p))
      )
    )
  )
  (if(= std 1)
    (progn
      (command"layer""m""solid" "")
      (command"pline"
              (list x(+ y(* 0.5 d)))
              (list x(- y(* 0.5 d)))
              (list (+ x l)(- y(* 0.5 d)))
              (list (+ x l)(+ y(* 0.5 d)))
              "c")
      (command"layer" "m" "cen" "")
      (command"line"(polar p pi 10)(polar p 0(+ l 10)) "")
    )
  )
  (unload_dialog id)
  (princ)
)
   

zhou: dialog{
label="绘制轴段";
alignment=centered;
:row{
  :image{width=40;
         height=8;
         key="image";
         color=-2;
         }
  :column{
    :edit_box{label="直径&D(mm):";
              key="D_box";
              width=12;
              }
    :edit_box{label="长度&L(mm):";
              width=12;
              key="L_box";
              }
    :boxed_column{
        label="定位点";
        :button{
           label="屏幕取点<";
           key="pick";
               }
        :edit_box{
           label="&X(mm):";
           width=12;
           key="X_box";
                 }
        :edit_box{
           label="&Y(mm):";
           width=12;
           key="Y_box";
                 }
                  }
          }
     }
   ok_cancel;
  }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 04:31 , Processed in 0.187267 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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