 - dia8a:dialog{
- label="图像辅助【参数设计】范例";
- :row{
- :boxed_radio_column{
- label="设计样式";
- :radio_button{label="L基本型";key="rb1";}
- :radio_button{label="L+圆型";key="rb2";}
- :radio_button{label="L+双圆型";key="rb3";}
- :radio_button{label="L+弧型";key="rb4";}
- }
- :image{
- key="kimage";
- color=-2;
- width=30;
- aspect_ratio=0.66; //图像高度宽度比值
- }
- }
- :row{
- :edit_box{label="宽度ww";key="kww";}
- :edit_box{label="高度hh";key="khh";}
- }
- spacer_1;
- ok_cancel;
- }
 - (defun c:dia8a()
- (setvar "cmdecho" 0)
- (dcl_dia8a)
- (prin1)
- )
- (defun dcl_dia8a()
- (setq dcl_id (load_dialog "f:\\VP\\dia8a.dcl"))
- (new_dialog "dia8a" dcl_id) ;激活dcl对话框画面
- (sub_rb1) ;调用子程序,展示默认SLD
- (set_tile "rb1" "1") ;默认第一组
- (set_tile "kww" "100") ;默认高度
- (set_tile "khh" "100") ;默认宽度
- (action_tile "rb1" "(sub_rb1)")
- (action_tile "rb2" "(sub_rb2)")
- (action_tile "rb3" "(sub_rb3)")
- (action_tile "rb4" "(sub_rb4)")
- (action_tile "accept" "(ok_dia8a)(done_dialog 1)")
- (setq dd(start_dialog))
- (if (= dd 1) (draw_dia8a))
- )
- (defun sub_rb1() ;展示L基本型
- (setq ddtype 1)
- (show_sld "kimage" "dia8a1")
- )
- (defun sub_rb2()
- (setq ddtype 2)
- (show_sld "kimage" "dia8a2")
- )
- (defun sub_rb3()
- (setq ddtype 3)
- (show_sld "kimage" "dia8a3")
- )
- (defun sub_rb4()
- (setq ddtype 4)
- (show_sld "kimage" "dia8a4")
- )
- (defun show_sld(key sld) ;两个自变量key和sld
- (setq x (dimx_tile key)) ;取得图像的右下角x坐标
- (setq y (dimy_tile key)) ;取得图像的右下角y坐标
- (start_image key) ;开始处理图像对象
- (fill_image 0 0 x y -2) ;先以背景色填满图像
- (slide_image 0 0 x y sld) ;展示幻灯片
- (end_image) ;结束处理图像对象
- )
- (defun ok_dia8a()
- (setq ww (atof (get_tile "kww"))) ;取得对话框内的ww值
- (setq hh (atof (get_tile "khh"))) ;取得对话框内的hh值
- )
- (defun draw_dia8a()
- (setq pt1 (getpoint "左下角基准点:"))
- ;以下为三个模块共享的点坐标变量
- (setq pt2 (polar pt1 0 ww))
- (setq pt3 (polar pt2 (/ pi 2) 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)))
- ;以下依据不同的类别,调用不同的绘图模式
- (cond ((= ddtype 1) (command "pline" pt1 pt2 pt3 pt4 pt5 pt6 "c"))
- ((= ddtype 2) (command "pline" pt6 pt1 pt2 pt3 pt4 "")
- (command "circle" "2p" pt4 pt6))
- ((= ddtype 3) (command "pline" pt1 pt2 pt3 "")
- (command "pline" pt4 pt5 pt6 "")
- (command "circle" "2p" pt3 pt4)
- (command "circle" "2p" pt6 pt1))
- ((= ddtype 4) (command "pline" pt1 pt2 pt3 pt4 "a" "a" -18c pt6 "L" "c"))
- )
- )
为什么image图框中不会显示一选择的图形范例 |