QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 1544|回复: 2
收起左侧

[分享] 应用AutoCAD几何计算器实现快速定位

[复制链接]
发表于 2007-7-6 17:35:02 | 显示全部楼层 |阅读模式 来自: 中国山东聊城

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
应用AutoCAD几何计算器实现快速定位   q' Z  E" d& @3 L6 o

9 |2 T$ x" b' }$ {6 P0 r几何计算器是AutoCAD R12提供的一个十分有用的工具。和普通的计算器一样,几何计算器可以完成+、-、*和/的运算以及三角函数的运算。这使得用户在使用AutoCAD绘图过程中,可以在不中断命令的情况下用计算机进行算术运算,AutoCAD则将运算的结果直接作为命令的参数使用。但重要的是,和一般的计算器不同,AutoCAD几何计算器可以作几何运算。它可以作坐标点和坐标点之间的加减运算,可以使用AutoCAD的OSNAP模式捕捉屏幕上的坐标点参与运算,还可以自动计算几何坐标点。如计算两条相交直线的交点,计算直线上的等分点等。此外,AutoCAD几何计算器还具有计算矢量和法线的功能。当然,AutoCAD几何计算器还有其它的功能,这里就不一一罗列。
, P" v( ]! e* L  G  J4 L8 p/ Q   在使用AutoCAD绘图中,常常需要确定一些无法直接给出坐标的点。例如,任意两点间的中点;和任意方向直线相切的圆的圆心;以及直线上任意等分点等。这就是我们通常所说的CAD绘图的定位问题。实际上,在许多计算机绘图场合,定位是否方便和精确往往直接影响作图的效率和速度。因此,应该充分利用AutoCAD几何计算器的几何运算功能,来实现AutoCAD绘图中的快速定位。
% A8 v3 u+ ~& ~9 X8 J/ ?   在命令提示Command:下键入CAL或激活下拉式菜单的辅助菜单项拾取其中几何计算菜单项都可启动AutoCAD几何计算器。CAL命令也是一个透明命令,可以在其它的命令下随时启动几何计算器。此外,还可以在AutoLISP程序中使用CAL命令。 # b& R. N" U+ P4 r4 ~; d: C
  下面是利用AutoCAD几何计算器的几何运算功能实现在AutoCAD绘图中经常遇到的几个快速定位的实例。- ~6 }" j! @- {& n" }; [+ {
   1.在两实体间确定中点% ]3 w) K9 r! d3 y
   这里不需先在两个实体之间画一条辅助线再用OSNAP的MID模式得到中点。例如,要从一个圆心和一直线的端点之间的中心为起点画一直线。操作过程如下:% W9 N2 R& T* d
   Command: line
8 [! H3 M+ y1 T8 r8 D   From point: 'cal (启动几何计算器)
" @% p( r! T7 ~2 }5 p& A  >> Expression: (cen+end)/2 (输入表达式,这里计算器把OSNAP的cen和end模式当作点坐标的临时存储单元)# g  y2 p2 V2 d0 |$ p
  >> Select entity for CEN snap用光标捕捉圆心)
% B5 \5 P! p+ G" U& S) m/ x  >> Select entity for END snap:(用光标捕捉直线的端点)! f- e) f. ~+ I" X
   To point:
2 |& Y- t* v1 O# C5 b! W/ {   其它的目标捕捉模式如int、ins 、tan等等均可在几何计算表达式中使用。如果用表达式(cur+cur)/2代替表达式(cen+end)/2,则可以在计算机要求输入点时,再设定OSNAP方式来捕捉所需的点。5 C; A. q" F7 H9 Q
   2.确定一条直线上的任意等分点和与直线端点定长的点
- ?/ ^/ O. w3 O# i; Y   使用几何计算器提供的plt和pld函数可以完成这个操作。假设屏幕上有一端点为A和B的直线,要在直线上获得分直线段AB为1比2的点。仍以画直线为例,操作过程如下:4 g# x' S' S; S5 K7 J. _! Z8 F- M' j
   Command: line
- Z1 b- ~0 P7 m9 e   From point: 'cal% m) X" e/ b0 k6 z/ D0 ~. y' E7 X7 ~
  >> Expression: plt(end,end,1/3)
6 v* r* F% s! S  h* T: n  >> Select entity for END snap:(用光标捕捉端点A)
6 O9 X* M# q8 s% a4 _  >> Select entity for END snap:(用光标捕捉端点B后即得到距A点为1/3线段长的点)
9 |! h: S2 m6 ]7 P8 X   To point:+ m% n0 h3 U, @) ?  t: T
   如果要得到直线上距端点A为5的点,使用函数pld(end,end,5)代替上面操作过程中的plt(end,end,1/3)即可。
