明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1406|回复: 4

请帮忙看一看,关于DCL.

[复制链接]
发表于 2005-5-21 09:35 | 显示全部楼层 |阅读模式
这是我的原程序,我想用对话框的形式来输入数据,请问高手应如何在lisp里实现这个对话框,请指教. (defun c:pw ()
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(setvar "TEXTEVAL" 1)
(SETQ base (getpoint "指定文字左上角位置\n"))
(SETQ txt0 (getstring "\n输入矿体厚度:"))
(SETQ txt1 (getstring "\n请输入矿体品位:"))
(command "text" "j" "tr" base "2.5" "0" txt0)
(setq en0 (entlast))
(setq en (entget en0))
(setq p00 (list (cadr (assoc 10 en)) (caddr (assoc 10 en))))
(setq L (abs (- (cadr (assoc 11 en)) (cadr (assoc 10 en)))))
(command "move" en0 "" p00 base)
(setq base (mapcar '- base '(0.0 1.0)))
(setq base1 (polar base 0 L))
(command "line" base base1 "")
(setq base (mapcar '+ base '(0.0 -2.15)))
(command "TEXT" "j" "ml" base "2.5" "0" txt1)
(setvar "cmdecho" 1)
(setvar "osmode" 37)
(princ)
)

本帖子中包含更多资源

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

x
发表于 2005-5-21 21:57 | 显示全部楼层
程序:
  1. (defun c:pw ()
  2.    (setvar "osmode" 0)
  3.    (setvar "cmdecho" 0)
  4.    (setvar "TEXTEVAL" 1)
  5.    (SETQ base (getpoint "指定文字左上角位置\n"))
  6.    (IF (> (SETQ DCL_ID (LOAD_DIALOG "bhsr")) 0)
  7.      (IF (NEW_DIALOG "bhsr" DCL_ID "") (PROGN
  8.        (action_tile "accept"   "(GETVALOFDIA) (DONE_DIALOG 1)")
  9.        (action_tile "cancel" "(DONE_DIALOG 0)")
  10.        (SETQ RE (START_DIALOG))
  11.      ) (PROGN
  12.        (ALERT "Unable to display dialog box!\n无法显示对话框!")
  13.        (UNLOAD_DIALOG DCL_ID)
  14.      ))
  15.      (ALERT "Unable to load dialog box!\n无法装载对话框!")
  16.    )
  17.    (IF (= RE 1) (PROGN
  18.      (command "text" "j" "tr" base "2.5" "0" txt0)
  19.      (setq en0 (entlast))
  20.      (setq en (entget en0))
  21.      (setq p00 (list (cadr (assoc 10 en)) (caddr (assoc 10 en))))
  22.      (setq L (abs (- (cadr (assoc 11 en)) (cadr (assoc 10 en)))))
  23.      (command "move" en0 "" p00 base)
  24.      (setq base (mapcar '- base '(0.0 1.0)))
  25.      (setq base1 (polar base 0 L))
  26.      (command "line" base base1 "")
  27.      (setq base (mapcar '+ base '(0.0 -2.15)))
  28.      (command "TEXT" "j" "ml" base "2.5" "0" txt1)
  29.    ))
  30.    (setvar "cmdecho" 1)
  31.    (setvar "osmode" 37)
  32.    (princ)
  33. )
  34. (DEFUN GETVALOFDIA ()
  35.   (SETQ txt0 (READ (GET_TILE "kthd"))
  36.              txt1 (READ (GET_TILE "ktpw")))
  37. )
对话框:
  1. dcl_settings : default_dcl_settings { audit_level = 3; }
  2. bhsr : dialog {
  3.    key = "cs" ;
  4.    label = "钻孔编号输入" ;
  5.    : column {
  6.        : edit_box { key="kthd"; label="请输入矿体厚度"; value="";}
  7.        : edit_box { key="ktpw"; label="请输入矿体品位"; value="";}
  8.    }
  9.    ok_cancel ;
  10. }
 楼主| 发表于 2005-5-22 15:35 | 显示全部楼层



我试过了,结果小数点太多,我想要的是小数点保留二位如图2。


而且如图3的数字无法输入,请高手帮忙改进。

本帖子中包含更多资源

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

x
发表于 2005-5-22 21:14 | 显示全部楼层
试试

本帖子中包含更多资源

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

x
 楼主| 发表于 2005-5-22 21:49 | 显示全部楼层
我在2005里没用,原程序可以分享吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-11 22:45 , Processed in 0.157465 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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