QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
AutoCAD环境下旋转类拉延件毛坯尺寸的自动计算 % @! w# h0 l4 D/ D
摘要:讨论了如何利用AutoCAD的ADS功能来开发软件,在AutoCAD环境下实现旋转类拉延件毛坯尺寸的自动计算,文中对软件结构及其主要功能模块的算法进行了较为详尽的描述。 . W/ U. v% v2 F1 V2 i) s
关键词:旋转类拉延件;毛坯尺寸;自动计算 ) z7 S4 T9 M1 {) V/ {4 n5 E# Z" s$ R

8 A3 u  G/ g5 J; ]/ Q& c: C" l一、引言 % y/ m) W* Q% _5 ~

7 O, `" e  y+ h, ^在进行旋转类拉延件拉延工艺设计时,以最后一次拉深成形的制件为基础计算出毛坯尺寸(直径)是必不可少的工作。手工计算时,由于旋转类拉延件形状变化大,故常涉及到大量的公式和表格,计算过程较为繁琐、枯燥。 ( H1 m7 F4 B$ D$ r& F( Z3 W0 d3 v" Z

" ^3 w" S8 y6 w& u; q4 n# B3 cAutoCAD是国内目前较普遍使用的计算机绘图软件,待加工的拉延件的零件图常常已经在AutoCAD环境下绘出。根据AutoCAD下的零件图,通过开发软件自动分析计算出毛坯尺寸,是一项较有意义的工作。
. E. K( t* _& k8 a) B! n* U8 |$ A8 `! G! _. a8 L
AutoCAD软件包从AutoCAD R11.0开始,增加了ADS功能,可通过C语言按ADS指定的形式来调用AutoCAD的所有命令,并可进行实体(即点、直线、圆弧等)几何信息的读取,从而大大加强了利用AutoCAD进行二次开发的功能。 3 G% l$ @5 m) k, ]# t4 W

4 ?  x/ X. j8 ]* ~- q为此,笔者利用AutoCAD的ADS功能,开发了一个对于AutoCAD环境下任意绘出的旋转类拉延件能自动计算毛坯尺寸的程序。该软件采用AutoCAD R12.0 for DOS下的ADS开发,利用ADS函数库编制的C程序通过High C 1.7编译,在AutoCAD Command状态下运行,可迅速准确地计算毛坯尺寸。
- x/ E9 P7 q. r0 G
/ L2 w+ Y3 f1 e7 o8 i' [/ n二、软件设计
* A" O! R& g' H% m  J: \0 A$ V5 S' K, w0 v+ ~
1.软件设计思想
4 D) i9 O7 F& i# A/ M0 x. P" z+ ?+ Z$ Z$ q- j5 l9 r
根据久里金法则,任意由直线和圆弧为母线形成的旋转拉延件的毛料直径D可由下式决定:
* I+ k% H  U' U; A+ M8 [0 J8 w
式中Li——旋转拉延件中性层各线段(直线和圆弧)长度 : w8 F7 R% D4 D" k& q9 v
Xi——旋转拉延件中性层各线段(直线和圆弧)重心到旋转轴的距离 7 t2 J! \; n5 H* F0 q& o" r/ y
num——旋转拉延件中性层线段数
* F+ E( u/ m7 |( J1 `, F, A' Q# }
. r" h% y  ^, h7 ]$ @/ d6 \/ @1 x' W图1示出了某旋转拉延件的线段长度及其重心的标注,中性层共有由8段线段组成,其中直线4段(L1,L3,L6,L8),圆弧4段(L2,L4,L5,L7)。 % I. v5 h; [/ y% A# Y) D9 M
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/20076101165149027.gif
6 Y5 k  I( ~; P) z0 u图1一个旋转拉延件
现在需解决的问题是需要获取中性层各线段的几何参数,如直线的起始、终止点坐标,圆弧的圆心、半径、起始角、终止角。获取中性层各线段的几何参数后,根据有关公式即可求得各线段(包括直线、圆弧)的长度及重心位置,从而可由以上公式求得毛料直径。
6 j' ?. q! n1 b8 I
7 x/ G+ D( |3 x6 a0 C+ N) V然而,中性层是假想的,由AutoCAD命令任意绘出工件图的中性层往往也并未画出,故需要首先读取工件图中内外两侧各直线和圆弧的几何数据,然后即可间接地求得中性层各线段的几何参数。
% [. G) |7 ^" ], H" c3 `( b3 A1 ]. v0 ?9 K- j9 t3 ]
故本程序设计与实现上分为4个大的步骤: / V: w1 \7 r# C  E. G2 M) T: b( @# b
7 v- @1 b$ t' i6 ~; [' v4 S
(1)分别读取工件图内、外侧各线段的几何数据; ( ]3 l& f% ?# P; ~- z4 l4 p( q! y
(2)利用内外侧各线段几何数据求中性层各线段几何数据; 0 W4 {1 m' \. Q+ T# U8 n
(3)求中性层各线段的长度及重心位置; - k, r* W; O" v4 e8 Q* s, x* |& `- ]
(4)利用公式(1)求得毛料直径。
# o' }+ K4 J( n8 `$ R4 s
6 |( Z' ~2 [) b在第1、2、3步中采用了表1所示结构用于存贮内外侧及中性层各线段几何数据。
* W: P' c% O; s3 ^3 h$ a" W8 g
表1实体信息的存贮方式
! f0 S- ^8 L, L: w( S% l, p
PR[0]PR[1]PR[2]PR[3]PR[4]PR[5]
直线(1)起点X1起点Y1终点X2终点Y20

+ I7 X5 v5 G0 [

9 q& B  o2 o: T

" R# I" i# X) i+ U6 ]3 G2 ]
1 K" e% f- J" x- D) b
) Y# e' x( t0 T
/ L6 J- K& G% E, Z  E4 L  S. R# n
圆弧(2)圆心X圆心Y起角ANG1终角ANG2半径R

2 n- r) D& ]2 u' U. r1 p
8 Z" A/ z& N* C: w  K* p

* @8 T$ ^) N& j- C3 e

