电脑技术学习

几何计算器

dn001
几何计算器(GeometryCalculator)是集成在AutoCAD中的一个三维计算程序,可以计算矢量表达式(点、矢量和数值的组合)、实数和整数表达式。在计算中可以使用标准的数学函数,以及用于计算点、矢量和AutoCAD几何图形的专门函数。用户可直接在命令行调用“cal”命令,或在其他命令执行过程中透明地调用该命令('cal)来启动该计算程序。其计算结果可作为当前AutoCAD提示的输入或用于为一个AutoLISP变量赋值。
16.6.1计算表达式
在几何计算器中可使用算术表达式和矢量表达式两种计算表达式。算术表达式可以是整数、实数和具有数值操作的函数构成,并可使用算术运算符进行连接。可用的算术运算符如表16-1所示。
表16-1算术运算符

运算符

运算

,-

加,减

*,/

乘,除

^

指数计算

()

将表达式编组

矢量表达式可以由点集、矢量、数字和矢量运算符所组成的函数来构成,并可使用矢量运算符进行连接。可用的矢量运算符如表16-2所示。
表16-2矢量运算符

运算符

运算

,-

矢量加,减

[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

&

矢量的矢量积

[a,b,c]&[x,y,z]=[(b*z)-(c*y),(c*x)-(a*z),(a*y)-(b*x)]

()

将表达式编组

在对表达式进行计算时,将遵照标准数学计算的优先级规则。
16.6.2标准数值函数
可以在计算器中使用的数值函数详见表16-3。
表16-3数值函数一览表

函数

说明

sin(角度值)

正弦函数

cos(角度值)

余弦函数

tang(角度值)

正切函数

Asin(实数)

反正弦函数

Acos(实数)

反余弦函数

Atan(实数)

反正切函数

ln(实数)

自然对数函数

log(实数)

以1为底的对数函数

exp(实数)

自然指数函数

exp10(实数)

10为底的指数函数

sqr(实数)

平方函数

sqrt(实数)

平方根函数

abs(实数)

绝对值函数

round(实数)

圆整函数

Trunc(实数)

取整函数

r2d(角度)

将角度从弧度转换成度

表16-3数值函数一览表

函数

说明

d2r(角度)

将角度从度转换成弧度

pi

常量π

16.6.3矢量函数
在计算器中可使用如下各种矢量函数,如表16-4所示。
表16-4矢量函数一览表

函数

说明

vec(p1,p2)

计算从点p1到点p2的矢量

vec1(p1,p2)

计算从点p1到点p2的单位矢量

abs(v)

计算矢量v的长度

nor

确定选定的圆、圆弧或多段线圆弧段的三维单位法向矢量

nor(v)

确定矢量v的二维单位法向矢量

nor(p1,p2)

确定直线(p1,p2)的二维单位法向矢量

nor(p1,p2,p3)

确定平面(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)

以直线(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)

将世界坐标系中的点p1转换到当前用户坐标系中

u2w(p1)

将当前用户坐标系中的点p1转换到世界坐标系中

此外,还可以在计算器中使用AutoCAD的点捕捉模式来获取点,如表16-6所示。
表16-6计算器中可用的捕捉模式

缩写

捕捉模式

END

ENDPOINT(端点)

INS

INSERT(插入点)

INT

INTERSECTION(插入点)

MID

MIDPOINT(中点)

CEN

CENTER(圆心)

NEA

NEAREST(最近点)

NOD

NODE(节点)

QUA

QUADRANT(象限点)

PER

PERPENDICULAR(垂足)

TAN

TANGENT(切点)

16.6.5点过滤函数
在计算器中可使用点过滤函数来获取点的各个分量,如表16-7所示。
表16-7点过滤函数

函数

说明

xyof(p1)

获取点p1的X、Y分量,Z分量设置为0.0

xzof(p1)

获取点p1的X、Z分量,Y分量设置为0.0

yzof(p1)

获取点p1的Y、Z分量,X分量设置为0.0

xof(p1)

获取点p1的X分量,Y、Z分量设置为0.0

yof(p1)

获取点p1的Y分量,X、Z分量设置为0.0

zof(p1)

获取点p1的Z分量,X、Y分量设置为0.0

rxof(p1)

获取点p1的X分量

ryof(p1)

获取点p1的Y分量

rzof(p1)

获取点p1的Z分量

16.6.6计算测量值函数
在计算器中可使用如下函数的来计算测量值,如表16-8所示。
表16-8计算测量值的函数

函数

说明

dist(p1,p2)

确定两点p1和p2之间的距离。此函数相当于矢量表达式abs(p1-p2)

dpl(p,p1,p2)

确定点p到直线(p1,p2)的最短距离

dpp(p,p1,p2,p3)

确定点p到平面(p1,p2,p3)的距离

表16-8计算测量值的函数

函数

说明

dist(p1,p2)

确定两点p1和p2之间的距离。此函数相当于矢量表达式abs(p1-p2)

rad

确定选定对象的半径。对象可以是圆、圆弧或二维多段线的圆弧段

ang(v)

确定X轴和矢量v之间的夹角。矢量v被当作是二维的,投影在当前用户坐标系的XY平面上

ang(p1,p2)

确定X轴和直线(p1,p2)(方向是从p1到p2)之间的夹角。点被认为是二维的,投影在当前用户坐标系的XY平面上

ang(apex,p1,p2)

确定直线(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系统变量的值。