|
|

楼主 |
发表于 2006-10-26 23:46
|
显示全部楼层
CAD中CAL命令的用法
原帖由 chaifenggui 于 2006-10-26 04:02 发表- Z* I5 t7 w9 C' V/ H- E: R2 k
请问斑竹:7 V* Q/ Q" i, I- P2 R5 J( C3 w
那里有关于表达式(CAL)的资料可以供参考学习? 6 `% P8 e3 _& _" y2 V
3 ]% [4 ]" y) E, K, O
我在网上掏来一篇,不知对你是否有用。(如有错漏之处,请指出,谢谢!)
1 c6 i2 z. N) z, m: C1 s( S; H& W
& ]- r4 Q. q% x2 m K4 x1 }. e在AutocAD中,CAL命令可以作为透明命令使用,并目将计算的结果直接作为命令的参数使用。更重要的一点是,几何图形计算器提供了一些用于几何运算的函数,并且可以相对象捕捉结合使用,大大加强了它的辅助绘图功能。掌握它的使用可以大大提升我们在AutoCAD中的工作效率。下面我们就通过5个典型的实例来说明几何计算器的基本应用。" T6 m# s1 J2 N+ }
, v0 f( m6 q0 a9 i+ G* r( A! O2 M: A第一招:根据已知点计算点的距离。
* n* F _+ n& d2 M) q m" Z: Y9 h要绘制一个圆,圆心相对于点(10,20,0)坐标是(30<60),半径与点(20,20,O)到点(40,40,O)的距离相同,可以使用下面的方法绘制:8 w: L8 }- o" S7 v( ~
命令:8 {3 c$ s. R# F2 {
circle指定圆或[三点(3P)/两点(2 P)/,相切、相切、半径(T)]:'cal5 ^, ~6 T5 ~) Z. a; F* L
>>表达式:[10,20,0]+[30<60]: X) Y( y5 K9 Y# I+ z
(25 .0, 45. 9808,0)
6 q: ^2 ^6 l: ?指定圆的半径或[直径(D)】:'cal/ X% F8 Y- W5 R! M$ D
>>表达式:dist([20,20,0],[140,40,0])8 w; Z) M/ t( P' V
28. 2843
8 T; n2 {- `$ A, G7 {. }上而的例子中,输入“’Cal”来透明地执行cal命令,并将表达式的值作为参数提供给命令。【x,y,z】用来表示一个点,dist(pt1,pt2)用来计算两个点之间的距离。, P; G; b9 W# \% z5 H% @. |* @
- ]% t( {2 }6 o3 k' e
第二招:获取拾取位置的偏移点。
5 d( K4 ^! o8 v& h只有和对象捕捉相结合,才能体现出几何计算器的强大功能,因此后面的几个实例均要和对象捕捉结合起来完成某项任务。如果需要将拾取点右下侧的某个位置作为圆心.创建一个圆.就可以按照下面的提示进行操作:
- X; t. i$ l# Y+ c- W# G: j命令:
2 e. W" q. g* L$ [$ Kcirck指定圆的圆心或[三点(3PJ/两点(2P)/相切、相切、半径(T):]'cal6 ^4 }; [0 l- j
>>表达式圳r+『20,3 ol+ U9 v, l" i7 l8 R$ h$ b4 q+ v
>>输入点: 拾取已知点
" v$ j* E3 z0 q. f. l(109 . 58 471 158 0.0)7 j+ C1 p; a" A6 ~) C% F
指定圆的半径或[直径(D)]<203 2338>:60! Q' Z0 e- V% I4 n/ W4 K' @
完成操作后,所得圆的圆心相对于拾取点的位置是(20+30)。
0 q) C2 M+ q) R. m# R: a' A, ]3 g' M$ A
第三招:获得两点的中点。
0 h g' P! q2 m要获得直线AB的中点P与圆心O之间连线的中点,就可以执行下而的操作:
4 n6 J: r5 a T- h命令:_poInt
" |9 L8 g3 T7 Q4 u2 m: r当前点模式:PDMODE=0 PDSIzE=O O000
. A) L( q' C5 M2 G) T指定点:’cal. z/ E3 b2 U0 V' j* _
>>表达式:(cen+mid)/2
8 s: N7 |, k& Z, O>>选择图元用于CEN捕捉:选择圆- j5 o5 b7 Z. d2 i1 q4 A
>>选择图元用于MID捕捉:选择直线AB的中点P9 Z# B; q2 T, |0 k
(754. 814 602. 811 0. 0)
8 v+ X" D. B! p. W其他的捕捉模式如end、int和tan等均可以在CAL函数的表达式中使用,这样就能使用各种实体特征点来获得目标点。如果不使用几何计算,就必须创建辅助线来解决这个问题。
- E* V& B% p% g+ Q. {
5 e% \; n6 R4 F) v5 a) O第四招:确定直线上的任意点: R8 m- L& Z9 x
要获得直线的四等分点,可以使用下面的操作:
6 I7 \0 E2 A/ `! o( [; w命令: P9 Y- W# A& f$ S8 j
point
$ ?5 b4 v0 C5 z0 W当前点模式:PDMODE=O PDSIZE=0 .0000" J' ~2 i7 e2 A. ^' @4 {3 U
指定点’cal2 u2 a( h8 J- E; p. F, w0 |+ S
>>表达式:plt(end,end,1/4)
+ T$ }% m& [( ~>>选择图元用于END捕捉:拾取直线的第一点
/ ^ [! z. I; }3 ^>>选择图元用于END捕捉:拾取直线的第二点# \8 F) @$ }2 q. d7 h+ v f
(600.073 472.711 0.0)$ E! I% ]" R5 S/ V ^+ M
上面的操作能够获得距直线第点长度为该直线总长. q- z; @& p8 F" L8 G
度1/4的一点,如果用表达式“plt(end,end,3/4)”代替“plt(end,end.1/4)则能够获得距直线第一点长度为该直线总长度3/4的一点。
5 E7 t) L. Q. o- _要获得直线上距一点长度为20的点,可以使用下面的操作:% A+ X' ? j- T3 S
命令:
1 a% z. h; F3 ?- \" Y* n/ Mpoint
. `7 H4 B; z7 j0 E Y当前点模式:PDMODE=O PDSIZE=0.0000
7 z1 c' e/ {& t: w2 M, ^ N指定点:'cal' K/ h3 _% g- I) I! B
>>表达式:pld(end,end,20)2 m( @) E, w I" j+ W6 _
>>选择图元用于END捕捉:拾取直线的第‘点
J; ]8 P- }- F, L) ~7 l>>选择罔元用于END捕捉:拾取直线的第二点
! G7 l# e1 l* [' g6 {(524.438 426.591 0. 0)
& X& M* i8 j f上面的操作.无论直线是否存在,都可以执行。这里所说的直线,仅代表AutocAD根据拾取的两点所构造的虚拟直线。
+ f$ \) ?: a8 _% @" ?, }+ j上面的表达式中两函数的含义为:! Q' _6 K& b, ~+ u
pld(p1,p2,dist):计算通过点pl和p2的直线上的一个点。
" [6 H- T# O9 ^! C- G: O8 U! L参数dist定义该点到点p1的距离。
3 Z3 U+ X$ k* g1 lplt(p1,p2,t):计算通过点p1和p2的直线上的一个点。参数t定义该点在直线上的以参数表示的位置。
+ q1 b. {2 w2 r2 h ?7 \1 O% ~ a
9 w( l5 {+ F' Y& ~第五招:确定过一点直线的垂线
' p( q8 U0 P S* o要确定过某一条直线t”点的垂线,可以采用下面的操作:
1 C' J- X- W# v8 {) ~, D4 ]命令: LINE指定第一点:'cal
+ j/ D- x! S; _/ m% G0 X! ^>>表达式:mid+10*nee0 y4 y; F2 `5 J2 V
>>选择图元用于MID捕捉:拾取已知的直线
$ \( ?2 @+ L2 V>>选择一个端点给NEE:拾取直线的第一个端点
u; B& B E9 F3 L( h( W2 B% I2 V>>选择下一个端点给NEE:拾取直线的第二个端点4 _8 r. v( x; W4 h+ w+ ?7 I
(639.215 229.744 0.0)
. f' s4 F9 i/ C& Y" V% ?* |, h8 E6 l指定下一点或[放弃(u)]:拾取直线的中点; R) L) z/ }! W. l5 @
其中,nee函数是nor(end,end)的缩写,用于确定XY平面内的单位矢量,与两个端点连线垂直。nor(p1,p2)函数用来确定直线P1、p2(由点p1、p2所确定的直线)的二维单位法向矢量,该直线的方向为从p1指向p2。得出的法向矢量的方向为指向原直线(p1、p2)的左边。 |
|