QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1552|回复: 2
收起左侧

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

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

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

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

x
应用AutoCAD几何计算器实现快速定位 3 ]4 q0 z) ^" r0 g; U

$ Y8 I) `$ @- \" j1 n5 Y$ R# j几何计算器是AutoCAD R12提供的一个十分有用的工具。和普通的计算器一样,几何计算器可以完成+、-、*和/的运算以及三角函数的运算。这使得用户在使用AutoCAD绘图过程中,可以在不中断命令的情况下用计算机进行算术运算,AutoCAD则将运算的结果直接作为命令的参数使用。但重要的是,和一般的计算器不同,AutoCAD几何计算器可以作几何运算。它可以作坐标点和坐标点之间的加减运算,可以使用AutoCAD的OSNAP模式捕捉屏幕上的坐标点参与运算,还可以自动计算几何坐标点。如计算两条相交直线的交点,计算直线上的等分点等。此外,AutoCAD几何计算器还具有计算矢量和法线的功能。当然,AutoCAD几何计算器还有其它的功能,这里就不一一罗列。
6 N6 Z/ {# v; _; J9 Q   在使用AutoCAD绘图中,常常需要确定一些无法直接给出坐标的点。例如,任意两点间的中点;和任意方向直线相切的圆的圆心;以及直线上任意等分点等。这就是我们通常所说的CAD绘图的定位问题。实际上,在许多计算机绘图场合,定位是否方便和精确往往直接影响作图的效率和速度。因此,应该充分利用AutoCAD几何计算器的几何运算功能,来实现AutoCAD绘图中的快速定位。
1 z+ r) d. o& {& H/ S   在命令提示Command:下键入CAL或激活下拉式菜单的辅助菜单项拾取其中几何计算菜单项都可启动AutoCAD几何计算器。CAL命令也是一个透明命令,可以在其它的命令下随时启动几何计算器。此外,还可以在AutoLISP程序中使用CAL命令。 1 r- I5 V( k, K/ j9 E8 q0 b
  下面是利用AutoCAD几何计算器的几何运算功能实现在AutoCAD绘图中经常遇到的几个快速定位的实例。; }0 T0 O: |/ ]4 \/ @
   1.在两实体间确定中点
" G; b. r3 V- i* C5 q4 b   这里不需先在两个实体之间画一条辅助线再用OSNAP的MID模式得到中点。例如,要从一个圆心和一直线的端点之间的中心为起点画一直线。操作过程如下:
. ^" r3 E9 `3 Y9 k: h! R7 M! S; _   Command: line
5 u) m/ }7 ?5 ]( B  r6 m) T  u   From point: 'cal (启动几何计算器)! f& D9 j0 p" v  n
  >> Expression: (cen+end)/2 (输入表达式,这里计算器把OSNAP的cen和end模式当作点坐标的临时存储单元)* X* g+ E" O; }  X
  >> Select entity for CEN snap用光标捕捉圆心); c/ \( `# u1 y: P
  >> Select entity for END snap:(用光标捕捉直线的端点)' [4 R- o% s1 g; t* q; _
   To point:
5 N1 s; _$ B4 X( o: x. {, O   其它的目标捕捉模式如int、ins 、tan等等均可在几何计算表达式中使用。如果用表达式(cur+cur)/2代替表达式(cen+end)/2,则可以在计算机要求输入点时,再设定OSNAP方式来捕捉所需的点。* P$ D' L2 z3 p/ j' A
   2.确定一条直线上的任意等分点和与直线端点定长的点* J4 F* I) I2 ~3 t$ Q
   使用几何计算器提供的plt和pld函数可以完成这个操作。假设屏幕上有一端点为A和B的直线,要在直线上获得分直线段AB为1比2的点。仍以画直线为例,操作过程如下:' g' U5 r3 H" d8 E
   Command: line; x/ a$ q0 s7 u  F. w) N$ |8 N: [) {
   From point: 'cal3 M/ A2 S. N  X; B. T- \( p
  >> Expression: plt(end,end,1/3)7 y/ U% G5 D, S1 u: B- @
  >> Select entity for END snap:(用光标捕捉端点A)
6 ]( k5 F0 I4 s$ Q( m  >> Select entity for END snap:(用光标捕捉端点B后即得到距A点为1/3线段长的点): J! b, Y! X/ }% |' `4 {1 R$ I! e
   To point:) B# P9 j$ A  ^( a9 o
   如果要得到直线上距端点A为5的点,使用函数pld(end,end,5)代替上面操作过程中的plt(end,end,1/3)即可。6 J# B# t$ y& e" E$ Y2 e6 B
   3.用相对坐标来确定点
  B/ B. p+ \( e! J, @   在绘图中,经常要相对一条线画出另一条线,下面就是操作过程:; e" e0 I* x( B- L; T- }
   Command: line
) R3 [) t7 O! E! y8 {   From point: 'cal
; y8 ?9 Z" e5 t; w. `  >> Expression: end+[2,3](作点和点的相加运算)
; g! _" D: y. P( Z- c  >> Select entity for END snap:(捕捉一基准直线的端点后即可获得距端点相对位移(2,3)的点)4 E' @& l! l2 D: C" _
   To point:# Q2 v+ O0 L# F  B6 N
   这个功能和AutoCAD R13中提供的From目标捕捉模式相似。9 z1 K" e, C1 B7 O0 D9 S
   4.作和一斜线相切的圆以及过圆上一点作圆的切线7 C$ \3 o& l0 y) I+ }
   利用AutoCAD正交模式可容易地画出和垂直线或水平线相切的圆。画一个和斜线相切的圆则需要准确地确定圆心。操作过程如下:$ H$ i& L4 |* v
   Command: circle" J5 Z3 m2 D- s, w0 o( c! E: E
   3P/2P/TTR/<Center point>: 'cal
