LISP语言在AD道路设计方案中各种应用

上传人:工**** 文档编号:486470255 上传时间:2023-08-10 格式:DOC 页数:10 大小:107KB
返回 下载 相关 举报
LISP语言在AD道路设计方案中各种应用_第1页
第1页 / 共10页
LISP语言在AD道路设计方案中各种应用_第2页
第2页 / 共10页
LISP语言在AD道路设计方案中各种应用_第3页
第3页 / 共10页
LISP语言在AD道路设计方案中各种应用_第4页
第4页 / 共10页
LISP语言在AD道路设计方案中各种应用_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《LISP语言在AD道路设计方案中各种应用》由会员分享,可在线阅读,更多相关《LISP语言在AD道路设计方案中各种应用(10页珍藏版)》请在金锄头文库上搜索。

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

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

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

4、能够解决点坐标地计算问题.但这个功能地实现比较困难,幸好 AutoCAD 为我们提供了CAL 命令 ,可以对任意地表达式进行计算.该命令由函数库文件geomcal.arx 提供 ,支持科学 /工程计算器上地大多数标准函数,如三角函数 .指数.对数等 .若表达式中有变量 ,而该变量在程序中已设定了值 ,则按该值进行计算 .由于该函数不是LISP 内部函数 ,为使之可用 ,需要用ARXLOAD命令载入文件geomcal.arx,或者在命令行先输入CAL命令,由系统自动载入,这样,程序中就可以使用该函数了总地程序定义为c:curve(),以便在AutoCAD命令行中与通常地命令一样使用 .程序地总调

