乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 133|回复: 8

Auto CAD+Excel使用技巧与压力容器设计

[复制链接]

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2007-11-5 09:43:00 | 显示全部楼层 |阅读模式
通过本人对压力容器三维模型程序的研究,得出的结论是:+Excel技术是机械类设计工作者的必须掌握的基本,也是必须掌握生存手段之一。下图是本人采用Auto CAD+ Excel  作为绘图手段的作品之一。

回复

使用道具 举报

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2007-11-5 11:01:00 | 显示全部楼层
压力容器设计关键就是数据准备,采用交互式方法直接画图是目前通用的作法。几何形状相同尺寸有变化的压力容器零部件设计时,采用AutoCAD+Excel的手段参数化设计压力容器设计要比交互式AutoCAD设计,工作效率高,出图质量高是无庸质疑的结论。
1、AutoCAD
1.1 学习成本:AutoCad比其它制图软件应用要广泛的多,有广泛的群众基础,学习这个软件要比其它软件要方便的多,有老师教,同事之间可以相互交流,结论学习成本要比学其它软件低的多。
1.2 通用性:AutoCAD图形文件到全国各地任意工程单位都能打开,不需要转换,所谓比AutoCAD先进的软件(也不过是在某些特定行业,特定功能应用上),都必须要向AutoCAD靠拢,必须要有dwg输出格式。结论,dwg文件格式是当今通用的工程制图标准模式。
2、Excel
2.1 学习成本:在当今社会,不会Excel简直就不可能在这个行道有生存空间,设计就是天天和数据表格打交道。结论:数据表格处理,Excel是当今无论比学习成本最低的应用软件。
2.2 通用性,是台电脑就可以运行Excel,现在就连手机都可以用Excel.
结论:采用AutoCAD+Excel手段进行参数化设计,无论从学习成本和通用性角度出发,都是最优的选择。
回复

使用道具 举报

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2007-11-7 08:30:00 | 显示全部楼层


qdax1yihdvz.jpg

qdax1yihdvz.jpg



计算如图所示的换热器管板交点(换热管开孔),可用以下程序解决。程序自动读出线段,并计算出交点的坐标。
  1. Sub Example_IntersectWith()
  2.     Dim xlApp As Object    ' This Line ,Not set Excel , run Excel
  3.     'Dim xlsheet As Object
  4.    
  5.     ' 发生错误时跳到下一个语句继续执行
  6.     On Error Resume Next
  7.     ' 连接Excel应用程序
  8.     Set xlApp = GetObject(, "Excel.Application")
  9.    
  10.     If Err.Number  0 Then
  11.         Set xlApp = CreateObject("Excel.Application")
  12.         xlApp.Visible = True
  13.         xlApp.Workbooks.Add
  14.     End If
  15.     ' 返回当前活动的工作表
  16.     'Set xlsheet = xlApp.ActiveSheet
  17.     Set xlSheet = xlApp.sheets(1)
  18.     ' This example creates a line and circle and finds the points at
  19.     ' which they intersect.
  20.     Dim oBject As AcadEntity, oBject1 As AcadEntity
  21.     Dim ii As Integer, jj As Integer
  22.     Dim Ppt As Variant
  23.     nn = 1
  24.     For ii = 0 To ThisDrawing.ModelSpace.Count - 1
  25.       
  26.       Set oBject = ThisDrawing.ModelSpace.Item(ii)
  27.       
  28.       For jj = 0 To ThisDrawing.ModelSpace.Count - 1
  29.         Set oBject1 = ThisDrawing.ModelSpace.Item(jj)
  30.       
  31.         Ppt = oBject1.IntersectWith(oBject, acExtendOtherEntity)
  32.         xlSheet.Cells(nn, 1).Value = Format(Ppt(0), "0.0")
  33.         xlSheet.Cells(nn, 2).Value = Format(Ppt(1), "0.0")
  34.         xlSheet.Cells(nn, 3).Value = Ppt(2)
  35.         Debug.Print Ppt(0), Ppt(1), Ppt(2)
  36.         Debug.Print nn, oBject.Handle, oBject1.Handle
  37.         xlSheet.Cells(nn, 4).Value = nn
  38.         nn = nn + 1
  39.       Next jj
  40.     Next ii
  41.    
  42. End Sub