4 I5 X8 _7 f2 u4 ~) M

, }6 A3 z0 Y9 V7 y9 ~+ d
( `9 X1 K* c% N- o- {/ {
圆(3)圆心X圆心Y00半径R

$ m+ q" u/ e8 ?3 s
4 a( d5 ^$ ]1 T7 m

, g$ [* \( i# z) M, }* M
" Y0 |  M( m* V

/ T& k3 b4 k* L2 R

' u8 \$ C: S0 {  x
2.软件结构 9 e% ^4 L# i+ e8 M  c
4 Y' ?- |& p' J
根据以上设计思想,本软件结构流程图如图2所示。其中,表PR_SS[N] [5]、PR_L[num] [5]、PR_W [num] [5]、PR_M [num] [5]的结构形式与表1相同。
* U6 Q4 C, J) d/ y9 Y
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/20076101110450824.jpg
* I; M- G0 ~: {) e5 V" U图2旋转拉延件毛坯尺寸计算软件流程图
三、制件图内外侧各线段实体信息读取的算法 7 V: p/ F4 G. d! i# J4 n! Z
% `& E2 F) w" F; L" L
如上所述,AutoCAD环境下的制件图内外侧线段实体信息的拾取(即图2的前4个部分)是实现本程序的关键。现设定用于表达旋转拉延件内外结构的所有线段均绘于“0”层(这也符合一般AutoCAD绘图习惯),而尺寸标注、剖面线等则置于另外的层,则内外层线段几何信息读取算法如下: 1 }1 ^) {' @' A' \. [1 E
5 C: K. j, H- e0 z( w) V/ q
Stepl【交互拾取表示厚度的左实体】 0 H, Z6 c& E* d% L' q
交互选择表示厚度的中心线左侧实体S0(如图1所注)
1 s. [! T; F7 ?* RStep2【获取实体S0的两个端点】 ; y! j: m- z7 ~& W! R$ j% `" h
读取实体S0的两端点坐标,存入数组PRSO[2][2]中 # X4 n& q, l) \2 Y
Step3【拾取0层上的所有实体】
( O  c9 _3 O* t6 T$ R+ R& t( B建立0层上的所有实体的集合SS{S0,S1,…,Si,…} 0 C& v* I5 ~/ B* F8 N
Step4【获取实体集SS的实体数量】
1 o; j: _+ w9 E从实体集合SS中获取实体数量N
* \/ i7 W$ {( p  oStep5【获取实体集SS中一个实体的信息】
8 ?& b$ l% l/ N) Y9 q* Q从SS中选择一个实体SSi,读取它的几何信息
9 |+ p; a9 I. t, K7 @3 P+ ?Step6【实体信息存放】
0 \& ?" O2 \0 Y# v将实体SSi几何信息放入如表1形式的数组PRSS[N][5]中
; P- N! m4 m3 _$ p# K4 _5 f: cStep7【判断】N=N-1如N>0,进入Step5,否则进入Step8
# a% e! Y, t2 {1 T9 E$ G  ?Step8【内外侧线段实体信息选择】 & \4 c6 K* Y  S  O
" a& D; D  J) u- d2 R. J
根据数组PRS0[2][2]和PRSS[N][5],分别建立存贮制件外侧线段几何参数的数组PRW[num][5]及内侧线段几何参数的数组PRL[num][5]
- y. ?7 z! |0 p, _# @/ d8 Q$ z2 x0 S
其中,Step1主要由调用adsssget()函数完成   R9 F: h1 g2 o: N. q- P4 _; N
Step2主要由调用adsentget()函数完成 1 i0 F1 g/ m' n: C& E% ~
Step3主要由调用adsssget()函数完成 ; W. {5 {6 U7 Y5 ]' {  ]
Step4主要由调用adssslength()函数完成 : u8 X* q" r) i' _6 s" i
Step5主要由调用adsentget()函数完成
; v, N$ w$ ?# U' R, F6 [" RStep1中ADS函数adsssget()的调用格式为:
+ P, i* T1 t1 l: e2 Q" n1 Vadsname S0;/*实体名变量*/ 3 B9 F$ Q! m" X, k4 ?3 c' Q
adsssget(NULL,NULL,NULL,NULL,S0);/*交互选择获取实体*/
/ M2 b3 A! L/ Y8 D# R, u5 r) BStep3中该函数的调用格式为:
+ {+ `8 b1 d; @$ Tadsname SS;/*实体集名变量*/
9 ]! R" C6 I0 ^, gChar sbuf[6];/*层名变量*/
: v( s$ a9 i3 Kstruct resbuf eb;/*结构缓冲器变量*/ & f0 A$ l! Y4 ?' R
strcpy(sbuf,“0”);/*层名变量赋值*/ ) Z0 @) ~5 T2 K2 c2 _# a0 Y
eb.resval.rstring=sbuf;/*结构缓冲器字符串赋值*/ 8 w" B& F) O0 E; }0 M- S9 {
adsssget(“X”,NULL,NULL,&eb,SS);/*获取“0”层实体集*/
( O+ f1 X8 `5 a& D! o! Q  S7 \& T/ A8 ~! D/ i/ |8 B
在Step2、Step5中调用adsentget()函数的实质是产生一个结构缓冲器链表,该链表的结构示意图如图3所示。 2 e3 M+ {: V& c) G- W
http://mould.newmaker.com/nmsc/u/2007/20076/art_img/200761011105526061.gif
  f6 h% v8 w/ P) C: X图3结构缓冲器链表示意图
从结构缓冲器链表中可获取当前实体集中每个实体的类型(如点、直线、圆弧等相应的DXF代码)和几何参数(即直线的起始、终止点坐标,圆弧的圆心、半径、起始角、终止角),由于程序段稍长,此处从略。
1 W' {! g& }" x
0 V: W/ u7 f) M! X* f4 f4 k  I* _) HStep8主要根据S0的两个端点坐标(存于数组PRS0[2][2])和零件图内外侧所有的实体的几何信息(存于数组PRSS[N][5])按首尾相连原则分别确定内侧和外侧线段及其几何参数,并分别存入相应数组PRL[num][5]和PRW[num][5]中。
3 y/ J* q7 u4 f7 o8 }( q; }* [: m; h# I! _
四、结束语 2 v$ ^) [: C+ [% Q- ]% p1 D

7 `# w! a+ F, y8 z# _% |作者根据以上程序设计思想和有关算法,设计完成了旋转拉延件毛坯尺寸的自动计算软件。在AutoCAD COMMAND状态下通过“XLOAD”命令加载本程序后,绘制(或调入)一个旋转拉延件零件图,运行本程序,即可在屏幕上显示打印出毛坯尺寸。
' B8 C; m7 J  l" B2 ?
4 e, x+ U7 R' R# _% z. e! W该程序已对多个由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 )

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