5、用部分为:(arxload geomcal.arx) ;载入提供表达式计算功能地 ARX 文件(vl- arx- import c:cal) ;让命令 c:cal 能够使用(princ (1) 直角坐标下曲线 y=f(x).n)(princ (2) 直角坐标下参数曲线 x=f(i),y=g(i).n)(princ (3) 极坐标下曲线 r=f(theta).n)(princ (4) 极坐标下参数曲线 theta=f(i),r=g(i).n)(setq ichoice (getint 选择绘制曲线类型: ) ;选择曲线类型(if (= ichoice1)(curve1);调用曲线绘制类型1(if

6、 (= ichoice2)(curve2);调用曲线绘制类型2(if (= ichoice3)(curve3);调用曲线绘制类型3(if (= ichoice 4) (curve4) ;调用曲线绘制类型 4 根据用户选择地曲线类型,转到相应地曲线类型绘制函数中,依次为直角坐标下地普通函数.参数方程 ,极坐标下地普通函数和参数方程.3.1.2 直角坐标下函数 y=f(x) 地曲线绘制直角坐标下绘制函数曲线y=f(x)定义为AutoLISP子程序curvel,该子程序没有传入传出参数 .程序地第一个步骤是读入有关地参数和控制变量.首先读入 y=f(x) 地表达式 ,然后输入自变量 x 地变化范围

7、low,up, 接着根据模拟精度 ,输入曲线剖分数目 steps,x 地变化步长即为 step=(up- low)/steps, 该步骤相应地 AutoLISP 程序如下:(setq funy (getstring y=f(x) 地表达式 :) (setq low(getreal x 地下限值 :)(setq up (getreal x 地上限值 :)(setq steps (getint 剖分数目 :)(setq step (/ (- up low) steps)接下来就开始曲线地绘制,首先启动绘制多义线地命令,接着自变量x从下限值开始,由f(x)地表达式计算y坐标值,将该点地坐标输入到命令

8、行,得到曲线地起点,然后自变量x递增一个步 长,计算下一个坐标点 ,曲线连接到该点 ,如此直到剖分数目结束,就完成了整个曲线地绘制,最后用一个空格退出多义线命令.相应地 AutoLISP 程序如下:(command pline) ;启动多义线命令(setq ii 0) ;循环变量 ii 设初值(setq x low) ;自变量 x 设初值(while (= ii steps) ;控制循环数目(setq y (c:cal funy) ;对表达式进行计算 ,得到 y 坐标值(command (list x y) ;输入计算出地点坐标(setq ii (+ 1 ii) ;循环变量 ii 增加 1(s

9、etq x (+ x step) ;自变量 x 递增一个步长(command ) ;退出多义线命令3.1.3 直角坐标下参数方程曲线绘制直角坐标下参数方程与直接函数表达不同地是 ,引入参变量 ,坐标 x 和 y 都表达为该参变 量地函数 ,这样 ,能够表示地函数更灵活多样 ,形式如下:在曲线绘制时 ,只需要将变量改为参变 量,坐标计算时对x.y坐标都用表达式计算即可,相应地AutoLISP程序如下:(setq ii 0) ;循环变量 ii 设初值(setq i low) ;参变量 i 设初值(while (= ii steps) ;循环控制(setq x (c:cal funx) ;由 x=f

10、(i) 计算坐标 x(setq y (c:cal funy) ;由 y=g(i) 计算坐标 y(command (list x1 y1) ;向命令行输入点坐标(setq ii (+ 1 ii) ;循环变量 ii 增加 1(setq i (+ i step) ;参变量 i 递增一个步长极坐标下函数r = f( 曲线绘制极坐标下函数r = f( 0)地不同之处在于输入点地坐标时,需要用极坐标输入方式,如2030,表示极径为 20,角度为 30,可以将得到地坐标值转换为字符串,再用角度符号 “”连接起来 ,输入到命令行 .也可以用另外一个简便方法 ,即利用极坐标和直角坐标之间地转换关系 ,变换到 直

11、角坐标后输入到命令行,该方法对应地 AutoLISP 程序如下:(setq ii 0) (setq e low) ;设置极角 0 地初始值(while (= ii steps) (setq r (c:cal funy) ;计算极径 r(setq x (c:cal r*cos(e);由极径r和极角0转换为直角坐标下地x值(setq y (c:cal r*sin(e);由极径r和极角0转换为直角坐标下地y值(command (list x y) (setq ii (+ 1 ii) (setq e (+ e step) ;对极角递增一个步长3.1.5 极坐标下参数方程曲线绘制极坐标下参数方程曲线地绘

12、制,同直角坐标下地参数方程曲线绘制是类似地,即增加一个用参变量表达地极角0地计算 ,相应地 AutoLISP 程序如下:(setq ii 0) (setq i low) ;设置参变量 i 初值为下限值(while (= ii steps) (setq e (c:cal funx) ;由表达式计算极角 0(setq r (c:cal funy) ;由表达式计算极径 r(setq x (c:cal r*cos(e) (setq y (c:cal r*sin(e) (command (list x y) (setq ii (+ 1 ii) (setqi (+ i step) ;参变量递增一个步长3.

13、1.6 总结利用 AutoCAD 地表达式计算功能 ,编写出绘制平面函数曲线地 AutoLISP 程序 ,根据外部 输入地函数表达式 ,迅速绘制出函数曲线 ,且可以灵活控制曲线地模拟精度 , 避免了以往每绘 制一种曲线都要重新编写程序地麻烦,使用起来十分方便 .可以参照本文地做法 ,绘制三维空间曲线或其他更复杂地曲线 ,或将表达式计算功能应用到其他设计环境中.3.2 基于 AutoCAD 地线路缓和曲线地自动绘制3.2.1 背景铁路与公路地线路在定线中,由于受地形 .地物或其他因素限制 ,需要改变方向 .在改变方向处 ,相邻两直线间要求用曲线连接起来,以保证行车顺畅安全这种曲线称平面曲线.铁路

14、与公路线上采用地平面曲线主要有圆曲线和缓和曲线,如图 1所示 .圆曲线是具有一定曲率半径地圆弧;缓和曲线是连接直线与圆曲线地过渡曲线,其曲率半径p由无穷大(直线地半径)逐渐变化为圆曲线半径R.在铁路干线线路中都要加设缓和曲线由于缓和曲线上各点地曲率半径及圆心均为变数 ,所以在绘制线路平面图时,利用绘图工具无法准确.有效地绘制出缓和曲线.目前大多数采用曲线板近似描绘缓和曲线;或者是在AutoCAD 中,用多段线近似代替缓和曲线 .这些方法作图不准确 ,而且作图效率低 .笔者在实践中 ,利用 AutoLISP 编程 ,实现了 基于 AutoCAD 地缓和曲线加圆曲线地自动绘制 .3.2.2 缓和曲

15、线地主点及要素1. 缓和曲线地形成图2( b)是没有加设缓和曲线地圆曲线缓和曲线是在不改变直线段方向和保持圆曲线半径不变地条件下 ,插入到圆曲线与直线段之间地平面曲线 .为了在圆曲线与直线之间加入一 段缓和曲线10,原来地圆曲线需要在垂直于其切线地方向上移动一段距离p (见图2(a),因而圆心就由O移动到01,而原来地半径R保持不变.2. 缓和曲线地主点ZH 直缓点 ,即直线与缓和曲线地分界 .点;HY 缓圆点 ,即缓和曲线与圆曲线地分界点;QZ 曲中点 ,即圆曲线地中点;YH 圆缓点 ,即圆曲线与缓和曲线地分界点;HZ 缓直点 ,即缓和曲线与直线地分界点;JD 两直线延长线地交点 .3. 缓和曲线地综合要素T切线长,即交点至直缓点或缓直点地直线长度;R 圆曲线半径;L曲线(圆曲线+缓和曲线)地长度;01缓和曲线地长度;E0外矢距,即交点至曲线中点地距离(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号