在Excel中计算的结果。
交点坐标顺序X点Y点Z点第1点-743-37.60第2点-739-86.10第3点-738.6-300第4点-732.5-130.20第5点-724.1-1710第6点-721.300第7点-714-209.10第8点-706.6-300第9点-704300
回复

使用道具 举报

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2007-11-7 21:24:00 | 显示全部楼层
上面程序运行在Excel结果如下。
   928.1201.20      666.4472.80819.6313.70928.1201.20   1239.25930      1051.1356.10   1239.25930   1002.6765.50
采用SQL - Select进行不重复数据处理。
Sub ls()
  Dim Sql$   ', Cnn As ADODB.Connection
  Dim Rst As ADODB.Recordset
  Set Cnn = CreateObject("ADODB.Connection")
  Cnn.Open "Provider = MicroSoft.Jet.OLEDB.4.0; Extended Properties = Excel 8.0; Data Source = " & "k:\ls.xls"
  
  Sql = "Select distinct * from [Sheet1$]"
  Set Rst = Cnn.Execute(Sql)
  Sheets(2).Range("A1").CopyFromRecordset Rst
  
End Sub
646.8282.10666.4472.80693.6737.80819.6313.70928.1201.201002.6765.501051.1356.101239.259301239.25930

回复

使用道具 举报

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2007-11-17 11:03:00 | 显示全部楼层
ADO+EXCEL通用程序样版。
Sub ADORecordset()
    Dim Sql$
    Dim RST As New ADODB.Recordset '若要使用 RST.RecordCount 计算记录个数,此项必须,故一定要设置引用:
                                   'VBE 中菜单“工具-引用-Microsoft ActiveX Data Objects 2.0 Library”
                                                     '(1)定义对象
    Set Conn = CreateObject("adodb.connection")      '(2)设置 connection 对象
    Set RST = CreateObject("Adodb.Recordset")        '(3)设置 Recordset 对象
    Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
                                                     '(4)打开连接
    Sql = "Select * from [Sheet1$] where 字段='020009' or 字段='050023' or 字段='010024'"
                                                     '(5)设置 Sql 语句
    RST.Open Sql, Conn, adOpenStatic                    'adOpenStatic静态指针,以便计算记录个数
                                                     '(6)执行 Sql 语句
    MsgBox "找到" & RST.RecordCount & "个记录"        '(7)可使用 RST.RecordCount 得到记录个数
    Sheets(2).Range("a2").CopyFromRecordset RST      '(8)结果放置
    Sheets(2).Activate
   
    RST.Close: Conn.Close                            '(9)关闭连接
    Set RST = Nothing: Set Conn = Nothing            '(10)对象置空
End Sub
'使用 ADO-SQL 处理 EXCEL 文件的程序架构一
Sub ADOConn()
    Dim Sql$
    Set Conn = CreateObject("adodb.connection")
    Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
    'Sql = "select * from [Sheet1$] where Part NO#='020009' or Part NO#='050023' or Part NO#='010024'"
    'Sql = "select PartNO from [Sheet1$] where PartNO='020009'"
    Sql = "Select * from [Sheet1$] where 字段='020009' or 字段='050023' or 字段='010024'"
    Sheets(2).Range("a2").CopyFromRecordset Conn.Execute(Sql)
    Sheets(2).Activate
    Conn.Close
    Set Conn = Nothing
End Sub
回复

使用道具 举报

1

主题

18

帖子

3

银币

初来乍到

Rank: 1

铜币
22
发表于 2007-11-25 20:02:00 | 显示全部楼层
赞兰州人,压力容器的设计确需要动脑筋。不知三维软件INVENTOR有没有研究过?也许能帮得上忙。
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2009-12-29 19:41:00 | 显示全部楼层
有图纸说明的吗?
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2010-10-15 14:41:00 | 显示全部楼层
学习了
回复

使用道具 举报

1

主题

11

帖子

4

银币

初来乍到

Rank: 1

铜币
15
发表于 2013-6-19 10:31:00 | 显示全部楼层
兰州人,对压力容器以及相关软件的开发,确实厉害,有你的好几个软件,在学习呢
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 08:08 , Processed in 0.361813 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表