几何计算器 几何计算器(Geometry Calculator)是集成在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系统变量的值。 |