明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1429|回复: 2

请教这个getpoint怎么不起作用了?

[复制链接]
发表于 2005-9-12 21:33 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-9-12 22:14:14 编辑

我编了一个小程序,和对话框合起来用,刚开始调试就不知道错在哪里,问题是运行到子程序的getpoint时,并不让拾取点,而是直接就过去了,后面自然就出错了,我对这一块很不熟,请大家指教

主程序和第一子程序如下:

(defun c:bend()
  (setq dcl_id(load_dialog "e:/z/lp/autodraw2/bend.dcl"))
  (setq what 2)
  (while (>= what 2)
  (if (null (new_dialog "bend" dcl_id))
    (exit)
    )
  (set_tile "thick" "0.3")
  (set_tile "angle" "90.0")
  (set_tile "sp-thick" "20.0")
  (set_tile "dp-thick" "25.0")
  (action_tile "hide" "(done_dialog 4)(setq ptt(bend-input))")
  (action_tile "pickme" "(done_dialog 3)(setq pt(bend-input1))")
  (action_tile "accept" "(ben)(done_dialog 1)")
 
  (setq what (start_dialog))
    );end of while
 
 
  (unload_dialog dcl_id)
  )

(defun bend-input( / ptt)
  (setq pt1(getpoint "\nSelect the bend line first point:")
 pt2(getpoint pt1"\nSelect the bend line second point:")
     )
  (setq dis (distance pt1 pt2))
  (set_tile "bk2-leng" (rtos (fix (1+ dis))2 2))
  (set_tile "bk1-leng" (rtos (fix (+ dis 6.0))2 2))
  (set_tile "sbl" "已选择")
  (setq pt1 (cons 100 pt1)
 pt2 (cons 200 pt2))
  (setq ptt (list pt1 pt2))
  ptt
  )

对话框如下


 bend:dialog{
 label="打弯参数设置";
 :row{
 :edit_box{
 label="材料厚度:";key="thick";value=0.3;width=25;fixed_width=true;}
 :edit_box{
 label="打弯角度:";key="angle";value=90;width=25;fixed_width=true;}
 }
 :row{
 :edit_box{
 label="SP 厚度:";key="sp-thick";value=20.0;width=25;fixed_width=true;}
 :edit_box{
 label="DP 厚度:";key="dp-thick";value=25.0;width=25;fixed_width=true;}
 }
 :row{
 :edit_box{label="折弯部分高度:";key="hh";value=3.0; width=25;fixed_width=true;}
 :edit_box{label="折弯内角";key="inr";value=0;width=25;fixed_width=true;}
 
 }
 :row{
 :edit_box{label="打弯镶块长度:";key="bk1-leng"; value=12.0;width=25;fixed_width=true;}
 :edit_box{label="打弯镶块宽度:"; key="bk1-width"; value=5.0;width=25;fixed_width=true;}
 }
 :row{
 :edit_box{label="浮料镶块长度:";key="bk2-leng"; value=6.0;width=25;fixed_width=true;}
 :edit_box{label="浮料镶块宽度:"; key="bk2-width"; value=5.0;width=25;fixed_width=true;}
 }
 :row{
 :edit_box{label="冲头长度:";key="pun-leng"; value=6.0;width=25;fixed_width=true;}
 :edit_box{label="冲头宽度:"; key="pun-width"; value=5.0;width=25;fixed_width=true;}
 }
 :radio_row{label="打弯方向";
 :radio_button{label="向上";key="u";value=0;}
 :radio_button{label="向下";key="d";value=1;}
 }
 :boxed_row{
 :retirement_button{label="选取折弯线:";key="hide";mnemonic="H";}
 :text{label="未选择";key="sbl";}
 }
 :boxed_row{
 :retirement_button{label="选取一点指示折弯部分:";key="pickme";mnemonic="H";}
 :text{label="未选择";key="sp";}
 }
 ok_cancel;
 }

 楼主| 发表于 2005-9-12 22:16 | 显示全部楼层
我还有一个问题,在子函数中用set_tile函数更改了值,在对话框上却没有显示,这是为什么?
发表于 2005-9-13 08:22 | 显示全部楼层

1、关闭对话框后在START_DIALOG之前不能用GET类函数。

2、子函数中更改值后返回对话框在WHILE循环又重新赋值了。

下面是改过的程序:

 

对话框:

 

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-7 08:09 , Processed in 0.379030 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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