lisp的应用
www.dimcax.com
lisp的应用
我在网上面看到很多人想学lisp编程序,其实我是完全自学的,只是用得早一些,我在网上看到很多人用得很好,比我强。但我退休无事我来给想学得人
讲课,我只能讲一些皮毛,但学好了一般的程序都课自己编,我讲课用实例来讲,你们可按例自己编把程序发短消息给我看。
编程不是什么都编,一般是你画图经常用,如编了程序可提高画图的速度。或用autocad画图很烦,用编程画图简单又快。还有autocad是外国人编的
画图的习惯不一样。例如:园我们说直径,而人家说半径,你要去除一下,或先输入d回车再输入直径。
所有我第一课我就举画园为例。
编画园的程序我的思路是这样的,园需要输入圆心,但你要输入到你要的位置上,一般要去偏线,后输入
圆心时用求交点,我的思路输入一个参考点,但孔到参考点的位置你知道,输入圆心后要求输入园的直径
它一次可画多个同心园。
(defun c:hy ()
(setvar "osmode" 39) ;39 是 终点,中点,中心,交点的和
(setq p1 (getpoint "/n输入一个参考点:"))
(setq p2 (getpoint "/n用键盘输入圆心相对参考点(x,y):"))
(setq p3 (list (+ (car p1) (car p2)) (+ (cadr p1) (cadr p2)) 0))
(setq a (getreal "园的直径:"))
(setvar "osmode" 0);不扑捉
(command "circle" p3 "d" a) ;画图的过程不能错。
)
以上是画一个园。
(defun c:hy () (defun c:?? ()为自定义命令 也就是说加载后在命令下课直接使用,相当给cad增加了一条命令。
(setvar 是设置系统变量的
"osmode" 是指扑捉
后面的数字39 1-终点 2-中点 4-中心 8-结点 16-90度弧 32-交点
这里的39 是 终点,中点,中心,交点的和
(setq p1 (getpoint "/n输入一个参考点:"))
(setq 赋值 这里p1为变量 getpoint为要你输入一个点
例:输入矩形的一角,你用鼠标扑捉,设在世界座标中为(100 100 0)
(setq p2 (getpoint "/n用键盘输入圆心相对参考点(x,y):"))
同上是输入点但要用键盘输入,它计算出园心,如:输入10,10 也是p2点离p1点x为10 y为10回车p2为(10 10)
(car 是取表的头 (cadr 取表头后的数 (caddr 取表的尾
(+ (car p1) (car p2))= (+ 100 10)为110 (+ (cadr p1) (cadr p2))= (= 100 10)为110
(list 是构造表
(setq p3 (list (+ (car p1) (car p2)) (+ (cadr p1) (cadr p2)) 0))
p3 (110 110 0)
(setq a (getreal "园的直径:")) ;它是输入一个实数
如:输入5回车 a为5
(它的计算函数有
加 (+ 数 数 ...)
减 (- 数 数 ...)
乘 (* 数 数 ...)
除 (/ 数 数 ...)
增1 (1+ 数 )
减1 (1- 数 )
绝对值 (abs 数 )
..
今天说到这里,你们下去后模放去编一下,如去编一个画矩形的。可给我发短消息。
gbg
请问老顾
您多大啦?
真退休了吗?
如果真是那我们所有的人都应该向您学习!
个人认为:
1、对lisp的基本开发步骤有一个了解
2、掌握常用函数,不多,至少应该过一遍
3、开始干活吧
:
我今年已70岁了,我从89年就用autocad 2.18版本,我是搞结构设计的,使用后90年我就开始编程,因我是搞设计的,所以怎样去画图,90年我的二维参数法软件就出来了,从90年起我一直辅导大家用autocad软件,到98年退休,厂里不让退休,2000年才出来。后面有开发了三维软件,我都是在autocad下开发的,我只会autocad其它软件我都不行,连输入字都比较困难。我全部自学,你们年轻人应该学,尤其是搞设计的,我看过你们设计全部靠手的速度。
看到您,看到了中国软件业的希望。虚心向您学习,如果按目前中国软件开发行业的观点,我也早就结束了软件开发的职业生命,我现在正在想以后作什么(现在在机械制造企业作管理、acad相关软件开发),很想听您的意见。
相老前辈学习!
向老顾学习
我很担心老顾有一天从这个论坛退休
首先向老前辈致敬!不过我们这些后起之秀一定会让你老人家放心的,我们有能力,也有决心学好cad!
非常敬佩!向您学习!