QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
AutoCAD环境下旋转类拉延件毛坯尺寸的自动计算 " m2 E3 K$ _+ ~) |
摘要:讨论了如何利用AutoCAD的ADS功能来开发软件,在AutoCAD环境下实现旋转类拉延件毛坯尺寸的自动计算,文中对软件结构及其主要功能模块的算法进行了较为详尽的描述。
. C* {. C. v$ e" w" C关键词:旋转类拉延件;毛坯尺寸;自动计算
- p1 F4 [* ?- Z1 w0 w
5 g' }. g$ V3 p8 G& X& j# k& d5 @9 y一、引言 " l* K' c7 r. @4 K
5 M5 Z. Y% X  B; p+ Y0 J( }! R' O' [
在进行旋转类拉延件拉延工艺设计时,以最后一次拉深成形的制件为基础计算出毛坯尺寸(直径)是必不可少的工作。手工计算时,由于旋转类拉延件形状变化大,故常涉及到大量的公式和表格,计算过程较为繁琐、枯燥。 ! F9 N; c5 W( R2 k

5 j2 x6 w: u8 S7 `& u1 rAutoCAD是国内目前较普遍使用的计算机绘图软件,待加工的拉延件的零件图常常已经在AutoCAD环境下绘出。根据AutoCAD下的零件图,通过开发软件自动分析计算出毛坯尺寸,是一项较有意义的工作。
& |6 [# `  V& w3 ?) S7 {3 g: {+ m- v; l, P
AutoCAD软件包从AutoCAD R11.0开始,增加了ADS功能,可通过C语言按ADS指定的形式来调用AutoCAD的所有命令,并可进行实体(即点、直线、圆弧等)几何信息的读取,从而大大加强了利用AutoCAD进行二次开发的功能。
% s& H3 T! f& _2 `# b# U3 t( S* l& [( A9 p: K3 m
为此,笔者利用AutoCAD的ADS功能,开发了一个对于AutoCAD环境下任意绘出的旋转类拉延件能自动计算毛坯尺寸的程序。该软件采用AutoCAD R12.0 for DOS下的ADS开发,利用ADS函数库编制的C程序通过High C 1.7编译,在AutoCAD Command状态下运行,可迅速准确地计算毛坯尺寸。 8 n4 L, Z0 N4 r. }0 ~! t5 q

- S0 Y  G! N0 v& P) Q, m二、软件设计
4 j# f9 @6 r- `1 k) z- Z- Q
2 j; w6 @3 Y; z, z1.软件设计思想
- R+ E6 N$ s2 O. G/ ?; @, f% m
根据久里金法则,任意由直线和圆弧为母线形成的旋转拉延件的毛料直径D可由下式决定:

  ~' _. z/ `# ]式中Li——旋转拉延件中性层各线段(直线和圆弧)长度
9 B5 p6 v9 V7 I7 f$ u6 k$ k1 RXi——旋转拉延件中性层各线段(直线和圆弧)重心到旋转轴的距离
$ x$ t  ]/ G! k8 }4 Q2 N6 lnum——旋转拉延件中性层线段数
5 B; t: q. H. S
- E4 k7 w: G3 C  I1 e$ j图1示出了某旋转拉延件的线段长度及其重心的标注,中性层共有由8段线段组成,其中直线4段(L1,L3,L6,L8),圆弧4段(L2,L4,L5,L7)。
6 a  A2 y6 B% D" {$ B% ?
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/20076101165149027.gif # F/ H5 V! x8 Q' ?5 M9 ~% e
图1一个旋转拉延件
现在需解决的问题是需要获取中性层各线段的几何参数,如直线的起始、终止点坐标,圆弧的圆心、半径、起始角、终止角。获取中性层各线段的几何参数后,根据有关公式即可求得各线段(包括直线、圆弧)的长度及重心位置,从而可由以上公式求得毛料直径。 9 n: d! i3 T) w7 ~/ I/ ]8 R
3 n/ _! H/ ^! N3 s2 d& d: }
然而,中性层是假想的,由AutoCAD命令任意绘出工件图的中性层往往也并未画出,故需要首先读取工件图中内外两侧各直线和圆弧的几何数据,然后即可间接地求得中性层各线段的几何参数。
# I" g" e7 L: ]" S# f5 N) D8 x2 j: T2 O  R# T8 s+ V0 D
故本程序设计与实现上分为4个大的步骤: / X, _0 R& `; h2 Y1 P  v& g% [
2 `4 ~2 J  l% a! o) N2 ]6 `
(1)分别读取工件图内、外侧各线段的几何数据;
- V4 y' W& d9 _, D(2)利用内外侧各线段几何数据求中性层各线段几何数据;
. l$ @- v5 X* G9 O' Y(3)求中性层各线段的长度及重心位置;
* n. C0 p; o# ?7 ]; A; e(4)利用公式(1)求得毛料直径。
, f4 q, r( Z2 U4 |6 h- Q5 M4 ]: U) p0 d; U# H7 n  d
在第1、2、3步中采用了表1所示结构用于存贮内外侧及中性层各线段几何数据。 ; W- d+ p9 a% v/ F+ C
表1实体信息的存贮方式 3 Z7 J0 b& ]/ ?1 e5 r
PR[0]PR[1]PR[2]PR[3]PR[4]PR[5]
直线(1)起点X1起点Y1终点X2终点Y20

/ V9 m; O6 E3 z7 {) e0 p9 O
+ L- M; S9 p% ?, v- T* \
; _8 o  M5 l2 v  x( a4 ]) V

6 X. G# S$ ]0 N7 M' {/ J1 z' ^4 Y

% i1 q/ Q# V7 ]  L, P& ~
- D& d5 K! x' B# ]: B
圆弧(2)圆心X圆心Y起角ANG1终角ANG2半径R
+ H3 `5 |1 j5 h6 p: k& @
# |; T( y$ l$ p' P/ l) W- N5 ^

