家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生
您现在的位置:首页 >> 技术园地 >> 模具设计园地 >> 信息正文

用VB开发CAD进行参数化辅助孔型设计

2009-1-31 14:16:56 来源: 不详 作者:佚名 访问:61次 字号:【
0 引言
    利用参数化绘图,可以将图形尺寸与设计参数相联系,即将图形尺寸看作是"设计参数"的函数。当设计参数发生变化时,图形尺寸也随之发生变化。VB语言是常用的编程语言,具有很好的界面。AuwCAD具有参数化绘图功能,可以与其它程序设计的语言相接,而且其自身有AUTOLISP、ADS、ARS、VBA,开发工具功能强。通过VB语言把AutoCAD中的VBA代码转变为VB代码,以VB作为编译器,AutoCAD作为图形支撑软件,可以使用VB直接调用AutoCAD来实现孔型设计的参数化绘图。孔型设计是型钢、棒线材轧制的核心工艺问题,采用参数化绘图进行孔型设计方便、快捷、准确,具有实用价值。
   
    1 Visual Basic 6.0与AutoCAD2002的连接
    1.1 VB与AutoCAD连接方式
      VBA是AutoCAD2002的内嵌式语言,它的全称是Visual Basic for Application。VBA是依附于AutoCAD的,所以其与AutoCAD共享内存空间和数据环境。VBA语言结构简单,即可利用AutoCAD主界面操作环境,也可创造自己所需的主界面操作环境。
      转化VBA代码为VB代码,首先要引用AumCAD type library。在VB6.0中,选择工程一"引用",然后在"引用"对话框选择AutoCAD2000 type library。下一步,将VBA代码中所有的This&awing替换成一个用户定义的代表当前活动文档的变量,用AutoCAD应用程序(acadApp)和当前文档(acadDoc)定义一个变量,然后设置应用程序变量为当前AutoCAD应用程序。
    1.2 VB与AutoCAD的连接
    VB与AutoCAD的连接程序代码为
    Public acadapp As Object  AutoCAD应用程序对象变量
    Public preference As Object  AutoCAD优先设置对象变量
    Public acaddoc As Object  AutoCAD文档对象变量
    Public paspace As Object  AutoCAD图纸空间对象变量
    Public mospace As Object  AutoCAD模型空间对象变量
    Sub init() 与CAD建立连接
    On Error Resume Next  如果CAD正在运行,则GetObjeet函数返回对应用程序对象的引用
    Set acadapp=C,etObject  变量AcadApp已经定义成全局变量
    If Err Then Err.Clear  清除错误
    Set acadapp=CreateObjeet  启动AutoCAD,
    如果GetObject函数不能创建AutoCAD应用程序对象,则提示不能运行AutoCAD!!!If Err Then MsgBox"不能运行AutoCAD!!!"
    Exit Sub  退出本过程
    End If  如果成功的引用了AutoCAD应用程序对象则使其界面可见
    acadapp.Visible=True
    acadapp.Width=Screen.Width
    acadapp.Height=Screen.Height
    Set preference=acadapp.preference
    Set acaddoc=acadapp.ActiveDocument
    Set mospace=acaddoc.ModelSpace
    Set paspace=acaddoc.PaperSpace
    End Sub  结束过程
   
    2参数化绘图
    2.1 AutoCAD对象模型
    AutoCAD应用程序公开的对象很多,每个对象都代表了AutoCAD应用程序的一部分,图形实体对象如直线line、圆circle等,样式设置对象如线型linetype等,组织结构对象如层layer、块block等。这些对象按照从属关系,有层次地组织在一起,就形成了AutoCAD对象模型。在编制参数化绘图代码前必须建立实体层、中心线层,并设定各层的颜色和线型。
    2.2建立图形的几何及数学模型
    在参数化绘图过程时,首先确定所选坐标系的原点坐标,这里是(OX,oy)。其次是确定一些特征点的坐标,按照图形的几何关系,根据特征点计算绘图点,绘图点由特征点两边夹角和圆角半径来确定。然后利用AutoCAD的直线、圆弧绘图命令,把这些绘图点连接起来,即可绘出完整的孔型图。以箱形孔型为例来说明参数化绘图的具体过程。孔型设计中首先确定孔型形状和孔型尺寸,然后将孔型配置在轧辊上。已知轧件宽度b,轧件高度h,外角半径rl,内角半径r2,孔型上半部倾斜角删1,孔型下半部倾斜角qxj2,辊缝S等参数。在参数化绘制孔型图的过程中,首先要正确地确定特征点的坐标,一般应根据尺寸的几何关系,建立孔型上所有的特征点的坐标和孔型宽度、高度的关系式。从而实现当轧件尺寸改变时,相应孔型图也随之改变的目的。绘图点由特征点两边夹角和圆角半径来确定。因为箱形孔是按照Y轴对称,所以只画出左面一半的图形,右面一半的图形由左面图形关于Y轴镜像得到。
    编制箱形孔参数化绘图的程序如下所示:
    Public OX,oy As Double  图形所放位置的相对原点坐标
    Dim pnl(0 To 2)As Double  定义l点的坐标为双精度数
    Dim pn2(o To 2)As Double  定义2点的坐标为双精度数
    .Dim pn3(0 To 2)As Double  定义3点的坐标为双精度数
    Dim pntcenl(0 To 2)As Double  过渡弧圆心坐标
    Dim Linel As Object '定义l点和2点之间的直线l为对象变量
   

  
    箱形孔的孔型图
    Dim Line2 As Object  定义2点和3点之间的圆弧2为对象变量
    Dim linell As Object   定义直线l关于Y轴的对称线段ll为对象变量
    Dim Line21 As Object   定义圆弧2 Y轴的对称弧2l为对象变量
    Dim lkx As Object   轮廓线
    Dim pointl(0 To 2)As Double   镜像点坐标
    Dim point2(0 To 2)As Double   镜像点坐标
    Dim=obj As AcadLineType   建立实体层
    Dim stlayerobj As AcadLayer
    Dim curlayerobj As AeadLayer
    添加一个实体层
    Set sflayembj=acaddoc.Layers.Add("lunkuoxian")
    sflayembj.Color=acWhite
    stlayembj.Lineweight=acLnWt025
    画孔型轮廓线
    Set curlayerobj=acaddoc.ActiveLayer   保存当前活动层
    acaddoc.ActiveLayer=stlayerobj  设实体层为当前层
    Set=obj=acaddoc.Linetypes.Add("continuous")
    acaddoc.ActiveLinetype==obj
    xxobj.Lineweight=acLnWt025
    acaddoc.Regen True
    qxjl=7*pi/180:rl=25:r2=18:8=15  qxjl为箱形孔的侧壁斜角
    ph1(0)=ox-b/2一rl}Tan((pi/2一q)  j1)/2)一20:pnl(1)=oy+s/2:pnl(2)=0
    pr2(0) =ox-b(i)/2一rl}Tan((p/2一qxjl)/2):pn2(1)=oy 4-s/2:pn2(2)=0
    Set Linel=mospace.AddLine(pnl,pn2)
    pntcenl(0)=pn2(0):pntcenl(1)=oy+s(i)/2+rl:pntcenl(2)=0
    Set Line2=mospace.AddArc(pntcenl,rl,3/2*pi,2*pi-qxjl)
    pointl(0)=OX:pointl(1)=oy一135:pointl(2)=0
    point2(0)=OX:point2(1)=oy+118.5:point2(2)=0
    Set linell=Linel.Mirror(pointl,point2)
    Set Line21=Line2.Mirror(pointl,point2)
    图中其它点的坐标也按照上述的方法依次找到,这样就依次画出箱形孔型图的左半部分,通过关于Y轴镜像得到完整的孔型图。采用同样的方法还绘制了使用连铸坯轧制20号角钢的孔型图,见图2所示。
    


    
    3尺寸标注
      尺寸标注是绘图的重要内容,标注对象在图形中属于图形对象,包括几何尺寸、对象之间的距离或者角度、特征点的X和Y坐标值等。采用基于变量设计的参数化尺寸驱动方法,实现图形尺寸与设计参数的联系。
    3.1 添加标注层并设定标注层的颜色
    Dim bzlayerobj As AcadLayer  添加一标注层用于创建尺寸标注线
    Set bzlayerobj=acaddoc.Layers.Add("biaozhu")  设定标注层的颜色
    bzlayerobj.Color=acGreen
    3.2直线标注和半径标注
    (1)直线标注
    采用AddDimAligned方法进行标注,这种方法的功能是创建一个对齐尺寸标注对象。其语法格式是:
    RetVal(返回值)=object.AddDimAligned(ExtLinel Point,ExtLine2Point,TextPosition)
    Object 这个方法适用于模型空间、纸空间、块空间。
    xtLinelPoint 要求输入尺寸界限的第一个端点的三维坐标值。
    ExtLine2Point 要求输人尺寸界限的第二个端点的三维坐标值。
    TextPosition 要求输人文字位置的三维坐标值。
    RetVal(返回值)返回对齐式标注的DimAligned对象。
    以箱形孑L孔型高度的标注为例来说明此方法的应用。
    h1(0)=ox:h1(1)=oy 4-h(i)/2-6.5:hl(2)=0
    h2(0)=ox:h2(1)=oy-h(i)/2-6.5:h2(2)=0
    text(O)=OX+b(i)/2+30:text(1)=oy:text(2)=0.
    Set dimobj=acaddoc.ModelSpace.AddDimAligned(hl,h2,text)
    dimobj.ArrowheadSize=4
    (2)半径标注
    采用采用AddDimRadial方法进行标注,这种方法的功能是在给定位置创建一个半径尺寸标注。其语法格式是:
    RetVal(返回值)=object.AddDimRadial(Center,ChordPoint,LeaderLength)
    Object 这个方法适用于模型空间、纸空间、块空间。
    Center 要求输入圆或弧的中心点三维坐标值。
    ChordPoint 要求输入圆或弧上的标注点的三维坐标值。
    LeaderLength 要求输入正值,用来设置标注点到标注文字之间的引线的长度。
    RetVal(返回值) 返回新创建的半径标注对象。
    以箱形孔孔型内角半径的标注为例来说明此方法的应用。,
    pntcen2(0)2 pn4(O)+r2*Cos(qxj1):pntcen2(1)=oy+h(i)/2-6.5一r2:pnteen2(2)=0
    chordpnt(0)=pn4(O)+r2*Cos(qxj1):chordpnt(1)=oy+h(i)/2-6.5:chordpnt(2)=0
    Set radobj=mospaee.AddDimRadial(pntcen2,chordpnt,0)
    radobj.Fit=acTextAndArrows
    radobj.ArrowheadSize=4
    按照上述方法可以标注出孔型中的任何尺寸。
   

    4 结论
    通过VB与AutoCAD的连接,以VB作为编译器,以AutoCAD为图形支撑软件,在AutoCAD绘图环境下进行参数化绘图,实现了使用连铸坯轧制棒材和型材的孔型设计,使用方便,界面友好。将VB语言在计算和数据处理上的优点与AutoCAD在图形绘制上的特长有机地结合在一起,为计算机辅助孔型设计提供了一个方便快捷的方法。

