QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
应用AutoCAD几何计算器实现快速定位
9 p3 P- U; L# j' l$ R: d# M3 b; s3 f) w5 a& R7 A& z: P
几何计算器是AutoCAD R12提供的一个十分有用的工具。和普通的计算器一样,几何计算器可以完成+、-、*和/的运算以及三角函数的运算。这使得用户在使用AutoCAD绘图过程中,可以在不中断命令的情况下用计算机进行算术运算,AutoCAD则将运算的结果直接作为命令的参数使用。但重要的是,和一般的计算器不同,AutoCAD几何计算器可以作几何运算。它可以作坐标点和坐标点之间的加减运算,可以使用AutoCAD的OSNAP模式捕捉屏幕上的坐标点参与运算,还可以自动计算几何坐标点。如计算两条相交直线的交点,计算直线上的等分点等。此外,AutoCAD几何计算器还具有计算矢量和法线的功能。当然,AutoCAD几何计算器还有其它的功能,这里就不一一罗列。
0 A0 }' k; [3 s% O7 G! r   在使用AutoCAD绘图中,常常需要确定一些无法直接给出坐标的点。例如,任意两点间的中点;和任意方向直线相切的圆的圆心;以及直线上任意等分点等。这就是我们通常所说的CAD绘图的定位问题。实际上,在许多计算机绘图场合,定位是否方便和精确往往直接影响作图的效率和速度。因此,应该充分利用AutoCAD几何计算器的几何运算功能,来实现AutoCAD绘图中的快速定位。  y9 W+ U$ y- _- q3 Q8 K" F
   在命令提示Command:下键入CAL或激活下拉式菜单的辅助菜单项拾取其中几何计算菜单项都可启动AutoCAD几何计算器。CAL命令也是一个透明命令,可以在其它的命令下随时启动几何计算器。此外,还可以在AutoLISP程序中使用CAL命令。 . v2 |' f3 _1 r6 K# \' B7 g
  下面是利用AutoCAD几何计算器的几何运算功能实现在AutoCAD绘图中经常遇到的几个快速定位的实例。6 h- I( Z5 u1 Y9 i# ^. T
   1.在两实体间确定中点
9 w& a4 K. k3 d1 ~2 e   这里不需先在两个实体之间画一条辅助线再用OSNAP的MID模式得到中点。例如,要从一个圆心和一直线的端点之间的中心为起点画一直线。操作过程如下:
8 }/ }0 ^# f/ j- W: o   Command: line* ^) @0 u5 N' R: b2 }
   From point: 'cal (启动几何计算器)6 v* K) s0 |; M6 h% U
  >> Expression: (cen+end)/2 (输入表达式,这里计算器把OSNAP的cen和end模式当作点坐标的临时存储单元)
