|
公差是机械设计中一项重要的技术要求,在用利用AutoCAD软件绘制机械图时,经常遇到标注尺寸公差的情况。 设计人员需根据尺寸公差代号查找国家标准极限偏差表,找出该尺寸的极限偏差数值,按照一定的格式在图中标注。为实现这一要求通常有以下几种方法,现总结如下: 4 r9 L# i9 _$ X+ U$ K0 o4 }
途径1:利用AutoCAD提供的“尺寸样式管理器”对话框设置当前尺寸标注样式的替代样式。 ' y9 q1 H% o1 r- W N {
在替代样式中设置公差的形式是极限偏差或对称偏差等,然后输入偏差数值及偏差文字高度和位置。用此替代样式标注的尺寸都将带有所设置的公差文字,直至取消该样式替代。若要标注不同的尺寸公差则需重复上述过程,建立一个新的样式替代。需要指出的是在这一操作过程中用户必须使用系统给出的缺省基本尺寸文本,否则系统不予标注偏差,只标注基本尺寸。这样就给用户的尺寸偏差的标注工作造成不便。
$ x% U* x$ P' v途径2:利用AutoCAD的“多行文字编辑器”对话框的文字堆叠功能添加公差文字。
! D3 T' p. H" E5 f5 o7 {在尺寸标注命令执行过程中,当命令行显示“指定尺寸线位置或[多行文字(M)/文字(T)/角度(A)/水平(H)/垂直(V)/旋转(R)]:”时键入“M”,调出“多行文字编辑器”对话框(如图2所示)。直接输入上下偏差数值并用符号“^”分隔(例如:+0.01^-0.02),然后选中输入的文字,点击对话框工具条上的 按钮使公差文字堆叠即可。对话框中的“<>”符号代表该尺寸的缺省文本,可以直接删除、修改。对于堆叠文字的编辑可以选中该堆叠文字后单击鼠标右键,在弹出的快捷菜单中选择“特性”,打开如图3所示的“堆叠特性”对话框便可修改堆叠文字的内容、大小、位置等内容。
5 Y& U; f" V" I* Y4 H6 S4 V: l这种方法比直接使用AutoCAD的公差标注功能要简便,可用于线性标注、对齐标注、直(半)径标注和角度标注,但不能用于基线标注和连续标注。
0 ~3 K: m' C# O- f% E$ o$ \5 o1 u7 }前面两种方法需要人工查找尺寸偏差值,不能实现设计和绘图的自动化,在实际设计工作中使用起来仍显繁琐,我们在AutoCAD软件的教学和使用过程中,采用二次开发的方法较好的解决了这个问题。 , e- D; J# T4 H7 ]; c/ E
途径3:利用AutoLISP语言编程实现公差的自动标注 / x3 v5 j7 e9 _: `
(1).程序设计思想
4 u' n6 r9 X3 J, FAutoLISP是内嵌于AutoCAD的一种表处理语言,能直接访问图形数据库,通过修改图形数据对图形进行操作,是扩充AutoCAD图形处理能力的有力工具,我们在设计程序时采用了模块化结构,将程序要完成的功能目标划分为查询和注写两个主要功能项,利用DCL语言设计出程序界面。主程序建立在界面驱动程序的基础上,通过定义相应的回调函数来实现其功能。利用AutoCAD的“appload”命令对程序进行装载,装载成功后,主函数名即可作为AutoCAD的命令使用。程序流程图如图4所示,程序界面如图5所示。用户先选择需要添加公差的尺寸,程序获得该尺寸的基本尺寸数值,然后显示对话框供用户直接输入数据或选择查询方式,最后调用子程序注写该尺寸的公差文本。 - i, h. Y. d+ z& a+ H! t4 t3 v% R
开始
! O1 W) m, p; |" c5 R1 z7 Z: V s选择尺寸
3 V( |& y8 D" Z5 C5 N显示对话框
* n# C: _3 G/ J3 D8 u; V放弃
, h3 |; g" c& n: v; Q' d+ o! a结束对话框程序终止
# w7 _$ x7 l) F: a调用预览图片子程序
" a" g7 j; J( }$ `8 ~2 E; J输入偏差数值
6 ]- D, E d8 a; y5 u, ?7 {* k手工输入 , Y# l8 A8 V8 R
设置参数
2 c2 d' y- T7 e4 s4 K8 w" R* |8 _公差格式
/ u8 g& \) O3 z0 S/ G% L查询输入
( W+ }4 n, D4 u2 t7 v) [文字高度
( ?8 ?, _* \! n- }确定
4 r+ K# j3 V( m+ `( B/ b注写极限偏差 ) M( L8 _0 Q3 q" o' c) n- I
(2)公差数值的存储与查询
% @7 w3 j0 A. \/ j! n, |公差数值的存储与查询是实现公差自动标注的关键之一。若使用外部数据库进行数据存储则在查询数据时需要使用中间文件,速度较慢。“表”是AutoLISP中最常用的数据记录工具,用表数据结构可以根据需要构建二维、三维甚至多维数组;利用表的检索函数可以快速地对表进行数据提取。对表的强大处理能力是我们选择AutoLISP的另一个理由。我们按尺寸分段将国家标准中的基本偏差表设计成AutoLISP表的形式,为了缩短查询时间按照孔、轴分别建立了一个二维表,通过变量在程序运行时将表调入内存。表中每一个元素包含上偏差和下偏差数值。在查询模块中利用基本尺寸、公差等级、配合代号作为输入参数,得到偏差数值所在的维数,从而查出该尺寸的上下偏差数值。查询语句如下: * O, e3 d* K& i N/ q
… . S! C' |2 o5 x- N) F
(setq pc (nth m (nth n pcb)))
% f+ C- R' X' } P2 S! z4 u' f(setq pc_s(nth 0 pc)) ( Z5 u8 I/ V. v2 d
(setq pc_x(nth 1 pc)) ( Z7 C5 K0 Y9 c P" G
…
+ @5 h$ f1 @# e( G( gpcb是偏差表,m、n是根据输入参数得到的维数,pc_s、pc_x分别是上、下偏差值。
3 s8 R! S/ O; ~2 b, u& x(3)公差的注写 * {( L5 C& t6 F2 c9 F
由于程序采用的是对已经标注的尺寸添加公差的办法,而不是简单的注写text文本,所以添加上的公差文字与原尺寸文本是一个整体,这样就要用到AutoCAD的实体访问技术了。AutoCAD在绘图过程中赋予所绘实体一个数字标号,称为图元名,它是指向由AutoCAD保持的一个内部数据文件的指针。通过图元名AutoLISP就能找到该实体的数据库记录,并对实体进行各种方式的处理。 1 X3 D' f/ w$ _/ H* m; i
程序通过entsel函数返回用户所选择的尺寸的图元名,然后由 entget函数获得尺寸实体的定义数据,其中组码1的内容就是用户输入的尺寸文本,通过对其进行修改,加入上下偏差的数值就可以实现我们的目的了。其中部分代码如下: % x# t$ T. N/ U$ Y" u
… 8 u2 \/ @4 c: k/ Z2 t
(setq updata(strcat "\\A1;" jbcc "{\\H" gdxs "x;" "\\S" pc_s "^" pc_x ";}"))
* k( b- Q4 J& M3 M) b;jbcc是该尺寸的基本尺寸数值;gdsx是公差文字的高度。 - c5 p5 e7 K, o; a6 z+ l1 K! w
(setq updata (cons 1 updata)) ( ?% ]9 g/ H$ m1 I' a! ~9 J
(setq dimobj(subst updata (assoc 1 dimobj) dimobj)) 9 c. j5 c4 N# J! l0 ~
(entmod dimobj) & G8 p8 j5 U2 Z9 T& ]1 v! t
…
8 ]# w0 ], z& ~/ z/ x4 h( U组码内容修改完成后须用entmod函数更新图形数据库,所作的修改才会显示出来。该程序在AutoCADR14、AutoCAD2000上调试通过,涵盖了全部尺寸标注方式,可大大提高尺寸标注的速度。
2 _, s. y% `. D3 n6 S, T6 ~) U: D2 n结束语
. l& s+ r9 _" }4 h5 i本文总结了在AutoCAD中进行尺寸公差标注的几种途径,特别是如何用编程的方法实现尺寸公差的自动标注。AutoCAD是一个通用的绘图平台,在此基础上进行各种专业应用程序的开发则可以大大提高工作的效率,这也正是AutoCAD最吸引人的地方——在其强大功能基础上的开放性。 |
|