- |! r, h1 W& f5 ], N   3.用相对坐标来确定点
4 Z" Y# V( p( B- j3 K" R( S   在绘图中,经常要相对一条线画出另一条线,下面就是操作过程:
* d/ R( {% b) i+ k: L3 ]   Command: line
+ W" }9 `: R: [& b. d. P; X* b   From point: 'cal8 M3 a" M- p% t( u7 q
  >> Expression: end+[2,3](作点和点的相加运算)
) B9 j+ W# ]  j2 H* |  b  >> Select entity for END snap:(捕捉一基准直线的端点后即可获得距端点相对位移(2,3)的点)7 D4 E: I% c- ~+ B
   To point:
2 u" G$ v% X  w1 v2 g" }   这个功能和AutoCAD R13中提供的From目标捕捉模式相似。5 k, S" w" z7 @
   4.作和一斜线相切的圆以及过圆上一点作圆的切线
* g* E2 z4 v- |- ]+ C+ `% N6 ^1 N; F, P   利用AutoCAD正交模式可容易地画出和垂直线或水平线相切的圆。画一个和斜线相切的圆则需要准确地确定圆心。操作过程如下:7 }( a: M2 b" ~  s$ l: @
   Command: circle
; L& g) |* P" q9 T# O* N; W$ }   3P/2P/TTR/<Center point>: 'cal
" H/ J) l' ]3 H' R* G6 E  >> Expression: cur+3*nee(cur表示用光标在屏幕上拾取一个点,nee函数用来计算两端点矢量的法线,3是圆的半径)
8 t, J% s( Y5 b' D; x9 M9 t1 n# P  >> Enter a point:nea(用光标在直线上捕捉一个点作为圆和直线的切点): k5 p1 T8 O9 x! ~2 q
   to >> Select one endpoint for NEE:(用光标捕捉直线的一个端点)4 t- r' g7 x( C1 h$ D
  >> Select another endpoint for NEE:(用光标捕捉直线上的另一个端点)2 U5 G, F( S1 X. Y: ^
   Diameter/<Radius> <1.6745>: 3(给出圆的半径后即可画出这个圆)
- s7 W  P# H: [0 y2 }- P3 \   改变光标捕捉直线两个端点的顺序可在直线的另一侧画圆。3 V" [9 k0 m4 \# T  X( F5 T
   假设过圆和一直线的交点作圆的切线的操作过程如下:
2 S, }2 r2 w0 D% T   Command: line  b7 K2 p1 P  V3 g# H
   From point: int(捕捉交点)2 R& x" x3 d7 i# X/ H5 H
   of
; B. d* Y1 b. H  x; L1 v   To point: 'cal
, J' d- O/ I+ e/ I$ i, ]/ I  >> Expression: int+3*nor(cen,int)
$ D# k8 q$ N, G5 g7 V( v  c  >> Select entity for INT snap:(用光标捕捉交点)6 ^. c8 ]" w; b  l3 s
  >> Select entity for CEN snap:(用光标捕捉圆心)0 m. i4 u' Z7 z' z7 R* q- E
  >> Select entity for INT snap:(再用光标捕捉交点即画出从交点出发长度为3的已知圆的切线)( ], G$ Z0 n. z) H& O. }
   To point:
. R: j8 `1 E. H   5.过一条斜线上的已知点作斜线的垂线
( _8 P; R$ C$ y   因为是非水平非垂直的直线所以不能用AutoCAD的正交模式画直线的垂线。利用几何计算器可直接画出和斜线垂直并且为确定长度的直线。实际上这是一个如何确定垂线的另一个端点的问题。其操作过程如下:4 W! h6 A8 X' l$ x% ?# z! `
   Command: line
' O0 D: G9 l$ L8 k- O   From point: mid(设过直线的中点作垂线)0 Q* _% o' ?& W8 s! I
 ?of
  G. c/ B4 \/ e# X! F3 s   To point: 'cal
- {7 o; {, S: x1 ?! w  >> Expression: mid+5*nee(5是垂线的长度)
9 @" Z6 T/ g/ V  a4 O  >> Select entity for MID snap:(用光标选择斜线捕捉中点)
7 e# L( y, k- e  >> Select one endpoint for NEE:(用光标捕捉直线的端点)" k( q8 r9 O" \' P- n; ?: z  o1 C
  >> Select another endpoint for NEE:(用光标捕捉直线的另一个端点)* h$ k" w$ Y" l+ T3 W6 v. c* C) _
   to point:
/ g( w+ b+ z9 t" \1 Q5 C0 h   同样,改变光标捕捉直线端点的顺序,也可在直线的另一侧画垂线。
发表于 2007-7-21 22:50:03 | 显示全部楼层 来自: 中国上海
有点复杂,不过值得学习
发表于 2007-7-22 16:17:59 | 显示全部楼层 来自: 中国湖北武汉
不错,收藏了!' q8 y! k* l) e  A

) b0 s7 B+ Q5 ~) C# I" x2 [谢谢楼主!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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