CAD设计论坛

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

[求助] 关于用CAL计算距离和角度的疑问?

[复制链接]
发表于 2006-10-7 15:51 | 显示全部楼层 |阅读模式
             1.用CAL计算距离时,要调用函数dist(p1,p2)       请问高手:
; P4 B) J! g  M- W; v; n在具体使用时P1和P2是用什么来替代?   这个函数的使用我不太会,请高手相助,谢谢~~~~# N" E7 j( G& L/ n9 f1 g
             2.用CAL计算角度时,要调用函数ang(apex,p1,p2)       请问高手:apex是什么意思?这个函数具体怎么用?请高手相助,谢谢~~~~~5 }( P9 r, g! b& a
% ?9 T1 \8 q& j/ U" S" B  k
[ 本帖最后由 kenyling 于 2006-10-7 16:00 编辑 ]
发表于 2006-10-7 16:05 | 显示全部楼层
CAL 是一种联机几何计算器,用于计算点(矢量)、实型或整型表达式的值。这些表达式可通过对象捕捉函数(例如:CEN、END 和 INS)获取现有的几何图形。可将 AutoLISP® 变量插入算术表达式并返回表达式的值,以给 AutoLISP 变量赋值。对于任何需要点、矢量或数字的 AutoCAD® 命令,均可使用这些算术或矢量表达式。8 A' J8 f2 r. x7 z0 h: n* b
5 }' l$ K, ]1 Q8 J+ `1 s8 Z
CAL 遵照标准数学计算的优先级规则计算表达式的值:
' a1 X: K. N3 v/ e8 |5 z. Q5 s  u! M/ E1 Z9 h: x4 X
括号中的表达式优先,最内层括号优先
# B' O( _: P8 J2 D! |3 G! @运算符按标准顺序计算:指数优先,乘除次之,加减最后
" q  h5 ]! u9 C; ]0 e) m# i优先级相同的运算符从左至右计算1 M9 T! A. o& ]2 ?& ~0 L' @7 u; b3 B
数值表达式
% ^( N% k! h) M* a
. u$ }: |* ~1 S- p# S, ~2 O# K0 G数值表达式由实数、整数和函数用下表中的运算符连接组成。 数值运算符 % C6 G) C" ~+ H6 A6 B  T+ z
$ j6 ~  E4 D, \. K+ D
运算符   ~; M* }3 I8 g. S0 b8 r% I% P5 M
操作 # \. l- c# F7 `8 {0 d9 B0 S

