乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 104|回复: 1

[编程交流] Lisp调用Lisp问题

[复制链接]

15

主题

102

帖子

106

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 17:29:14 | 显示全部楼层 |阅读模式
好的,我有一个lisp设置,它询问[1]、[2]、[3]、[4]。我选择的每一个都会运行另一个lisp,询问[1]、[2]、[3]、[4]、[5]、[6]、[7]、[8],然后继续。问题是,如果我运行第一个lisp,它将运行第二个lisp,但在我选择任何选项后终止,但如果我运行第二个lisp,它将运行良好。有人能帮忙吗!!!。Lisp one是第一个Lisp,第二个Lisp是第二个Lisp之一。
 
  1. (defun c:setup ()
  2. (initget "122X34 224X36 330X42 436X48")
  3. (setq SHEET (getkword "\nEnter Sheet [1]22X34,[2]24X36,[3]30X42,[4]36X48: "))
  4. (cond
  5.   ((= SHEET "122X34")
  6.    (INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
  7.     (SETQ SCALE (getkword "\Enter Scale [1]FULL,[2]1/2=1,[3]1/4=1,[4]1/8=1,[5]1/20=1,[6]1/30=1,[7]1/40=1,[8]1/50=1:"))
  8.      (cond
  9.         (COMMAND "22X34"))
  10. ((= SHEET "224X36")
  11.    (INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
  12.     (SETQ SCALE (getkword "\Enter Scale [1]FULL,[2]1/2=1,[3]1/4=1,[4]1/8=1,[5]1/20=1,[6]1/30=1,[7]1/40=1,[8]1/50=1:"))
  13.      (cond
  14.         (COMMAND "24X36"))
  15. ((= SHEET "330X42")
  16.    (INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
  17.     (SETQ SCALE (getkword "\Enter Scale [1]FULL,[2]1/2=1,[3]1/4=1,[4]1/8=1,[5]1/20=1,[6]1/30=1,[7]1/40=1,[8]1/50=1:"))
  18.      (cond
  19.         (COMMAND "30X42"))
  20. ((= SHEET "436X48")
  21.    (INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
  22.     (SETQ SCALE (getkword "\Enter Scale [1]FULL,[2]1/2=1,[3]1/4=1,[4]1/8=1,[5]1/20=1,[6]1/30=1,[7]1/40=1,[8]1/50=1:"))
  23.      (cond
  24.         (COMMAND "36X48"))   
  25.      )
  26.    )
  27. )
  28. )
  29.   (princ)
  30. )

 
 
 
  1. (defun c:22X34 ()
  2.    (INITGET "1FULL 21/2=1 31/4=1 41/8=1 51/20=1 61/30=1 71/40=1 81/50=1")
  3.     (SETQ SCALE (getkword "\Enter Scale [1]FULL,[2]1/2=1,[3]1/4=1,[4]1/8=1,[5]1/20=1,[6]1/30=1,[7]1/40=1,[8]1/50=1:"))
  4.      (cond
  5.       ((= SCALE "1FULL")
  6.        (COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
  7.       ((= SCALE "21/2=1")
  8.        (COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
  9.       ((= SCALE "31/4=1")
  10.        (COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
  11.       ((= SCALE "41/8=1")
  12.        (COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
  13.       ((= SCALE "51/20=1")
  14.        (COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
  15.       ((= SCALE "61/30=1")
  16.        (COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
  17.       ((= SCALE "71/40=1")
  18.        (COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))
  19.       ((= SCALE "81/50=1")
  20.        (COMMAND "_.LAYOUT" "D" "24X36" "_.LAYOUT" "D" "30X42" "_.LAYOUT" "D" "36X48"))         
  21.              )               
  22.            )
  23.          )
  24.        )
  25.      )
  26.    )
  27.   )
  28. )
  29.   (princ)
  30. )
回复

使用道具 举报

1

主题

7

帖子

20

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-6 18:56:06 | 显示全部楼层
在“c:setup”中,cond语句的右括号都放错了位置,后续命令的调用方式不正确,这些命令不必位于它们自己的cond语句中。当下面的代码工作时,您会发现运行c:setup将导致发出两次scale提示。关于如何构造这些命令,请向下滚动到下一个代码框。
 
以下是我将如何构造它们:
  1. 3
Footpeg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 16:24 , Processed in 0.622582 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表