打印本文   加入收藏   返回顶部   关闭窗口Tags:用V|VB|B开|开  

网站: http://www.hnygpx.net 报名电话:0731-5579057   13807313137 报名信箱: yp5579@263.net 咨询QQ: 361928696,873219118 

校址:湖南省长沙市雨花区红花坡路176号(正圆厂内)。 来校路线:长沙火车站售票处后坪乘135路至"鼓风站"下车,回走100米即到 湘ICP备08002401

电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校
中山市,固原市,银川市,玉树,海东,陇南市,酒泉市,张掖市,天水市,金昌市,兰州市,榆林市,延安市,渭南市,铜川市,阿里,山南,拉萨市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,毕节,铜仁,遵义市,贵阳市,甘孜州,资阳市,达州市,宜宾市,南充市,遂宁市,绵阳市,泸州市,自贡市,三亚市,崇左市,河池市,玉林市,钦州市,梧州市,柳州市,梅州市,肇庆市,湛江市,佛山市,珠海市,韶关市,湘西州,怀化市,郴州市,张家界市,邵阳市,株洲市,仙桃市,随州市,荆州市,荆门市,襄樊市,黄石市,驻马店市,信阳市,南阳市,漯河市,中卫市,石嘴山市,海西,海南藏州,黄南州,海北,甘南,庆阳市,平凉市,武威市,白银市,嘉峪关市,安康市,汉中市,咸阳市,宝鸡市,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧市,丽江市,保山市,曲靖市,黔东州,黔西州,安顺市,六盘水市,凉山州,阿坝州,雅安市,广安市,眉山市,内江市,广元市,德阳市,攀枝花市,成都市,海口市,来宾市,百色市,贵港市,北海市,桂林市,南宁市,云浮市,揭阳市,潮州市,清远市,阳江市,汕尾市,惠州市,茂名市,江门市,汕头市,深圳市,广州市,娄底市,永州市,益阳市,岳阳市,湘潭市,长沙市,恩施州,黄冈市,孝感市,鄂州市,十堰市,武汉市,周口市,商丘市,三门峡市,许昌市,焦作市,安阳市,鹤壁市,平顶山市,开封市,郑州市,聊城市,滨州市,德州市,莱芜市,日照市,泰安市,烟台市,潍坊市,东营市,淄博市,上饶市,济南市,抚州市,宜春市,赣州市,新余市,九江市,景德镇市,宁德市,南平市,泉州市,莆田市,厦门市,宣城市,亳州市,六安市,宿州市,黄山市,滁州市,安庆市,淮北市,马鞍山市,蚌埠市,芜湖市,合肥市,丽水市,舟山市,衢州市,金华市,湖州市,嘉兴市,宁波市,宿迁市,镇江市,盐城市,连云港市,苏州市,徐州市,南京市,绥化市,牡丹江市,佳木斯市,大庆市,鹤岗市,哈尔滨市,白城市,白山市,辽源市,吉林市,葫芦岛市,铁岭市,盘锦市,阜新市,锦州市,本溪市,鞍山市,沈阳市,锡林郭勒盟,通辽市,乌海市,吕梁市,忻州市,晋中市,晋城市,阳泉市,太原市,廊坊市,承德市,保定市,邯郸市,唐山市,宁夏,甘肃省,西藏,贵州省,重庆市,广西,湖南省,河南省,江西省,安徽省,江苏省,黑龙江省,辽宁省,山西省,天津市,四平市,内蒙古,吴忠市,果洛,西宁市,定西市,商洛市,西安市,那曲,黔南州,巴中市,乐山市,贺州市,防城港市,东莞市,河源市,常德市,衡阳市,咸宁市,宜昌市,濮阳市,新乡市,洛阳市,菏泽市,临沂市,威海市,济宁市,枣庄市,青岛市,吉安市,鹰潭市,萍乡市,南昌市,龙岩市,漳州市,三明市,福州市,池州市,巢湖市,阜阳市,铜陵市,淮南市,台州市,绍兴市,温州市,杭州市,泰州市,扬州市,淮安市,南通市,常州市,无锡市,大兴安岭,黑河市,七台河市,伊春市,双鸭山市,鸡西市,齐齐哈尔市,延边,松原市,通化市,长春市,朝阳市,辽阳市,营口市,丹东市,抚顺市,大连市,阿拉善盟,兴安盟,乌兰察布市,巴彦淖尔市,呼伦贝尔市,鄂尔多斯市,赤峰市,包头市,呼和浩特市,临汾市,运城市,朔州市,长治市,大同市,衡水市,沧州市,张家口市,邢台市,秦皇岛市,石家庄市,青海省,陕西省,云南省,四川省,海南省,广东省,湖北省,山东省,福建省,浙江省,上海市,吉林省,河北省,北京市