模具知识|给AutoCAD增加计算器功能

   更新日期:2017-03-24     来源:建材之家    作者:模具之家    浏览:59    评论:0    
核心提示:在用AutoCAD进行绘图时,经常需要进行一些必要的计算工作。尽管Autodesk公司随AutoCAD一起提供了一个可进行简单计算的LISP程序CALC.LSP,但该程序开发较早,在COMMAND命令下使用,界面不直观,且使用不方便。本文通过对AutoCAD内对话框结构及AutoLISP进行研究,提出了一种用对话框结构实现计算器功能的方法,同时给出程序流程图,供大家参考。该程序已应用于我院的实际

成都百纳家居装饰 一站式品质6A整装 一房一价损耗全包!

推荐简介:本文相关词条解释家居装饰随着城市化建设迅猛崛起,各个城市都在努力朝着经济蓬勃发展、生态良性循环、人民安居乐业、 城市山清水秀的现代化大都市这个目标建设。这是社会精神文明进步的体现,是人类物质文化生活提高后的必然追求。人们追求幸福、健康和美好,就要求有一个舒心优雅的生态环境,因此,人们对城市建设提出了一系列的目标要求,即卫生城市、花园城市、园林城市、生态城市等等。由于现代城市的建设直接影响着人们生活......
模具之家讯:在用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值而定)。此外,当计算结果太大而溢出时,对于ForDOS版的AutoCAD将返回1.67e+308,而WINDOWS版则返回1.79769e+308。

2、正余弦函数(sin x)及(cos x)要求变量x必须小于等于9.223372e+18(当然还可再延长小数位数),否则得不到正确结果。例如当变量为9.223373e+18时,对于ForDOS版的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 ForDOS及ForWINDOWS版上均调试通过,但在WINDOWS版本中所显示的图形与图1略有不同。
模具之家为您提供最全面的塑胶,塑料,模具,模具设计,塑胶模具品牌的装修知识点和各种塑胶模具的导购与在线购买服务,拥有最便宜的塑胶模具价格和最优质的售后服务,敬请登陆模具之家:http://muju.jc68.com/
小程序码
 
打赏
 
更多>文章标签:模具
更多>同类模具塑胶资讯
0相关评论

推荐图文更多...
点击排行更多...
模具塑胶商机更多...
模具商圈更多...
推荐产品更多...
双碳之家 | 橱柜之家 | 布艺之家 | 卫浴之都 | 建材头条 | 灯具之家 | 电气之家 | 瓷砖之家 | 区快洞察 | 全景头条 | 陶瓷之家 | 油漆之家 | 照明之家 | 防水之家 | 防盗之家 | 博一建材 | 卫浴之家 | 区快洞察 | 木板之家 | 地板之家 | 防水之家 | 门窗之家 | 家电之家 | 五金之家 | 水电之家 | 防盗之家 | 石材之家 | 电气之家 | 地板之家 | 陶瓷头条 | 橱柜之家 | 卫浴头条 | 布艺之家 | 家纺头条 | 暖气头条 | 墙布头条 | 建材头条 | 装修之家 | 新基建头条 | 双碳之家 | 全景头条 | 建材之家 | 深圳建材 | 揭阳建材 | 香港建材 | 佛山建材 | 广州建材 | 东莞建材 | 惠州建材 | 潮州建材 | 汕头建材 | 珠海建材 | 江门建材 | 韶关建材 | 湛江建材 | 茂名建材 | 肇庆建材 | 梅州建材 | 汕尾建材 | 河源建材 | 阳江建材 | 清远建材 | 中山建材 | 云浮建材 |
建材 | 720全景 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号
(c)2015-2017 BO-YI.COM SYSTEM All Rights Reserved
Powered by 模具之家