为AutoCAD新增三种画圆弧的方式
2010-04-19杨双富
杨双富
(云南一九八煤田地质勘探队,云南昆明 650208)
为AutoCAD新增三种画圆弧的方式
杨双富∗
(云南一九八煤田地质勘探队,云南昆明 650208)
在AutoCAD中,利用Visual LISP作为二次开发工具,为其增加已知弧长及弦长、已知弦长及弓高、已知弧长及弓高绘制圆弧的3种方式,解决了这3种已知条件下求圆弧半径及画圆弧的难题。
Visual LISP;圆弧;非线性方程;牛顿迭代法;二次开发
1 前 言
已知弧长及弦长、已知弦长及弓高、已知弧长及弓高求圆弧半径不仅是计算几何的问题,也是工程设计和施工中常遇到的问题,由于列出求解的方程中含有三角函数,为非线性方程,采用常规算法很难求解。AutoCAD是目前使用率最高的计算机辅助设计软件之一,它根据圆弧的起点、终点、圆心、半径、圆心角等基本参数有效组合,一共提供了10种不同绘制圆弧的方式,基本满足用户的需求,但其中却没有上述3种已知条件下绘制圆弧的方法,为此文中利用Visual LISP作为二次开发工具,按非线性方程的牛顿迭代法编程解算出圆心角、半径,并实现了圆弧的高精度绘制。
2 圆弧半径求解数学模型
2.1 根据已知条件,求解半径方程
任取一圆弧如图1所示,P1、P2为圆弧的起点和止点,P1、P2间的弧长为L,弦长为C,圆弧的弓高为h,设圆弧的半径为R,所对应的圆心角为x,根据已知弧长L及弦长C、弧长L及弓高h、弦长C及弓高h三个条件,则求半径及圆心角的相应方程组见表1第2行,因圆心角x在0~2π之间,为方便后述选取迭代初值,故按消元法消去半径R,得到以圆心角为未知数的一元非线方程列入表1中的第3行。
图1 圆弧示意图
求解圆心角方程式 表1
2.2 圆心角、半径求解
由于列出求解圆心角的方程中含有三角函数,为非线性方程,根据牛顿迭代法,其求解的迭代计算式如下:
式中的f(xi)、f′(xi)见表1,迭代精度取ε=10-10,当迭代结束后,按表1中最后一行计算半径。
2.3 迭代初值选取
根据牛顿迭代法解非线性方程初值选取规则[f(x0)f″(x0)〉0],经分析和测试,初值选取表中倒数第二行的数据时,迭代均收敛,可较为精确地解算出圆心角,从而精确地计算出半径。
3 实现画圆弧方的步骤和Visual LISP程序
3.1 画圆弧的步骤
(1)由已知数据,按牛顿迭代法解算出圆弧的圆心角,并计算出半径;
(2)任选一点P1作为圆弧的起点,根据已知数据和已解算出圆心角、半径,按圆弧起点至止点的角度为0、距离为弦长计算出止点P3,再由P1点、P3点及弓高计算圆弧的中点P2;
(3)以三点画圆弧命令绘出圆弧,并以P1点为旋转中心,动态将圆弧旋转到指定的止点方向。
3.2 Visual LISP程序
4 应用实例
(1)将上述Visual LISP程序以文件名arc1.lsp保存;
(2)启动AutoCAD,将arc1.lsp加载;
(3)在命令行键入arc1并回车,按照提示输入数据就可进行计算和绘制圆弧,如表2为圆弧的已知数据,表3为计算出的圆弧半径;
圆弧已知数据 表2
计算出的圆弧半径 表3
(4)以下为YH3按弧长弓高绘制圆弧的操作过程及所绘圆弧与原圆弧特性截图。
图2 圆弧特性截图
5 结 语
(1)在已知弧长及弦长、已知弦长及弓高、已知弧长及弓高以及选择适当初值的条件下,以Visual LISP作为开二次发工具,按非线性方程的牛顿迭代法编程解算圆心角并计算出半径的方法,不但收敛速度很快而且准确,从而实现了圆弧的高精度绘制,是对Auto-CAD圆弧绘制功能的有益补充。
(2)限于篇幅,程序中未对输入的数据有效性(即能否组成圆弧)、绘制圆弧的顺或逆时针方向等细节进行处理,请读者自行完善。另外,也可为这种绘制圆弧方法创建菜单或工具栏按钮,以方便操作,提高效率和精度。
[1]翟瑞彩,谢伟松.数值分析[M].天津:天津大学出版社,2000
[2]段红梅,周明,胡仁喜等.AutoCAD 2000(中文版)自学教程[M].北京:清华大学出版社,2000
[3]孙江宏,丁立伟,米洁.Visual LISP R14~2000编程与应用[M].北京:科学出版社,1999
AutoCAD Drawing for the New Arc Three Kinds of Ways
Yang ShuangFu
(198 coal geological exploration teams in Yunnan,Yunnan 650208,China)
In the AutoCAD,using Visual LISP as a secondary development tools,known for its increase in arc length and chord length,chord length and arch of known high,known to draw the circular arc and bow-high three ways,resolved under the conditions of these three are known to seek arc radius and arc drawing problems.
Visual LISP;arc;non-linear equations;Newton's iterative method;secondary development
1672-8262(2010)03-113-03
P209
B
2009—10—16
杨双富(1967—),男,高级工程师,主要从事工程测量工作。