《AutoCAD实用参考资料》给AutoCAD增加计算器功能

给 Auto CaD增加计算器功能 在用 AutoCAD进行绘图时,经常需要进行一些必要的计算工作。尽管 Autodesk公司随 utoCAD一起提供了一个可进行简单计算的LSP程序 CALC LSP,但该程序开发较早,在 COMMAND命令下使用,界面不直观,且使用不方便。本文通过对 Auto CAD内对话框结 构及 AutoLISP进行研究,提出了一种用对话框结构实现计算器功能的方法,同时给出程序 流程图,供大家参考。该程序已应用于我院的实际工作中。 1原理及方法 AutocAD对话框结构包含多种构件,如 edit box(编辑框)、text(文字)、 button(按钮)等 利用这些工具,可以开发出界面友好的实用程序。图1就是用这种方法实现的。将计算器 中数字及各种运算符号以按钮( button)形式排成5行5列,并把计算结果以文字构件方式在 对话框内显示,即可得到图1所示对话框结构(对话框文件# CAL DCL)。最后编制对话框显 示及完成各种运算功能的驱动程序即可(驱动程序# CAL. LSP),程序流程图见图2。 在# CAL LSP程序中用到了 AutoLISP提供的多种数值计算及变量转换函数。需要说明 的是,笔者在调试过程中发现某些函数对变量有一些特殊要求,现介绍如下,与读者共同探 1、在幂运算函数( expt base power中,对变量base(底)和 power(幂)的要求与代数学中幂 的运算要求是不同的。在代数学中对变量bae和 power的要求如下 当base>0时, power可为任意实数; 当base=0时, power须大于0 当base<0时, power可为整数,若为小数或分数时要求当其化为最简分数时分母不能 为偶数 但在 AutoLISP中当变量base0时,要求 power只能是整型数或小数点后均为0的实数, 如2,-20等,否则将得到错误信息或返回一个错误结果(视 power值而定)。此外,当计算 结果太大而溢出时,对于 FOR DOS版的 AutoCaD将返回167e+308,而 WINDOWS版则 返回1.79769e+308 2、正余弦函数(sinx)及(cosx)要求变量x必须小于等于9223372e+18(当然还可再延长 小数位数),否则得不到正确结果。例如当变量为9223373e+18时,对于 FOR DOS版的 AutoCAD返回NAN,而 WINDOWS版则返回变量值本身 3、在使用函数(rtos)将数据转化为字符串时,笔者发现当数据大于le+100(即10的100 次方)时,会将指数100自动地改为99。例如,执行(rtos6e+10026)后得到6000006+99”, 而不是所期待的"6.000000+100"。所以本程序规定最大数据不能大于1e+99,否则将显示溢 出错误。当然,通过编制另外的转换程序是可以将最大数据提高到 AutocaD所能接受的最 大数据(经测试发现其最大值可为1.79769c+308)。限于篇幅,本文不再提供该转换函数,需 要的同志可与笔者联系。 2程序使用方法 将程序# CAL LSP及对话框文件# CAL DCL拷贝到 AutoCAD所能找到的目录中,在 Command:命令下键入(LOAD"H#CAL")进行程序的加载,即可象其它 AutoCAD内部命令 样使用#CAL了。也可在所使用的菜单文件(如 ACAD. MNU中的下拉式菜单或屏幕菜单部 分加上下面一行:[计算器]^C^C^P(if( null c;#ca)(oad"#ca")#cal以后即可直接从菜单中驱 动该程序。 对话框内各个图标与普通计算器相似,"C"表示清零,"M+"表示存储结果,"MR"表示
给 AutoCAD 增加计算器功能 在用 AutoCAD 进行绘图时,经常需要进行一些必要的计算工作。尽管 Autodesk 公司随 AutoCAD 一起提供了一个可进行简单计算的 LISP 程序 CALC.LSP,但该程序开发较早,在 COMMAND 命令下使用,界面不直观,且使用不方便。本文通过对 AutoCAD 内对话框结 构及 AutoLISP 进行研究,提出了一种用对话框结构实现计算器功能的方法,同时给出程序 流程图,供大家参考。该程序已应用于我院的实际工作中。 1 原理及方法 AutoCAD 对话框结构包含多种构件,如 edit_box(编辑框)、text(文字)、button(按钮)等。 利用这些工具,可以开发出界面友好的实用程序。图 1 就是用这种方法实现的。 将计算器 中数字及各种运算符号以按钮(button)形式排成 5 行 5 列,并把计算结果以文字构件方式在 对话框内显示,即可得到图 1 所示对话框结构(对话框文件#CAL.DCL)。最后编制对话框显 示及完成各种运算功能的驱动程序即可(驱动程序#CAL.LSP),程序流程图见图 2。 在#CAL.LSP 程序中用到了 AutoLISP 提供的多种数值计算及变量转换函数。需要说明 的是,笔者在调试过程中发现某些函数对变量有一些特殊要求,现介绍如下,与读者共同探 讨: 1、在幂运算函数(expt base power)中,对变量 base(底)和 power(幂)的要求与代数学中幂 的运算要求是不同的。在代数学中对变量 base 和 power 的要求如下: 当 base>0 时,power 可为任意实数; 当 base=0 时,power 须大于 0; 当 base<0 时,power 可为整数,若为小数或分数时要求当其化为最简分数时分母不能 为偶数。 但在 AutoLISP 中当变量 base<0 时,要求 power 只能是整型数或小数点后均为 0 的实数, 如 2,-2.0 等,否则将得到错误信息或返回一个错误结果(视 power 值而定)。此外,当计算 结果太大而溢出时,对于 FOR DOS 版的 AutoCAD 将返回 1.67e+308,而 WINDOWS 版则 返回 1.79769e+308。 2、正余弦函数(sin x)及(cos x)要求变量 x 必须小于等于 9.223372e+18(当然还可再延长 小数位数),否则得不到正确结果。例如当变量为 9.223373e+18 时,对于 FOR DOS 版的 AutoCAD 返回 NAN,而 WINDOWS 版则返回变量值本身。 3、在使用函数(rtos)将数据转化为字符串时,笔者发现当数据大于 1e+100(即 10 的 100 次方)时,会将指数 100 自动地改为 99。例如,执行(rtos 6e+100 2 6)后得到"6.000000E+99", 而不是所期待的"6.000000E+100"。所以本程序规定最大数据不能大于 1e+99,否则将显示溢 出错误。当然,通过编制另外的转换程序是可以将最大数据提高到 AutoCAD 所能接受的最 大数据(经测试发现其最大值可为 1.79769e+308)。限于篇幅,本文不再提供该转换函数,需 要的同志可与笔者联系。 2 程序使用方法 将程序#CAL.LSP 及对话框文件#CAL.DCL 拷贝到 AutoCAD 所能找到的目录中,在 Command:命令下键入(LOAD "#CAL")进行程序的加载,即可象其它 AutoCAD 内部命令一 样使用#CAL 了。也可在所使用的菜单文件(如 ACAD.MNU)中的下拉式菜单或屏幕菜单部 分加上下面一行:[计算器]^C^C^P(if (null c:#cal) (load"#cal")) #cal 以后即可直接从菜单中驱 动该程序。 对话框内各个图标与普通计算器相似,"C"表示清零,"M+"表示存储结果,"MR"表示

弹出所存储的结果,"sqrt"表示开方,"X*y"表示求幂。当所输入的数据不合适或计算结果 溢出时对话框内会显示错误提示信息 本程序在 AutoCAD r12.0 FOR DOS及 FOR WINDOWS版上均调试通过,但在 WINDOWS版本中所显示的图形与图1略有不同
弹出所存储的结果,"sqrt"表示开方,"X**y"表示求幂。当所输入的数据不合适或计算结果 溢出时对话框内会显示错误提示信息。 本程序在 AutoCAD R12.0 FOR DOS 及 FOR WINDOWS 版上均调试通过,但在 WINDOWS 版本中所显示的图形与图 1 略有不同
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《AutoCAD实用参考资料》应用AutoCAD几何计算器实现快速定位.doc
- 《AutoCAD实用参考资料》在AutoCAD中实现尺寸公差自动标注的探讨.doc
- 《AutoCAD实用参考资料》一个更改尺寸类型的LISP程序.doc
- 《计算机网络技术及应用》课程教学资源(试卷习题)试卷2参考答案.doc
- 《计算机网络技术及应用》课程教学资源(试卷习题)试卷A课程参考答案.doc
- 《计算机网络技术及应用》课程教学资源(试卷习题)试卷(A卷).doc
- 《计算机网络技术及应用》课程教学资源(试卷习题)试卷1.doc
- 《计算机网络技术及应用》课程教学资源(教案讲义)第七章 Li nux的安装与管理.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第十章 Internet接入技术.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第九章 网络互连.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第十二章 电子商务网络平台的典型案例.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第十三章 实训指导.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第十一章 网络安全.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第八章 用Linux构建 Intranet.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第六章 用Windows2000 Server构建intranet.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第五章 Windows2000 Server的安装与管理.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第三章 计算机局域网组网技术.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第四章 组建对等网络.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第二章 计算机网络体系结构.pdf
- 《计算机网络技术及应用》课程教学资源(教案讲义)第一章 计算机网络概论.pdf
- 《AutoCAD实用参考资料》AutoCAD R14的菜单定制技术.doc
- 《AutoCAD实用参考资料》AutoCAD中尺寸公差的自动标注.doc
- 《AutoCAD实用参考资料》AutoCAD中自动批量修改图形文件的程序.doc
- 《AutoCAD实用参考资料》AutoCAD内常用术语的自动标注方法.doc
- 《AutoCAD实用参考资料》AutoCAD的二次开发.doc
- 《AutoCAD实用参考资料》优化AutoCAD系统的方法.doc
- 《AutoCAD实用参考资料》使用AutoCAD2000打印输出图纸的几点经验与技巧.doc
- 《AutoCAD实用参考资料》化工工艺流程图阀门程序设计.doc
- 《AutoCAD实用参考资料》在Auto CAD环境下实现制表功能.doc
- 《AutoCAD实用参考资料》增加AUTOCAD在文字处理上的功能.doc
- 《AutoCAD实用参考资料》工程图中标注序号的LISP程序.doc
- 《AutoCAD实用参考资料》用LISP语言自定义AutoCAD命令.doc
- 《AutoCAD实用参考资料》用中文版ACAD2000绘制机械图有关系统变量的设置.doc
- 《AutoCAD实用参考资料》调整线条宽度的实用工具.doc
- 《AutoCAD实用参考资料》ATUOCAD经验44.doc
- 《AutoCAD实用参考资料》AutoCAD下绘制直线对称中心线的方法.doc
- 《AutoCAD实用参考资料》AutoCAD中导入超文本实现方法.doc
- 《多媒体技术与应用教程》ppt电子书.ppt
- 莆田学院:《VisualFoxPro6.0 程序设计及其应用开发》课程教学资源_vfp试题分析.doc
- 莆田学院:《VisualFoxPro6.0 程序设计及其应用开发》课程教学资源_教学大纲.doc