福建师大附中 发表于 2016-1-21 19:52:27

菜鸟提问一个关于Lisp的问题

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图框中不会显示一选择的图形范例

kozmosovia 发表于 2016-1-21 21:00:09

应该需要给boxed_radio_column定义一个key,然后action_tile那个key,得到对应的radio_button的key值。
然后再调用相应的函数。

ZZXXQQ 发表于 2016-1-22 07:17:27

去掉或注释掉这一行
(set_tile "rb1" "1")      ;默认第一组

福建师大附中 发表于 2016-1-22 18:56:01

本帖最后由 福建师大附中 于 2016-1-22 18:57 编辑

ZZXXQQ 发表于 2016-1-22 07:17 static/image/common/back.gif
去掉或注释掉这一行
(set_tile "rb1" "1")      ;默认第一组
http://bbs.mjtd.com/data/attachment/album/201601/22/185345gdqweuf7td5t5duu.jpghttp://bbs.mjtd.com/data/attachment/album/201601/22/184538ij2glajn0sn22dqj.jpg
范例框还是没东西,,,这是什么问题?

kozmosovia 发表于 2016-1-22 20:58:29

本帖最后由 kozmosovia 于 2016-1-22 21:03 编辑

参照 http://bbs.mjtd.com/thread-91788-1-1.html

知行ooo李肖坪 发表于 2016-1-23 07:36:16

同步学习中…………
页: [1]
查看完整版本: 菜鸟提问一个关于Lisp的问题