好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

对离心泵曲线DWG文件附加信息的研究.docx

5页
  • 卖家[上传人]:ji****81
  • 文档编号:299455168
  • 上传时间:2022-05-28
  • 文档格式:DOCX
  • 文档大小:27.30KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    •           对离心泵曲线DWG文件附加信息的研究                    摘要:泵的性能曲线在进行泵选型时,其中的数据只能由人工进行读取并计算理想的情况是曲线一经绘制,其中的直接数据和间接都应该能由CAD软件直接读取使用利用AutoCAD强大的二次开发功能,通过对图形文件及其中的曲线实体增加附加数据来供程序自动读取,使达到程序自动进行工况点计算及读取的功能关键词:离心泵性能曲线二次开发自动出图引言离心泵内浆液的运动规律表现在宏观上就是泵性能参数之间的联系如果用曲线的形式将泵的性能参数展示出来就是泵的特性曲线泵的特性曲线能直观地在泵选型时提供很大的便利但选型时有一个问题是,选型工况点很大概率并不存在于已经绘制出的具体转速下本文提出一个基于DWG文件格式下,通过为DWG文件以及DWG文件内的性能曲线添加附加数据(XData)来解决该问题的方法1安装泵性能曲线选型的流程根据泵的相似理论,若两台泵的相应尺寸相等,即对同一台泵来说,其性能参数存在下列关系:上式又称为比例定律,表达了泵在转速发生改变时泵性能参数之间的关系泵试验时可只在某一特定转速下进行,然后根据该公式计算出其他转速下的的性能。

      假设转速变化时,相似工况点的效率相等,根据转速n1时已知的效率曲线,可以做出其他转速的效率曲线连接这些等效率点,可以做出相似抛物线由于该抛物线过原点,所以只有一个二次项的系数我们拿到一个工况点就能计算出该工况点的系数,进而求出该工况点所在的运行转速一般这个转速并不在当前已经绘有曲线的转速内我们需要先计算一系列的抛物线点,再去与已知转速曲线相交求出该转速,该工作虽然简单但相当繁琐2DWG、AutoCAD与AutoCAD.NETAPIDWG文件格式已经成为事实上的业内标准图纸文件格式其由Autodesk公司研发制定该公司的AutoCAD系列软件历史悠久,简单易用AutoCAD.NETAPI是其最新一代的二次开发接口,其面向微软公司的.NET平台开发,使用者只要使用任何支持.NET的编程语言(VB.NET,C#等)就可以引用该API对AutoCAD进行二次开发该API提供了丰富的具有不同功能的类,使我们能更高效率的使用该软件笔者决定使用该API与C#语言对AutoCAD进行开发扩展,通过对DWG文件以及DWG文件内的性能曲线添加附加数据使得软件具有自动生成工况点转速曲线,自动读取曲线工况点等功能。

      3附件数据扩展功能的具体实现想让AutoCAD自动计算并绘制出工况点转速,关键是要让程序知道当前打开的曲线文件的一些数据,比如:曲线刻度坐标的起点及其在AutoCAD空间中的绝对坐标,当前曲线文件内每条转速曲线的转速以及该曲线的形成基元(一般我们用样条曲线来绘制转速曲线,样条的形成基元可以理解为其节点)等这些数据有的属于整个图形,如曲线刻度坐标的起点;有的属于图像中的某个对象,如某个具体转速数据应该只属于该转速曲线获得了这些数据后就可以按照公式1的算法程序化生成相似抛物线,再由程序自动读取其与某转速交点数据,最终算出该工况点的所在转速,并自动绘制出该转速曲线在AutoCAD.NETAPI中,属于整个图形的附加数据以XRecord(扩展数据)的形式存放在NOD(命名字典)中,属于图纸中具体实体的附加数据以XRecord(扩展数据)的形式存放在ExtensionDictionary(可选扩展字典)中虽然各附加数据所在容器的名称不同,但通过阅读其代码可以发现,NOD和ExtensionDictionary同属DBDictionary(数据词典)类型故在编程中其并无区别其结构如下:具体操作流程为:1、发起事务处理,以写的形式打开容器对象。

      2、新建XRecord对象,用ResultBuffer对象装载特定类型的附件数据,并挂载到XRecord下3、将XRecord通过容器的SetAt()方法加入到容器对象中,通知事务新增XRecord,并提交事务下例是为图纸增加“泵型名”的关键代码:using(Transactiontrans=db.TransactionManager.StartTransaction()){DBDictionaryNOR;NOR=(DBDictionary)trans.GetObject(db.NODId,OpenMode.ForWrite);XrecordxrePumpType=newXrecord();ResultBufferrs=newResultBuffer(newTypedValue((int)Text,"250ZJ-A75"));xrePumpType.Data=rs;NOR.SetAt("PUMPTYPE",xrePumpType);trans.AddNewlyCreatedDBObject(xrePumpType,true);trans.Commit();}读取数据的步骤与新增数据的步骤大抵相同,只要将SetAt()方法改为GetAt()即可。

      读取到的数据可以放在自己定义的变量中进行后期使用下列为提取上例添加的附加数据的代码:using(Transactiontrans=db.TransactionManager.StartTransaction()){DBDictionaryNOR;NOR=(DBDictionary)trans.GetObject(db.NODId,OpenMode.ForRead);XrecordxrePumpType;xrePumpType=(Xrecord)trans.GetObject(NOR.GetAt("PUMPTYPE"));TypedValueresBuf=xrePumpType.Data.AsArray()[0];stringpumpType=resBuf.Value.ToString();trans.Commit();}结语通过对AutoCAD进行二次开发,使程序可以自动为泵曲线的图纸记录一些额外的附加数据这些附件数据可以在以后的使用中获取并进行后续处理该研究仅仅探讨了在选型时的使用,事实上,附加数据的作用远不止如此参考文献[1]关醒凡.现代泵理论与设计[M].北京.宇航出版社,1995[2]Autodesk.AND[EB/OL].[3]Autodesk.ObjectARXDeveloper’sGuide[M].America.Autodesk,1999  -全文完-。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.