将所有的radio_button合并到一个里面,需要重新布置对话框。
- lmgt:dialog{
- label="衣柜立面内结构绘制工具 浪刀作品";
- :row{
- :boxed_radio_column{
- key="rbtype";
- :text{label=" >> 设计样式";}
- :radio_button{label="36宽边框线";key="rb1";}
- :radio_button{label="欧式边框线";key="rb2";}
- :radio_button{label="两等分样式";key="rb3";}
- :text{label=" >> 中间电视位";}
- :radio_button{label="普通";key="rb4";}
- :radio_button{label="欧外";key="rb5";}
- :radio_button{label="欧内";key="rb6";}
- :text{label=" >> 无敌组合";}
- :radio_button{label="上叠下挂";key="rb7";}
- :radio_button{label="上挂下叠";key="rb8";}
- :radio_button{label="上挂下挂";key="rb9";}
- :radio_button{label="上挂下裤";key="rb10";}
- :radio_button{label="中间电视";key="rb11";}
- :radio_button{label="全为层板";key="rb12";}
- }
- :column{
- spacer;
- :image {key = "kimage";color = -2;width = 50;aspect_ratio =0.6;}
- :boxed_column {
- :edit_box{label="边框线宽度BW:";edit_width=8;edit_limit=2;key="bww";}
- :edit_box{label="棉被格高度MH:";edit_width=8;edit_limit=3;key="kww";}
- :edit_box{label="库抽格宽度KW:";edit_width=8;edit_limit=3;key="khh";}
- }
- errtile;
- ok_cancel;
- }
- }
- }
LISP program update
- (defun C:lmgt ()
- (defun _RbType (id / KEY X Y)
- (set_tile "rbtype" id)
- (setq ddtype (read (substr id 3))
- key "kimage"
- x (dimx_tile key)
- y (dimy_tile key)
- )
- (start_image key)
- (fill_image 0 0 x y -2)
- (slide_image 0 0 x y (strcat "lmgt" (itoa ddtype)))
- (end_image)
- )
- (defun ok_lmgt ()
- (setq bw (atof (get_tile "bww")))
- (setq bb (atof (get_tile "kww")))
- (setq hh (atof (get_tile "khh")))
- )
- (defun draw_lmgt ()
- (setq pt1 (getpoint "\n左上角点:")
- pt3 (getcorner pt1 "\n右下角点:")
- )
- ;以下为三个模块共享的点坐标变量
- (setq pt2 (polar pt1 0 ww))
- (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)
- (setq pt2 (polar pt1 (* pi 1.5) bw))
- (command "pline" pt1 pt2 pt3 "")
- )
- ((= 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" -180 pt6 "L" "C")
- )
- ((= ddtype 5) (command "pline" pt1 pt2 pt3 pt4 "C"))
- )
- )
- (setq ddtype 1
- dcl_id (load_dialog "lmgt")
- )
- (if (new_dialog "lmgt" dcl_id)
- (progn
- (_RbType (strcat "rb" (itoa ddtype)))
- (setq ii 0)
- (while (< (setq ii (1+ ii)) 13)
- (action_tile (strcat "rb" (itoa ii)) "(_RbType $Key)")
- )
- (set_tile "bww" "60")
- (set_tile "kww" "420")
- (set_tile "khh" "600")
- (action_tile "accept" "(ok_lmgt)(done_dialog 1)")
- (if (= (start_dialog) 1)
- (draw_lmgt)
- )
- )
- )
- )
|