& _7 P1 D+ ?/ U" Z4 i# Y

5 p1 z! g# |" Q+ X/ f

, w9 l! _" `# C/ J) n1 B9 R
( p+ ~4 Q( k6 N7 R
圆(3)圆心X圆心Y00半径R

* R5 x7 _, \( B" X, ^. {0 j
$ Z) E: s6 d# Z1 P0 j7 e7 [
0 x* |' J+ T+ v* E( w4 _1 Q

( O/ W7 b4 T+ a+ l

- ?/ n0 D7 M5 g# d' k) _

" Y9 u7 n; `/ A% @" M7 ]8 R
2.软件结构 ) B3 u! r, c% c7 l: K2 N2 o

" `* e* c5 o6 a# s0 T& L根据以上设计思想,本软件结构流程图如图2所示。其中,表PR_SS[N] [5]、PR_L[num] [5]、PR_W [num] [5]、PR_M [num] [5]的结构形式与表1相同。 2 h- z3 k  s% s  `% e0 k
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/20076101110450824.jpg + D- @1 U7 V+ M. l/ e; f5 x
图2旋转拉延件毛坯尺寸计算软件流程图
三、制件图内外侧各线段实体信息读取的算法
5 g4 G# k. i1 P( i% A# ?  J6 e2 I/ P. R
如上所述,AutoCAD环境下的制件图内外侧线段实体信息的拾取(即图2的前4个部分)是实现本程序的关键。现设定用于表达旋转拉延件内外结构的所有线段均绘于“0”层(这也符合一般AutoCAD绘图习惯),而尺寸标注、剖面线等则置于另外的层,则内外层线段几何信息读取算法如下:   L" R$ z1 c* ^- u5 [" \5 z' N+ K; n
, x# ^7 X* x5 Y/ R
Stepl【交互拾取表示厚度的左实体】 + E+ ~6 \* `* f( B
交互选择表示厚度的中心线左侧实体S0(如图1所注)
& N: [. B$ Z" o6 }, \# dStep2【获取实体S0的两个端点】 % [7 u& z, X6 L# z
读取实体S0的两端点坐标,存入数组PRSO[2][2]中
$ q* e8 R4 @( S6 Q+ m$ xStep3【拾取0层上的所有实体】
* F0 [* k8 R% S% p# q% m建立0层上的所有实体的集合SS{S0,S1,…,Si,…}
2 k, _: g4 S' |! I8 l; MStep4【获取实体集SS的实体数量】
* p3 T& e7 @- O5 Q) F' L从实体集合SS中获取实体数量N ; f( y% u, a* y' T4 E; C
Step5【获取实体集SS中一个实体的信息】
0 ]- s8 B# H3 B从SS中选择一个实体SSi,读取它的几何信息 9 @' |; N- g% _4 m0 C: I7 k
Step6【实体信息存放】 $ \6 e; g3 ?, ^$ T0 Z8 g% m, v
将实体SSi几何信息放入如表1形式的数组PRSS[N][5]中 / W" x- f: H* a0 V% m; j+ l
Step7【判断】N=N-1如N>0,进入Step5,否则进入Step8
  V" D: g6 D' w$ S2 o8 MStep8【内外侧线段实体信息选择】 ( i3 L: i" ]3 L+ Z- W

% `; }/ {( K6 m: _- [" e根据数组PRS0[2][2]和PRSS[N][5],分别建立存贮制件外侧线段几何参数的数组PRW[num][5]及内侧线段几何参数的数组PRL[num][5]
7 J+ k1 M/ b; ?7 e, f) V3 N" P8 U" {
6 j  j5 f) p2 L, ?2 [" k其中,Step1主要由调用adsssget()函数完成
6 x/ z- ]  |* k( _3 _' eStep2主要由调用adsentget()函数完成 0 z7 k* l" h; U' f2 L5 r8 p
Step3主要由调用adsssget()函数完成 - M. f1 S" v3 j( c
Step4主要由调用adssslength()函数完成
" [4 F, o6 u9 hStep5主要由调用adsentget()函数完成 3 {3 g4 m: K3 z& k9 ?6 @
Step1中ADS函数adsssget()的调用格式为: 7 Q  A( r3 w( r  l/ E$ a
adsname S0;/*实体名变量*/
! j# V/ O( _0 }% a( I& gadsssget(NULL,NULL,NULL,NULL,S0);/*交互选择获取实体*/ - ~5 f; b* w9 ~" F
Step3中该函数的调用格式为: ; n5 B+ o  q$ F; @' g! \
adsname SS;/*实体集名变量*/
7 k6 \/ `  d% T. u$ F8 IChar sbuf[6];/*层名变量*/ : @3 Q/ ~7 g' J9 O  L
struct resbuf eb;/*结构缓冲器变量*/
4 o& S! ^, C6 |6 P! Gstrcpy(sbuf,“0”);/*层名变量赋值*/ 6 B" K( }2 D4 l8 [. o0 d. |
eb.resval.rstring=sbuf;/*结构缓冲器字符串赋值*/
" v% T' _6 d* e* t+ ]. qadsssget(“X”,NULL,NULL,&eb,SS);/*获取“0”层实体集*/
9 Z$ ]- [) n; L. V  x9 i/ j5 [+ N- l' u& Y# @; X9 K& Q
在Step2、Step5中调用adsentget()函数的实质是产生一个结构缓冲器链表,该链表的结构示意图如图3所示。 " S: Z( f0 z; e/ S4 t
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/200761011105526061.gif
7 l" a5 K" e) b/ f4 T' t; I6 x图3结构缓冲器链表示意图
从结构缓冲器链表中可获取当前实体集中每个实体的类型(如点、直线、圆弧等相应的DXF代码)和几何参数(即直线的起始、终止点坐标,圆弧的圆心、半径、起始角、终止角),由于程序段稍长,此处从略。
7 l0 j, o5 H# t0 |: C4 G. {1 x- F( f
8 ?3 ^9 K& F- Z' ?Step8主要根据S0的两个端点坐标(存于数组PRS0[2][2])和零件图内外侧所有的实体的几何信息(存于数组PRSS[N][5])按首尾相连原则分别确定内侧和外侧线段及其几何参数,并分别存入相应数组PRL[num][5]和PRW[num][5]中。
& \' Z3 ?& r2 C9 ^. |; V* m7 o2 _
/ _( n& k) u6 I3 i+ i四、结束语
( U+ D9 G5 t3 n0 }% D4 T! h7 w& }5 A* C9 H
作者根据以上程序设计思想和有关算法,设计完成了旋转拉延件毛坯尺寸的自动计算软件。在AutoCAD COMMAND状态下通过“XLOAD”命令加载本程序后,绘制(或调入)一个旋转拉延件零件图,运行本程序,即可在屏幕上显示打印出毛坯尺寸。
. {* l' b' P/ _' Y" Q' s# d3 i2 }' J. Z/ l8 F' F
该程序已对多个由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 )

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