LISP语言在CAD道路设计中的各种应用.doc

LISP语言在CAD道路设计中的各种应用.doc

ID:51569684

大小:50.50 KB

页数:9页

时间:2020-03-13

LISP语言在CAD道路设计中的各种应用.doc_第1页
LISP语言在CAD道路设计中的各种应用.doc_第2页
LISP语言在CAD道路设计中的各种应用.doc_第3页
LISP语言在CAD道路设计中的各种应用.doc_第4页
LISP语言在CAD道路设计中的各种应用.doc_第5页
资源描述:

《LISP语言在CAD道路设计中的各种应用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章LISP语言在CAD道路设计中的各种应用3.1绘制平面任意函数曲线的AutoLISP程序设计在各个工程设计领域中,经常要绘制一些曲线,特别是平面曲线,如水工结构的溢流曲线、机械设计的齿轮渐开曲线等。在AutoCAD绘图软件中,可以将曲线上的点先计算好,再用线、多义线、样条曲线等方法绘制,这种方法需要进行大量计算,工作量较大,如果用EXCEL软件来辅助计算,可以减轻工作量;另外,可以针对具体的曲线类型,用AutoCAD内嵌的AutoLISP语言,实现边计算边绘制的功能。用这种方法绘制虽然快捷,但对于不同的曲线,则需编写同的

2、AutoLISP程序,检查无误后才能运行,仍显繁琐。能否用统一的程序,来实现各种平面函数曲线的绘制,我们尝试利用AutoCAD中强大的表达式计算功能来实现这一目的。3.1.1平面函数曲线的类型和绘制方法平面函数曲线即是有简单函数表达式的曲线类型,可考虑经常遇到的4类:(1)直角坐标下形如y=f(x)的曲线;(2)直角坐标下的参数方程曲线;(3)极坐标下形如r=f(θ)的曲线;(4)极坐标下的参数方程曲线。其中,只需增加一个平凡方程x=x,参数方程(2)就可以包括相应的直接表达形式(1),同样(4)可以包括(3)。同时,极坐标形

3、式可以通过:x=rcosθy=rsinθ转换为直角坐标表达。因此从本质上说,4种类型都可以互相转换,把它们分类的目的是尽量采用函数的通常表达形式,以便于使用。绘制时,参照曲线的手工绘制方法,需要给出曲线上的多个点,然后将它们连接起来。若给出的点间隔很小,直接用折线段相连就可很好模拟该曲线,如果间隔较大,可以用样条曲线连接,使之比较光滑。假设我们计算出足够多的点,简单用折线连接即可,为使该曲线成为一个整体,可用多义线的方式连接。关键的问题是,如何计算出曲线上点的坐标。由于曲线的函数表达式各种各样,不可能用统一的式子来表示。可以考

4、虑从外部输入表达式,然后针对该表达式进行计算,给出相应结果,就能够解决点坐标的计算问题。但这个功能的实现比较困难,幸好AutoCAD为我们提供了CAL命令,可以对任意的表达式进行计算。该命令由函数库文件geomcal.arx提供,支持科学/工程计算器上的大多数标准函数,如三角函数、指数、对数等。若表达式中有变量,而该变量在程序中已设定了值,则按该值进行计算。由于该函数不是LISP内部函数,为使之可用,需要用ARXLOAD命令载入文件geomcal.arx,或者在命令行先输入CAL命令,由系统自动载入,这样,程序中就可以使用该函

5、数了。总的程序定义为c:curve(),以便在AutoCAD命令行中与通常的命令一样使用。程序的总调用部分为:(arxload"geomcal.arx");载入提供表达式计算功能的ARX文件(vl-arx-import'c:cal);让命令c:cal能够使用(princ"(1)直角坐标下曲线y=f(x).")(princ"(2)直角坐标下参数曲线x=f(i),y=g(i).")(princ"(3)极坐标下曲线r=f(theta).")(princ"(4)极坐标下参数曲线theta=f(i),r=g(i).")(

6、setqichoice(getint"选择绘制曲线类型:"));选择曲线类型(if(=ichoice1)(curve1));调用曲线绘制类型1(if(=ichoice2)(curve2));调用曲线绘制类型2(if(=ichoice3)(curve3));调用曲线绘制类型3(if(=ichoice4)(curve4));调用曲线绘制类型4根据用户选择的曲线类型,转到相应的曲线类型绘制函数中,依次为直角坐标下的普通函数、参数方程,极坐标下的普通函数和参数方程。3.1.2直角坐标下函数y=f(x)的曲线绘制直角坐标下绘制函数曲线y

7、=f(x)定义为AutoLISP子程序curve1,该子程序没有传入传出参数。程序的第一个步骤是读入有关的参数和控制变量。首先读入y=f(x)的表达式,然后输入自变量x的变化范围[low,up],接着根据模拟精度,输入曲线剖分数目steps,x的变化步长即为step=(up-low)/steps,该步骤相应的AutoLISP程序如下:(setqfuny(getstring"y=f(x)的表达式:"))(setqlow(getreal"x的下限值:"))(setqup(getreal"x的上限值:"))(setqsteps(ge

8、tint"剖分数目:"))(setqstep(/(-uplow)steps))接下来就开始曲线的绘制,首先启动绘制多义线的命令,接着自变量x从下限值开始,由f(x)的表达式计算y坐标值,将该点的坐标输入到命令行,得到曲线的起点,然后自变量x递增一个步长,计算下一个坐标点,曲线

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。