明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 737|回复: 5

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

[复制链接]
发表于 2016-1-21 19:52:27 | 显示全部楼层 |阅读模式
  1. dia8a:dialog{
  2.         label="图像辅助【参数设计】范例";
  3.         :row{
  4.                 :boxed_radio_column{
  5.                         label="设计样式";
  6.                         :radio_button{label="L基本型";key="rb1";}
  7.                         :radio_button{label="L+圆型";key="rb2";}
  8.                         :radio_button{label="L+双圆型";key="rb3";}
  9.                         :radio_button{label="L+弧型";key="rb4";}
  10.                 }
  11.                 :image{
  12.                         key="kimage";
  13.                         color=-2;
  14.                         width=30;
  15.                         aspect_ratio=0.66;   //图像高度宽度比值
  16.                 }
  17.         }
  18.         :row{
  19.                 :edit_box{label="宽度ww";key="kww";}
  20.                 :edit_box{label="高度hh";key="khh";}
  21.         }
  22.         spacer_1;
  23.         ok_cancel;
  24.         }

  1. (defun c:dia8a()
  2.   (setvar "cmdecho" 0)
  3.   (dcl_dia8a)
  4.   (prin1)
  5.   )
  6. (defun dcl_dia8a()
  7.   (setq dcl_id (load_dialog "f:\\VP\\dia8a.dcl"))
  8.   (new_dialog "dia8a" dcl_id)    ;激活dcl对话框画面
  9.   (sub_rb1)            ;调用子程序,展示默认SLD
  10.   (set_tile "rb1" "1")      ;默认第一组
  11.   (set_tile "kww" "100")     ;默认高度
  12.   (set_tile "khh" "100")     ;默认宽度
  13.   (action_tile "rb1" "(sub_rb1)")
  14.   (action_tile "rb2" "(sub_rb2)")
  15.   (action_tile "rb3" "(sub_rb3)")
  16.   (action_tile "rb4" "(sub_rb4)")
  17.   (action_tile "accept" "(ok_dia8a)(done_dialog 1)")
  18.   (setq dd(start_dialog))
  19.   (if (= dd 1) (draw_dia8a))
  20.   )
  21. (defun sub_rb1()     ;展示L基本型
  22.   (setq ddtype 1)
  23.   (show_sld "kimage" "dia8a1")
  24.   )
  25. (defun sub_rb2()
  26.   (setq ddtype 2)
  27.   (show_sld "kimage" "dia8a2")
  28.   )
  29. (defun sub_rb3()
  30.   (setq ddtype 3)
  31.   (show_sld "kimage" "dia8a3")
  32.   )
  33. (defun sub_rb4()
  34.   (setq ddtype 4)
  35.   (show_sld "kimage" "dia8a4")
  36.   )
  37. (defun show_sld(key sld)              ;两个自变量key和sld
  38.   (setq x (dimx_tile key))         ;取得图像的右下角x坐标
  39.   (setq y (dimy_tile key))         ;取得图像的右下角y坐标
  40.   (start_image key)               ;开始处理图像对象
  41.   (fill_image 0 0 x y -2)         ;先以背景色填满图像
  42.   (slide_image 0 0 x y sld)       ;展示幻灯片
  43.   (end_image)                     ;结束处理图像对象
  44.   )
  45. (defun ok_dia8a()
  46.   (setq ww (atof (get_tile "kww")))  ;取得对话框内的ww值
  47.   (setq hh (atof (get_tile "khh")))  ;取得对话框内的hh值
  48.   )
  49. (defun draw_dia8a()
  50.   (setq pt1 (getpoint "左下角基准点:"))
  51.   ;以下为三个模块共享的点坐标变量
  52.   (setq pt2 (polar pt1 0 ww))
  53.   (setq pt3 (polar pt2 (/ pi 2) hh))
  54.   (setq pt4 (polar pt3 pi (* ww 0.5)))
  55.   (setq pt5 (polar pt4 (* pi 1.5) (* hh 0.5)))
  56.   (setq pt6 (polar pt5 pi (* ww 0.5)))
  57.   ;以下依据不同的类别,调用不同的绘图模式
  58.   (cond ((= ddtype 1) (command "pline" pt1 pt2 pt3 pt4 pt5 pt6 "c"))
  59.         ((= ddtype 2) (command "pline" pt6 pt1 pt2 pt3 pt4  "")
  60.                       (command "circle" "2p" pt4 pt6))
  61.         ((= ddtype 3) (command "pline" pt1 pt2 pt3 "")
  62.                       (command "pline" pt4 pt5 pt6 "")
  63.                       (command "circle" "2p" pt3 pt4)
  64.                       (command "circle" "2p" pt6 pt1))
  65.         ((= ddtype 4) (command "pline" pt1 pt2 pt3 pt4 "a" "a" -18c pt6 "L" "c"))
  66.         )
  67.   )

为什么image图框中不会显示一选择的图形范例
发表于 2016-1-21 21:00:09 | 显示全部楼层
应该需要给boxed_radio_column定义一个key,然后action_tile那个key,得到对应的radio_button的key值。
然后再调用相应的函数。
发表于 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
去掉或注释掉这一行
  (set_tile "rb1" "1")      ;默认第一组


范例框还是没东西,,,这是什么问题?
发表于 2016-1-22 20:58:29 | 显示全部楼层
本帖最后由 kozmosovia 于 2016-1-22 21:03 编辑

参照 http://bbs.mjtd.com/thread-91788-1-1.html
发表于 2016-1-23 07:36:16 | 显示全部楼层
同步学习中…………
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 18:44 , Processed in 0.160273 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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