6 E& Z, [8 @6 @, i- M, R8 {  >> Select entity for CEN snap用光标捕捉圆心)
; U- H7 L9 U2 i9 B  >> Select entity for END snap:(用光标捕捉直线的端点)2 a$ }" ^0 f* s, @5 z- G3 e4 k
   To point:: s8 t1 r, A4 n" r" `% q
   其它的目标捕捉模式如int、ins 、tan等等均可在几何计算表达式中使用。如果用表达式(cur+cur)/2代替表达式(cen+end)/2,则可以在计算机要求输入点时,再设定OSNAP方式来捕捉所需的点。
' P/ ]( c7 f! H9 X; i   2.确定一条直线上的任意等分点和与直线端点定长的点5 I- }, L* `' k& Q6 G. z
   使用几何计算器提供的plt和pld函数可以完成这个操作。假设屏幕上有一端点为A和B的直线,要在直线上获得分直线段AB为1比2的点。仍以画直线为例,操作过程如下:9 ~' K& f/ Z1 f% f
   Command: line7 T8 {% R" X$ p( C5 W
   From point: 'cal* U  j: g( i( O; B+ P; F" o# I7 g
  >> Expression: plt(end,end,1/3)
3 f( u9 A) I- E" ~2 r' j/ ^  >> Select entity for END snap:(用光标捕捉端点A)6 V  }% d" ^5 L" s' Z8 L
  >> Select entity for END snap:(用光标捕捉端点B后即得到距A点为1/3线段长的点)  d% ^2 c" M' L
   To point:
0 [! G' F* v, y+ ?0 ~   如果要得到直线上距端点A为5的点,使用函数pld(end,end,5)代替上面操作过程中的plt(end,end,1/3)即可。
4 }' O& \& G! h# f   3.用相对坐标来确定点! V8 R% G+ W: ^2 M
   在绘图中,经常要相对一条线画出另一条线,下面就是操作过程:
; U5 @/ E6 e0 T1 I- \   Command: line0 D) _  k+ `- q5 C7 v" u  {* I
   From point: 'cal
3 @( \) R' o! F  >> Expression: end+[2,3](作点和点的相加运算)- d3 e1 g; `8 [, V' o4 }
  >> Select entity for END snap:(捕捉一基准直线的端点后即可获得距端点相对位移(2,3)的点)+ g0 w4 ~/ G/ z8 {; i3 Y4 T
   To point:; o9 a( p% `& ?& K0 Y) |6 F
   这个功能和AutoCAD R13中提供的From目标捕捉模式相似。
3 |" M1 Q8 N! {5 Y6 Z  }   4.作和一斜线相切的圆以及过圆上一点作圆的切线
+ @+ T6 J" B& \) d   利用AutoCAD正交模式可容易地画出和垂直线或水平线相切的圆。画一个和斜线相切的圆则需要准确地确定圆心。操作过程如下:
3 z6 z+ S+ N" |) y   Command: circle7 {# L0 F2 O" L
   3P/2P/TTR/<Center point>: 'cal
2 r0 i. p6 b4 [# v. Z  >> Expression: cur+3*nee(cur表示用光标在屏幕上拾取一个点,nee函数用来计算两端点矢量的法线,3是圆的半径)
1 ~9 f$ n- D+ c- k) s* _: |) `  >> Enter a point:nea(用光标在直线上捕捉一个点作为圆和直线的切点)
9 S5 X6 K  D' ?) k   to >> Select one endpoint for NEE:(用光标捕捉直线的一个端点)
. ]# P2 W. L( F3 _/ o' s4 i  >> Select another endpoint for NEE:(用光标捕捉直线上的另一个端点): O; F6 p* ~9 x- i
   Diameter/<Radius> <1.6745>: 3(给出圆的半径后即可画出这个圆)4 `) n2 p5 A$ S# S6 k" ^
   改变光标捕捉直线两个端点的顺序可在直线的另一侧画圆。
/ h# e) d& o2 B/ j, |- u& w' C( |* d7 e   假设过圆和一直线的交点作圆的切线的操作过程如下:  v7 i. t9 L- s( q5 d( U7 s
   Command: line
* `& L# m# v2 Y  ?) t& \   From point: int(捕捉交点)
; m0 Y/ L5 k  P6 i3 x  n$ {   of
0 |) S/ J' x3 Z# D& H& }/ T6 m   To point: 'cal' W  X# d4 M# N  h! I9 h& {1 \& |1 [
  >> Expression: int+3*nor(cen,int)
) a. R" v! ~$ c5 @# N$ Z- w  >> Select entity for INT snap:(用光标捕捉交点)7 {  X/ W7 }  B! H* e( b
  >> Select entity for CEN snap:(用光标捕捉圆心)
, z( {- z% u; B  >> Select entity for INT snap:(再用光标捕捉交点即画出从交点出发长度为3的已知圆的切线)
/ B) r  o0 c+ {- E. `3 w   To point:
- t  ^3 S, F# w: i5 \: ^( a) H   5.过一条斜线上的已知点作斜线的垂线- W. [/ D5 v6 s) P  w" @
   因为是非水平非垂直的直线所以不能用AutoCAD的正交模式画直线的垂线。利用几何计算器可直接画出和斜线垂直并且为确定长度的直线。实际上这是一个如何确定垂线的另一个端点的问题。其操作过程如下:7 p; I! ^. z+ d& ?' X
   Command: line
2 _( y; t* j2 R4 H7 M   From point: mid(设过直线的中点作垂线)
5 o2 J, ~  X0 q7 q) [1 E& w ?of7 Y, g1 G7 s, S( v; Q' Q
   To point: 'cal
" F9 ?, R. K3 V; ]% K$ E: ], N* G  >> Expression: mid+5*nee(5是垂线的长度), _3 d$ `- e* i- a/ o# o/ z0 D
  >> Select entity for MID snap:(用光标选择斜线捕捉中点). V/ b; G( M& I, E
  >> Select one endpoint for NEE:(用光标捕捉直线的端点)
' h1 L& |. b  a) M# D5 g7 v  >> Select another endpoint for NEE:(用光标捕捉直线的另一个端点)  @8 p* z' c. n
   to point:
- x! O) d! t) _5 K( }# e   同样,改变光标捕捉直线端点的顺序,也可在直线的另一侧画垂线。
发表于 2007-7-21 22:50:03 | 显示全部楼层 来自: 中国上海
有点复杂,不过值得学习
发表于 2007-7-22 16:17:59 | 显示全部楼层 来自: 中国湖北武汉
不错,收藏了!
( s3 }3 `( v2 C  y* y
% Z" X$ p- Z7 y+ H+ Y+ o谢谢楼主!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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