CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
查看: 5319|回复: 19

[求助] 请教如何有表达式捕捉角度

[复制链接]
发表于 2008-3-25 15:40 | 显示全部楼层 |阅读模式
我学会了直线捕捉的表达式,输入的角度是已知的,但我现在要用角度捕捉来确定所画直线的角度,请各位老师指导指导呀,我看帮助没看明白
发表于 2008-3-26 07:45 | 显示全部楼层
输入@100<80,@100是长度<80是角度,右手方向为0度。
 楼主| 发表于 2008-3-26 08:39 | 显示全部楼层
老兄我不是要的这个,要的是捕捉角度 3 ~1 d: b% Y+ `  m5 a, T
是这样的:
0 g) s2 T1 I$ N- h2 v7 a1 A命令:L6 d, P# D) b& ^- g1 l( t* K
LINE指定第一点:9 g& R6 `/ T; _( Q$ s9 ~2 v5 k6 Y
指定下一点或[放弃(U)]:‘cal6 S' I+ E( V- Q0 {! }# B
>>>>表达式:[@(dee*3/7<ang(这是我要捕捉的是另外的一个已知角,不会弄呀!总是捕捉不到,提示错误)]
" ?0 w! f3 k& v# G/ L; z+ P不知道明白我的意思没有,请教了
发表于 2008-3-26 08:44 | 显示全部楼层
不明白‘cal这是什么命令
发表于 2008-3-26 09:01 | 显示全部楼层
刚学CAD不久,第一次知道有 表达式,希望高手能出来给我们解答一下,
发表于 2008-3-26 09:55 | 显示全部楼层
ang函数要带参数,不知楼主“另外的一个已知角”是那种形式
4 m5 U9 D; [3 o3 q4 e0 m一下摘自cad"help"8 _7 @/ a- r6 X' \& z6 p

! ~) Y9 u6 I+ Q; ^ang(v)/ U" l7 c; h4 j' }
确定 X 轴和矢量 v 之间的角度。 矢量 v 被认为是二维的,且投影在当前 UCS 的 XY 平面上。
2 f9 r" Q: q3 f+ F8 Y5 M8 n; d9 Z
ang(p1,p2)+ d# n4 N) J, j+ R# h# {1 D1 N
确定 X 轴和直线(通过 p1、p2,方向为从 p1 到 p2)的夹角。 该点被认为是二维的,且投影在当前 UCS 的 XY 平面上。
4 [- i5 @' U" k/ R/ t, M! R7 A% V/ i
ang(apex,p1,p2)( g2 g# t% ?# J! Q8 O
确定直线 (apex,p1) 和 (apex,p2) 的夹角。 该点被认为是二维的,且投影在当前 UCS 的 XY 平面上。2 O# y/ b4 B* L4 c6 t' q; z9 H
. b/ [7 d3 [0 M# X
ang(apex,p1,p2,p)" z( c- Y/ H$ P# e2 y, A  {
确定直线 (apex,p1) 和 (apex,p2) 的夹角。 直线被认为是三维的。 最后一个参数(点 p)用来定义角度的方向。 此角度以顶点到点 p 的直线为轴按逆时针方向测量。
/ y+ @* |* V# M% r( e+ p2 t; q( `$ e, `
[ 本帖最后由 xuehong51 于 2008-3-26 10:15 编辑 ]
发表于 2008-3-26 10:04 | 显示全部楼层
试验了大半天,加上[ ]以后表达式为  [@dee*2<ang(end,end,end)]  
, C, q7 [6 v# `虽然可以画出来,但是长度和角度都不对,跟楼主上一个帖子的情况一样,每次做都是不同的长度和角度,呵呵
& ~" @! _) j4 |& |' y( V0 [0 i要等待高手了。" O, k8 ]: O, q. h1 J* ?- ?

" p/ C9 _5 \' H" a% T0 F3 ^2 }& M) @2 D/ v& c( d: w
变通的作法,先画长度0 @7 k# e" d; a9 @$ r
. J4 d* `+ i2 U
命令: _line 指定第一点:
/ Z, @. H0 g: `- H& U指定下一点或 [放弃(U)]: 'cal4 |5 ~* s1 G5 o# f/ Z
>>>> 表达式: [@dee*2<0]
/ D6 w( _' R& V4 U>>>> 选择一个端点给 DEE:) z) {4 b+ L, c1 [9 P6 C4 B
>>>> 选择下一个端点给 DEE:
5 C& ~/ v! \1 k. f$ ]正在恢复执行 LINE 命令。
, f5 s6 ~+ p5 N$ U7 g* ~
2 `/ g/ u7 x. b2 A" g4 V, w
/ Z- z  ~/ y1 H  E9 i$ u! o, Q再旋转' @5 B% u9 R6 I3 C: X3 @. n

/ T. n9 \7 [% A2 z' l3 y6 m2 i1 x: w** 旋转 **
$ p2 Y9 t  J9 n2 {: K6 z! d指定旋转角度或 [基点(B)/复制(C)/放弃(U)/参照(R)/退出(X)]: 'cal' ^# U* P( R- A1 S0 H7 a
>>>> 表达式: ang(end,end,end)
/ B. l2 v. e0 {3 _& I3 y>>>> 选择图元用于 END 捕捉:2 G! G/ P6 B8 U- p# `
>>>> 选择图元用于 END 捕捉:& a6 U# [: x. y! f7 I
>>>> 选择图元用于 END 捕捉:3 S8 ~' J* `. ]/ p2 H3 _
正在恢复执行 GRIP_ROTATE 命令。4 W$ D4 ?; G; R) L' m
指定旋转角度或 [基点(B)/复制(C)/放弃(U)/参照(R)/退出(X)]: 66.6226187
3 q& f1 p' v- b: p& s8 G
6 \. x2 C3 V, u[ 本帖最后由 truezx 于 2008-3-26 10:24 编辑 ]
发表于 2008-3-26 10:33 | 显示全部楼层
嘿嘿我也没试成9 M/ R/ M5 F* h0 G; M; k& r# v

) O; a. W) Y4 e: U( A# t* }指定基点:
" r  ]  j5 G9 l0 g; ], y指定旋转角度,或 [复制(C)/参照(R)] <0>:  'cal
4 ^$ |; y$ ^2 d$ G( B>>>> 表达式: ang9 G* m, b1 l9 S, |
错误:
9 @+ V, C( }( g2 K  A使用 ANG(v), ANG(p1,p2), ANG(apex,p1,p2), ANG(apex,p1,p2,p)  {$ u  O3 \  M; ?; B) e: J
>>>> 表达式: ang(v)5 E& D; W& I/ ]7 f
错误:0 Y. B% w6 G/ }8 A% \+ ?
AutoLISP 变量 V 没有值- H- i" }* L6 \: {  Q4 s
>>>> 表达式: ang()! M$ a  H$ U& \3 `# h
错误:
) E9 C- K% K0 W- ]3 K# W使用 ANG(v), ANG(p1,p2), ANG(apex,p1,p2), ANG(apex,p1,p2,p)
% K1 L: U5 K1 \. Y>>>> 表达式: ang(12)
; z2 T. O9 E1 w5 R& P/ C* H错误:
5 ~' D3 I1 D1 i# r7 Y$ y$ F: h3 ^1 m+ D' Q使用 ANG(v), ANG(p1,p2), ANG(apex,p1,p2), ANG(apex,p1,p2,p)
! \# ^0 v3 g: N! c1 K( o2 }
3 L+ c* G: b9 u2 J9 C[ 本帖最后由 xuehong51 于 2008-3-26 10:37 编辑 ]
发表于 2008-3-26 20:07 | 显示全部楼层

请问学长们   'CAL  是什么啊?

我是个学员   还没学多久   不知道哪个是什么意思?   可以说一下吗
发表于 2008-3-26 20:25 | 显示全部楼层

哎呀 我也没试成!

我试成的和你哪个一样....晕啊  不会  学长们可以教教我们吗?
发表于 2008-3-26 22:01 | 显示全部楼层
原帖由 psbs-shj 于 2008-3-25 15:40 发表
4 f' W/ z  H' d( s我学会了直线捕捉的表达式,输入的角度是已知的,但我现在要用角度捕捉来确定所画直线的角度,请各位老师指导指导呀,我看帮助没看明白
# g) C* ~# D: j1 L
摘录一些文字,供参考,(先看一些文字,然后再看下一楼的例图):9 ?: `% u# f5 \$ p0 z/ o
' X7 ]: M0 h5 A* [! w2 S1 b
在AutocAD中,CAL命令可以作为透明命令使用,并目将计算的结果直接作为命令的参数使用。更重要的一
; ~9 c5 C& E2 O8 v
' k/ E: ]( i& L: X7 p点是,几何图形计算器提供了一些用于几何运算的函数,并且可以相对象捕捉结合使用,大大加强了它的1 j/ v# N; H( s) d1 c1 t( b
( M( [" D% \6 I( ]7 P: C* y" h
辅助绘图功能。掌握它的使用可以大大提升我们在AutoCAD中的工作效率。下面我们就通过几个典型的实  t! {1 T  D+ l& V# ?( w# r4 u
8 O" X2 M6 v% ?! P; a! f$ X: X1 o' k
例来说明几何计算器的基本应用。
3 T4 n) k& Y; V' |9 r/ P1 P2 {# H$ r; A9 i; `3 i
一:根据已知点计算点的距离。
& X, G9 G2 X- g要绘制一个圆,圆心相对于点(10,20,0)坐标是(30<60),半径与点(20,20,O)到点(40,40,O)的距离相同,+ c; x) u5 V0 `' K

% T8 t/ b# R3 E+ E+ _3 H5 E可以使用下面的方法绘制:
: D# R" I! K8 O7 e3 B命令:
' Z, E8 ]0 p2 A# i0 R+ v; c1 kcircle指定圆或[三点(3P)/两点(2P)/,相切、相切、半径(T)]:'cal9 s/ D/ k) m$ S0 h# G0 R$ s
>>表达式:[10,20,0]+[30<60]
3 k: W% i. }5 S8 v* J, R(25.0,45.9808,0)
9 \* P! Z7 l) R2 m, u3 q7 j7 C指定圆的半径或[直径(D)]:'cal- y7 ]7 R' N( a8 }; Y5 l. p
>>表达式:dist([20,20,0],[140,40,0])
2 e1 `  B2 [# P0 e( N# V28.2843
. f5 b9 C5 O  b. t7 a上而的例子中,输入“'Cal”来透明地执行cal命令,并将表达式的值作为参数提供给命令。[x,y,z]用6 ]1 N/ N/ H2 G8 F
+ l  P2 @3 A, z2 [
来表示一个点,dist(pt1,pt2)用来计算两个点之间的距离。
( [+ s- c  V& M# b2 O- f9 w
: R1 m+ f0 R. G* S1 A9 B! w( L* a二:获取拾取位置的偏移点。& q/ k; i( }! A/ w: x- ^
只有和对象捕捉相结合,才能体现出几何计算器的强大功能,因此后面的几个实例均要和对象捕捉结合起$ y$ ?, x6 Y2 k# s

4 z6 c" i& J  C7 _" C& X$ G5 M2 A来完成某项任务。如果需要将拾取点右下侧的某个位置作为圆心。创建一个圆.就可以按照下面的提示进
& I! K! c# @$ Q; C% Z$ m# |* v! Z$ M- |3 s6 y3 E
行操作:! v" {' v  \6 ?
命令:
0 i. [5 T2 g0 F  s* v5 v. Qcircl指定圆的圆心或[三点(3P/两点(2P)/相切、相切、半径(T):]'cal$ m- L" y* |5 l( B
>>表达式:cur+[20,30]
0 s- {& Y7 H2 z- s  Q>>输入点:拾取已知点
9 z: m- q) O4 \" X. G4 v8 Z(109.58 471.58 0.0)# z2 `! w& E/ y* X7 b+ X
指定圆的半径或[直径(D)]<203 2338>:60
# h) d/ n. x& ~9 X3 O4 V完成操作后,所得圆的圆心相对于拾取点的位置是(20+30)。# ^. F. `3 j  g0 B: s4 ?
$ S/ K# e. x0 g  a/ u5 [8 ^
三:获得两点的中点。8 r( s. L: [8 j/ j9 f3 h# F
要获得直线AB的中点P与圆心O之间连线的中点,就可以执行下而的操作:
: x3 ?( |; t, p/ a* ^! o9 _命令:_point/ @! s. N6 t, O$ m
当前点模式:PDMODE=0 PDSIzE=O O000: Z& K1 H# z6 `6 t8 _0 o/ G* c
指定点:'cal  u9 b2 j- |, r3 }9 b0 {' j
>>表达式:(cen+mid)/2' M! t  O5 I1 Z  s
>>选择图元用于CEN捕捉:选择圆0 A- `5 o9 Z! s& F9 g+ }
>>选择图元用于MID捕捉:选择直线AB的中点P  }+ d  _4 i8 g5 ~+ `) @. y6 \
(754.814 602.811 0.0), r' H$ o1 b. K* Y. ]& e7 U& V
其他的捕捉模式如end、int和tan等均可以在CAL函数的表达式中使用,这样就能使用各种实体特征点来获
# d- k7 ]' Z1 f8 _& l6 }, e/ N) A  m9 M6 F- p( D. E3 ^: ]
得目标点。如果不使用几何计算,就必须创建辅助线来解决这个问题。. U6 f/ C  r: N6 [& }

; D& x4 v1 D+ i$ d- O5 \. O四:确定直线上的任意点
1 q4 ~. m! I9 ]1 ]4 ?要获得直线的四等分点,可以使用下面的操作:0 ~- c( Y7 i0 W. Z% a
命令:( a( S& B0 H$ ^8 ~3 Z
point7 @6 Z& L/ A+ F( e, `3 Y- ^
当前点模式:PDMODE=O PDSIZE=0 .00004 Z4 ~# J) E" V; \) f. S. |% J- s
指定点’cal
" `& b2 M0 Y: Y* W0 R. N>>表达式:plt(end,end,1/4)
0 T8 U. B5 S" i! A. X( ?2 G  s' p5 c>>选择图元用于END捕捉:拾取直线的第一点. k4 K0 w6 k+ L+ D0 V5 q
>>选择图元用于END捕捉:拾取直线的第二点
- h6 k! f1 `# @(600.073 472.711 0.0)
7 ]  N2 w9 n5 m5 o上面的操作能够获得距直线第点长度为该直线总长; ^0 J6 g+ K# T# b0 n/ S
度1/4的一点,如果用表达式“plt(end,end,3/4)”代替“plt(end,end,1/4)则能够获得距直线第一点长
; c0 E; p8 X6 I, K( P9 N  o, G" B: u) Y, U8 v, ^
度为该直线总长度3/4的一点。* R. m: w! Y2 l/ S1 n+ i
要获得直线上距一点长度为20的点,可以使用下面的操作:
0 B3 ?6 O' k' ^/ R$ ]) v' q2 D命令:7 Q; n2 T& U2 W4 I3 @$ W  `9 l
point/ n5 O; ^) a2 O9 X
当前点模式:PDMODE=O PDSIZE=0.00006 c7 N, S/ W3 w  Z+ E
指定点:'cal/ F9 l* |2 h5 W. h' h4 T7 W
>>表达式:pld(end,end,20)7 ^4 Q! y& n: [  g
>>选择图元用于END捕捉:拾取直线的第一点3 p' k  F$ N% t$ m( Y
>>选择罔元用于END捕捉:拾取直线的第二点
8 h9 u; i  r/ O. X. O(524.438 426.591 0.0)
8 n4 l; z$ H' ?* E. A' x上面的操作.无论直线是否存在,都可以执行。这里所说的直线,仅代表AutocAD根据拾取的两点所构造
$ R# |* H! V  \5 W, K
4 D  S$ i) F/ D/ d( J的虚拟直线。8 V$ q$ M7 s  [
上面的表达式中两函数的含义为:+ x+ v8 U/ T" M0 ?# T. j9 r
pld(p1,p2,dist):计算通过点pl和p2的直线上的一个点。
( E: T. J+ N3 t: _' V" U+ B) e参数dist定义该点到点p1的距离。
. ^- L7 q" [# m% n; ]' W& W$ J, `plt(p1,p2,t):计算通过点p1和p2的直线上的一个点。参数t定义该点在直线上的以参数表示的位置。
9 p, j; ]  @+ w: ]4 |4 j9 |0 o$ `( v
五:确定过一点直线的垂线
6 I: N0 X, J& ^- d, y$ V要确定过某一条直线中点的垂线,可以采用下面的操作:
+ z" p+ N8 F2 ~7 V8 ]/ @: {命令: LINE指定第一点:'cal
+ _! f) [4 V1 Q- g. F>>表达式:mid+10*nee
; A$ W9 K" N4 h/ c6 K>>选择图元用于MID捕捉:拾取已知的直线
% k# A* B9 ~) ]>>选择一个端点给NEE:拾取直线的第一个端点& G* E$ K( [4 k7 s/ A
>>选择下一个端点给NEE:拾取直线的第二个端点
1 i3 v% B- S9 U! {. c  ~0 ?(639.215 229.744 0.0)
5 n5 x" |! A9 \3 S! \8 j7 s, u3 ]指定下一点或[放弃(u)]:拾取直线的中点
4 a4 A2 m% ]% L9 O. A8 Z; l3 H其中,nee函数是nor(end,end)的缩写,用于确定XY平面内的单位矢量,与两个端点连线垂直。nor(p18 W  G# B% G2 u' ?4 ]8 ?. S- K9 }
+ N  H8 |2 t5 t" s7 @
,p2)函数用来确定直线P1、p2(由点p1、p2所确定的直线)的二维单位法向矢量,该直线的方向为从p1指
  q* u; G3 A- {; F1 R
4 `/ \$ @" h1 {  R! Y( v; T向p2。得出的法向矢量的方向为指向原直线(p1、p2)的左边。
发表于 2008-3-26 22:05 | 显示全部楼层
在此贴附上一个含13例的图片文件,最后附上word文档的压缩包:
4 k% r9 m, O) X& A) J/ V2 X/ P7 j) l! s* t: x7 Z! Q

1 P0 q- z2 y7 S# `! [! j) l2 P: s4 }# v5 {, I2 e3 C( w

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2008-3-26 23:29 | 显示全部楼层
呵呵,楼上介绍的都是分步骤作图,楼主的问题是想直接用直线命令画出角度(该角度是用cal计算出来的),但是在直线命令(@长度<角度)中无法完成,当然画好了直线,然后用旋转命令的话就可以,就象我在7楼所说的那样。
发表于 2008-3-27 13:09 | 显示全部楼层
回斑竹:
& d3 o' i. Z+ `9 w# a8 _他要的就是   “但我现在要用角度捕捉来确定所画直线的角度”啊?
  q; X' Y' s* T7 p6 {& ]见  精选应用7、8、9等。3 ^/ o# n' s3 X) z" e
) [6 w& o7 ~4 p9 f% Z' H- C
渔鱼之道,与网俱送。
. l# y) d: X: F% r: N6 G/ Q2 e  p" q
[ 本帖最后由 yimin0519 于 2008-3-27 13:17 编辑 ]
 楼主| 发表于 2008-3-28 08:52 | 显示全部楼层
辛苦各位老师了,原来我都把那个角复制过来再旋转,再确定长度: V) J% ?8 z3 y' a
我从03年才学的CAD,完全是自学,自从发现了这个“宝贝”后我有时间就来看看,学到了好多好多,
3 u. Z" L+ ~6 Z; G" G2 ~+ B再次感谢各位老师
" d# R1 h8 H$ J" h我现在虽然我还是什么也不会,但已是单位里CAD的高手,高高手了 : N" {3 d0 U' z) X) c
我把各位老师的每一种方法都先下来,然后一个个的试试1 H/ o4 c1 Q4 ~2 r6 `# |

$ D4 D  O+ D/ b, k7 F[ 本帖最后由 psbs-shj 于 2008-3-28 08:54 编辑 ]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2024-11-29 11:40

CAD设计论坛,为工程师增加动力。

© 2005-2024 askcad.com. All rights reserved.

快速回复 返回顶部 返回列表