% W4 w4 X# H1 @* {( Q0 j7 M  }+ }8 x( ) 7 C. }2 Z  f: K9 K2 T3 f
将表达式编组
; O, m% V0 i1 ]6 I) H3 c: T; z( e
0 g- y& D) f+ m4 t! y' b1 q+ A9 y^ 1 P( E' ]' L% l
指数计算
2 Y2 o( ^1 r5 {1 ` 7 k! p  s8 {6 m9 J4 Q, D
* , / 0 ?  y9 g1 Z+ ~* ]. _
乘、除 $ [' @' w1 x- P* d$ t/ A
$ E1 z, e/ q0 H  G# A0 M
+, -
) Y" ~& c  Z. Y8 j 加、减 - ^4 j: r+ K& \$ |  m+ L

" G% R* o$ `) }$ U# V$ f/ ?+ M1 B! [9 Q+ r3 R) ^, w
7 e. |& W- m; X% i+ o
以下是数值表达式的样例: 1 x: l: ~5 M2 a  l
! W2 r( Z) y2 m) L% [/ N
3 ! G5 t) N2 {* S& g/ A

1 n* H9 D! o, e0 c6 l. B/ V3 + 0.6
% e0 v4 g! K, q/ H1 m1 d
6 U- t+ r* I, p* N(5.8^2) + PI
% h  D( I) y8 ^- n
/ Y' I7 Q6 Y& c# C矢量表达式 5 i9 R# U; a, [& J. ^

. {; U* P8 v, s. R矢量表达式由点集、矢量、数字和函数用下表中的运算符连接组成。 矢量运算符 ) I0 z: y; \$ I( n6 Y# T
) d" |0 b3 |$ Z/ q& l
运算符 : I9 b% U4 A0 h/ i& C
操作
/ a' R3 X8 X. K  u 9 z+ Z) V9 c: ?% v5 H
( ) 2 z5 @! ~% c7 o
将表达式编组
  b$ B" V9 q5 p: ]
  M3 w0 H- ^- f# w7 O& ! i- X' E! T3 U2 O( w  P% O
计算矢量的矢量积(结果仍为矢量)
. X  ?2 |7 T& q( Y4 z( F6 E+ V6 U4 y: @1 N7 E4 s$ g' Q0 ]6 G  b
[a,b,c]&[x,y,z] = [ (b*z) - (c*y) , (c*x) - (a*z) , (a*y) - (b*x) ]
+ V3 A& b4 A$ Z3 J" ~ $ G1 `) y. k4 Q6 J
*   c3 [' _5 f9 {2 v, [' i8 l
计算矢量的标量积(结果为实数)
- J- }. y0 X' N* s1 d% @& Q  P
: {! W# O+ n6 U7 I( _: K% o[a,b,c]*[x,y,z] = ax + by + cz
& V- c+ U  V. C" X/ o2 K - _! r1 w5 a; q- E) U) J) D, I8 h
*, / ; B9 H' K: n# |! [
矢量与实数相乘除 4 y) a( W! a+ m9 d4 k/ A7 m$ [: X
; e5 V9 f. t. G4 J' h: p4 Q  _
a*[x,y,z] = [a*x,a*y,a*z]
! A2 z) u, z. t  h5 P& I+ B   k3 c& H$ f  c& r! {( p; \
+ , - ( g& H# E% B2 p8 g+ Q
矢量与矢量(点)相加减
. l* R8 K/ `  G7 R: U6 R4 o
' t5 @; v4 f, `  R[a,b,c] + [x,y,z] = [a+x,b+y,c+z]
' W; K9 ]; j3 J1 W. m) y' e' U0 p
$ x, b5 h7 g' N- }+ d. T& q3 {; e" B4 V: u* z

$ Q* ~7 S. r: v# n) x* x* A  P以下是矢量表达式的样例:
# ]) _" n4 F' _+ Z9 @: c/ p* `) Z) {3 i: s  ]2 d
A+[1,2,3] 表示距离 A 点 [1,2,3] 个单位的点。
7 E  R% E% d1 L. _
4 I; X% ]( M. p9 u; w" j表达式
, u2 ?9 ~# s6 P; A% {! k
0 R; ]+ P! }3 A, a3 C; ][2<45<45] + [2<45<0] - [1.02, 3.5, 2]
8 O/ g: f3 r. m  D9 z0 Z' B& z9 M' P5 m$ n
将两个点相加,减去第三个点。前两个点用球坐标表示。- T9 }+ h; ]3 S& L9 B" b( X

9 s( q( k$ W5 d4 Y) Z/ Z+ {使用以下格式输入英尺和英寸: & Z# Q* Y7 ~" D- h/ D- ?( P

: @4 t; d5 V. U7 d英尺'-英寸"或英尺'英寸" # q: s' @$ X5 A
4 _- @: x* d& d  S& ^' a, M! d/ ^* `! [& q# ]
以下样例中表达式被转换成以英寸为单位的实数: / W% _0 Y  N" U1 `2 {& E. [

% d" g) {! y9 @1 _2'-5" 转换为 2*12+5 = 29 6 d  H+ X% ^. e) `8 l
! R3 Y: Q" d, f5 S1 \" Z/ k
5" 转换为 0*12+5 = 5 + |5 d/ N: ]9 I2 d/ A

9 [8 k0 f* n5 u+ x& ^1 m2' 转换为 2*12+0 = 24 5 e9 M9 T0 X. @
2 _; N/ N6 c# p/ M
函数 vec 和 vec1 用于通过两点计算矢量。 & K/ q/ z7 e6 g" E0 i

+ ]! s' l4 {) u+ N# V0 Rvec(p1,p2) 6 S3 b0 |' E& t8 L4 o3 f3 W2 d
# I0 @3 B: a9 m! J. Z" {( S5 i) x
计算从点 p1 到点 p2 的矢量。 & n" ?- ~  x0 f2 o
7 x/ C1 }8 e! Q1 Q! N( A5 g! O$ p
vec1(p1,p2) / Y: u& m: T: E5 r
" p3 @# M: V) p* q4 k! r
计算从点 p1 到点 p2 的单位矢量。 8 ^3 ]# v" A1 J

% O; b2 N% t* u! L$ e$ m下例使用 CAL 命令移动选定对象三个单位(沿一个选定圆的圆心到另一个选定圆的圆心的方向): : _$ w* p6 @9 |
2 h2 ^. ], N1 S! T! V9 \  S6 u
命令:  move ( `1 r7 T* o6 o( v4 j

1 n0 H9 d) j) w8 D$ B, U4 n选择对象
, X  ^* ]% \# R' m* x& o4 {
/ t7 `, _6 S3 c$ x" z5 H& k指定基点或位移:  'cal
* x& T6 X) ~3 z- E  [) G* d& p! u' Y" u" T! g
>> 表达式:  3*vec1(cen,cen)
  [# h; s. S+ @1 }1 N
0 E; a  _5 x% R- V选择图元用于 CEN 捕捉:  指定圆或圆弧
7 i& n# t2 A4 Q% H) ?" c* i2 k- d/ l: J: b! h8 W
指定位移的第二点或 <使用第一点作为位移>:指定点或按 ENTER 键
6 H3 h' t, ~( [; F; n. `" N0 Y4 w" z& P3 i
下例阐明了矢量和点计算的含义。 矢量和点计算的样例 - b* C6 R9 H+ A' D

, a% j3 q3 N! A% ]1 B- {; ?表达式
# e" A9 C% Z" v% {9 s 含义
/ w+ b; _6 h/ Q" P) O
% ?, L3 Q  [% S( b) {" V; xvec(a,b)
  R0 D! |; P# ]) Q& d& N 确定从点 a 到点 b 的矢量平移。
$ T7 u: Q* u- \0 q. D9 W7 U : M1 w3 a) X4 l4 p1 D7 I7 C# Y
vec1(a,b) ' ]# U5 F; A- O3 f1 S2 p3 u' T$ ~
确定从点 a 到点 b 的单位矢量方向。
4 ?1 |  f  x6 f8 j$ L4 N * C" `3 v0 \9 c' u
L*vec1(a,b)
% G/ x9 e" k- V0 {) `' R 确定长度 L 在从点 a 到点 b 方向上的矢量。
% G, `3 {6 M8 s" g
% t( m6 Y2 W8 t6 `9 [+ m. F- i# p: ua+v " f* P) @. H4 \' m  _/ g
确定从点 a 平移矢量 v 后得到的点 b。
3 c1 `5 O- q+ g) `* g6 B, U
4 G6 `! N4 W9 v1 |- Ha+[5<20]
% ~: j+ K- t. s1 W5 r7 X* M 确定从点 a 以 20 度角偏移 5 个单位后得到的点 b。注意,[5<20] 是以极坐标表示的矢量。

1 h" R- C5 Y7 D! L8 S, D( _* Z: \9 O) N
[ 本帖最后由 zhurui168 于 2006-10-7 16:12 编辑 ]
 楼主| 发表于 2006-10-7 20:24 | 显示全部楼层

回复 #2 zhurui168 的帖子

谢谢你的帮助~) [; a: q* {0 |6 k7 H1 a
我想再问你一下,在CAD的帮助中能不能查到在CAL命令中用到的所有的函数的功能介绍?如果不能的话,怎么才能找到有关在CAL命令中用到的所有的函数的功能介绍
发表于 2006-10-7 21:27 | 显示全部楼层

希望你能用得着

標準數值函數: $ M/ f* R# Z( j
函 數 功能說明
8 z" j' z: o7 m: ssin (角度) 求角度之正弦值 3 A" P5 Z$ I3 o7 a" Z; k
cos (角度) 求角度之餘弦值
/ t& E+ }7 t9 |6 ^tang (角度) 求角度之正切值 + O  b' C' F- y0 |8 p+ g
asin (實數) 求數值之反正弦值 (數值必須在-1與1之間) 4 O0 a! Z# d3 P
acos (實數) 求數值之反餘弦值 (數值必須在-1與1之間)
2 w0 D2 ]/ {- A# ?atang (實數) 求數值之反正切值 % i( \& D/ r$ @; D$ u: c
ln (實數) 求數值之自然對數
; e. s5 g( Y8 r- Clog (實數) 求數值以實為底之對數 * g# d2 @8 A  q, Q
exp (實數) 求數值之自然指數 + d/ f* G/ T1 g1 p2 \0 z; \
exp10 (實數) 求數值以實為底之指數
9 u5 j5 B; [2 F. ~sqr (實數) 求數值之平方 6 Z$ V4 `8 a: n! ?4 b5 L- m" A3 e8 w
sqrt (實數) 求數值之平方根 (數值必須不為負值)
/ i9 e$ x4 f4 Y7 Y% Z) d# }abs (實數) 求數值之絕對值
: p3 z- g$ h& u$ uround (實數) 求最接近數值的整數 ; l' A1 R% S0 J5 z  I0 p0 [0 J* n
trunc (實數) 求數值之整數部分 9 {0 V  D4 W0 T8 y+ Q
r2d (角度) 將角度由弳度轉為度,例如r2d (pi) 將常數p轉為180度
- D0 L* f2 \, H. g; ^6 Qd2r (角度) 將角度由度轉為弳度,例如d2r (180) 轉換180度為p弳度值
, e0 t3 l! K; z) ]pi 常數p
5 k9 p/ w' v& r* ]6 x" n4 y3 z1 d3 }特殊功能函數:(其中括弧內p,p1,p2…等可配合輔助抓點來取得座標值) $ w, E3 q! Z1 o' ?/ }6 w  G
函 數 功能說明 3 z' U$ ?' F5 K1 x0 l
ang (p1,p2) 求X軸與直線(p1,p2)之夾角值 " e, ]: c" v9 r4 \; o& P
ang (頂點,p1,p2) 二直線(頂點,p1)與(頂點,p2)之夾角
# ~% B9 e  i- W2 Jdist (p1,p2) 求p1及p2間的距離
: c6 _) |& A' wdpl (p,p1,p2) 點p與經過p1、p2之直線最短距離
4 H1 O6 T  M8 I7 w0 ndpp (p,p1,p2,p3) 計算點p經過三點(p1,p2,p3)的平面之間最短距離   F& h( y3 Y; u% ]( k
Dee dist (end,end)之便捷功能函數,求兩端點之距離
! R8 X0 L4 F! P7 `, Igetvar (變數名稱) 讀取AutoCAD系統變數值,僅限於實數、整數及點座標
8 Z3 e5 @7 q; M2 W3 b9 s+ cill (p1,p2,p3,p4) 二直線(p1,p2)與(p3,p4)的交叉點
. [, w" s+ A, U5 F( k8 }" Eilp (p1,p2,p3,p4,p5) 計算線(p1,p2)和經過三點(p3,p4,p5)的平面之相交點 " a$ Y: Q) c% i: S
ille ill (end,end,end,end) 的便捷功能函數 ) }. e3 X( f" B
mee (end,end)/2 的便捷功能函數,求二端點間的中點座標
1 l% v4 o  c* I1 B* `nor (p1,p2) 直線(p1,p2)之單位法向量 (垂直方向)
$ ^4 I& s$ T; |' D3 Enee nor (end,end)之便捷功能函數 ( H: L, y7 ?# g# y
pld (p1,p2,d) 直線(p1,p2)上距離p1點d長度的點座標 % a/ Q* c4 Q  m/ ^. z
plt (p1,p2,t) 直線(p1,p2)上以參數t定義的點位
6 G  x% X- d% S6 W9 e* k" j( Drad 選取一圓或弧求取該半徑值 / g  S& K) D' |2 A8 e. l" @
rot (p,basp,a) 點p以basp為基準旋轉a角度 " t: |8 [, F+ k; ]% a/ y: u
rot (p,axp1,axp2,a) 以通過點axp1和axp2的線為旋轉軸,旋轉p點,經過角度a 0 ~# i+ A6 ^9 n# x& i4 K
vec (p1,p2) 點p1至點p2之向量
5 q% [) j# @: o" ]0 q, rvec1 (p1,p2) 點p1至點p2之單位向量 0 p9 Z) V# y" t1 u. y
vee vec(end,end)之便捷功能函數 9 i* N8 a- g$ b6 @
vee1 Vec1(end,end)之便捷功能函數 ! h8 |" x$ K5 c2 \- L) X: _; [2 B
過濾一個點或向量的X、Y和Z分量: ' e0 C2 t. \# X& O* W
函 數 功能說明 , M) Z: c! d! E. _7 {
xyof (p1) 點的X和Y分量,Z分量設為0.0
' a. Z: S8 M8 exzof (p1) 點的X和Z分量,Y分量設為0.0
! g1 a' p% R7 G$ Oyzof (p1) 點的Y和Z分量,X分量設為0.0 1 \* ^+ ^- T  {8 v1 Y8 A
xof (p1) 點的X分量,Y和Z分量設為0.0
, p7 A+ v- @) ?yof (p1) 點的Y分量,X和Z分量設為0.0
) S4 ^% \1 N- R0 Q% Szof (p1) 點的Z分量,X和Y分量設為0.0 " E8 J! l' P+ s) a0 o0 d$ T
rxof (p1) 點的X分量 1 |, ?3 B5 s. U
ryof (p1) 點的Y分量 # z& c9 R: V% Y
rzof (p1) 點的Z分量
 楼主| 发表于 2006-10-8 13:42 | 显示全部楼层

回复 #4 jhjs 的帖子

谢谢你,除了标准数值函数,还有别的吗?谢谢~~~
发表于 2006-10-8 13:44 | 显示全部楼层
原帖由 kenyling 于 2006-10-7 20:24 发表7 r* }/ H- z, i! ^& e3 j. C
谢谢你的帮助~
7 f- @, k3 j  }$ J我想再问你一下,在CAD的帮助中能不能查到在CAL命令中用到的所有的函数的功能介绍?如果不能的话,怎么才能找到有关在CAL命令中用到的所有的函数的功能介绍

7 U9 l& D( O% k. a( r可以找到的,:)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-17 00:49

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

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

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