命令'CAL,右键菜单选择“快速计算器”或CTRL+8都可以打开计算器。 使用 CAL 命令,用户可以: 一.)获取点 1.使用光标获取点 用 cur 函数。程序会提示用户指定点并使用当前的 UCS 点的坐标值。cur 函数用于设置系统变量 lastpoint的值。 2.获取交点 ille↔ill(p1,p2,p3,p4) 确定两条直线 (p1、p2) 和 (p3、p4) 的交点。所有点都被认为是三维点。 ilp(p1,p2,p3,p4,p5) 确定直线(通过 p1、p2)和平面(通过三点 p3、p4、p5)的交点。 3.计算直线上的点 ①. 在两实体间确定中点表达式(end+end)/2。也可用mtp成m2p,需捕捉中点所在的两个点来确定中点。 快捷函数mee↔(end,end)/2两端点的中点。 ②.确定一条直线上的任意等分等距点 快捷函数pltee(t)↔plt(P1,P2,t)由两端点确定的直线上某一参数化位置的点。(divide定数等分确定多点。) 参数 t 定义点在直线上的参数化位置。 如果 t=0,则所求点为 p1 如果 t=0.5,则所求点是 p1 和 p2 的中点 如果 t=1,则所求点为 p2 快捷函数pldee(d)↔pld(P1,P2,dist)由两端点确定的直线上某一距离处的点。(measure定距等分确定多点) 参数 dist 定义该点到点 p1 的距离。 4.获取上一个指定点? 在表达式中使用“@+”字符可获得上一个点的坐标,如下例所示: 命令: line 指定第一个点: 'cal >> 表达式: cen+[0,1] >> 选择图元用于 CEN 捕捉: 选择圆或圆弧 指定下一点或 [闭合(C)/放弃(U)]: 'cal >> 表达式:@ +3*vec1(cen,cen) 直线的第一点自第一个选定圆的圆心在 Y 轴方向上偏移一个单位。直线的第二点距第一点三个单位。直线的方向是从第一个选定圆的圆心指向第二个选定圆的圆心。 二.)变量variable 如果在 CAL 命令中输入的 AutoLISP 变量名称中包含具有特殊含义的字符(例如 +、-、* 或 /),请用单引号 (') 将变量名称括起来,例如:'number-of-holes' 1.将对象捕捉作为表达式中的变量 ①.使用相对坐标来确定点 end+[2,3]作点和点的相加运算,在端点上加一个相对坐标偏移。 这样的点也可以用跟踪track(tk)的捕捉方式来获取。需确定第一追踪点,相当于上面的end。 2、给 AutoLISP 变量赋值 要给 AutoLISP 变量赋值, 变量名=表达式 3.在计算中使用系统变量 语法为:getvar( variable_name ) 下例使用 getvar 获得当前视口中视图的圆心。getvar(viewctr) 使用这种方法还可以访问用户系统变量 USERI1-5 和 USERR1-5。例如,要检索存储在 USERR2 中的值,可输入以下内容: getvar(userr2) 三.)矢量vector 1.过滤矢量中的 X、Y 和 Z 分量 xyof(P1) 点的x和y分量;z分量设定为0.0 xzof(P1) 点的x和z分量;y分量设定为0.0 yzof(P1) 点的y和z分量;x分量设定为0.0 xof(P1) 点的x分量;y和z分量设定为0.0 yof(P1) 点的y分量;x和z分量设定为0.0 zof(P1) 点的z分量;x和y分量设定为0.0 rxof(P1) 点的x的分量 ryof(P1) 点的y的分量 rzof(P1) 点的z的分量 2.计算两点的矢量 快捷函数vee↔vec(p1,p2)计算从点 p1 到点 p2 的矢量平移。 快捷函数vee1↔vec1(p1,p2)计算从点 p1 到点 p2 的单位矢量方向。 L*vec1(P1,P2)确定长度L在从点P1到点P2方向上的矢量。 a+[5<20]确定从点a以20度角偏移5个单位后得到的点b。注意:[5<20]是以极坐标表示的矢量。 a+v确定从点a平移矢量v后得到的点b。 3.计算法向矢量:矢量定义法线的方向而不是空间中的位置。可将法向矢量加到一个点上以获得另一个点。(即与直线或平面垂直的矢量) nor 确定选定的圆、圆弧或多段线圆弧段的三维单位法向矢量。此法向矢量是选定对象的对象坐标系 (OCS) 的 Z 轴。 nor(v) 确定矢量 v 的二维单位法向矢量。这两个矢量都被认为是二维的,且投影在当前 UCS 的 XY 平面上。得出的法向矢量的方向指向原矢量 v 的左边。 快捷函数nee↔nor(P1,P2) 确定直线 p1,p2 的二维单位(xy平面)法向矢量。该直线的方向为从 p1 指向 p2。得出的法向矢量的方向为指向原直线 (p1、p2) 的左边。 nor(p1,p2,p3) 确定平面(由 p1、p2 和 p3 三点定义)的三维单位法向矢量。法向矢量的方向与给定三点的逆时针方向垂直。 例①过一条斜线上的已知nod点作斜线的垂线,也可用递延垂足作垂线。 画线命令在斜线上确定垂线的第一个点即nod垂足,确定垂线第二点时输入'cal,输nod+5*nee (5是垂线的长度,根据提示捕捉垂点nod点和直线的两个端点获取垂直方向nee(改变光标捕捉直线端点的顺序,可在直线的另一侧画垂线。) 例②作和一斜线相切的圆; cur+3*nee (cur表示用光标在屏幕上拾取一个点作为圆和直线的切点,nee函数用来计算斜线的两端点矢量的法线,也可以简单理解为方向,(改变光标捕捉斜线端点的顺序,也可在直线的另一侧画圆。)3是圆的半径,输入圆半径长度3则正相切) 例③.过圆和一直线的交点int作圆的切线 int+3*nor(cen,int) 画线命令点交点确定切线第一个点,确定第二个切线点时输入'cal,输入 int+3*nor(cen,int)(nor是计算圆心与交点两个点的法线(垂直)方向。(改变光标捕捉直线端点的顺序,也可在直线的另一侧画切线。)根据提示点交点,圆形,交点即可作出长度为3的切线。 4.计算矢量的长度 abs(v)计算矢量 v 的长度,结果为非负实数。在球坐标(距离<角度<角度)中,距离即为矢量长度。下例计算矢量 [1,2,3] 的长度:abs([1,2,3]) 四.)其他 ⑴设定英尺和英寸的格式: 英尺'-英寸"、英尺' 英寸" 或英尺'英寸" 可以用短划线或空格将英尺、英寸和分数部分的英寸隔开,也可以不隔开。 警告使用英制单位时,CAL 将减号或破折号 (-) 当作单位分隔符而不是减法运算符。要指定减法运算,应在减号前面或后面至少添加一个空格。例如,要从 5' 中减去 9”,输入 5' -9” 而不是 5'-9”。 ⑵设定角度的格式: 角度的默认单位是十进制度数。请按以下格式输入角度: d ' ” 当输入的角度小于 1 度时(只有分和秒),必须输入 0d。可以省略零分和零秒。 要按弧度输入角度,请在输入的数字后面加上 r。 要按百分度输入角度,请在输入的数字后面加上 g。 以下是各种角度输入法的样例: 5d10'20" 0d10'20" 124.6r 14g 以任何格式输入的角度都会转换成十进制角度。 Pi 弧度等于 180 度,100g 等于 90 度。 ⑶计算距离 dee↔dist(p1,p2)确定点 p1 和 p2 之间的距离。此函数相当于矢量表达式 abs( p1 - p2 )。 dpl(p,p1,p2)确定点 p 到直线(通过点 p1 和 p2)的最短距离。 dpp(p,p1,p2,p3)确定点 p 到平面(由三点 p1、p2、p3 定义)的距离。 下例返回两个选定对象的中心之间距离的一半:dist(cen,cen)/2 下例确定了点 [3,2,4] 与由三个选定端点定义的平面之间的距离: dpp([3,2,4],end, end, end) ⑷获取半径 快捷函数rad 可以确定圆、圆弧或二维多段线圆弧对象的半径。 ⑸获取角度 ang 函数可以确定两条直线之间的夹角。角度按逆时针方向测量,二维情况下相对于 X 轴测量,三 维情况下则相对于用户指定的轴测量。 ang(v) 确定 X 轴和矢量 v 之间的角度。矢量 v 被认为是二维的,且投影在当前 UCS的 XY 平面上。 ang(p1,p2) 确定 X 轴和直线(通过 p1、p2,方向为从 p1 到 p2)的夹角。该点被认为是二维的,且投影在当前 UCS 的 XY 平面上。 ang(apex,p1,p2) 确定直线 (apex,p1) 和 (apex,p2) 的夹角。该点被认为是二维的,且投影在当前 UCS 的 XY 平面上。apex是顶点。 ang(apex,p1,p2,p) 确定直线 (apex,p1) 和 (apex,p2) 的夹角。直线被认为是三维的。最后一个参数(点 p)用来定义角度的方向。此角度以顶点到点 p 的直线为轴按逆时针方向测量。 ⑹绕坐标轴旋转点 rot 函数绕坐标轴旋转点并返回旋转得到的点。 rot(p,origin,ang)以经过原点的 Z 轴为轴,旋转点 p,旋转角度为 ang 。 rot(p,AxP1,AxP2,ang)以经过点 AxP1 和点 AxP2 的直线为轴旋转点 p,转角为 ang轴的方向为从第一个点到第二个点。 ⑺在 UCS 和 WCS 之间转换点 通常程序假定所有坐标都是相对于当前 UCS 的。可以使用下列函数在 UCS 和 WCS 之间转换点的坐标值。 w2u(p1) 将以 WCS 表示的点 p1 转换到当前 UCS 中。 u2w(p1) 将以当前 UCS 表示的点 p1 转换到 WCS 中。 可使用 w2u 查找用当前的 UCS 表示的 WCS 的原点:w2u([0,0,0]) ⑻转换测量单位。 关于可转换的单位列表,请参见 acad.unt 文件(适用于 AutoCAD)或 acadlt.unt 文件(适用于 AutoCAD LT)。 语法为:cvunit ( value, from_unit, to_unit ) 下例将值 1 从英尺转换为厘米: cvunit(1,inch,cm) |
|