明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 942|回复: 7

[已解答] 求助各位大神一个autoLISP/DCL问题

[复制链接]
发表于 2015-12-27 21:57 | 显示全部楼层 |阅读模式
  1. (defun c:dia5b()
  2.   (setvar "cmdecho" 0)
  3.   (dcl_dia5b)
  4.   (prin1)
  5.   )
  6. (defun dcl_dia5b()
  7.   (setq dcl_id (load_dialog "dia5b"))
  8.   (new_dialog "dia5b" dcl_id)
  9.   (set_tile "kww" "50")
  10.   (set_tile "khh" "50")
  11.   (action_tile "bb1" "(done_dialog 1)")
  12.   (action_tile "bb2" "(done_dialog 2)")
  13.   (action_tile "bb3" "(done_dialog 3)")
  14.   (setq dd(start_dialog))
  15.   (cond ((=dd 1) (c:dia5b1))
  16.   ((=dd 2) (c:dia5b2))
  17.   ((=dd 3) (c:dia5b3))
  18.   (t (alert "未完成任何动作!!!"))
  19.   )
  20.   )

  21. (defun c:dia5b1()
  22.   (setvar "cmdecho" 0)
  23.   (get_input_data)
  24.   (command "pline" p1 p2 p3 pm34 pm pm14 "c")
  25.   (prin1)
  26.   )
  27. (defun c:dia5b2()
  28.   (setvar "cmdecho" 0)
  29.   (get_input_data)
  30.   (command "pline" p1 p2 p3 p4 "c")
  31.   (command "line" p1 p3 "")
  32.   (command "line" p2 p4 "")
  33.   (prin1)
  34.   )
  35. (defun c:dia5b3()
  36.   (setvar "cmdecho" 0)
  37.   (get_input_data)
  38.   (command "pline" p1 p2 p4 p3 "c")
  39.   (prin1)
  40.   )
  41. (defun get_input_data()
  42.   (setq ww (getreal "宽度:"))
  43.   (setq hh (getreal "\n高度:"))
  44.   (setq p1 (getpoint "\n插入点:"))
  45.   (setq p2 (polar p1 0 ww))
  46.   (setq p3 (polar p2 (* pi 0.5) hh))
  47.   (setq p4 (polar p3 pi ww))
  48.   (setq pm (inters p1 p3 p2 p4))
  49.   (setq pm12 (polar p1 0(/ ww 2)))
  50.   (setq pm34 (polar p3 pi (/ ww 2)))
  51.   (setq pm23 (polar p2 (/ pi 2) (/ hh 2)))
  52.   (setq pm14 (polar p1 (/ pi 2) (/ hh 2)))
  53.   )
  54. (defun c:dia5b()
  55.   (setvar "cmdecho" 0)
  56.   (dcl_dia5b)
  57.   (prin1)
  58.   )

  1. dia5b:dialog{
  2.   label="按钮测试";
  3.   :boxed_row{
  4.     label="图形尺寸";
  5.     :edit_box{
  6.       label="宽度";
  7.       key="kww";
  8.       edit_width=8;
  9.       }
  10.     :edit_box{
  11.       label="高度";
  12.       key="khh";
  13.       edit_width=8;
  14.       }
  15.       }
  16.   :button{label="绘制L型";key="bb1";}
  17.   :button{label="绘制x型";key="bb2";}
  18.   :button{label="绘制z型";key="bb3";}
  19.   spacer_1;
  20.   cancel_button;
  21.   }

会出现错误: no function definition: =DD
发表于 2015-12-27 22:19 来自手机 | 显示全部楼层
=dd加上空格
发表于 2015-12-27 22:21 | 显示全部楼层
这三行
         ((=dd 1) (c:dia5b1))
         ((=dd 2) (c:dia5b2))
         ((=dd 3) (c:dia5b3))
缺少空格
应为
      ((= dd 1) (c:dia5b1))
         ((= dd 2) (c:dia5b2))
         ((= dd 3) (c:dia5b3))
发表于 2015-12-27 22:22 | 显示全部楼层
(cond ((=dd 1) (c:dia5b1))
  ((=dd 2) (c:dia5b2))
  ((=dd 3) (c:dia5b3))

----->改成这样((= dd 1)

(cond ((= dd 1) (c:dia5b1))
  ((= dd 2) (c:dia5b2))
  ((= dd 3) (c:dia5b3))
发表于 2015-12-27 22:23 | 显示全部楼层
(= dd 1)  少了空格
 楼主| 发表于 2015-12-27 22:36 | 显示全部楼层
東洺Nile 发表于 2015-12-27 22:23
(= dd 1)  少了空格

竟然没看到,谢谢大神
 楼主| 发表于 2015-12-27 22:37 | 显示全部楼层
masterlong 发表于 2015-12-27 22:19
=dd加上空格

知道了,谢谢
 楼主| 发表于 2015-12-27 22:38 | 显示全部楼层
yshf 发表于 2015-12-27 22:21
这三行
         ((=dd 1) (c:dia5b1))
         ((=dd 2) (c:dia5b2))

竟然没注意到,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-18 23:47 , Processed in 0.141399 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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