明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 晓雨

请帮帮忙,谢谢

  [复制链接]
 楼主| 发表于 2004-2-27 21:29:00 | 显示全部楼层
版主啊,不会吧,你是不是监视了我的计算机,不行,你老是欺负我,你还不赔礼道歉,现在我给你一个机会,说,开平方用什么函数!还有我有一个表格,如下;我要输入螺纹规格d1,就可以用后面几个参数画图了,机会不是常有的啊,

本帖子中包含更多资源

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

x
发表于 2004-2-27 22:25:00 | 显示全部楼层
如果你是想使用这个程序,我可以帮你写,还要在详细点的说明 如果你是想学习编程,这个程序我就不写了 返回以某指定数为底数的若干次幂的值
(expt number power) 参数 number 任意数值。 power number 的幂数。 返回值 如果两个参数都是整数,则返回值为整数,否则为实数。 样例 命令:(expt 2 4) 16 命令:(expt 3.0 2.0) 9.0
 楼主| 发表于 2004-2-28 22:05:00 | 显示全部楼层
版主,你真是好心人,事事为我着想,我是想用这个程序,但我也想我自己编出来,但就是没一点思路,因为我学LISP刚刚起步,也不知道用什么函数,也不知道有没有这样的函数,你能为我提供一点思路吗?,,我是这样想的,我写出这个函数,就必须先学会怎么把数据存到一个库里面,再学会怎样调出库里的数据,这里面有好多问题,比如,我输入M12,它就出后面的数据呢,这要用到if语句吧,我还是先学会怎样存数据制表吧?可惜我这里不能下载,不然,我把帮助文件下下来,学起来就快多了,你说是吗?
发表于 2004-2-28 22:20:00 | 显示全部楼层
如果只是制作一个数据表格供程序中查询的话,用列表就可以了,如果是真用数据库,你还得要一翻时日。。。


表格这样做


(setq data_list '(("M12" . 12) ("M4" . 4) ("M3" . 3)));注意单引号、点和空格都不能少


取数据,如要取跟M4关联的数据(setq data (cdr (assoc M4 data_list)))


如果关联数据较多,列表这样建立


(setq data_list '(("M12" 1 2 3) ("M4" 2 3 4)...))


如果采用变量建立表格则不能使用单引号,


(setq a "M12" b "M4" c "M3")


(setq x 1 y '(1 2) z 10)


(setq data_list (list (cons a x) (cons b y) (cons c z)))
 楼主| 发表于 2004-2-29 22:04:00 | 显示全部楼层
太好了,那我已后就可以不用每个沉头孔都去查表了,那制图就快多了,这个功能棒极了,我肯定以后还要用一到它,谢谢版主
 楼主| 发表于 2004-3-3 19:41:00 | 显示全部楼层
我只输入一个参数,但我要返回几个数据,比如,我输入12,我要得到直径D,深度等
发表于 2004-3-3 21:01:00 | 显示全部楼层
24楼已经有了,看东西要细心点。。。


如果关联数据较多,列表这样建立


(setq data_list '(("M12" 1 2 3) ("M4" 2 3 4)...))
 楼主| 发表于 2004-3-5 21:53:00 | 显示全部楼层
版主,你不明白我的意思,也可能我没表达清楚,你上面那样定义,那怎么调用呢?比如我要调用setq data_list '(("M12" 1 2 3) ("M4" 2 3 4)...))其中的M12中的"3",我输入什么命令呢?还有,


(if (=         d         M12)


(setq d1         12)                 (setq         d2                 10)                         (setq                 d3                 15)


)


这样好像不行,系统老说参数太多,如果这样可以的话,我要调用就方面了,你说是吗?


但就是语句太多,好在我的表数据不是很多,用哪种方法好呢?你现在在这吗?我等你的回答.
发表于 2004-3-6 08:26:00 | 显示全部楼层
这些都是基本功问题,最开始我就说过了,你应该先打好基础,你似乎也接受了,,,


如上面第一个问题,取出M12中的3 (last (assoc "M12" data_list))


后一个是if的用法问题,if后面只有两个参数或表达式,一个是真的时候执行,一个是假的时候执行,如果一个表达式有多个过程,就要用progn


(if (= d M12)


(progn (setq d1 12) (setq d2 10) (setq d3 15))


)


最后还是希望你不要急着编程序,根据学习资料一步一步慢慢学习好基本的知识。。。
发表于 2004-3-6 11:03:00 | 显示全部楼层
9楼这句 (GETvar "OSMODE" OLDOS)恢复捕捉 中应改为"(setvar ……"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 15:50 , Processed in 0.166454 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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