明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1620|回复: 6

怎么在lisp文件中实现如下的操作?

[复制链接]
发表于 2012-10-9 21:58:58 | 显示全部楼层 |阅读模式
选中单选框3,禁用编辑框“第四段”“第五段”“第六段”;
选中单选框4,禁用编辑框“第五段”“第六段”;
选中单选框5,禁用编辑框第六段”;
选中单选框6,都不禁用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-10-10 14:11:01 | 显示全部楼层
看不懂,你这是要求程序?求dcl?还是求程序完美?
 楼主| 发表于 2012-10-10 21:10:20 | 显示全部楼层
下面是我自己写的 单实现不了这个操作
defun c:zg()
(setq dcl_id(load_dialog "E:\\gg\\zg.dcl"))  
(if (< dcl_id 0)(exit))
(if (not (new_dialog "zg" dcl_id))(exit))
(action_tile "zgfd" "(s_user $value)")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog -1)")
(start_dialog)
(unload_dialog dcl_id)
(defun s_user()
(cond ((= (get_tile "3") "1")(progn(mode_tile "h4" 1)(mode_tile "h5" 1)(mode_tile "h6" 1)))
     ((= (get_tile "4") "1")(progn(mode_tile "h5" 1)(mode_tile "h6" 1)))
     ((= (get_tile "5") "1")(mode_tile "h5" 1)(mode_tile "h6" 1))
     ((= (get_tile "6") "1")
)
)
看看哪里有问题
发表于 2012-10-10 22:16:31 | 显示全部楼层
灬我爱我家 发表于 2012-10-10 21:10
下面是我自己写的 单实现不了这个操作
defun c:zg()
(setq dcl_id(load_dialog "E:\\gg\\zg.dcl"))  

未经调试:
  1. (defun c:zg()
  2. (setq dcl_id(load_dialog "E:\\gg\\zg.dcl"))  
  3. (if (< dcl_id 0)(exit))
  4. (if (not (new_dialog "zg" dcl_id))(exit))
  5. (action_tile "zgfd" "(s_user $value)")
  6. (action_tile "accept" "(done_dialog 1)")
  7. (action_tile "cancel" "(done_dialog -1)")
  8.   (mapcar '(lambda (key) (action_tile key "(s_user $key)")) '("3" "4" "5" "6"))
  9. (start_dialog)
  10. (unload_dialog dcl_id)
  11. (defun s_user(key)
  12.   (cond
  13.     ((= key "3")
  14.      (mode_tile "h3" 0)
  15.      (mode_tile "h4" 1)
  16.      (mode_tile "h5" 1)
  17.      (mode_tile "h6" 1)
  18.      )
  19.     ((= key "4")
  20.      (mode_tile "h3" 0)
  21.      (mode_tile "h4" 0)
  22.      (mode_tile "h5" 1)
  23.      (mode_tile "h6" 1)
  24.      )
  25.     ((= key "5")
  26.      (mode_tile "h3" 0)
  27.      (mode_tile "h4" 0)
  28.      (mode_tile "h5" 0)
  29.      (mode_tile "h6" 1)
  30.      )
  31.     ((= key "6")
  32.      (mode_tile "h3" 0)
  33.      (mode_tile "h4" 0)
  34.      (mode_tile "h5" 0)
  35.      (mode_tile "h6" 0)
  36.      )
  37.     )

  38. )
  39. )
 楼主| 发表于 2012-10-11 23:23:36 | 显示全部楼层
非常感谢,已经能实现操作,就是把done_dialog后面的1和-1去掉就行了,要不然会出现函数没有定义的情况
 楼主| 发表于 2012-10-12 08:11:14 | 显示全部楼层
不好意思!昨天调试的时候忽略了一个问题,现在实际情况是(按版主给的代码):第一次加载运行的时候,改选单选框,会出现no funtion defintion s_user(意思是没定义此函数的意思吧),只有点击下确定或者取消按钮,重复命令后,才能操作成功,主要不关CAD,后面用没有问题,把CAD关掉重新开,继续会出现no funtion defintion s_user,请高手赐教。

点评

将s_user函数放在最前面去  发表于 2012-10-12 10:11
发表于 2021-8-4 12:57:32 | 显示全部楼层

G版写程序都到了不用调试的境界
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-16 15:46 , Processed in 0.175792 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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