|

楼主 |
发表于 2006-10-26 23:46
|
显示全部楼层
CAD中CAL命令的用法
原帖由 chaifenggui 于 2006-10-26 04:02 发表" a. V w+ w3 ^& X( ?
请问斑竹:. b! r; z, k9 P9 G
那里有关于表达式(CAL)的资料可以供参考学习?
- v3 `2 j4 p0 _7 A. o- U! L
4 ]) r9 E: [) Y我在网上掏来一篇,不知对你是否有用。(如有错漏之处,请指出,谢谢!)
- e, U2 W6 p8 q* w8 Q1 p0 O$ J7 j5 y2 i: V' t$ j+ J8 p/ Q
在AutocAD中,CAL命令可以作为透明命令使用,并目将计算的结果直接作为命令的参数使用。更重要的一点是,几何图形计算器提供了一些用于几何运算的函数,并且可以相对象捕捉结合使用,大大加强了它的辅助绘图功能。掌握它的使用可以大大提升我们在AutoCAD中的工作效率。下面我们就通过5个典型的实例来说明几何计算器的基本应用。) ]: w' p" w* d
! d# X3 Q7 `5 a; a$ N$ o( Z2 f, \
第一招:根据已知点计算点的距离。
9 U- C; v+ H. l0 _要绘制一个圆,圆心相对于点(10,20,0)坐标是(30<60),半径与点(20,20,O)到点(40,40,O)的距离相同,可以使用下面的方法绘制:! v8 V+ i$ A* Y/ q% } a
命令:8 k; D j" I0 Q% f9 h: J+ |( V# G4 R
circle指定圆或[三点(3P)/两点(2 P)/,相切、相切、半径(T)]:'cal
: q+ H3 ?! x" f. _9 Z& `>>表达式:[10,20,0]+[30<60]
3 w/ j) t9 E+ ]7 ], {2 p(25 .0, 45. 9808,0)2 T/ r w8 q1 d" W! i s
指定圆的半径或[直径(D)】:'cal
; s0 p; H2 e* _: f8 S( E q>>表达式:dist([20,20,0],[140,40,0])
9 c8 b% A* u: y5 B! M28. 28433 ?3 p6 I4 J- Z6 c* E
上而的例子中,输入“’Cal”来透明地执行cal命令,并将表达式的值作为参数提供给命令。【x,y,z】用来表示一个点,dist(pt1,pt2)用来计算两个点之间的距离。
6 m# ^6 s$ r6 h0 V1 k% Y, G; ?% T
6 F/ f3 R0 [( {" c; q7 o G第二招:获取拾取位置的偏移点。
# W7 x6 a7 j* s只有和对象捕捉相结合,才能体现出几何计算器的强大功能,因此后面的几个实例均要和对象捕捉结合起来完成某项任务。如果需要将拾取点右下侧的某个位置作为圆心.创建一个圆.就可以按照下面的提示进行操作:: q, f7 {7 ]2 }; Q8 ^
命令:( B- Y% y5 q$ ~# b( I: r
circk指定圆的圆心或[三点(3PJ/两点(2P)/相切、相切、半径(T):]'cal
0 c) s0 Y& {5 X K3 G>>表达式圳r+『20,3 ol8 _- W7 m- z: y$ C
>>输入点: 拾取已知点
3 H2 J8 m+ T7 S(109 . 58 471 158 0.0)
' ^( s9 W4 ?5 n4 f* }+ V# m指定圆的半径或[直径(D)]<203 2338>:60
; q0 m2 f- p. H2 t2 |( ]4 M完成操作后,所得圆的圆心相对于拾取点的位置是(20+30)。 ^5 t; p+ W, ~
) V i/ M; X) W9 U1 U
第三招:获得两点的中点。
; A4 q6 J# n, ?7 g要获得直线AB的中点P与圆心O之间连线的中点,就可以执行下而的操作:8 H. E3 I3 C* I( [- e7 t2 D2 J) |
命令:_poInt
, p1 C4 Q- f% h! ?# a当前点模式:PDMODE=0 PDSIzE=O O000
4 D! @' I; o$ d6 a0 x指定点:’cal7 w* p3 G6 w5 B u V$ o, B8 m: v
>>表达式:(cen+mid)/2
+ q6 X: }) X+ q>>选择图元用于CEN捕捉:选择圆5 e5 G: u9 r, Z+ N
>>选择图元用于MID捕捉:选择直线AB的中点P3 O \2 Y: V1 P4 I6 U4 p0 S8 Z
(754. 814 602. 811 0. 0). a9 R- S# ]# r- I) M# i1 Y3 X
其他的捕捉模式如end、int和tan等均可以在CAL函数的表达式中使用,这样就能使用各种实体特征点来获得目标点。如果不使用几何计算,就必须创建辅助线来解决这个问题。. b* D# ^! T+ P$ x
/ w) X! S' N+ |9 k
第四招:确定直线上的任意点; r( m) s- h( ~
要获得直线的四等分点,可以使用下面的操作:6 o/ f6 o# M1 P. T* R
命令:$ }8 D" ?4 l8 r6 `$ J
point! i3 s% W! l6 |% V% P5 o
当前点模式:PDMODE=O PDSIZE=0 .0000% O# x1 g* d8 ?8 i2 ~" r9 H
指定点’cal- i6 X# v) ^# J0 V& f' v o
>>表达式:plt(end,end,1/4)
$ P9 o: [" F* f( q( V>>选择图元用于END捕捉:拾取直线的第一点
5 G" v7 m: u: E s+ H* M>>选择图元用于END捕捉:拾取直线的第二点: V# k% b# i9 w+ J3 S
(600.073 472.711 0.0)
& w+ ~# t! }3 c2 D上面的操作能够获得距直线第点长度为该直线总长" T: a* Y2 Q" M ^2 Y, M6 j
度1/4的一点,如果用表达式“plt(end,end,3/4)”代替“plt(end,end.1/4)则能够获得距直线第一点长度为该直线总长度3/4的一点。
6 _& u2 T: g% h1 n2 R/ \- S: D% z要获得直线上距一点长度为20的点,可以使用下面的操作:/ o9 z/ \6 g: w8 @) t, i
命令:
' u3 |$ P" x; X1 b0 P+ dpoint. r4 z/ e3 v2 B6 I
当前点模式:PDMODE=O PDSIZE=0.0000
5 A# P& q6 z$ Z$ t3 }$ l指定点:'cal
# t4 t2 b* `2 N9 U) Y. x2 a>>表达式:pld(end,end,20)
E- `- m/ l7 G0 v>>选择图元用于END捕捉:拾取直线的第‘点
, x, V, z/ d3 h; h5 P. S>>选择罔元用于END捕捉:拾取直线的第二点
8 u8 M0 W! ^/ L; K(524.438 426.591 0. 0)1 h# W6 S$ E8 i& P! ]
上面的操作.无论直线是否存在,都可以执行。这里所说的直线,仅代表AutocAD根据拾取的两点所构造的虚拟直线。) H6 X/ ^1 ^+ v% B3 `' @. I, K
上面的表达式中两函数的含义为:# _6 i5 e6 B ]+ P0 p e
pld(p1,p2,dist):计算通过点pl和p2的直线上的一个点。
* F W. G; d y9 \- X }7 W2 q参数dist定义该点到点p1的距离。3 x) d- y; N6 N2 ~# S1 j$ @" T
plt(p1,p2,t):计算通过点p1和p2的直线上的一个点。参数t定义该点在直线上的以参数表示的位置。
2 \- x, {! f4 G( v) D$ L* b
( d- W. u- K4 |, g' f第五招:确定过一点直线的垂线, Z" V3 b' p( u# J# O! P1 K
要确定过某一条直线t”点的垂线,可以采用下面的操作:
& f1 m5 U. V+ [6 I$ q/ n命令: LINE指定第一点:'cal1 N1 `: s; h/ R8 _& b, Z+ b$ I
>>表达式:mid+10*nee
5 G$ Y* }, [+ U0 J3 Q9 @$ q>>选择图元用于MID捕捉:拾取已知的直线
7 r6 T" c, R3 f: M2 Y0 L8 _- e>>选择一个端点给NEE:拾取直线的第一个端点" r$ k1 S o+ Y& C) o) Y& y
>>选择下一个端点给NEE:拾取直线的第二个端点4 c9 `$ j7 V6 C
(639.215 229.744 0.0)
6 R; S' |3 v# ^" c指定下一点或[放弃(u)]:拾取直线的中点. ]6 b+ K& W+ h1 [
其中,nee函数是nor(end,end)的缩写,用于确定XY平面内的单位矢量,与两个端点连线垂直。nor(p1,p2)函数用来确定直线P1、p2(由点p1、p2所确定的直线)的二维单位法向矢量,该直线的方向为从p1指向p2。得出的法向矢量的方向为指向原直线(p1、p2)的左边。 |
|