|
楼主 |
发表于 2006-10-26 23:46
|
显示全部楼层
CAD中CAL命令的用法
原帖由 chaifenggui 于 2006-10-26 04:02 发表
) V E1 I9 ~. w) k- K* J: ]请问斑竹:/ Z* d; i: R, @$ A4 g8 e; w
那里有关于表达式(CAL)的资料可以供参考学习?
) i( B0 i0 ]' m; ~
0 M7 I, Q$ v$ ]6 H* t( v" q& x我在网上掏来一篇,不知对你是否有用。(如有错漏之处,请指出,谢谢!)
! I; @* G d+ v7 R
# l8 a, Q; w8 T! K. @6 O在AutocAD中,CAL命令可以作为透明命令使用,并目将计算的结果直接作为命令的参数使用。更重要的一点是,几何图形计算器提供了一些用于几何运算的函数,并且可以相对象捕捉结合使用,大大加强了它的辅助绘图功能。掌握它的使用可以大大提升我们在AutoCAD中的工作效率。下面我们就通过5个典型的实例来说明几何计算器的基本应用。8 L8 H6 {. \- O5 q
! ~2 v: H, C0 ~* a- N第一招:根据已知点计算点的距离。
: D; E5 N5 p- N% m要绘制一个圆,圆心相对于点(10,20,0)坐标是(30<60),半径与点(20,20,O)到点(40,40,O)的距离相同,可以使用下面的方法绘制:
+ C3 _; L% R- |3 Y/ b+ M命令:
0 g2 n# z, U- F) s2 \- h+ Ccircle指定圆或[三点(3P)/两点(2 P)/,相切、相切、半径(T)]:'cal: `& N# I! O! A& H" ]: D: K
>>表达式:[10,20,0]+[30<60]6 `% _( f1 ]0 g, N
(25 .0, 45. 9808,0)0 \' I: C) r: a% T1 I& E- t
指定圆的半径或[直径(D)】:'cal2 ~/ e9 `& g' A9 Z
>>表达式:dist([20,20,0],[140,40,0])4 x2 [ x: \$ H' S/ [
28. 2843
+ E, l) ?$ _- l# Z% a0 Y+ T上而的例子中,输入“’Cal”来透明地执行cal命令,并将表达式的值作为参数提供给命令。【x,y,z】用来表示一个点,dist(pt1,pt2)用来计算两个点之间的距离。" X7 p7 U( h0 }* K2 @
% k, ?% g! L9 Y0 s5 {" {
第二招:获取拾取位置的偏移点。( p9 ^" @+ d% F1 h
只有和对象捕捉相结合,才能体现出几何计算器的强大功能,因此后面的几个实例均要和对象捕捉结合起来完成某项任务。如果需要将拾取点右下侧的某个位置作为圆心.创建一个圆.就可以按照下面的提示进行操作:
2 h3 W" W7 Y% D# E: L( c9 F命令:. X0 Z5 w# l9 E
circk指定圆的圆心或[三点(3PJ/两点(2P)/相切、相切、半径(T):]'cal2 k) ]+ ]$ W% o. H0 \2 B
>>表达式圳r+『20,3 ol
" M c8 j/ S' g, e' u$ Z" m5 h>>输入点: 拾取已知点
" J* s9 b. }& n(109 . 58 471 158 0.0). K8 r% h# g1 d1 B3 w# r9 k- V6 J
指定圆的半径或[直径(D)]<203 2338>:60
/ ~+ j2 e: Z. A! Z4 {1 | ^, q, G完成操作后,所得圆的圆心相对于拾取点的位置是(20+30)。9 G) |& P0 L4 Z E5 ?. ^
8 L* D# v# j' C% [+ |- V1 |% X- a第三招:获得两点的中点。, r% C; W( f' @
要获得直线AB的中点P与圆心O之间连线的中点,就可以执行下而的操作:/ o; x( ]: K% o2 U1 S
命令:_poInt
* G1 X6 a3 l/ m/ Y' [当前点模式:PDMODE=0 PDSIzE=O O0005 b0 w. |. o3 Q5 R# p
指定点:’cal
% c! T; C6 H* Q5 n: D+ n6 M>>表达式:(cen+mid)/2# W; q# h' [& t) F
>>选择图元用于CEN捕捉:选择圆
: }) U1 p P+ p/ x0 D>>选择图元用于MID捕捉:选择直线AB的中点P
* Y% l7 p1 _5 I$ I(754. 814 602. 811 0. 0)' ~ D& G* ^4 o# G" M* x
其他的捕捉模式如end、int和tan等均可以在CAL函数的表达式中使用,这样就能使用各种实体特征点来获得目标点。如果不使用几何计算,就必须创建辅助线来解决这个问题。
& [9 C" L$ K0 Z5 d: i7 O1 H5 L' w$ R- {& I% f
第四招:确定直线上的任意点 ^8 C% e8 |, }) v
要获得直线的四等分点,可以使用下面的操作:) C" z' W+ }# h9 a8 `
命令:
$ b& {# C2 j! @point, u0 A. w2 e0 Y. n, Z. }
当前点模式:PDMODE=O PDSIZE=0 .0000
5 n4 B, v! B" l. I1 i指定点’cal
/ I! ?" v7 z, `1 p8 q3 N! [1 [5 H>>表达式:plt(end,end,1/4)
& ~* _0 J% O3 k: r: b( W>>选择图元用于END捕捉:拾取直线的第一点
! e2 Y& l, a# ^1 s>>选择图元用于END捕捉:拾取直线的第二点' I, G, _2 p$ K( u
(600.073 472.711 0.0)" u4 w5 }7 u+ z' g7 N# S
上面的操作能够获得距直线第点长度为该直线总长
) P7 \6 l) {+ d' j& D4 b7 E$ I度1/4的一点,如果用表达式“plt(end,end,3/4)”代替“plt(end,end.1/4)则能够获得距直线第一点长度为该直线总长度3/4的一点。( S% E j) d$ x( u
要获得直线上距一点长度为20的点,可以使用下面的操作:7 F+ ]4 [; ?( {2 c3 A8 |- L* D
命令:4 G8 P3 K2 i2 v
point
/ x* S/ K. _* V- q当前点模式:PDMODE=O PDSIZE=0.0000
* I0 x9 m0 q4 t) o. g7 e' _% F9 t* x指定点:'cal; V, K& }8 s& P9 x9 I
>>表达式:pld(end,end,20)
, b# F& @' R5 E1 `9 [5 v" x>>选择图元用于END捕捉:拾取直线的第‘点
9 u1 o8 @ i# }>>选择罔元用于END捕捉:拾取直线的第二点
; ~7 e3 P3 j: ^# O3 f, v(524.438 426.591 0. 0)
9 f0 M x! M1 E' O5 e上面的操作.无论直线是否存在,都可以执行。这里所说的直线,仅代表AutocAD根据拾取的两点所构造的虚拟直线。" i1 {0 W) S( M/ j. Y% F* H
上面的表达式中两函数的含义为:+ }3 s4 f& e" Z& s. N
pld(p1,p2,dist):计算通过点pl和p2的直线上的一个点。) }, W& J; E+ ~- f4 v
参数dist定义该点到点p1的距离。2 m" g, S- m0 y
plt(p1,p2,t):计算通过点p1和p2的直线上的一个点。参数t定义该点在直线上的以参数表示的位置。- G3 Y8 p* P! }' m5 f! U4 @
8 N3 I5 z7 q3 `& r, [8 L
第五招:确定过一点直线的垂线% e. O+ N& \$ M9 m9 z. L2 H! B$ {
要确定过某一条直线t”点的垂线,可以采用下面的操作:
( f! S) b, d6 l8 y' k9 G命令: LINE指定第一点:'cal9 ]/ Z' X; z9 ^# v( W/ V9 J
>>表达式:mid+10*nee
8 \5 p$ N8 L( @>>选择图元用于MID捕捉:拾取已知的直线% Z3 J: ~% S$ o2 D
>>选择一个端点给NEE:拾取直线的第一个端点# I% F0 k1 q, h
>>选择下一个端点给NEE:拾取直线的第二个端点
?' C& c& M; {0 O$ I+ ], M V/ p(639.215 229.744 0.0)2 ?0 y5 \, i" K
指定下一点或[放弃(u)]:拾取直线的中点7 G/ Z2 q$ r* c/ ^& D
其中,nee函数是nor(end,end)的缩写,用于确定XY平面内的单位矢量,与两个端点连线垂直。nor(p1,p2)函数用来确定直线P1、p2(由点p1、p2所确定的直线)的二维单位法向矢量,该直线的方向为从p1指向p2。得出的法向矢量的方向为指向原直线(p1、p2)的左边。 |
|