乐筑天下

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

[求助]

[复制链接]

12

主题

17

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2003-4-14 21:07:00 | 显示全部楼层 |阅读模式
我编制的一段程序,程序中的d的值老是被p代替,
造成错误,哪位大侠快点帮忙,我等急用。
(defun c:sy()
  (setq pa (getpoint "基点:"))
  (setq d (getint "\nd:"))
  (cond ((= d 12) (setq l 40) (setq p 21.9))
        ((= d 16) (setq l 50) (setq p 27.7))
        ((= d 20) (setq l 60) (setq p 34.6))
        ((= d 24) (setq l 75) (setq p 41.6))
        ((= d 30) (setq l 90) (setq p 53.1))
        ((= d 36) (setq l 110) (setq p 63.5))
        ((= d 42) (setq l 130) (setq p 75))
        ((= d 48) (setq l 160) (setq p 85.5))
        (t (princ "\n没有此值"))
)
  (setq pb (polar pa 0 l))
           (setq pc (polar pa (* pi 0.5) (* 0.5 d)))
          (setq pd (polar pc 0 l))
         (setq pe (polar pa (* pi 0.5) (* 0.5 p)))
        (setq pf (polar pe 0 l))
        (command "pline" pa pb pf pe "c")
        (command "line" pc pd "")
  )
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2003-4-14 21:43:00 | 显示全部楼层
程序的结构有问题!
如果你输入的值落在条件的范围内是不会出错的。但在没有落在范围内时,你的程序没有对变量l赋值,造成紧跟在在条件语句的那一句:(setq pb (polar pa 0 l))出错
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-4-15 09:10:00 | 显示全部楼层
你全是全局变量,这样如果你上次运行正确,这次输入D值在范围外,程序照样运行,而且结果就会面目全非。
回复

使用道具 举报

chg

26

主题

187

帖子

9

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
291
发表于 2003-4-15 10:45:00 | 显示全部楼层
和上面几位大虾说的一样,一是变量,你要把变量先改成局部变量,除非你别的程序中还要用到它,二是如果没有你要求的值输入的时候,你要考虑如何处理,退出程序还是继续提示用户输入,三是command函数受很多的系统变量控制,你要首先设置好需要用到的系统变量。四是你如果不想要命令行回显提示,可以将系统变量cmdecho设置为0,在程序结束后恢复。
回复

使用道具 举报

12

主题

17

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2003-4-15 11:38:00 | 显示全部楼层
我的程序经过各位大侠的指点,问题已经解决。
是osmode这个问题,只要把osmode设为0,
就可以解决。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-7 06:54 , Processed in 2.036451 second(s), 62 queries .

© 2020-2025 乐筑天下

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