|
原帖由 psbs-shj 于 2008-3-25 15:40 发表 
' v* l: e9 G- B1 U0 H8 E& w. |0 l我学会了直线捕捉的表达式,输入的角度是已知的,但我现在要用角度捕捉来确定所画直线的角度,请各位老师指导指导呀,我看帮助没看明白 , ^' e; D9 F4 J, J
摘录一些文字,供参考,(先看一些文字,然后再看下一楼的例图):, V$ ?9 V* ]$ R" e
1 T; z: }5 T' W+ ^% U; _( l$ _" X在AutocAD中,CAL命令可以作为透明命令使用,并目将计算的结果直接作为命令的参数使用。更重要的一3 P" s6 Q5 y7 _& _% [" X1 F! M
* M0 ?% l: q* ?+ w+ Z! m8 U* w, n
点是,几何图形计算器提供了一些用于几何运算的函数,并且可以相对象捕捉结合使用,大大加强了它的
3 C+ Q2 O7 _' W/ \- C( n1 u' C; g y4 E6 G2 z9 ?! a
辅助绘图功能。掌握它的使用可以大大提升我们在AutoCAD中的工作效率。下面我们就通过几个典型的实
& F" P, D7 n% W1 h/ ~+ Q7 S; S1 H! _/ c6 m9 C L; R
例来说明几何计算器的基本应用。
8 d8 m' r) b4 E5 `1 v* N% w& r/ U5 {+ k# h: ?- j6 s; @* x
一:根据已知点计算点的距离。5 a8 o7 A8 z, C7 h P$ h9 G, F
要绘制一个圆,圆心相对于点(10,20,0)坐标是(30<60),半径与点(20,20,O)到点(40,40,O)的距离相同,
" R* V9 {0 U! D
$ [. r( Y7 }# Y/ y可以使用下面的方法绘制:" L: F$ E2 ^2 t. E; o! e# J5 S
命令:8 N4 C) [) a3 J N3 R6 y
circle指定圆或[三点(3P)/两点(2P)/,相切、相切、半径(T)]:'cal: M" n. D b3 D" E
>>表达式:[10,20,0]+[30<60]
3 E) n" c M( h# o(25.0,45.9808,0)
4 l) ^/ o) `) g2 c$ ]指定圆的半径或[直径(D)]:'cal
! }3 A, f7 B$ b) Q>>表达式:dist([20,20,0],[140,40,0])$ Y9 W/ l$ R: G0 f# I+ C& o5 [
28.2843. `* Y: p( ~6 ?; C# z5 O9 ~; i. u
上而的例子中,输入“'Cal”来透明地执行cal命令,并将表达式的值作为参数提供给命令。[x,y,z]用* y! ` j d' R2 P& g: M* _" R7 Z
. C( N( ~6 @$ [2 v. Z0 V, z
来表示一个点,dist(pt1,pt2)用来计算两个点之间的距离。7 z, ?, P3 Z( v9 \8 k
/ H& t9 B! s% M
二:获取拾取位置的偏移点。8 F+ d2 W# U4 U5 q
只有和对象捕捉相结合,才能体现出几何计算器的强大功能,因此后面的几个实例均要和对象捕捉结合起2 N! W% [" s) U2 d( t
2 H( E# M; U# M9 s, V/ b' M
来完成某项任务。如果需要将拾取点右下侧的某个位置作为圆心。创建一个圆.就可以按照下面的提示进; p/ h2 Z5 `0 E2 p5 T" Y
$ m( J) s8 p5 F+ w& C4 E行操作:- h O+ i& Z) U' k Z+ M
命令:8 A, x: d3 i5 Z. L1 L/ k- U
circl指定圆的圆心或[三点(3P/两点(2P)/相切、相切、半径(T):]'cal
* v8 E6 P- r, W/ A7 a>>表达式:cur+[20,30]
! o6 l! G2 J: m4 a* X1 y( [>>输入点:拾取已知点
* W# i4 y6 e; F. j* `7 o(109.58 471.58 0.0)
/ U* C7 J+ U+ L) A1 ]+ V! x指定圆的半径或[直径(D)]<203 2338>:60" | ?- z: Y: L
完成操作后,所得圆的圆心相对于拾取点的位置是(20+30)。
# _4 \0 `' ]# ~ {. Q
6 P* D4 ?( u* O8 D' |三:获得两点的中点。
3 U7 {% |4 x) \. l# O要获得直线AB的中点P与圆心O之间连线的中点,就可以执行下而的操作:
% m8 M6 V# {: j3 y/ }命令:_point
7 ` ~& [8 {: z$ L$ Z' a当前点模式:PDMODE=0 PDSIzE=O O0000 p, O( Y4 t4 ?! x
指定点:'cal" F; c! d& T$ ?% n& s! T
>>表达式:(cen+mid)/2( {% J; u% A' U3 r: e% v" v
>>选择图元用于CEN捕捉:选择圆
/ J2 @: p$ l* v* |( |6 G/ v$ S& Z3 u>>选择图元用于MID捕捉:选择直线AB的中点P
, ]4 L- H. |/ x# ^% H( W2 f2 W(754.814 602.811 0.0)
7 p2 p. J( K* K- O, \其他的捕捉模式如end、int和tan等均可以在CAL函数的表达式中使用,这样就能使用各种实体特征点来获
( V! _- Q8 T. U, c- k- u4 @
1 p5 L& P* O' d0 {# z# u: Y, }得目标点。如果不使用几何计算,就必须创建辅助线来解决这个问题。, Y% n) l. ^& p/ ~( C0 P5 K# G0 z- k
* c9 R0 S4 m% w1 b2 q四:确定直线上的任意点) t% k m5 n3 v4 p6 G
要获得直线的四等分点,可以使用下面的操作:. _; _" ?" Q6 Y* `
命令:
# A, g( i& y) d& l+ c: N5 @! [: vpoint( L! E# a( u7 r1 L |
当前点模式:PDMODE=O PDSIZE=0 .0000
" I3 t, J" D1 R0 v指定点’cal
) q; i* N; F" l2 v>>表达式:plt(end,end,1/4)
4 Y+ {: T( _" ]& ?- F2 R>>选择图元用于END捕捉:拾取直线的第一点
) `- ?" [% q( M% {. r" R; B% E>>选择图元用于END捕捉:拾取直线的第二点- }* i* X# R; P' q% E q/ {* c9 i
(600.073 472.711 0.0)
( ]; n$ w/ m) W3 k上面的操作能够获得距直线第点长度为该直线总长" a0 {$ ]9 N2 Y/ U
度1/4的一点,如果用表达式“plt(end,end,3/4)”代替“plt(end,end,1/4)则能够获得距直线第一点长/ V! K9 V" u; w' ^
1 ?4 v3 B) |4 Z4 q2 d度为该直线总长度3/4的一点。
( a4 _. N+ ~7 i0 i- p要获得直线上距一点长度为20的点,可以使用下面的操作:
( B5 i0 O3 N6 K9 j8 E命令:3 H9 u0 Y) }9 F( _; i
point8 k+ w: [, a* K5 o! c
当前点模式:PDMODE=O PDSIZE=0.0000
, L6 C$ j: b$ y) ]) n! k; P9 F# Y指定点:'cal
* N3 q& T/ i9 L. e ?, m# b>>表达式:pld(end,end,20): f# ^7 X; G/ d: t
>>选择图元用于END捕捉:拾取直线的第一点
2 I$ a b5 b. C8 T/ Q( g>>选择罔元用于END捕捉:拾取直线的第二点
/ S" s( _, ^) s0 {3 v6 V(524.438 426.591 0.0)# ?) B% o2 A' f( _- E
上面的操作.无论直线是否存在,都可以执行。这里所说的直线,仅代表AutocAD根据拾取的两点所构造
$ e+ S \+ Y1 P% V1 b0 [+ C4 F' q) x: H; L7 H
的虚拟直线。
N/ `3 y: n6 ?5 m/ g8 V% H上面的表达式中两函数的含义为:' j6 e9 G" {7 `/ ?" ?
pld(p1,p2,dist):计算通过点pl和p2的直线上的一个点。/ V3 y/ n8 k% {1 ?6 ?: q
参数dist定义该点到点p1的距离。
6 z: H! g( t! ^- a tplt(p1,p2,t):计算通过点p1和p2的直线上的一个点。参数t定义该点在直线上的以参数表示的位置。9 S+ G0 O4 U2 J' }
A, P# g7 X& X, ^* }: q
五:确定过一点直线的垂线. a; X3 L- q' N
要确定过某一条直线中点的垂线,可以采用下面的操作:# V; i p" R6 V- n1 W. u
命令: LINE指定第一点:'cal
! g6 \( U* {! @, O>>表达式:mid+10*nee
" C& e) v* R; r. u>>选择图元用于MID捕捉:拾取已知的直线
`9 m" E: W) v$ q0 U7 C# S( |>>选择一个端点给NEE:拾取直线的第一个端点
' g v% L# I6 l( I4 c2 M>>选择下一个端点给NEE:拾取直线的第二个端点" L) ^) I( Q! f
(639.215 229.744 0.0)
* K3 i9 m8 L' @指定下一点或[放弃(u)]:拾取直线的中点
* x- h; Z7 \5 z5 M2 z其中,nee函数是nor(end,end)的缩写,用于确定XY平面内的单位矢量,与两个端点连线垂直。nor(p1; d6 n; t3 } n6 p
/ [; f# y1 C- e: S
,p2)函数用来确定直线P1、p2(由点p1、p2所确定的直线)的二维单位法向矢量,该直线的方向为从p1指
' V1 n' \; @3 ^
5 Z' k2 z: |" [7 i0 ?# |" g向p2。得出的法向矢量的方向为指向原直线(p1、p2)的左边。 |
|