|
AutoCAD作为应用最广泛的绘图软件,它的功能非常强大,基于AutoCAD环境下的二次开发也很方便。但是,在AutoCAD绘图软件的各种版本中,均无现成的常用结构图形库。本文采用AutoCADVBA(Visual Basic for Applications),针对各类零件特点的常用结构,如轴类零件的键槽、带轮槽、密封圈槽、移出剖面图和局部放大图等,实现了对常用结构的参数化绘图[1]。绘图人员只要输入要求的参数,就可以自动生成对应图形,简单方便实用。由于常用结构的编程过程非常相似,下面就以键槽为例,讲述标准结构参数化设计及绘图过程。
; A4 R* T2 b0 b% ]* D* w' E" |+ a: B+ P8 d
1 参数选择
* [( f- O' ], b% Z* e; F
& `) g. ~0 z' a* |键槽是轴类零件上常见的结构,通过对图1和图2 的比较可见,只要 5 个参数给定,就可将键槽的主视图和剖面图确定下来[2]。而且,根据标准机械设计手册,参数中的b、t 是由轴径d决定的,那么,绘图过程需要的参数只有三个:d、l、a。而另外两个参数b、t 可作为数据库内容通过d 来查询,这部分任务通过程序来完成。因此,经过分析可知,绘图人员只要输入参数d、l、a 的数值就能快速简洁地完成了。 / o4 r: d2 x' R @
8 p _* a% x% D6 `8 N( ~( J
1 r2 _8 |6 g+ P# C7 {/ l$ u+ h/ |" c- ?9 R+ M9 Z
2 编程思路 # j- k/ b- ]9 x& W
8 e$ Z. `2 \9 o% p2. 1 建立Access 数据库) F" b- O' c1 H1 O
9 A3 t# N E2 S7 b' f( f# T
普通平键及键槽尺寸如图3 所示。
9 {, W+ y+ W; `8 ]$ n5 p' n/ x& Z6 w0 h3 I& X; b
Access 是开发小型数据库应用系统的理想工具,功能灵活,易于学习和操作[3]。本软件便采用Access 来建立数据库。表的结构非常简单,只是对机械手册相关表格中部分字段的选取。对于键槽来说,则采用如表1 的表格形式(表1 只选取完整表格的一部分)。 6 d/ O$ B% r+ J& m" Z* F4 q. r3 A2 A
' o2 J7 {+ m7 I( R, e5 i
2. 2 数据库操作部分 ( l) a' {9 k% u, |5 ^5 D0 Y
: [8 }0 {3 f$ l- E x4 y, V4 ~1 o本软件对数据库的操作使用ADO(ActiveXData Objects)方式[3]。
# `6 J9 }4 e0 [1 Q2 p; n0 J0 `- E
- e# S1 B x4 x" R9 L1 k- }$ u其中,打开数据库的语句如下: 5 U; m% |7 C- ~4 Z
& F9 }: H$ F! N ?" f: P3 f1 HPublic Const DATABASE As String = " 常用
. \7 Y! _% ?8 v1 y结构. mdb" ; q9 d+ f8 B. ]4 g( D: l5 `$ }8 p, F
Private cnn As ADODB. Connection
/ [; a+ p, k _# B' G5 eSet cnn = New ADODB. Connection
8 |: A- ^. Z; u e2 v1 w3 J, }7 g7 p J* K
cnn. ConnectionString = " Provider = Microsoft.
2 n# T! w8 D6 r3 v; p1 tJet. OLEDB. 4. 0;Data Source = " - App. path
% S D( ^* Y- Y, ^ n# _: \ g" " DATABASE " ;"
' F2 v& x0 ^1 Ocnn. Open
! W) ]9 ~+ @( `3 W; e1 ~$ Q" @& c7 u/ c9 \* c% }2 _
对数据库中的数据,本软件最常用的是查询功能。例如:根据所给轴的直径d 查询键槽的相关尺寸b、t 的查询语句如下:
1 x N) ~7 ]8 F* F; n
! I4 n7 e+ F5 L: G! Z DSELECT b,t FROM 普通平键及键槽尺寸表 0 \) s9 h% `1 V h) J$ R
WHERE d > dmin and d < = dmax. , D& a/ ~# W% l [
0 f1 l v9 e8 o3 _其他对数据库的操作与查询类似,不再赘述。
& H6 J9 S: A/ S* i( d( O6 T
. G2 S8 t) g/ @9 a* T2. 3 绘图部分
* g: n) O5 \* A7 ?7 q% ]5 C* h3 w9 @+ \4 ^1 O
对于键槽结构来说,图形分为两部分:主视图和剖面图。线条比较简单,主要采用画直线和圆弧的命令,尺寸标注也主要采用线性型尺寸标准方式,它的基本命令为: # g( o+ T) B5 n7 k
( I. V! y3 N. x$ k7 X0 V0 v% NThisDrawing. ModelSpace. AddDimAligned( startPoint,
# P( M5 p& [, w5 Y: K/ c- VendPoint,location)。
, d. s' u8 P0 ?$ Y4 o9 I3 g
! s: N. @6 W9 @, c D下面以绘直线为例,表明作图过程[4]:
. A$ A1 @% U9 @$ @. j, z7 v. r" s: T' v/ h) f' f' p
startPoin(t 0) = ArcCenPointX (d/ 2# - t) ; _* D9 T% c- S4 G/ Z8 e
startPoin(t 1) = ArcCenPointY b / 2
" @, A# o# ?7 U" t2 \2 XstartPoin(t 2) = 0# ; \' j+ F7 Z7 G, I- R9 u4 H% H
endPoin(t 0) = ArcCenPointX (d / 2# - t) % q) R0 i" L/ S
endPoin(t 1) = ArcCenPointY - b / 2 . @2 F" p( h1 X d5 |( Z& E
endPoin(t 2) = 0#
. d3 ~1 L* n( i) dSet lineObj =
: t+ c9 E- d" D2 t. R; zThisDrawing. ModelSpace. AddLine( startPoint,
. z/ q/ ^# _9 @, o+ E( bendPoint)
8 T1 h( o4 n x2 M1 g2 L" d1 @9 W, r6 t: S2 K5 P
当然,绘图部分实现最终的图形显示,在程序中难免有相当多的数据的传输调用。本文采用的是全局变量的形式。例如轴径:Public d As Double。
Y$ J& }! S9 S0 c7 Z$ k3 ]% e# W, [
与AutoCAD的接口可以使用菜单方式,也可以采用命令方式,都非常方便简单。 A. g4 b; _- D5 @( g4 I
% X& U% a4 _' ?; j1 h3 n9 |( h3 结束语
& ]. N- a+ X. G# I
8 G' T. k$ x5 F4 J8 R本文所实现的对常用结构的参数化设计,是在AutoCAD环境下,利用VBA 这种编程语言完成的。界面简洁,简单易用,减少了绘图人员的查阅标准时间,减轻了绘图工作量,提高了出图速度,并且可以避免在绘图和查表的交错进行中产生的失误,具有一定的实用价值。 |
|