
给大家介绍一种利用CAL表达式配合捕捉设置精确定位的方法,几何计算器是AutoCAD提供的一个十分有用的工具。和普通的计算器一样,几何计算器可以完成加、减、乘、除的运算以及三角函数的运算,这使得用户在使用AutoCAD绘图过程中,可以在不中断命令的情况下进行算术运算,计算的结果可直接作为命令的参数使用。和一般计算器不同的是,AutoCAD几何计算器还可以做几何运算。它既可直接对各坐标点的坐标值进行运算,也可以使用AutoCAD的Osnap模式捕捉屏幕上的坐标点来参与运算,还可以自动计算几何坐标点。当然,AutoCAD几何计算器还有其它的功能,这里且不作讨论。
在使用AutoCAD绘图中,常常需要确定一些无法直接给出坐标的点。例如,任意两点间的中点,直线上任意分点等。这就是CAD绘图的定位问题。实际上,在许多计算机绘图场合,定位是否方便和精确往往直接影响作图的效率和速度。因此,应该充分利用AutoCAD几何计算器的几何运算功能,来实现 AutoCAD绘图中的快速定位。
在命令提示Command:下键入CAL,即可启动AutoCAD几何计算器。CAL也是一个透明命令,可以在其它的命令下随时启动几何计算器。此外,还可以在AutoLISP程序中使用CAL命令。
下面是利用AutoCAD几何计算器的几何运算功能实现在AutoCAD绘图中,经常遇到的几个快速定位的实例。
1.用相对坐标来确定点
在绘图中,经常要根据某一实体的位置画出另一实体。如画一直线,该直线的起点为另一直线的端点,位移(3,4)后的点,操作过程如下:
Command: Line;
From Point: 'Cal(启动几何计算器);
>>Expression: End+[3,4](输入表达式,这里计算器把Osnap的End模式作为表达式参数来参与运算,作点和点的相加运算);
>>Select Entity For END Snap:(捕捉端点);
To Point:……。
其它的目标捕捉模式,如Int、Cen、Ins 、Tan等等均可在几何计算表达式中使用。如果将Cur作为表达式参数,则可以在计算机要求输入点时,再设定Osnap方式来捕捉所需的点。
2.确定数个点间的中心点
将各点坐标相加再除以点的个数,商即为它们的中心点坐标。操作过程如下:
Command: Line;
From Point: 'Cal;
>>Expression: (Int+ Int+ Int)/3 (输入表达式,这里求三个点间的中心点);
>>Select Entity For Int Snap:(捕捉交点);
>>Select Entity For Int Snap:(捕捉交点);
>>Select Entity For Int Snap:(捕捉交点);
To Point:……。
如果点的个数为2,则上述操作过程所得结果为两点间的中点。
3.确定一条直线上的任意分点和与直线端点定长的点
使用几何计算器提供的Plt和Pld函数可以完成这个操作。函数格式如下:
Plt(p1,p2,t)(求出p1p2直线上的分点。t=0时,该点为p1;t=0.5时,该点为p1p2的中点; t=1时该点为p2);
Pld(p1,p2,dist)(求出p1p2直线上距离p1点长度为dist的点)。
假设我们需要画一条直线,起点为直线ab上分线段ab为1:2的点,终点为直线cd上距离c点长度为5的点。操作过程如下:
Command: Line;
From Point: 'Cal;
>> Expression: Plt(End,End,1/3);
>> Select Entity For End Snap:(捕捉端点a);
>> Select Entity For End Snap:(捕捉端点b后即得到距a点为1/3线段长的点);
To Point: 'Cal;
>> Expression: Pld(End,End,5);
>> Select Entity For End Snap:(捕捉端点c);
>> Select Entity For End Snap:(捕捉端点d后即得到距c点长度为5的点);
To Point:……。
参数t和dist可以为负数,这里不加赘述。
4.作与一斜线相切的圆以及过圆上一点作圆的切线
(1)利用AutoCAD正交模式可容易地画出和垂直线或水平线相切的圆。画一个和斜线相切的圆则需要准确地确定圆心。操作过程如下:
Command: Circle;
3P/2P/TTR/
: 'Cal;
>> Expression: Nea+3*Nee(Nea表示在直线上捕捉一个点作为圆和直线的切点,Nee函数用来计算两端点矢量的法线,3是圆的半径);
>> Select Entity For NEA Snap: (在直线上捕捉一个点作为圆和直线的切点);
>> Select One Endpoint For NEE:(捕捉直线的一个端点);
>> Select Another Endpoint For NEE:(捕捉直线上的另一个端点);
Diameter/: 3(给出圆的半径后即可画出这个圆)。
改变光标捕捉直线两个端点的顺序,则可在直线的另一侧画圆。
(2)假设过圆和一直线的交点作圆的切线,操作过程如下:
Command: Line;
From Point: Int(捕捉交点);
Of
To Point: 'Cal;
>> Expression: Int+3*Nor(Cen,Int);
>> Select Entity For INT Snap:(捕捉交点);
>> Select Entity For CEN Snap:(捕捉圆心);
>> Select Entity For INT Snap:(再次捕捉交点即画出从交点出发长度为3的已知圆的切线);
To Point:……。