cabinsummer 发表于 2012-5-3 13:34:47

本帖最后由 cabinsummer 于 2012-5-3 20:42 编辑

snddd2000 发表于 2012-5-2 14:40
更新内容
添加简单的轴承绘图部分(不带剖面线和圆角)替换原来的一个圆。
增加判断块名是否存在,如存在 ...

checkblockname函数复杂了
直接用(tblsearch "BLOCK" blockname)即可判断是否有块blockname,有则返回一个表,无则返回nil

jxjaxa 发表于 2012-5-3 16:29:48

好的,谢谢,学习学习

snddd2000 发表于 2012-5-4 19:47:08

cabinsummer 发表于 2012-4-27 20:51 static/image/common/back.gif
程序不完整,一上手就是动态,对初学者有点难度,而且没有做出效果。
先给你一个对话框驱动的通用函数 ...

是不是少了一个初始化函数(initialize)

cabinsummer 发表于 2012-5-4 20:46:22

cabinsummer 发表于 2012-4-27 20:51 static/image/common/back.gif
程序不完整,一上手就是动态,对初学者有点难度,而且没有做出效果。
先给你一个对话框驱动的通用函数 ...

函数名可以当变量调用,本身函数就是表,表的第一个元素就是运算符,这是LISP的优点

cabinsummer 发表于 2012-5-5 07:06:25

本帖最后由 cabinsummer 于 2012-5-7 22:31 编辑

数据文本test.txt结构Index para1 para2 para3
A 1 2 3
B 10 20 30
C 100 200 300
D 1000 2000 3000
用以下程序读取参数
(defun get_para (filename id / fn para val)
(setq fn (open (findfile filename) "r"))                                    ;;;打开数据文件
(setq para (read (strcat "(" (read-line fn) ")")))                        ;;;读第一行
(while                                                                      ;;;读到索引为id的行
    (and (setq val (read-line fn))(not (eq id (car (setq val (read (strcat "(" val ")")))))))
    (setq val nil)
)
(close fn)                                                                  ;;;关闭数据文件
(if val (foreach x (setq mtr (mapcar 'cons para val))(set (car x) (cdr x))));;;参数赋值
)
可以得到index为某个值时,各值存在变量para1 para2 para3中。
由于以表为参数,所以可以扩展任意数量的参数,也不在乎参数顺序。
程序运行完毕后,清理无用的自定义变量
(foreach x mtr (set (car x) nil))
(setq mtr nil)
示例:
(get_para "test.txt" 'A)          ;;;得到INDEX=A; PARA1=1; PARA2=2; PARA3=3
(foreach x mtr (set (car x) nil)) ;;;清空
(get_para "test.txt" 'B)          ;;;得到INDEX=B; PARA1=10; PARA2=20; PARA3=30
(foreach x mtr (set (car x) nil)) ;;;清空
(get_para "test.txt" 'C)          ;;;得到INDEX=C; PARA1=100; PARA2=200; PARA3=300
(foreach x mtr (set (car x) nil)) ;;;清空
(get_para "test.txt" 'D)          ;;;得到INDEX=D; PARA1=1000; PARA2=2000; PARA3=3000
(foreach x mtr (set (car x) nil)) ;;;清空
(get_para "test.txt" 'E)          ;;;得到INDEX=nil; PARA1=nil; PARA2=nil; PARA3=nil

cabinsummer 发表于 2012-5-9 08:35:22

没人关注继续了

along_99 发表于 2012-8-28 14:14:36

学习,差距还是很大的啊。

illcyt 发表于 2012-10-29 19:11:52

很好,感谢分享

村夫 发表于 2012-12-29 12:38:56

来看看最新进展

cable2004 发表于 2013-3-13 23:54:48

关注继续了
页: 1 2 3 4 5 [6] 7
查看完整版本: [新手源码指导]建库程序,以轴承为例