& ~3 z$ K. p4 z8 v5 M- b: A( l  >> Expression: cur+3*nee(cur表示用光标在屏幕上拾取一个点,nee函数用来计算两端点矢量的法线,3是圆的半径)
4 V4 ~. r  b2 P: q, U4 i  >> Enter a point:nea(用光标在直线上捕捉一个点作为圆和直线的切点)
/ N) ?% D6 {: M6 P4 \. p6 b   to >> Select one endpoint for NEE:(用光标捕捉直线的一个端点)
- ^! d' U! Q2 p9 Q, Z2 l  >> Select another endpoint for NEE:(用光标捕捉直线上的另一个端点)
5 E, T6 r3 k, b1 }3 J3 u   Diameter/<Radius> <1.6745>: 3(给出圆的半径后即可画出这个圆)
/ Z3 g) k' c% l2 i0 ^: q' X2 a   改变光标捕捉直线两个端点的顺序可在直线的另一侧画圆。
; g8 h7 X4 _: ?& o( r1 m3 K$ [  L  y   假设过圆和一直线的交点作圆的切线的操作过程如下:4 R) U1 k3 M& u/ h- ~
   Command: line
& D5 p! t) m/ L' V, k+ E% V   From point: int(捕捉交点)$ Z& i; E6 c9 E/ \# ?
   of
9 R  [: y2 A* m+ U* ~: N   To point: 'cal/ a/ h2 x$ U  z: t: }
  >> Expression: int+3*nor(cen,int)
. [' k, M4 U# d3 ^: l( s6 L  >> Select entity for INT snap:(用光标捕捉交点), \. m* }) p8 m; {/ A+ y
  >> Select entity for CEN snap:(用光标捕捉圆心)/ s  K) g9 s  S* d
  >> Select entity for INT snap:(再用光标捕捉交点即画出从交点出发长度为3的已知圆的切线)
3 ~3 G: d3 U. w$ r   To point:
+ }1 Z) W8 S  m9 r$ C, ]   5.过一条斜线上的已知点作斜线的垂线
2 \3 [, O' z' x% ~, g0 _- l7 F   因为是非水平非垂直的直线所以不能用AutoCAD的正交模式画直线的垂线。利用几何计算器可直接画出和斜线垂直并且为确定长度的直线。实际上这是一个如何确定垂线的另一个端点的问题。其操作过程如下:
6 L0 i" g4 Y! c6 Z0 N7 n5 s5 \   Command: line
* N& f/ o, y* [* E% t& n   From point: mid(设过直线的中点作垂线)
: f! n, P6 Y+ b/ N+ l ?of+ m0 d& l: z/ j9 z5 S% n' |
   To point: 'cal' M5 @3 D1 [  B2 ?
  >> Expression: mid+5*nee(5是垂线的长度)
. m  ~& _. o) [1 D' P  >> Select entity for MID snap:(用光标选择斜线捕捉中点)
% d$ l+ _; w- Q/ K4 ?. t) {$ P) f  >> Select one endpoint for NEE:(用光标捕捉直线的端点)" |2 U9 p2 V4 D% X7 g* e5 X& M  U& t
  >> Select another endpoint for NEE:(用光标捕捉直线的另一个端点)( v# \. A, x0 c9 J
   to point:" J6 D& v3 i- M/ ?. Y; e" S
   同样,改变光标捕捉直线端点的顺序,也可在直线的另一侧画垂线。
发表于 2007-7-21 22:50:03 | 显示全部楼层 来自: 中国上海
有点复杂,不过值得学习
发表于 2007-7-22 16:17:59 | 显示全部楼层 来自: 中国湖北武汉
不错,收藏了!) T, ^1 m1 U! d9 C; ^: I; q

1 Y1 k/ ]+ ^1 G3 k谢谢楼主!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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