明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1280|回复: 3

滑动条的使用

[复制链接]
发表于 2007-3-25 21:24 | 显示全部楼层 |阅读模式

DCL语句如下:

dia9c:dialog{
label="专家出手:滑动条辅助[参数设计]";
:row{
spacer_1;
:boxed_column{
label="二阶楼梯设计";
        :image_button{key="kimage";
        color=-2;
        width=30;
        aspect_ratio=1;
        allow_accept=true;
        }
        :slider{
        key="slider_ww";
        min_value=10;
        max_value=100;
        width=30;
        height=1;
        small_increment=5;
        big_increment=10;
        value="50";
        }
       }
:slider{
        key="slider_hh";
        min_value=10;
        max_value=100;
        width=1;
        height=30;
        small_increment=5;
        big_increment=10;
        layout=vertical;
        value="50";
        }
        }
:boxed_row{
 label="参数设计相关尺寸";
 :concatenation{
         :text_part{label="宽度=[";}
         :text_part{key="kww";width=4;}
         :text_part{label="]";}
         }
 :concatenation{
         :text_part{label="高度=[";}
         :text_part{key="khh";width=4;}
         :text_part{label="]";}
         }       
         }
 spacer_1;
 ok_cancel;
 }

其驱动LISP语句如下:

(defun c:dia9c()
  (setvar "cmdecho" 0)
  (setq old_osmode (getvar "osmode"))
  (setvar "osmode" 0)
  (dcl_dia9c)
  (setvar "osmode" old_osmode)
  (prin1)
)
(defun dcl_dia9c()
  (setq dcl_id (load_dialog "dia9c"))
  (new_dialog "dia9c" dcl_id)
  (def_dia9c)
  (action_tile "slider_ww" "(sub_s_ww $value)")
  (action_tile "slider_hh" "(sub_s_hh $value)")
  (action_tile "accept" "(ok_dia9c) (done_dialog 1)")
  (setq dd (start_dialog))
  (if (= dd 1) (draw_dia9c))
  )
(defun def_dia9c()
  (setq wws "50" hhs "50")
  (set_tile "slider_ww" wws)
  (set_tile "slider_hh" hhs)
  (set_tile "kww" wws)
  (set_tile "khh" hhs)
  (dia9c_image)
  )
(defun sub_s_ww(vvs)
  (setq wws vvs)
  (set_tile "kww" wws)
  (dia9c_image)
  )
(defun sub_s_hh(vvs)
  (setq hhs vvs)
  (set_tile "khh" hhs)
  (dia9c_image)
  )
(defun dia9c_image()
  (setq key "kimage")
  (setq rx (dimx_tile key))
  (setq ry (dimy_tile key))
  (setq delta_x(/ rx 100))
  (setq delta_y(/ ry 100))
  (setq half_ww(/ (* delta_x (atoi wws)) 2))
  (setq half_hh(/ (* delta_y (atoi hhs)) 2))
  (setq p5x (/ rx 2))
  (setq p5y (/ ry 2))
  (setq p6x (- p5x half_ww))
  (setq p6y p5y)
  (setq p1x p6x)
  (setq p1y (+ p5y half_hh))
  (setq p2x (+ p5x half_ww))
  (setq p2y (+ p5y half_hh))
  (setq p4x p5x)
  (setq p4y (- p5y half_hh))
  (setq p3x p2x)
  (setq p3y (- p5y half_hh))
  (start_image key)
  (fill_image 0 0 x y -2)
  (vector_image p1x p1y p2x p2y 7)
  (vector_image p2x p2y p3x p3y 7)
  (vector_image p3x p3y p4x p4y 7)
  (vector_image p4x p4y p5x p5y 7)
  (vector_image p5x p5y p6x p6y 7)
  (vector_image p6x p6y p1x p1y 7)
  (end_image)
  )
(defun ok_dia9c()
  (setq ww (atof (get_tile "kww")))
  (setq hh (atof (get_tile "khh")))
 )
(defun draw_dia9c()
  (command "-layer" "m" "STR" "c" 1 "STR" "")
  (setq pt1 (getpoint "L型梯左下角点:"))
  (setq pt2 (polar pt1 0 ww))
  (setq pt3 (polar pt2 (* pi 0.5) hh))
  (setq pt4 (polar pt3 pi (* ww 0.5)))
  (setq pt5 (polar pt4 (* pi 1.5) (* hh 0.5)))
  (setq pt6 (polar pt5 pi (* ww 0.5)))
  (command "pline" pt1 pt2 pt3 pt4 pt5 pt6 "c")
  (dim_dia9c)
  )
(defun dim_dia9c()
  (command "-layer" "m" "DIM" "c" 3 "DIM" "")
  (command "dim" "hor" pt1 pt2 (polar pt1 (* pi 1.5) 10) "" "exit")
  (command "dim" "ver" pt2 pt3 (polar pt2 0 10) "" "exit")
  )

结果是运行不出结果来!

不知道原因在那里??望高人告诉我!!

发表于 2007-3-25 22:00 | 显示全部楼层
大概看了看,这句错了:  (fill_image 0 0 x y -2)
应改为:  (fill_image 0 0 rx ry -2)
 楼主| 发表于 2007-3-26 10:54 | 显示全部楼层

你太牛拉!!请问可以认识你吗??

可以知道你的联系方式吗??

发表于 2007-3-26 11:17 | 显示全部楼层
可以给我发邮件。在我发的贴子上点击[邮箱]就行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 14:06 , Processed in 0.311763 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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