几何计算器
几何计算器(Geometry Calculator)是集成在AutoCAD中的一个三维计算程序,可以计算矢量表达式(点、矢量和数值的组合)、实数和整数表达式。在计算中可以使用标准的数学函数,以及用于计算点、矢量和AutoCAD几何图形的专门函数。用户可直接在命令行调用“cal”命令,或在其他命令执行过程中透明地调用该命令('cal)来启动该计算程序。其计算结果可作为当前AutoCAD提示的输入或用于为一个AutoLISP变量赋值。
16.6.1 计算表达式
在几何计算器中可使用算术表达式和矢量表达式两种计算表达式。算术表达式可以是整数、实数和具有数值操作的函数构成,并可使用算术运算符进行连接。可用的算术运算符如表16-1所示。
表16-1 算术运算符
[color=#FFFFFF'][/color]
运算符
运算
, -
[color=#FFFFFF'][/color]
加,减
[color=#FFFFFF'][/color]
* , /
乘,除
^
指数计算
[color=#FFFFFF'][/color]
( )
将表达式编组
矢量表达式可以由点集、矢量、数字和矢量运算符所组成的函数来构成,并可使用矢量运算符进行连接。可用的矢量运算符如表16-2所示。
表16-2 矢量运算符
运算符
[color=#FFFFFF'][/color]
运算
, -
矢量加,减
[a,b,c] [x,y,z]=[a x,b y,c z]
*,/
矢量与实数相乘除
a*[x,y,z]=[a*x,a*y,a*z]
*
矢量的点积
[a,b,c]*[x,y,z]=ax by cz
&;amp;
矢量的矢量积
[color=#FFFFFF'][/color]
[a,b,c]&;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'][/color]
说明
sin(角度值)
[color=#FFFFFF'][/color]
正弦函数
[color=#FFFFFF'][/color]
cos(角度值)
余弦函数
[color=#FFFFFF'][/color]
tang(角度值)
正切函数
Asin(实数)
反正弦函数
[color=#FFFFFF'][/color]
Acos(实数)
反余弦函数
Atan(实数)
反正切函数
[color=#FFFFFF'][/color]
ln(实数)
自然对数函数
log(实数)
以1 为底的对数函数
[color=#FFFFFF'][/color]
exp(实数)
自然指数函数
exp10(实数)
10为底的指数函数
sqr(实数)
平方函数
[color=#FFFFFF'][/color]
sqrt(实数)
平方根函数
[color=#FFFFFF'][/color]
abs(实数)
绝对值函数
[color=#FFFFFF'][/color]
round(实数)
圆整函数
Trunc(实数)
[color=#FFFFFF'][/color]
取整函数
r2d(角度)
[color=#FFFFFF'][/color]
将角度从弧度转换成度
表16-3 数值函数一览表
函数
说明
d2r(角度)
将角度从度转换成弧度
pi
常量&;#61500;/P>
16.6.3 矢量函数
在计算器中可使用如下各种矢量函数,如表16-4所示。
表16-4 矢量函数一览表
[color=#FFFFFF'][/color]
函数
说明
vec(p1,p2)
计算从点p1到点p2的矢量
vec1(p1,p2)
计算从点p1到点p2的单位矢量
[color=#FFFFFF'][/color]
abs(v)
[color=#FFFFFF'][/color]
计算矢量v的长度
[color=#FFFFFF'][/color]
nor
确定选定的圆、圆弧或多段线圆弧段的三维单位法向矢量
nor(v)
确定矢量v的二维单位法向矢量
nor(p1,p2)
确定直线(p1,p2)的二维单位法向矢量
nor(p1,p2,p3)
[color=#FFFFFF'][/color]
确定平面(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'][/color]
以直线(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'][/color]
将世界坐标系中的点p1转换到当前用户坐标系中
u2w(p1)
将当前用户坐标系中的点p1转换到世界坐标系中
此外,还可以在计算器中使用AutoCAD的点捕捉模式来获取点,如表16-6所示。
表16-6 计算器中可用的捕捉模式
缩写
捕捉模式
[color=#FFFFFF'][/color]
END
[color=#FFFFFF'][/color]
ENDPOINT(端点)
[color=#FFFFFF'][/color]
INS
[color=#FFFFFF'][/color]
INSERT(插入点)
INT
INTERSECTION(插入点)
MID
MIDPOINT(中点)
CEN
CENTER(圆心)
NEA
NEAREST(最近点)
NOD
NODE(节点)
QUA
QUADRANT(象限点)
PER
[color=#FFFFFF'][/color]
PERPENDICULAR(垂足)
TAN
TANGENT(切点)
16.6.5 点过滤函数
在计算器中可使用点过滤函数来获取点的各个分量,如表16-7所示。
表16-7 点过滤函数
函数
说明
[color=#FFFFFF'][/color]
xyof(p1)
获取点p1的X、Y分量,Z分量设置为0.0
xzof(p1)
获取点p1的X、Z分量,Y分量设置为0.0
yzof(p1)
[color=#FFFFFF'][/color]
获取点p1的Y、Z分量,X分量设置为0.0
xof(p1)
[color=#FFFFFF'][/color]
获取点p1的X分量,Y、Z分量设置为0.0
[color=#FFFFFF'][/color]
yof(p1)
获取点p1的Y分量,X、Z分量设置为0.0
[color=#FFFFFF'][/color]
zof(p1)
获取点p1的Z分量,X、Y分量设置为0.0
rxof(p1)
获取点p1的X分量
ryof(p1)
获取点p1的Y分量
[color=#FFFFFF'][/color]
rzof(p1)
获取点p1的Z分量
[color=#FFFFFF'][/color]
16.6.6 计算测量值函数
在计算器中可使用如下函数的来计算测量值,如表16-8所示。
表16-8 计算测量值的函数
函数
[color=#FFFFFF'][/color]
说明
dist(p1,p2)
[color=#FFFFFF'][/color]
确定两点 p1 和 p2 之间的距离。此函数相当于矢量表达式 abs(p1-p2)
[color=#FFFFFF'][/color]
dpl(p,p1,p2)
[color=#FFFFFF'][/color]
确定点 p 到直线 (p1,p2) 的最短距离
dpp(p,p1,p2,p3)
[color=#FFFFFF'][/color]
确定点 p 到平面 (p1,p2,p3) 的距离
表16-8 计算测量值的函数
函数
[color=#FFFFFF'][/color]
说明
dist(p1,p2)
确定两点 p1 和 p2 之间的距离。此函数相当于矢量表达式 abs(p1 - p2)
rad
确定选定对象的半径。对象可以是圆、圆弧或二维多段线的圆弧段
ang(v)
确定 X 轴和矢量 v 之间的夹角。矢量 v 被当作是二维的,投影在当前用户坐标系的 XY 平面上
[color=#FFFFFF'][/color]
ang(p1,p2)
确定 X 轴和直线 (p1,p2)(方向是从 p1 到 p2)之间的夹角。点被认为是二维的,投影在当前用户坐标系的 XY 平面上
ang(apex,p1,p2)
[color=#FFFFFF'][/color]
确定直线 (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'][/color]