明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2639|回复: 14

编程中遇到函数错误提示是怎么回事?

  [复制链接]
发表于 2004-6-1 12:03:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2004-6-1 13:14:51 编辑

我的程序在设计中单个的是没有什么问题的可是在放在一起在我调试的时候出现函数错误提示希望指教我作的是3D的螺栓设计。程序如下: ;检索数据库文件
(defun jiansuo (/ f1 s h r d1)
(setq f1 (open "c:\\data\\luos1.txt" "r"))
(repeat ct
(setq p (read (read-line f1)))
)
(princ p);repeat
(setq s (nth 0 p)
h (nth 1 p)
r (nth 2 p)
d1 (nth 3 p))
);
;六角头螺栓(粗制) (GB5-76)
(defun c:luos1 (/ l l0 d ct p p1 f1 s h r d1)
(setq d (getreal"\n请输入螺栓的直径:")
l (getreal"\n请输入螺栓的长度:"))
(if (or (= d 10) (= d 12) (= d 14) (= d 16) (= d 18) (= d 20)
(= d 22) (= d 24) (= d 27) (= d 30) (= d 36) (= d 42)
(= d 48) (= d 56) (= d 64) (= d 72) (= d 80) (= d 90)
(= d 100)
)
(cond ((= d 10) (setq ct 1) ((if (and (> l 19.99) (< l 200.01))
(jiansuo)
(princ "\n请输入螺栓的长度在20到200之间"))))
((= d 12) (setq ct 2) ((if (and (> l 24.99) (< l 260.01))
(jiansuo)
(princ "\n请输入螺栓的长度在25到260之间"))))
((= d 14) (setq ct 3) ((if (and (> l 24.99) (< l 260.01))
(jiansuo)
(princ "\n请输入螺栓的长度在25到260之间"))))
((= d 16) (setq ct 4) ((if (and(> l 29.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在30到300之间"))))
((= d 18) (setq ct 5) ((if (and (> l 34.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在35到300之间"))))
((= d 20) (setq ct 6) ((if (and (> l 34.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在35到300之间"))))
((= d 22) (setq ct 7) ((if (and (> l 49.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在50到300之间"))))
((= d 24) (setq ct 8) ((if (and (> l 54.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在55到300之间"))))
((= d 27) (setq ct 9) ((if (and (> l 59.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在60到300之间"))))
((= d 30) (setq ct 10) ((if (and (> l 59.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在60到300之间"))))
((= d 36) (setq ct 11) ((if (and (> l 79.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在80到300之间"))))
((= d 42) (setq ct 12) ((if (and (> l 79.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在80到300之间"))))
((= d 48) (setq ct 13) ((if (and (> l 109.99) (< l 300.01))
(jiansuo)
(princ "\n请输入螺栓的长度在110到300之间"))))
((= d 56) (setq ct 14) ((if (and (> l 159.99) (< l 380.01))
(jiansuo)
(princ "\n请输入螺栓的长度在160到380之间"))))
((= d 64) (setq ct 15) ((if (and (> l 179.99) (< l 380.01))
(jiansuo)
(princ "\n请输入螺栓的长度在180到380之间"))))
((= d 72) (setq ct 16) ((if (and (> l 179.99) (< l 380.01))
(jiansuo)
(princ "\n请输入螺栓的长度在180到380之间"))))
((= d 80) (setq ct 17) ((if (and (> l 199.99) (< l 380.01))
(jiansuo)
(princ "\n请输入螺栓的长度在200到380之间"))))
((= d 90) (setq ct 18) ((if (and (> l 219.99) (< l 500.01))
(jiansuo)
(princ "\n请输入螺栓的长度在220到500之间"))))
((= d 100) (setq ct 19) ((if (and (> l 300.01) (< l 500.01))
(jiansuo)
(princ "\n请输入螺栓的长度在220到500之间"))))
);cond
(princ "\n请输入标准螺栓直径")
)
(cond ((< l 125.01) (setq l0 (+ (* d 2) 6)))
((or (> l 125) (< l 200.01)) (setq l0 (+ (* d 2) 12)))
((> l 200) (setq l0 (+ (* d 2) 25)))
)
(setq p (getpoint"\n请输入图形的插入点:"))
(command "polygon" 5 "" p "c" s)
(setq ent_p (entlast))
(command "extrude" ent_p "" h "")
(setq p1 (list (car p) (cadr p) h))
(command "ucs" "n" p1)
(command "circle" p1 d)
(setq ent_c (entlast))
(command "subsrtact" ent_c "" l "")
)
 楼主| 发表于 2004-6-1 12:09:00 | 显示全部楼层
本帖最后由 作者 于 2004-6-1 12:51:33 编辑

希望大家多多指教
发表于 2004-6-1 12:15:00 | 显示全部楼层
错误提示是什么?


TXT文件是什么?


这么多的(princ "\n请输入螺栓的长度..."))))做什么的?好象没有什么用,
发表于 2004-6-1 12:16:00 | 显示全部楼层
yuncai11发表于2004-6-1 12:09:00希望大家不多多指教

 楼主| 发表于 2004-6-1 12:30:00 | 显示全部楼层
呵呵 我没看太清楚!匆忙了见效了,下面是.txt文件这么多的"princ"是因为螺栓的长度不一样,(17 7 0.5 19.6)
(19 8 0.8 21.9)
(22 9 0.8 25.4)
(24 10 1 27.7)
(27 12 1 31.2)
(30 13 1 34.6)
(32 14 1 36.9)
(36 15 1.5 41.6)
(41 17 1.5 47.3)
(46 19 1.5 53.1)
(55 23 2 63.5)
(65 26 2 75)
(75 30 2 86.5)
(85 35 2 98)
(95 40 3 109)
(105 45 3 120)
(115 50 3 132)
(130 57 3 150)
(145 63 3 167)
发表于 2004-6-1 12:32:00 | 显示全部楼层
螺丝长度不一样,那应该在输入时提示啊,你都输入完了,在打出来还有什么意义?
发表于 2004-6-1 12:38:00 | 显示全部楼层
cond里面的if语句的外面多了一组括号
 楼主| 发表于 2004-6-1 12:46:00 | 显示全部楼层
我在调试呢遇到的问题,还没有做完呢


呵呵
 楼主| 发表于 2004-6-1 12:47:00 | 显示全部楼层
有道理我看看该怎么改好了
发表于 2004-6-1 12:57:00 | 显示全部楼层
这就是个问题


((if ...))这就相当于把if的返回值来做函数,这样是错误的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 08:16 , Processed in 0.204061 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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