文|CAD自学网,作者:摩尔 画图中应该会有不少计算类相关内容。有些是公式性的计算,这种计算也许有人用第三方软件可以解决,还有人直接更喜手动计算器完成。那么这类的,如果用lisp怎么实现呢。 编辑的逻辑,也是思考的逻辑。首先要解决什么问题,这个问题怎么解决,怎么用lisp实现。 以下以电气中的单相负荷计算电流为例,说明公式类计算程序怎么写。 问题: 计算单相负荷电流,能够在cad中通过输入功率、利用系数、功率因数,自动计算出电流。
文|CAD自学网,作者:摩尔
画图中应该会有不少计算类相关内容。有些是公式性的计算,这种计算也许有人用第三方软件可以解决,还有人直接更喜手动计算器完成。那么这类的,如果用lisp怎么实现呢。
编辑的逻辑,也是思考的逻辑。首先要解决什么问题,这个问题怎么解决,怎么用lisp实现。
以下以电气中的单相负荷计算电流为例,说明公式类计算程序怎么写。
问题:
计算单相负荷电流,能够在cad中通过输入功率、利用系数、功率因数,自动计算出电流。
方法:
通过公式计算,I=kP/Ucos?,其中I是电流(A),k是利用系数,p是功率(W),U是电压220(V),cos?是功率因数。
Lisp :
需要有可获取键盘输入数据的函数,需要实现公式计算的运算,需要能输入计算结果的函数。
通过以上三步思考,大脑基本会有一个成型的lisp框架。接下来就是用lisp搭建出来。
打开cad,命令行输入vlide,调出lisp编辑器,新建一个lisp文件。根据以上思考,就可以将一个公式计算的程序编辑出来。一共三个部分,一是获取数据,二是执行计算公式,三是输出计算结果。
lisp程序:
(defun c:dx();定义单相计算电流的函数名称,即cad的命令快捷键 (setq p (getreal "\n请输入单相负荷功率(kW):"));键盘输入功率,get是获取,real是实数,即获取一个实数值,setq是将获取的实数值赋值给变量p (setq k (getreal "\n请输入利用系数:"));另起一行,输入利用系数 (setq fi(getreal "\n请输入功率因数:"));另起一行,输入利用系数 (setq i (/(* k p 1000)220fi));计算电流,并把结果赋值给i (print"单相计算电流(A)是:");输出文字 (princ i);输出计算电流值i (prin1);结束 )
语句分号后内容是说明,不参与程序执行,只是便于这里说明所加。
加载应用程序,cad命令行输入快捷键dx,得到如下结果。
根据以上,是不是自制lisp插件并没有你想象的那么难呢,你可以试着改写,变成你想要的公式计算。如此你便拥有了一个自制的简单插件。就算是纯cad,你也可以立即写出程序。