期刊
论文
课题
会议
面向企业的国标化工程图技术研究

【关键字】一体化功能;工程图;二次开发

【出   处】 2018年 1期

【收   录】中文学术期刊网

【作   者】马静 张俊义 李明滨 丁文捷

【单   位】

【摘   要】  摘要:鉴于目前我国企业用于指导生产的CAD技术的最终落脚点依然是二维工程图,本文借助SolidWorks软件自身的二、三维一体化功能,在充分发挥其特征建模优势的同时,基于VB对由


  摘要:鉴于目前我国企业用于指导生产的CAD技术的最终落脚点依然是二维工程图,本文借助SolidWorks软件自身的二、三维一体化功能,在充分发挥其特征建模优势的同时,基于VB对由三维实体模型自动转化生成的工程图进行了二次开发,建立了具有用户特色且符合国家标准的二维图纸,从而提高企业设计效率,降低研发成本。

  关键词:一体化功能;工程图;二次开发

  Abstract: In view of the fact that the CAD technology used to guide production is finally showed by means of 2d engineering drawing,so this paper puts forward a method that how to get the customization and national standard 2d drawing through carrying out the secondary development to automatic conversion engineering drawing based on VB with the help of giving full play to the 2d and 3d integration fuction and advantage of building model,in order to improve the design efficiency and reduce the costs of development.

  Keywords: integration fuction; engineering drawing; secondary development

  0引言

  三维设计软件Solidworks在机械设计中的显著特点,在于它能直接由三维模型生成二维工程图,在直观获得三维模型的同时,避免了对二维工程图的重新绘制。但在Solidworks中直接转化生成的工程图是一个纯粹的几何关系表达,不符合工程图作为指导生产和进行技术交流的要求,因此本文依照国家标准《机械制图》(GB4458.1-84、GB4457.5-84)以及企业自身标准对二维工程图进行了二次开发,深入探究了具有一定通用性的工程图本地化开发技术[1]。

  1总体方案设计

  深入研究国标工程图各相关属性,全面整理出由三维模型直接转化生成的二维工程图中不符合国标、企标的问题,并对其进行有针对性的二次开发,在准确获得二维图纸的同时,更好的服务于生产实际。

  (1)资源库的建立

  建立满足企业工程图要求的信息模板库,包括图纸格式、绘图环境、字体、标题栏、材料明细表等。

  (2)工程图属性的二次开发

  通过调用SolidWorksAPI对工程图的属性进行相关操作使之符合国标、企标。

  (3)国标工程图用户界面

  利用完全程序法或手动与程序相结合的方法,基于VB对SolidWorks二次开发,形成国标工程图的友好用户界面[2]。方案流程图如图1所示:

  图1方案流程图

  1国标工程图模板和图纸格式的定制

  一般来说,用户在一定的时期内都具有相对固定的符合国家标准的图纸格式,比如图纸大小、标题栏、明细栏的设置等[3]。必须进行调整的工程图属性如图2所示。

  图2工程图属性调整

  为了避免重复劳动,方便生成准确的符合企业要求的工程图,首先需要定制符合国标、企标标、并包括各种图号的工程图模板(如AO、A1、A3等)。

  (1)图纸格式的定制

  ①新建工程图

  使用默认的工程图模板建立一个无图纸格式的自选幅面工程图。

  ②设置图纸属性

  在图纸中右击鼠标并从快捷菜单中选择“属性”命令,打开图纸属性设置的界面,按照我国的国标标准对图纸的属性进行设置,国内的图纸一般采用三视图、以第一视角为投影类型。

  ③制作工程图图框

  在图纸中右击鼠标,从快捷菜单中选择“编辑图纸格式”命令,切换到编辑图纸格式状态下。绘制两个矩形分别代表图纸的边界线和图框线,选择外侧矩形的左侧边,在PropertyManager的“参数”选项组中确定该直线起点的坐标点位置(X=0,Y=0)、及对角点坐标(X=420,Y=297)。对左下角点和左上角点建立“固定”几何关系,在标注尺寸时可以以这两个边定位,完成标题栏绘制并标注尺寸生成工程图模板,最后隐藏尺寸标注。

  ④设置属性链接的注释

  通过设置属性链接的注释,系统可以自动将三维模型中的某些自定义属性添加到标题栏的相应位置。比如:比例、材料、图纸名称、图纸代号、重量等信息。放大标题栏,右键单击要进行属性链接的文字,以标题栏里的“比例”为例,建立一个链接到属性的注释, 该注释的文字内容为 “$PRP:"SW-图纸比例(Sheet Scale)"”。

  分别在标题栏中相应的位置上添加链接到属性的注释,它们分别为:

  $PRPSHEET:{规格 上}:零件文件中的“规格 上”配置特定属性;

  $PRPSHEET:{规格 下}:零件文件中的“规格 下”配置特定属性;

  $PRPSHEET:{图号} :零件文件中的“图号”配置特定属性;

  $PRPSHEET:{名称}:零件文件中的“名称”配置特定属性;

  $PRPSHEET:{材料}:零件文件中的“Material”(材料) 配置特定属性;

  $PRPSHEET:{质量}:零件文件中的“质量” 配置特定属性。

  输入自定义属性的注释文字时,三个自定义属性的名称必须和模型中所添加的自定义属性名称完全一致,才能保证能够正确链接。工程图文件的名称注释可以通过“链接到注释”中的下拉列表框选择。

  ⑤保存图纸格式

  在工程图中对图纸格式所进行的编辑都可以保存在图纸格式文件中,用户用保存的图纸格式建立新图纸时,图纸格式中的所有信息都被添加到新图纸中。选择下拉菜单的“文件\保存图纸格式”,以(*.slddrt)保存图纸并以图纸大小命名,如A0、A 1、A 3等,自动存放在SolidWorks/lang/Chinese-simplified/data/Tutorial目录中。

  (2)国标工程图环境设置

  在工具栏中,单击“打开”按钮,选中刚才建立的图纸格式,此时建立了一张不包含图样格式的工程图。

  ①设置绘图标准和绘图单位

  在“文件属性\出详图”中,选择“尺寸标注标准”为“GB”,“引头零值”为“标准”,“尾随零值”为“移除”。在“文件属性\单位”中,选取“单位系统”为自定义,将“质量/剖面属性单位”中的“质量”选择为“千克”。

  ②设置箭头

  工程图中的箭头包括尺寸线箭头、注释引出箭头和视图箭头。在“文件属性\出详图\尺寸\箭头”选项卡中,将“样式”选取为“实心闭合”,选中“显示第二端向外箭头(径向)”复选框,“大小”设置为0.7mm,选中“以剖面视图箭头字母高度调整比例”复选框。在“依附设置”选项组中,将“边线/定点”选取为“实心圆点”,“不依附”选取“实心闭合”。

  ③设置注解字体

  注解字体包括工程图中所有的文字说明,在“文件属性”中可以设置“注解字体”的默认选项。由于字体要符合国标长仿宋字体,Solidworks没有提供,所以字体要自己定制。定制字体为GB14691.ttf ,文件路径与模板文件放到一个目录里,所有字体都统一设定为GB14691。

  ④设置中心线和中心符号线

  在“文件属性\出详图”中,分别将“延伸线”设置为3.5mm,“中心符号线”设置为3.5mm;将“中心线”复选框选中。

  ⑤设置其他选项

  在“文件属性\出详图\装饰螺纹线”区,选中“高品质”复选框;在“网格线/捕捉”选项卡中,“网格线”选区不选中“虚线”和“自动定比例”,将“主网格间距”设置为10; “线型”选区将“剖面线”的“线粗”选取为正常。

  ⑥图层的添加

  在工具栏上点右键,选中图层工具栏并弹出图层工具栏。点击右侧图层按钮,弹出图层编辑对话框,根据设计需要,设定自己所需的各种图层、线型,线宽以及颜色等。

  ⑦保存工程图模板

  用户可以将刚刚建立的工程图以格式*.drwdot保存为工程图模板并,并命名为自命名文件名,它可以包含图纸格式、预定义视图、用户对文件属性自定义的设置以及系统选项里设定的注释和尺寸样式。以DrawingTemplates(*.drwdot)格式另存,设计模板的存放默认路径在SolidWorks的安装目录SolidWorks\lang\Chinese-simplified\data\Tutorial和 SolidWorks\data\Templates中。也可以“工具\选项\系统选项\文件位置”中设定文件模板的位置[4]。并对“默认模板”进行更新。在设计过程中如无特殊要求,就无需重复修改选项参数,使用自定义模板即可。

  3国标工程图的实现

  3.1工程视图的表达

  生成三视图时,首先应根据零件和绘图比例的大小选择相应的图纸格式,该程序以A2图纸为例进行起重机车轮组轴的国标工程图转化。

  相关代码:

  Set swDraw = swApp.NewDrawing2(swDwgTemplateA2size, _

  "",swDwgPaperA2size,0.594,0.4201)

  Set swDrawModel = swDraw

  '创建第一视角三视图

  Ok= swDrawModel.SetUserPreferenceToggle(swDisplayOrigins,False)

  Ok= swDraw.Create1stAngleViews2(Part.GetPathName)

  ……

  对于复杂零件如果三视图不能满足需要,可以采用剖视图函数retval=DrawingDoc.CreateSectionViewAt4(X,Y,Z,SectionLabel,Options,ExcludedComponents)来增加剖视图或局部视图来完整表达图纸。

  3.2设置图纸比例

  在工程图中需要根据要求进行视图按比例的放大或缩小,在SolidWorks中通过程序来实现[5]。

  相关代码:

  Set selMgr = swDraw.SelectionManager()

  If selMgr.GetSelectedObjectCount <> 1 Then

  swApp.SendMsgToUser "请选择工程视图"

  Else

  '获得选择列表中的第一项

  Set swView = selMgr.GetSelectedObject2(1)

  currentScale = swView.ScaleDecimal

  '给变量x赋值数值型的数据

  X = Val(Text4.Text)

  newScale = X * currentScale

  swView.UseSheetScale = False

  swView.ScaleDecimal = newScale

  swDraw.EditRebuild

  3.3尺寸位置调整

  桥式起重机部件结构图纸尺寸,可以发现绝大部分尺寸分布在视图外,视图内部的尺寸分布相对比较少。针对工程图的这种特点,将视图的尺寸分为内部尺寸和外部尺寸。由于内部尺寸比较少,我们主要对视图的外部尺寸进行程序调整。

  外部尺寸包括线性尺寸和角度尺寸,一般情况下,外部的线性尺寸分布是有层次性的,根据此特性设定尺寸的层,SolidWorks工程图里面的每个图形都有SolidWorks默认的矩形区域,即为图形的最大包络框,如下图所示,从视图的最大包络框为0层开始向外递增。这样,除了角度尺寸之外,所有的外部线性尺寸都可以归类为不同的层,再设置层与层之间的距离,因此只要确定第0层的尺寸位置,其它层的位置就可以依次递加。

  尺寸位置调整原理是基于尺寸层的,在尺寸标注的时候,将所有外部尺寸将归入如图3的各个尺寸层,在调整的时候,首先通过遍历获得各层的尺寸,然后在程序中设置每一层尺寸的外边界的距离,这样每一层的尺寸就对齐了[6][7]。

  图3工程图图层层次

  相关代码:

  '获得视图中心

  Set swView = swDraw.GetFirstView

  Do While Not swView Is Nothing

  vOutline = swView.GetOutline

  vPos = swView.PositionSet Swasm = SwApp.OpenDoc(SLDASM, 2)

  ……

  '遍历获得每层的尺寸

  Do While Not swDispDim Is Nothing

  Set swAnn = swDispDim.GetAnnotation

  Set swDim = swDispDim.GetDimension

  Set swDispDim = swDispDim.GetNext3

  Loop

  Set swView = swView.GetNextView

  Loop

  bRet = swAnn.SetPosition(X_pos, Y_pos, Z_pos)

  ……

  3.4注释位置调整

  在工程图指定位置可以自动添加符合企业标准的常用的粗糙度符号、形位公差符号、基准代号、注释等内容。我们可以将常用注释提前制成块,放在指定位置,程序调用就可,或采用修改符号库的方法(即在库中直接增加需调用的符号)解决这个问题。如:焊接符号的添加方法: 打开SolidWorks符号库定义位置:lang\chinese_simplified\gtol.sym纯文本文件,有五种绘图的基本命令:直线LINE(x1,y1,x2,y2),圆CIRCLE(x,y,r),圆弧ARC(x,y,r,a1,a2),文字TEXT(x1,y1,x2,y2,t),填充三角(x1,y1,x2,y2,x3,y3),所有(x,y)取值范围为(0,1)。软件中已有的各种符号正是通过以上5种命令绘制出来的。用户只要遵守以上规则,就可自己建立各种自定义符号。

  相关代码:

  ……

  boolstatus = swModel.Extension.SelectByID("", "EDGE", 0, 0, 0, False, 0, Nothing)

  boolstatus = swModel.InsertSurfaceFinishSymbol2(1, 0, 0, 0, 0, 0, 1, "", "", "", "", "2.6", "", "")

  ……

  3.5企业专用BOM表的写入 程序控制明细栏生成与调整过程中具体调用的函数类型及使用方法描述如下:BOMTable对象是SolidworksAPI提供的指向明细栏的对象,它是view对象的下一级对象,通过ModelDoc2对象的下一级对象selectionMgr对象的Getselectedobject5方法获得指向需要建立明细栏的视图的view对象,同时通过view对象InsertBomTable2方法就可以实现程序建立明细栏,在明细栏建立之后通过view对象的Get2BomTable方法可以获得指向明细栏的指针,得到指向BOMtable对象的指针后,就可以操作明细栏的属性[8]。 在建立明细栏获得指向BOMTable对象指针后,通过BOMTable对象的BomFeature方法可以获得指向BomFeature对象的指针,通过Bom2feature对象的Configuration/TableType/Keep2missingItems等属性和方法就可以对明细栏的模版、类型、是否保持丢失项目以及起始序号等属性进行获取和设置,明细栏出现空白行的情况可以通过BomFeature对象的Get2TableAnnotations方法获取指向TableAnnotation对象的指针,通过TableAnnotation对象的DeleteRow方法就可以删除空白的行,通过TableAnnotation的Text属性可以实现零件数量的更新。相关代码:

  '循环判断是否存在序号不连贯,如果存在插入空白行,并写入相应数值

  For i = 0 To rowNum - 1

  If tab1(i) - tab1(i + 1) > 1 Then

  For j = 1 To tab1(i) - tab1(i + 1) - 1

  bRet = tableAnn(0).InsertRow(2, t + 1)

  tableAnn(0).Text(t + 1, 0) = tab1(0) - t - 1

  t = t + 1

  Next j

  End If

  t = t + 1

  Next i

  ……

  Set BomTable = swView.InsertBomTable(Bomtemplate, vPickPt(0), vPickPt(1), nErrors)

  ……

  3.6工程图调整结果

  图4起重机车轮组轴工程图轴调整结果

  4结束语

  通过工程图的二次开发,可以建立满足用户需求的工程图系统,明显提高了工作效率,方便了对工程图文件的后处理工作。需要说明的是,SolidWorksAPI的对象和方法十分丰富,SolidWorks提供了几百个API应用程序接口函数,这些API函数是OLE (对象的嵌入与链接)或COM (组件对象模型)接口,用户可以使用 VB\VBA\VC等多种高级语言对SolidWorks进行二次开发,从而建立适合用户需要的、专用的SolidWorks功能模块。

  参考文献

  [1] Solid Works 公司.SolidWorks API 二次开发[M].北京:机械工业出版社,2005.5.

  [2] Dave Strearns.Microsoft Office 2000 Web Components编程技术内幕[M].北京:北京希望电子出版社,2000.5.

  [3] 江洪, 李仲兴, 邢启恩.SolidWorks2003 二次开发基础与实例教程[M].北京:电子工业出版社,2003.

  [4] 刘志更. 桥式起重机桥架参数化设计关键技术研究[D]. 中北大学, 2007.3.

  [5] 陆利峰, 江洪, 伍锦辉等.SolidWorks工程师高级教程[M].北京:化学工业出版社, 2006.12.

  [6] 邢启恩,任雷主编. Solidworks2007国标工程图案例与精粹[M].北京:机械工业出版社, 2006.11.

  [7] SolidWorks公司. SolidWorks工程图[M].北京:机械工业出版社,2005.11.

  [8] 黄阳,刘萍萍. 基于SolidWorks的企业专用BOM表的生成技术研究[J].CAD/CAM,2003

论文推荐 +更多
不锈钢在4-甲基咪唑缓蚀液中的电化学行为研究
长庆油田第一净化厂外输污水配伍性试验研究
低烟耐火材料聚氧化磷腈的合成与表征研究
等离子发射光谱法测定煤中总硫含量的研究
煤与瓦斯突出危险区域巷道贯通安全技术
登录 注册 投稿