明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1063|回复: 0

再问:请教一个编程的问题

[复制链接]
发表于 2006-4-1 09:41 | 显示全部楼层 |阅读模式
请教一个编程的问题

我的lisp和DCL程序如下:

(defun c:zlj()
  (setvar "cmdecho" 0)
(setq dd 99)
(setq pt '(0 0 0))
  (setq kp_x 0)
  (setq kp_y 0)
  (setq kp_z 0)
  (while (>= dd 1)
    (dcl_dia13)
    (datanz)
    (def_dia13)
    (prin1)))

(defun dcl_dia13()
  (setq dcl_id (load_dialog "f:/lisp/w.dcl"))
  (new_dialog "dia3" dcl_id)
  (dispos)
 (mapcar 'set_tile tkey_list data_list)
  (set_tile "kax" "0")
  (set_tile "kay" "0")
  (set_tile "kaz" "0")
(action_tile "m1" "(sub_m1)") 
(action_tile "m2" "(sub_m2)")
(action_tile "m3" "(sub_m3)")
(action_tile "m4" "(sub_m4)")
…………
(action_tile "pnt" "(done_dialog 2)")
(action_tile "accept" "(ok_dia13)(done_dialog 3)")
(setq dd(start_dialog))
(cond
  ((= dd 2)(getp)(dcl_dia13))
  ((= dd 3)(inst_dia13)))
  (unload_dialog dcl_id))

(defun sub_m1()
(setq ddtype 1)
  (show_sld "kimage" "f:/slides/1"))
(defun sub_m2()
(setq ddtype 2)
  (show_sld "kimage" "f:/slides/2"))
(defun sub_m3()
(setq ddtype 3)
  (show_sld "kimage" "f:/slides/3"))
(defun sub_m4()
(setq ddtype 4)
  (show_sld "kimage" "f:/slides/4"))
…………
(defun show_sld(key  sld)
  (setq x (dimx_tile key))
(setq y (dimy_tile key))
  (start_image key)
  (fill_image 0 0 x y -2)
  (slide_image 0 -10 x (+ y -10) sld)
  (end_image))

(defun ok_dia13()
(setq agx (angtof(get_tile "kax")))
 (setq agx (* (/ agx pi) 180)))

 (defun getp()
  (setq pt (getpoint "\n指定插入点")))

(defun dispos()
  (setq kp_x(car pt))
  (setq kp_y(cadr pt))
  (setq kp_z(caddr pt))
  (set_tile "key_x"(rtos kp_x 2 2)) 
  (set_tile "key_y"(rtos kp_y 2 2))
  (set_tile "key_z"(rtos kp_z 2 2)))

(defun inst_dia13()
 (cond
((= ddtype 1)(command "insert" "f:/parts/1" pt "" "" "" )
  (command "rotate" (entlast) "" pt agx )(command "zoom" "a" ""))
((= ddtype 2)(command "insert" "f:/parts/2" pt "" "" "" )
  (command "rotate" (entlast) "" pt agx)(command "zoom" "a" ""))
((= ddtype 3)(command "insert" "f:/parts/3" pt "" "" "" )
  (command "rotate" (entlast) "" pt agx )(command "zoom" "a" ""))
((= ddtype 4)(command "insert" "f:/parts/4" pt "" "" "" )
  (command "rotate" (entlast) "" pt agx )(command "zoom" "a" ""))
…………
(defun datanz()
  (setq data_list '() data nil)
  (setq f (open "f:/lisp/partslist.txt" "r"))
  (setq data (read-line f))
  (setq data (read data))
  (while data
     (setq data_list (cons data data_list))
     (setq data (read-line f))
  (setq data (read data)))
  (close f)
  (setq i 1)
   (setq mclist '())
  (setq n(length data_list)) 
(repeat n
   (setq datad (assoc i data_list))
   (setq datad(nth 0 (cdr datad)))
   (setq mc(nth 1 datad))
   (setq mclist (cons mc mclist))
      (setq i (1+ i)))
(setq mclist(reverse mclist))
  (setq data_list(mapcar 'vl-symbol-name mclist)))

(defun def_dia13()
(setq tkey_list '("mc1" "mc2" "mc3" "mc4" ……)))

现在有这样一个问题:我拾取点后希望返回的对话框的图象上有单选按纽选上的图,不希望它什么都没有,怎么处理呀?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-24 20:17 , Processed in 0.144857 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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