AutoCAD画圆弧功能的补充.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AutoCAD画圆弧功能的补充

AutoCAD圆弧绘制功能的补充 秦皇岛烟草机械有限责任公司技术开发研究所 王永强 齐海涛 [摘 要] 以Visual Lisp为二次开发工具,对AutoCAD的圆弧绘制功能进行补充 [关键词] AutoCAD Visual Lisp 圆弧绘制 引言 AutoCAD是目前使用最为广泛的计算机辅助设计软件之一,圆弧绘制是其一项最基本的绘图功能。AutoCAD中画圆弧的方法是根据圆弧的基本参数(如圆弧的起点、终点、圆心、半径、角度、方向)的合理组合来进行绘制。这些绘制圆弧的方法有一个共同特点,即都可以根据已知参数通过三角计算就能得到圆弧的所有基本参数。但当已知圆弧的弧长和弦高或已知弧长和弦长时,无法用AutoCAD现有的方法绘出圆弧,因为在AutoCAD现有的所有绘制圆弧的方法中,没有弧长与弦高或弦长的参数组合。此时要在AutoCAD中绘出圆弧,必须先进行繁锁的高等数学计算,由弧长、弦高参数或弧长、弦长参数求出圆弧的半径、中心角等参数的近似值,再用AutoCAD现有的绘制圆弧的方法进行绘制,给设计工作带来不便。 这种情况在实际工程设计中是可能出现的,例如用现有规格260mm x 30m、厚1mm的矩形板料制作截面如图1所示的零件(图1中忽略板厚,弧BCD长 + 30 x 2 = 260),对尺寸L没有过于严格的要求,但要保证其它尺寸,求圆弧BCD的半径R。 图1 下面就以劣弧时已知圆弧弧长和圆弧弦高为例,介绍用AutoCAD的Visual Lisp二次开发工具进行程序设计,求解并绘出圆弧的方法。 开发过程 如图2所示,已知劣弧ADB的弧长为a,弦高CD为h。 图2 由 a=2αR ∵ α=arccos(R-h)/R ∴ a=2Rarccos(R-h)/R ① 用高等数学求解此方程,一般要先绘制方程的曲线并划定方程的根的隔离区间,再用一定的计算方法反复求得方程的近似值,直到得到满足精度要求的近似解,计算过程复杂、繁锁,而且计算精度不易保证。但我们可以用计算机强大的计算功能来精确地进行求解。在确定程序算法之前,先绘出方程①的曲线。令已知参数弦高h分别取不同的常数,以圆弧半径R为变量,求出对应每一个R值的弧长a并绘出方程曲线,为此设计以下Lisp程序: (defun c:yz() (setvar OSMODE 0) (setvar CMDECHO 0) (setq r (getreal \n Please input R:);输入起始半径上限 h (getreal \n Please input h:));输入假设弦高常数 (if ( r h)(progn (setq cosa (/ (- r h) r) sina (sqrt (- 1 (expt cosa 2))) jiao (atan (/ sina cosa)) l (* 2 jiao r) ))) (while ( r 1)(progn (setq r (- r 1)) (if ( r h)(progn (setq cosa (/ (- r h) r) sina (sqrt (- 1 (* cosa cosa))) jiao (atan (/ sina cosa)) l (* 2 jiao r) p (list r l) ) (command point p );在AutoCAD中绘制点 ))))) 在AutoCAD中加载并执行以上程序,依次输入圆弧半径的上限值和圆弧弦高常数,即可绘出对应的方程曲线。图3为程序在AutoCAD中绘制的R极大值为1000、h分别取值10、50、100时方程①的曲线。 图3 由图3所示的方程曲线可知,当弦高为常数时,每一个弧长a值都对应唯一一个半径R(Rh)值,且函数为单调增函数。运用二分法算法,设计以下程序来求解方程并在AutoCAD中绘制圆弧。 (defun c:lh() (setq l (getreal \n 输入圆弧长度L:) h (getreal \n 输入圆弧弦高H:)) (if ( h (/ l pi )) (progn (princ \n输入参数不构成劣弧,请执行优弧命令。)) (progn (setq xx 0;直径范围初始极大值,可根据实际情况确定 r (/ xx 2) c(/ (- r

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档