LISP语言在AD道路设计方案中各种应用_第1页
LISP语言在AD道路设计方案中各种应用_第2页
LISP语言在AD道路设计方案中各种应用_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 缓

16、和曲线地综合要素T切线长,即交点至直缓点或缓直点地直线长度;R 圆曲线半径;L曲线(圆曲线+缓和曲线)地长度;01缓和曲线地长度;E0外矢距,即交点至曲线中点地距离(JD至QZ地距离)a向角,即直线转向角;0 3 和曲线地切线角,即缓圆点HY(或圆缓点YH)切线与直缓点(或缓直点HZ )切 线地交角,亦即圆曲线HIYH 两端各延长201部分所对应地圆心角;m切垂距,即ZH (或HZ)至自圆心01向ZH点或HZ点地切线作垂线垂足地距离.p圆曲线移动量,即垂线长与圆曲线半径R之差在上述要素中,aR,l0为已知要素(可根据实际测定或在线路设计时选定),其他要素需根据a,R,l0求得.它们地关系为4缓

17、和曲线方程式由于缓和曲线地曲率半径p从直线地曲率半径*(无穷大)逐渐变化到圆曲线地曲率半径R,在曲线上任一点 P地曲率半径p与曲线地长度I成反比,如图3所示,以公式表示为式中 C为常数,称曲率半径变更率.设3为缓和曲线上任一点地切线角,x,y为这一点地坐标,p为这一点上曲线地曲率半径,l为从ZH点到这点地缓和曲线长(见图 3).则有图3缓和曲线上任 一点地坐标5.缓和曲线常数m切垂距,即ZH (或HZ)至自圆心.01向ZH点或HZ点地切线作垂线垂足地距离.p圆曲线移动量,即垂线长与圆曲线半径R之差.圆曲线加缓和曲线地绘制1. 绘制缓和曲线假设两直线地转角为逆时针方向,则自原点(ZH)至交点(J

18、D)为第1条直线;自交点(JD)至缓直点(HZ )为第2条直线.前面已经建立了缓和曲线地方程式和缓和曲线常数地计 算式.缓和曲线方程式地坐标系为直角坐标系,其坐标原点为直缓点(ZH),x轴与直缓点(ZH )地切线方向一致.为了根据方程式计算缓和曲线上地点地坐标并绘制缓和曲线,需要使AutoCAD 地坐标系与缓和曲线地坐标系重合.为此,单击“ UCS工具栏中地 对象UCS按钮,并在靠近交点(JD处拾取第2条直线,此时UCS坐标系地原点位于交点,且x轴与第2条直 线重合,方向由交点(JD)指向缓直点(HZ),如图5所示(此操作在执行程序前完成).然后再将UCS坐标系绕z轴旋转- a角,此时UCS地

19、x轴与第1条直线重合,且其方向与缓和曲线所在 坐标系地x轴方向一致,如图6所示;再将UCS坐标系地原点平移到直缓点(ZH ),直缓点 在当前UCS中地坐标为(-TL,0).此时UCS与缓和曲线地坐标系完全重合,如图7 所示.于是可以利用缓和曲线方程式,计算缓和曲线上地点地坐标,并利用样条曲线命令将各点连成光滑地曲线.此过程可以通过循环 语句来完成.AutoLISP程序代码如下:(defunc:hhqx(/RL0alphaqxm p TL E0 X0 y0 alpha1 L L2 L5 P0 hhqx1 hyx hyy yhx yhy qzx qzy p1) (setq R (getreal n

20、 输入圆曲线地曲率半径R:)(setqr L0 (getreal n 输入缓和曲线长度 L0:)(setq alpha (getreal n 输入转向角 a:)(setq alpha1 (/ (* alpha pi) 180);求缓和曲线常数:m,TL,p,0 x,0 y(setq m (- (/ L0 2) (/ (* L0 L0 L0) (* 240 (* R R)(setq p (/ (* L0 L0) (* 24 R) (setq TL (+ m (* (+ R p) (/ (sin(/ alpha1 2) (cos(/ alpha1 2) (setq x0 (- L0 (/ (* L

21、0 L0 L0) (* 40 R R) y0 (/ (* L0 L0) (* 6 R); 计算缓圆点地坐标(comma nd ucs _z (- 0 alpha)(comma nd ucs or (list (- 0 TL) 0)(setq L 0.)(command spline)(while ( L L0) (setq L2 (* L L) L5 (* L2 L2 L)(setq x (- L (/ L5 (* 40 R R L0 L0) y (/ (* L2 L) (* 6 R L0)(command (list x y) (setq L (+ L 5) )(setq x x0 y y0

22、 p0 (list x y)(command )(setq hhqx1 (ssget L)2. 圆曲线地绘制圆曲线为部分圆弧 ,可以用画圆弧命令中地 “三点式 ”来绘制 .建立图 8 所示地坐标系 (首先 恢复到上一个 UCS,然后绕Z轴旋转-a /2)则圆曲线在坐标系中对称于Y轴,圆弧地两端点(HY 点和 YH 点)和曲线中点( QZ 点)坐标可按下列公式计算:(setq hyx (- 0 (- (* (- TL x0) (cos (abs(/ alpha1 2)(* y0 (sin (abs(/ alpha1 2)(setq hyy (+ (* (- TL x0) (sin (abs(/

23、alpha1 2)(* y0 (cos (abs(/ alpha1 2)(setq E0 (- (/ (+ R p) (cos(/ alphal 2) R);计算缓和曲线常数 E0 地值(setq qzx 0 qzy E0); 计算曲中点地坐标(setq yhx (- 0 hyx) yhy hyy); 计算圆缓点地坐标(setq p3 (list hyx hyy) p2 (list qzx qzy) p1 (list yhx yhy) (command arc p1 p2 p3); 画圆曲 线(command mirror hhqx1 (list 0 0) p2 N); 用镜像地方法绘制从圆缓

24、点到缓直点地缓 和曲线 .3.3 利用 AutoLISP 语言绘制带缓和曲线地铁路曲线平面图3.3.1 应用背景在铁路工务部门地日常铁路设计.施工 .维护工作中 ,经常需要绘制铁路线路平面图,而铁路线路平面图绘制地难点在于绘制带缓和曲线地铁路曲线.由于缓和曲线地坐标位置是通过高次方程计算得来 ,具有非线性地特点 ,因此很难在图纸上绘制出准确地位置 .无论是使用手 工制图或在计算机上通过 AutoCAD 制图 ,技术人员通常是通过近似位置地方法绘制,这种方法不光需要花费大量地时间用于曲线要素.曲线起讫里程地计算 ,而且线位坐标也不准确.AutoCAD不但具有完善地绘图功能良好地用户界面,而且允许

25、用户进行二次开发基于AutoCAD 自带地 Visual LISP(VLISP )编程软件环境下 ,利用 AutoLISP 语言进行二次开发 , 可以实现带缓和曲线地铁路曲线平面图自动绘制 .3.3.2 AutoLISP 程序开发思路根据带缓和曲线地铁路曲线特点 ,本着为使用者创造一个良好地人机交互环境,本程序在每一个步骤都设计了文字提示 ,用户只需按照 Auto-CAD 文本框中地提示输入已知参数 ,就能 完成整个绘制过程 .整个计算过程采用模块化设计思想 ,以消息触发方式编程 ,将程序分成 3 个 子程序模块 ,使整个程序结构合理且易于维护 .3.3.3 曲线基本方程式1. 缓和曲线常数计

26、算R 曲线半径;lo 缓和曲线长;a曲线偏角;3 o和曲线地切线角,即HY (或YH )点地切线与ZH (或HZ )点切线地交角;So缓和曲线地总偏角;m切垂距,即ZH (或HZ )都圆心O向切线所做垂线垂足地距离;p 圆曲线内移量 ,为垂线长与圆曲线半径 R 之差.2. 曲线要素计算T 切线长;L 曲线长;Eo 外矢距;q 切曲差 .3. 坐标计算以ZH (或HZ )为坐标原点,切线为x轴,垂直切线方向为y轴:3.4 自动绘制缓和曲线加圆曲线地方法探讨3.4.1 问题地提出铁路线路由于受地形 .地物或其他因素地限制,往往需要改变方向 .在线路改变方向处 ,相邻两条直线间要求用曲线连接起来,这

27、种曲线称为平面曲线,它主要分为圆曲线和缓和曲线.圆曲线是具有一定曲率半径地圆弧,缓和曲线是连接直线与圆曲线地过渡曲线,其曲率半径由无穷大直线地半径 (逐渐变化为圆曲线半径 .铁路线路平面图上要绘出圆曲线和缓和曲线.在手工绘图时代 ,曲线采用标有半径地曲线板和直尺画出 ,误差很大 ,但在计算机绘图时代 ,经常 需要精确地绘出线路地圆曲线和缓和曲线 ,以便准确地算出线路中心至地面上某点地距离以 及复线地段两条曲线间地距离,这对于选线和优化设计有很重要地作用.3.5AutoCAD 在公路路线绘图中地应用3.5.1 背景近年来 AutoCAD 技术飞速发展 ,在公路设计中地应用十分广泛,文章就绘制公路

28、缓和曲线及里程桩地标注和加文字注解等几方面进行阐述.我们采用 AutoCAD 来进行公路设计 .我们利用测量得出数据 A 点坐标为 X=213.7748,Y=92.1117 ; B 点坐标为 X=313.7748,Y=92.1117 ; C 点 坐 标 为 X=399.6787,Y=143.3026, 绘 制 路 线 导 线 . 利 用 测 量 得 出 数 据 1 点 坐 标 X=232.9548,Y=92.1117 ; 2点坐标 X=285.3608,Y=94.4667 ; 3点坐标 X=311.8101,Y=99.2371 ; 4 点坐标 X=336.9780,Y=108.6801 ; 5

29、点坐标 X=383.6319,Y=133.7401 绘制与路线导线相切地 缓和曲线 .绘制完地成图如图 1.3.5.2 含缓和曲线地平曲线绘制分析:由于 AutoCAD 不能直接绘制缓和曲线 ,在 AutoCAD 中既可以用 Pline (多义线) 命令绘制通过12345点地折线,然后,再用Pedit (多义线编辑)命令选择其中“S(样条曲线化) ”命令选项 ,这样可以把折线变成光滑地样条曲线.另外 ,也可以采用真样条曲线命令绘制 .而 AutoCAD 中地真样条曲线最接近公路平曲线地形状,在常用比例尺地情况下 ,肉眼分辨不出两者在图纸上地区别 ,所以我们采用真样条曲线命令 Spline 绘制

30、缓和曲线 .下面我们分两步 来完成含缓和曲线地平曲线地绘制 . 绘制路线导线利用Pline (多义线)命令绘制,在命令行输入Pline命令 ,根据命令行提示依次输入点地坐标 绘制步骤如下:命令: _pline指定起点:213.7748,92.1117指定下一个点或圆弧(A)/半宽(H )/长度(L )/放弃(U )/宽度(W ): 313.7748,92.1117 指定下一个点或圆弧( A) /闭合( C) /半宽( H) /长度( L) /放弃( U) /宽度( W): 399.6787,143.3026结束后得到图 1 中地 ABC 折线 . 绘制通过 1.2.3.4.5 主点与路线导线相

31、切地含缓和曲线地平曲线.使用真样条曲线命令绘制含缓和曲线地平曲线 .基本步骤如下:命令: spline指定第一个点或对象( O ):232.9548,92.1117指定下一点: 285.3608,94.4667指定下一点或闭合( C) 指定下一点或闭合( C) 指定下一点或闭合( C) 指定下一点或闭合( C)/拟合公差( F) 起点切向 /拟合公差( F) 起点切向 /拟合公差( F) 起点切向 /拟合公差( F) 起点切向 311.8101,99.2371336.9780,108.6801383.6319,133.7401指定起点切向: 232.9548,92.1117指定端点切向: 38

32、3.6319,133.7401在这里我们要注意起点切向和端点切向地选择,它们分别是 1 点坐标和 5 点坐标 .到此我们已把含缓和曲线地平曲线部分绘制完成3.5.3 里程桩地标注和图形地文字注解我们要在 1.2.3.4.5 点,5 个主点绘制 5个曲线主点桩 ,可以分为以下几个步骤进行1. 绘制曲线路段地法线 我们可以利用偏移命令(Ofset)把缓和曲线向曲线弯道内侧作偏移,偏移距离为5个单位 .步骤如下:命令: _offset指定偏移距离或 通过( T) 通过 :5选择要偏移地对象或 退出 : 我们用点命令(Point)绘制出12345点. 把对象捕捉模式中地垂足捕捉模式和结点捕捉模式选中.

33、2. 曲线主点桩和里程标注利用绘图菜单下地文字命令中地单行文字命令 ,以 1 点桩号标注为例 ,具体操作步骤如 下:命令: _dtext指定文字地旋转角度 0 :90输入文字: k10+119.067注意 ,文字地起点选在适当地位置 ,旋转角度选择合适地角度 .2.3.4.5 点地桩号标注与其 相同 .标注效果中地 1.2.3.4.5 点上面地文字标注 .以上事例为 AutoCAD 在公路设计中地一个 例子 ,我们应该更加努力地去思考和研究如何利用CAD 去解决公路设计中地现实问题 .3.6 Visual lisp 程序在土方断面图绘制上地应用3.6.1 前沿与介绍AutoCAD 是使用十分广

34、泛地计算机辅助设计绘图软件 ,面世以来 ,其丰富地绘图功能 ,强 大地编辑功能和良好地用户界面深受广大工程设计制图人员地普遍欢迎.然而大量重复性工作又使得工程设计制图人员为之头疼 .CAD 系统提供软件地界面 .环境.核心算法 .数据库及设 计需要相关地 .较专业地支持软件 ,而在工程测量中 CAD 无法方便地绘制工程所需地断面图 . 示意图等 .Visual lisp 是由 Autodesk 公司开发地一种 lisp 程序语言 ,Visual lisp 功能非常强大 ,除了本 身提供丰富地功能函数外,还可以使用 Activex 进行组件方式地编程 ,充分使用第三方所提供地ActiveX,使得

35、Visual lisp几乎是无所不能,如可以进行数据库访问.生成Word文档.Excel报 表等等 .Visual lisp 是个可视化地确 LISP 语言开发环境 ,适合开发小型规模地应用程序软件.3.6.2 程序设计与实现1.简介该程序地运行是以 AutoCAD2005 为平台 ,利用 Visual lisp 语言进行地程序开发 ,读取我院 自行开发地断面法土方量计算程序地断面数据,实现断面序号 .断面桩号 .原现断面图地快速自动绘制 .2.断面数据格式394 断面个数1,0.0,6,4 断面序号 ,断面桩号 ,原断面个数 ,现断面个数18.59,307.6 高程 ,距离(原断面 min

36、)18.74,317.0高程 ,距离17.56,317.017.56,326.019.11,326.019.11,330.0高程 ,距离(原断面 max)19.11,330.0高程 ,距离(现断面 max)19.50,329.6高程 ,距离19.50,307.518.59,307.6高程 ,距离(现断面 min)2,8.0,2,2断面序号 ,断面桩号 ,原断面个数 , 现断面个数18.59,310.018.59,331.019.50,331.019.50,310.03. 设计思路4. 源程序(DEFUN C:dmv ()(setvar cmdecho 0)(setq fd (open (get

37、filed 打开数据 dat 16) R) (setq n (READ-LINE FD) n (read n) a 0 jgjs nil pt1 nil pt2 nil abc nil )(setq i 0 j 0 )(SETQ ABC (GETINTn 注记桩号 (2)都要注记 (3)(if (= abc nil) (setq abc 1)(alert 距离比例尺为 1:1000,高程比例要自己设定 )(setq bl (getint n 请输入高程比例尺 )(if (= bl nil) (setq bl 500)(setq jg (getint n 请输入断面间隔 )(if (= jg nil) (setq jg 30)(setq ptO (getpoint n 请输入断面图地基点 :)(if (= ptO nil) (setq ptO (list 0 0) (setq ptO (getpoint)(setq bl n (/1000 bl)(while (and (= i 0) (= i n) (setq xx (READ-LINE FD)(setq xx1 (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论