|
原帖由 psbs-shj 于 2008-3-25 15:40 发表 
/ h' w- {% B6 j/ d% F我学会了直线捕捉的表达式,输入的角度是已知的,但我现在要用角度捕捉来确定所画直线的角度,请各位老师指导指导呀,我看帮助没看明白
" J: ^+ j% D3 n( j7 l! a& T摘录一些文字,供参考,(先看一些文字,然后再看下一楼的例图):3 C; z. Y; @- m/ L4 q9 t( L% H
' w) j H. ~, V' g
在AutocAD中,CAL命令可以作为透明命令使用,并目将计算的结果直接作为命令的参数使用。更重要的一8 ]/ I2 ?* I/ n) \" D9 k
2 l' r. Y/ S |7 G" Z点是,几何图形计算器提供了一些用于几何运算的函数,并且可以相对象捕捉结合使用,大大加强了它的
e9 n$ t; }( j4 v9 f
7 |7 [$ u" ?0 G辅助绘图功能。掌握它的使用可以大大提升我们在AutoCAD中的工作效率。下面我们就通过几个典型的实- U, e- y5 S9 |2 a( h9 G5 m T$ ^4 k
+ f$ f8 n7 H3 w例来说明几何计算器的基本应用。
% H7 P# h1 [6 c
" |. T8 P% e5 L5 R& C a F1 F8 n一:根据已知点计算点的距离。% R" j, Y+ B# u$ f/ Y0 m
要绘制一个圆,圆心相对于点(10,20,0)坐标是(30<60),半径与点(20,20,O)到点(40,40,O)的距离相同,
+ ~9 D9 n7 l, N/ a9 |0 {& C% s3 Q% X2 n
可以使用下面的方法绘制:' l; f. s- ^8 Z Q
命令:0 H+ q7 N# ?' y, a
circle指定圆或[三点(3P)/两点(2P)/,相切、相切、半径(T)]:'cal
- P9 q" z& t" M( d. K8 n>>表达式:[10,20,0]+[30<60]* U# Y& A" q" u& F( u3 @
(25.0,45.9808,0)
' _& H% L( C1 O+ _2 M指定圆的半径或[直径(D)]:'cal
& K1 {9 K3 b9 Q; r) ~$ M>>表达式:dist([20,20,0],[140,40,0])
/ H1 |0 V' H5 U& d, m; r: U ?, I- w28.2843
6 Q+ ^1 A* R8 R$ F上而的例子中,输入“'Cal”来透明地执行cal命令,并将表达式的值作为参数提供给命令。[x,y,z]用# B: b$ }0 h& P1 n( @
5 b; e9 C9 Q0 ]4 c( ~! Q; |4 l
来表示一个点,dist(pt1,pt2)用来计算两个点之间的距离。
5 f0 ?& e" X7 D( C
: Y% U; V* p8 L& a( l二:获取拾取位置的偏移点。
4 |9 O! y, t% R# e( a T( C g1 \. f6 n只有和对象捕捉相结合,才能体现出几何计算器的强大功能,因此后面的几个实例均要和对象捕捉结合起
6 L3 n3 V0 z# \7 t
' a' {4 Y& s; X/ D4 T9 G& r" U8 }来完成某项任务。如果需要将拾取点右下侧的某个位置作为圆心。创建一个圆.就可以按照下面的提示进2 a1 n! ]; H. K
! i! m4 k$ ~2 M6 }% E3 Z1 o行操作: ]! H5 X# K7 X# w# c
命令:
/ c) X& [# Y5 F* ~$ X) _8 A. v( ?2 Scircl指定圆的圆心或[三点(3P/两点(2P)/相切、相切、半径(T):]'cal
* c+ g/ F0 ?% N7 |2 @% P( ?>>表达式:cur+[20,30]' a) L6 Z: f' y
>>输入点:拾取已知点
, |" ]. y1 z2 @0 w! ]1 ](109.58 471.58 0.0)
/ z7 @( k! g0 ^4 U4 F指定圆的半径或[直径(D)]<203 2338>:60+ |( a- K. o) V3 b2 c& y& Z4 M- `
完成操作后,所得圆的圆心相对于拾取点的位置是(20+30)。9 Y! q7 T- l8 J$ y' Y, | B
1 {5 V+ F# Q8 {3 u. T三:获得两点的中点。1 U) O0 o# j4 B) P9 c' F5 s
要获得直线AB的中点P与圆心O之间连线的中点,就可以执行下而的操作:
0 ~" @- q5 q/ U9 V命令:_point
1 `8 Z) ^% `2 I D4 v) x当前点模式:PDMODE=0 PDSIzE=O O0002 G5 f% J1 t) a- R
指定点:'cal- H% ^* c' E S: |. c! I5 f
>>表达式:(cen+mid)/28 M! y6 M3 Y8 q' {" m2 n) O' q3 n
>>选择图元用于CEN捕捉:选择圆. F. ?: O3 F7 h ^
>>选择图元用于MID捕捉:选择直线AB的中点P
/ e8 u3 s$ Q( H: w0 b(754.814 602.811 0.0)
/ h. l0 f6 @! R7 A3 Y) P$ I其他的捕捉模式如end、int和tan等均可以在CAL函数的表达式中使用,这样就能使用各种实体特征点来获! ?. I( Q9 d' K# p$ U( f
/ Y+ |; l* e: k
得目标点。如果不使用几何计算,就必须创建辅助线来解决这个问题。% Z+ i" x& l% S' X; ]
5 O2 ^+ M2 X3 g6 `8 g四:确定直线上的任意点
' s1 y _6 S& w# x+ [- \( h要获得直线的四等分点,可以使用下面的操作:
1 Q) F$ m0 b9 N命令:
9 R" T" Z: X# F2 |/ y5 g5 A# }point
" z9 U+ g/ _; a2 z当前点模式:PDMODE=O PDSIZE=0 .0000. b K- m9 O9 Q
指定点’cal% d( _% l+ r0 [+ s' L% N
>>表达式:plt(end,end,1/4)
) b7 }% _! v6 ~; N# X! K$ Z>>选择图元用于END捕捉:拾取直线的第一点
" T9 y1 W1 b$ i0 \" d>>选择图元用于END捕捉:拾取直线的第二点
$ I) C6 h! S b+ m) b6 h, q(600.073 472.711 0.0)
# ?& Z/ V& h* L0 b$ d" _2 g" o上面的操作能够获得距直线第点长度为该直线总长# R9 T0 F2 O% e! x/ |8 D7 s
度1/4的一点,如果用表达式“plt(end,end,3/4)”代替“plt(end,end,1/4)则能够获得距直线第一点长 n3 \8 I0 [% ^
& W- g! m, M0 {2 C7 m; @ h8 Y度为该直线总长度3/4的一点。) [- Z' |$ J1 v( X$ X+ K
要获得直线上距一点长度为20的点,可以使用下面的操作:
+ f1 Z$ k, z3 F( D7 l, I8 b命令:2 Q4 n) x# Q q* o5 F; n
point
4 t/ T' m3 ^9 D: X$ N6 i2 ?7 e当前点模式:PDMODE=O PDSIZE=0.00004 m6 j! F j2 A$ d/ D
指定点:'cal
w! }% f( E; d5 d+ O: R>>表达式:pld(end,end,20)# J8 Q& s1 B# B1 u) ?
>>选择图元用于END捕捉:拾取直线的第一点
/ D% |9 F$ l1 |% j3 Z2 E8 b>>选择罔元用于END捕捉:拾取直线的第二点& U. B0 g) s7 f
(524.438 426.591 0.0)
! P, B3 v9 q! C8 c g; G& k1 _& d+ r上面的操作.无论直线是否存在,都可以执行。这里所说的直线,仅代表AutocAD根据拾取的两点所构造% s( Q F5 g) s
, @1 g8 _& c- Q5 V$ {; }. B的虚拟直线。
/ ]" L+ j5 G+ r6 X0 i0 d' n6 b上面的表达式中两函数的含义为:
- H* {7 N u( |& G8 kpld(p1,p2,dist):计算通过点pl和p2的直线上的一个点。( G$ I$ V8 |. n" T. G" {' M
参数dist定义该点到点p1的距离。/ \+ N2 u9 x/ t. @/ U A
plt(p1,p2,t):计算通过点p1和p2的直线上的一个点。参数t定义该点在直线上的以参数表示的位置。( L" Z3 ~% |7 T+ ], l
( E5 T# t( H' K* ]! e五:确定过一点直线的垂线
o6 Y+ U) P4 [; |, K. T9 E" t* Z要确定过某一条直线中点的垂线,可以采用下面的操作:
, x, e0 L' ?8 `8 m" u9 g命令: LINE指定第一点:'cal
" X7 {+ Z, |) P- ]9 D>>表达式:mid+10*nee& o2 {- s; W( h
>>选择图元用于MID捕捉:拾取已知的直线( m+ C1 ~& o: O/ e! A7 E
>>选择一个端点给NEE:拾取直线的第一个端点
% ^' s, t& k+ Q8 y6 N>>选择下一个端点给NEE:拾取直线的第二个端点5 e# p' ^2 U' F/ U) B0 G3 [0 x
(639.215 229.744 0.0)" O2 v9 c# w9 Q; J- T" u2 M
指定下一点或[放弃(u)]:拾取直线的中点
/ I# d7 Y7 ?+ k$ z) w其中,nee函数是nor(end,end)的缩写,用于确定XY平面内的单位矢量,与两个端点连线垂直。nor(p1
+ J: ?% u! L7 Y/ [4 H1 {
# O# c6 w* `+ q( \. Z,p2)函数用来确定直线P1、p2(由点p1、p2所确定的直线)的二维单位法向矢量,该直线的方向为从p1指
1 I6 y T5 B5 ^5 ]
. k+ n1 s" ~5 q6 ~& e/ Z- ]0 W向p2。得出的法向矢量的方向为指向原直线(p1、p2)的左边。 |
|