QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2979|回复: 1
收起左侧

[分享] AutoCAD环境下旋转类拉延件毛坯尺寸的自动计算

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

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

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

x
AutoCAD环境下旋转类拉延件毛坯尺寸的自动计算
" d/ H/ P0 c7 z3 ?0 _$ U$ {摘要:讨论了如何利用AutoCAD的ADS功能来开发软件,在AutoCAD环境下实现旋转类拉延件毛坯尺寸的自动计算,文中对软件结构及其主要功能模块的算法进行了较为详尽的描述。
0 S* |& i7 r  d关键词:旋转类拉延件;毛坯尺寸;自动计算 9 B$ S0 \% Q  ]$ |! n

$ }2 h$ e2 y& s/ l$ T一、引言 * k. {( |) F% `' x

2 y& O8 u) P3 E) m" u, g在进行旋转类拉延件拉延工艺设计时,以最后一次拉深成形的制件为基础计算出毛坯尺寸(直径)是必不可少的工作。手工计算时,由于旋转类拉延件形状变化大,故常涉及到大量的公式和表格,计算过程较为繁琐、枯燥。 7 k0 p! E$ l' B* @0 V

% J" M! H  ^  T1 S( t" ?AutoCAD是国内目前较普遍使用的计算机绘图软件,待加工的拉延件的零件图常常已经在AutoCAD环境下绘出。根据AutoCAD下的零件图,通过开发软件自动分析计算出毛坯尺寸,是一项较有意义的工作。 - M( q3 W" s$ C1 J
" j1 `5 V5 Y, c; l4 n" L
AutoCAD软件包从AutoCAD R11.0开始,增加了ADS功能,可通过C语言按ADS指定的形式来调用AutoCAD的所有命令,并可进行实体(即点、直线、圆弧等)几何信息的读取,从而大大加强了利用AutoCAD进行二次开发的功能。
) T9 T: T- o: B7 C; s* ^0 F& X; X- q, N4 O( [3 G; m& T
为此,笔者利用AutoCAD的ADS功能,开发了一个对于AutoCAD环境下任意绘出的旋转类拉延件能自动计算毛坯尺寸的程序。该软件采用AutoCAD R12.0 for DOS下的ADS开发,利用ADS函数库编制的C程序通过High C 1.7编译,在AutoCAD Command状态下运行,可迅速准确地计算毛坯尺寸。
5 y; Z' U5 W3 _1 Y5 X2 t; D: I: y" Q8 P- z
二、软件设计 ' y2 p1 a' V$ @: r4 d2 s# \
9 K' w; h/ p' U2 J( D5 C
1.软件设计思想
6 {& Q* }$ h9 v; b( ~9 c; ~, k. t$ G  }& q& I" ^
根据久里金法则,任意由直线和圆弧为母线形成的旋转拉延件的毛料直径D可由下式决定:

; B- T* I, X( t+ D式中Li——旋转拉延件中性层各线段(直线和圆弧)长度
1 A1 ~" v9 X8 ~( BXi——旋转拉延件中性层各线段(直线和圆弧)重心到旋转轴的距离
# e- o6 y; P6 w; I; tnum——旋转拉延件中性层线段数 ( `: c6 S. a" c
# s) c9 O- Y" |# d3 @
图1示出了某旋转拉延件的线段长度及其重心的标注,中性层共有由8段线段组成,其中直线4段(L1,L3,L6,L8),圆弧4段(L2,L4,L5,L7)。 * [, p9 n- H0 t* B
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/20076101165149027.gif : u3 ~$ X) I  a4 |1 F* T$ b
图1一个旋转拉延件
现在需解决的问题是需要获取中性层各线段的几何参数,如直线的起始、终止点坐标,圆弧的圆心、半径、起始角、终止角。获取中性层各线段的几何参数后,根据有关公式即可求得各线段(包括直线、圆弧)的长度及重心位置,从而可由以上公式求得毛料直径。
1 o6 u- R. I4 g* p* G8 X# ], a6 w# A- }( ?: q8 ~
然而,中性层是假想的,由AutoCAD命令任意绘出工件图的中性层往往也并未画出,故需要首先读取工件图中内外两侧各直线和圆弧的几何数据,然后即可间接地求得中性层各线段的几何参数。
9 ~. n( R$ x; ^9 x( u( Z: v9 B: x+ K1 U) z
故本程序设计与实现上分为4个大的步骤: / J0 [/ {# B& t4 Y' p
9 L% `5 W. @  F7 y
(1)分别读取工件图内、外侧各线段的几何数据; # r& f* K0 K3 ?6 ]- K! S- Q
(2)利用内外侧各线段几何数据求中性层各线段几何数据; + q3 v( ]3 G$ h0 I
(3)求中性层各线段的长度及重心位置;
' K* V) r9 k9 |* G( S- d9 n: `(4)利用公式(1)求得毛料直径。
' L, B' v4 i) \
; i; Z0 g2 R$ h0 I3 o  n) P在第1、2、3步中采用了表1所示结构用于存贮内外侧及中性层各线段几何数据。
7 Y5 ?1 \' n: \2 r1 `2 ~: Y
表1实体信息的存贮方式 & F' a6 [4 \! d3 A4 P
PR[0]PR[1]PR[2]PR[3]PR[4]PR[5]
直线(1)起点X1起点Y1终点X2终点Y20

& [: k. V8 N5 u
& v- c: F3 S0 ^% J# A
3 @. C# b* ?# k* e! T
# v" T% }$ I, _' p# K9 [4 P$ c
7 l: s9 Z5 I* W  t- _
9 K' y- |1 H% K1 A3 C5 f
圆弧(2)圆心X圆心Y起角ANG1终角ANG2半径R
% f. c# e4 p' w: O6 T
+ u& P4 G- X- o& Z! _! p/ Z) F: K
4 C4 h( z  ]6 t# r

& |) G0 h' s6 B  g+ `. M9 z

7 A# `. T/ X5 q% X& m

& \) |/ j# [1 a! s/ u0 O1 ]5 i
圆(3)圆心X圆心Y00半径R
$ r, ~5 D! W  r( v5 D5 C& w
6 V; D  D/ I. t8 g$ u+ K
) ^2 u' Q; Z( \) i5 T+ I

# @0 ?$ z6 Q1 _& A

3 z/ U- w) p' A' \3 S
% c/ v( q& {9 Q+ g1 p
2.软件结构
9 o  z, D0 C5 z6 Y
/ C+ @# C  i. ?9 X1 P; b4 f根据以上设计思想,本软件结构流程图如图2所示。其中,表PR_SS[N] [5]、PR_L[num] [5]、PR_W [num] [5]、PR_M [num] [5]的结构形式与表1相同。
: x, I& d4 E1 b: Q4 W3 L
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/20076101110450824.jpg
1 m3 w; [' ^6 p: r& M! z, b图2旋转拉延件毛坯尺寸计算软件流程图
三、制件图内外侧各线段实体信息读取的算法 ; e$ M1 c7 n# `# j2 ~; k

6 ?) k- [" g+ I( B如上所述,AutoCAD环境下的制件图内外侧线段实体信息的拾取(即图2的前4个部分)是实现本程序的关键。现设定用于表达旋转拉延件内外结构的所有线段均绘于“0”层(这也符合一般AutoCAD绘图习惯),而尺寸标注、剖面线等则置于另外的层,则内外层线段几何信息读取算法如下: # `- C4 V4 M" [( a5 ]
5 c: C& _: x% [
Stepl【交互拾取表示厚度的左实体】
- ?1 Q! ]/ K: s- J交互选择表示厚度的中心线左侧实体S0(如图1所注)
1 z! f! k, q4 W! E* r" b6 jStep2【获取实体S0的两个端点】 - Z+ t4 K6 u9 r
读取实体S0的两端点坐标,存入数组PRSO[2][2]中
& ^. R9 t) ^1 g$ m0 e: K9 fStep3【拾取0层上的所有实体】 $ o( }9 s. R) [5 f0 t/ _0 f
建立0层上的所有实体的集合SS{S0,S1,…,Si,…}
. o  ^8 j* ?7 t2 Y& A  [. |4 OStep4【获取实体集SS的实体数量】 : s* ?2 H  H* D0 d2 G
从实体集合SS中获取实体数量N ' h# h: X; _; N8 L" Z) e
Step5【获取实体集SS中一个实体的信息】 ( {7 u% \6 k& d1 y# P. [
从SS中选择一个实体SSi,读取它的几何信息 / f: A/ ^4 Y8 ?! v; n' E
Step6【实体信息存放】
+ o- e; n- o# U6 ]! L/ ^将实体SSi几何信息放入如表1形式的数组PRSS[N][5]中
( r( @4 c+ n# c. I# Y) L5 kStep7【判断】N=N-1如N>0,进入Step5,否则进入Step8 3 d  w* o  \* T! r! g8 [
Step8【内外侧线段实体信息选择】 0 L8 @' x& V  j: Q! k: z3 ^  u

) U# r  A2 x* h根据数组PRS0[2][2]和PRSS[N][5],分别建立存贮制件外侧线段几何参数的数组PRW[num][5]及内侧线段几何参数的数组PRL[num][5]
1 ^$ U9 }, P; L3 K7 G0 ]8 E* q/ b+ G6 @: z+ u( v# |  o2 F" e! w
其中,Step1主要由调用adsssget()函数完成 # Q5 V5 b7 N2 N( y0 o, U
Step2主要由调用adsentget()函数完成
+ p# P3 e7 w8 w, KStep3主要由调用adsssget()函数完成 $ p! w; E- k( }$ F% m# o
Step4主要由调用adssslength()函数完成   c* f# c7 ]% H. c" b- b
Step5主要由调用adsentget()函数完成
7 ?  _1 _4 `7 v, S' OStep1中ADS函数adsssget()的调用格式为: ( t! a" c  h$ p8 A
adsname S0;/*实体名变量*/
* c. _7 V+ R  d' q' O& h$ zadsssget(NULL,NULL,NULL,NULL,S0);/*交互选择获取实体*/ 3 G) ~5 \/ h8 j
Step3中该函数的调用格式为:
# y# c! X5 f1 x  |adsname SS;/*实体集名变量*/ ' ?  P. z' y" w8 i" G  C7 Z& z
Char sbuf[6];/*层名变量*/ ' J! {% D8 x/ T& H
struct resbuf eb;/*结构缓冲器变量*/ ) E) b9 r7 x9 W  [7 c
strcpy(sbuf,“0”);/*层名变量赋值*/
5 A. o: a0 i2 e5 z8 \* H; U; O: ^eb.resval.rstring=sbuf;/*结构缓冲器字符串赋值*/
  o0 g. z4 P) ]- p3 X& S% q; s4 Q* Yadsssget(“X”,NULL,NULL,&eb,SS);/*获取“0”层实体集*/
- }' ^3 h7 H7 O4 T6 A/ ^
" j7 o) m. x+ C# C1 H在Step2、Step5中调用adsentget()函数的实质是产生一个结构缓冲器链表,该链表的结构示意图如图3所示。 ' ^% L" X7 U" f' e' [. q5 s8 T
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/200761011105526061.gif
& ^) i8 H" h3 l- |9 I. C图3结构缓冲器链表示意图
从结构缓冲器链表中可获取当前实体集中每个实体的类型(如点、直线、圆弧等相应的DXF代码)和几何参数(即直线的起始、终止点坐标,圆弧的圆心、半径、起始角、终止角),由于程序段稍长,此处从略。 7 O; E1 s/ Y- ^( x* n! C4 E# M
8 q! |% j: i- M
Step8主要根据S0的两个端点坐标(存于数组PRS0[2][2])和零件图内外侧所有的实体的几何信息(存于数组PRSS[N][5])按首尾相连原则分别确定内侧和外侧线段及其几何参数,并分别存入相应数组PRL[num][5]和PRW[num][5]中。 ( ?- n; w/ x# J, f& u
, e! g2 G3 e6 w+ o
四、结束语
/ Z5 m, g% [7 X: c
4 p% Y  X2 o& }作者根据以上程序设计思想和有关算法,设计完成了旋转拉延件毛坯尺寸的自动计算软件。在AutoCAD COMMAND状态下通过“XLOAD”命令加载本程序后,绘制(或调入)一个旋转拉延件零件图,运行本程序,即可在屏幕上显示打印出毛坯尺寸。
5 c( J: h  d0 W% f  b
4 ~- O- Q7 ^( @# m" O, o; j* @# u, k* Z该程序已对多个由AutoCAD绘制的任意复杂程度的旋转拉延件计算出毛坯尺寸。运行表明:程序正确、可靠,能满足迅速、自动计算毛坯直径的要求。本程序既可单独运行,也可作为后续的拉延模CAD系统的一个子系统运行。
发表于 2013-11-10 08:20:08 | 显示全部楼层 来自: 中国上海
高端。。。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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