几何计算器(GeometryCalculator)是集成在AutoCAD中的一个三维计算
程序,可以计算矢量表达式(点、矢量和数值的组合)、实数和整数表达式。在计算中可以使用
标准的
数学函数,以及用于计算点、矢量和AutoCAD几何图形的专门函数。用户可直接在命令行调用“cal”命令,或在其他命令执行过程中透明地调用该命令('cal)来启动该计算程序。其计算结果可作为当前AutoCAD提示的输入或用于为一个AutoLISP变量赋值。
16.6.1计算表达式
在几何计算器中可使用
算术表达式和矢量表达式两种计算表达式。算术表达式可以是整数、实数和具有数值操作的函数构成,并可使用算术运算符进行连接。可用的算术运算符如表16-1所示。
表16-1算术运算符
[color=#FFFFFF']
运算符
运算
,-
[color=#FFFFFF']
加,减
[color=#FFFFFF']
*,/
乘,除
^
指数计算
[color=#FFFFFF']
()
将表达式编组
矢量表达式可以由点集、矢量、数字和矢量运算符所组成的函数来构成,并可使用矢量运算符进行连接。可用的矢量运算符如表16-2所示。
表16-2矢量运算符
运算符
[color=#FFFFFF']
运算
,-
矢量加,减
[a,b,c][x,y,z]=[ax,by,cz]
*,/
矢量与实数相乘除
a*[x,y,z]=[a*x,a*y,a*z]
*
矢量的点积
[a,b,c]*[x,y,z]=axbycz
%26;amp;
矢量的矢量积
[color=#FFFFFF']
[a,b,c]%26;amp;[x,y,z]=[(b*z)-(c*y),(c*x)-(a*z),(a*y)-(b*x)]
()
将表达式编组
在对表达式进行计算时,将遵照标准数学计算的优先级规则。
16.6.2标准数值函数
可以在计算器中使用的数值函数详见表16-3。
表16-3数值函数一览表
函数
[color=#FFFFFF']
说明
sin(角度值)
[color=#FFFFFF']
正弦函数
[color=#FFFFFF']
cos(角度值)
余弦函数
[color=#FFFFFF']
tang(角度值)
正切函数
Asin(实数)
反正弦函数
[color=#FFFFFF']
Acos(实数)
反余弦函数
Atan(实数)
反正切函数
[color=#FFFFFF']
ln(实数)
自然对数函数
log(实数)
以1为底的对数函数
[color=#FFFFFF']
exp(实数)
自然指数函数
exp10(实数)
10为底的指数函数
sqr(实数)
平方函数
[color=#FFFFFF']
sqrt(实数)
平方根函数
[color=#FFFFFF']
abs(实数)
绝对值函数
[color=#FFFFFF']
round(实数)
圆整函数
Trunc(实数)
[color=#FFFFFF']
取整函数
r2d(角度)
[color=#FFFFFF']
将角度从弧度转换成度
表16-3数值函数一览表
函数
说明
d2r(角度)
将角度从度转换成弧度
pi
常量%26;#61500;/P%26gt;
16.6.3矢量函数
在计算器中可使用如下各种矢量函数,如表16-4所示。
表16-4矢量函数一览表
[color=#FFFFFF']
函数
说明
vec(p1,p2)
计算从点p1到点p2的矢量
vec1(p1,p2)
计算从点p1到点p2的单位矢量
[color=#FFFFFF']
abs(v)
[color=#FFFFFF']
计算矢量v的长度
[color=#FFFFFF']
nor
确定选定的圆、圆弧或多段线圆弧段的三维单位法向矢量
nor(v)
确定矢量v的二维单位法向矢量
nor(p1,p2)
确定直线(p1,p2)的二维单位法向矢量
nor(p1,p2,p3)
[color=#FFFFFF']
确定平面(p1,p2,p3)的三维单位法向矢量
16.6.4获取点的函数
在计算器中可使用如下各种函数来获取一个点,如表16-5所示。
表16-5获取点函数一览表
函数
说明
cur
使用定点设备获取点
@
获得最后一个指定点
Pld(p1,p2,dist)
计算通过点p1和p2的直线上的一点,参数dist定义该点到点p1的距离
plt(p1,p2,t)
计算通过点p1和p2的直线上的一点,参数t为该点到p1点距离与该点到p2点距离的比值
rot(p,origin,ang)
绕经过点origin的Z轴旋转点p,转角为ang时所得到的点
rot(p,AxP1,AxP2,ang)
[color=#FFFFFF']
以直线(AxP1,AxP2)为轴旋转点p,转角为ang时所得到的点
ill(p1,p2,p3,p4)
计算直线(p1,p2)和(p3,p4)的交点
ilp(p1,p2,p3,p4,p5)
计算直线(p1,p2)和平面(p3,p4,p5)的交点
w2u(p1)
[color=#FFFFFF']
将世界坐标系中的点p1转换到当前用户坐标系中
u2w(p1)
将当前用户坐标系中的点p1转换到世界坐标系中
此外,还可以在计算器中使用AutoCAD的点捕捉模式来获取点,如表16-6所示。
表16-6计算器中可用的捕捉模式
缩写
捕捉模式
[color=#FFFFFF']
END
[color=#FFFFFF']
ENDPOINT(端点)
[color=#FFFFFF']
INS
[color=#FFFFFF']
INSERT(插入点)
INT
INTERSECTION(插入点)
MID
MIDPOINT(中点)
CEN
CENTER(圆心)
NEA
NEAREST(最近点)
NOD
NODE(节点)
QUA
QUADRANT(象限点)
PER
[color=#FFFFFF']
PERPENDICULAR(垂足)
TAN
TANGENT(切点)
16.6.5点过滤函数
在计算器中可使用点过滤函数来获取点的各个分量,如表16-7所示。
表16-7点过滤函数
函数
说明
[color=#FFFFFF']
xyof(p1)
获取点p1的X、Y分量,Z分量设置为0.0
xzof(p1)
获取点p1的X、Z分量,Y分量设置为0.0
yzof(p1)
[color=#FFFFFF']
获取点p1的Y、Z分量,X分量设置为0.0
xof(p1)
[color=#FFFFFF']
获取点p1的X分量,Y、Z分量设置为0.0
[color=#FFFFFF']
yof(p1)
获取点p1的Y分量,X、Z分量设置为0.0
[color=#FFFFFF']
zof(p1)
获取点p1的Z分量,X、Y分量设置为0.0
rxof(p1)
获取点p1的X分量
ryof(p1)
获取点p1的Y分量
[color=#FFFFFF']
rzof(p1)
获取点p1的Z分量
[color=#FFFFFF']
16.6.6计算测量值函数
在计算器中可使用如下函数的来计算测量值,如表16-8所示。
表16-8计算测量值的函数
函数
[color=#FFFFFF']
说明
dist(p1,p2)
[color=#FFFFFF']
确定两点p1和p2之间的距离。此函数相当于矢量表达式abs(p1-p2)
[color=#FFFFFF']
dpl(p,p1,p2)
[color=#FFFFFF']
确定点p到直线(p1,p2)的最短距离
dpp(p,p1,p2,p3)
[color=#FFFFFF']
确定点p到平面(p1,p2,p3)的距离
表16-8计算测量值的函数
函数
[color=#FFFFFF']
说明
dist(p1,p2)
确定两点p1和p2之间的距离。此函数相当于矢量表达式abs(p1-p2)
rad
确定选定
对象的半径。对象可以是圆、圆弧或二维多段线的圆弧段
ang(v)
确定X轴和矢量v之间的夹角。矢量v被当作是二维的,投影在当前用户坐标系的XY平面上
[color=#FFFFFF']
ang(p1,p2)
确定X轴和直线(p1,p2)(方向是从p1到p2)之间的夹角。点被认为是二维的,投影在当前用户坐标系的XY平面上
ang(apex,p1,p2)
[color=#FFFFFF']
确定直线(apex,p1)和(apex,p2)之间的夹角。点被认为是二维的,投影在当前用户坐标系的XY平面上
ang(apex,p1,p2,p)
确定直线(apex,p1)和(apex,p2)之间的夹角。直线被认为是三维的。最后一个参数(点p)用来定义角度的方向。此角度以顶点apex到点p的直线为轴按逆时针度量
cvunit(值,原测量单位,新测量单位)
AutoLISP函数cvunit将数字或点从一种测量单位转换为另一种测量单位。关于可转换的测量单位列表,请参见Support/acad.unt文件
16.6.7使用变量
几何计算器允许在数学表达式中使用AutoLISP变量,也可以用计算器为一个AutoLISP变量赋值,该变量可以是整数、实数或一个2D或3D点。
此外,几何计算器也可以通过函数getvar(变量名)来获得AutoCAD
系统变量的值。
[color=#FFFFFF']