汽车行业玻璃升降器百线图的建立教程百格线.docx

上传人:b****8 文档编号:29083431 上传时间:2023-07-20 格式:DOCX 页数:14 大小:379.92KB
下载 相关 举报
汽车行业玻璃升降器百线图的建立教程百格线.docx_第1页
第1页 / 共14页
汽车行业玻璃升降器百线图的建立教程百格线.docx_第2页
第2页 / 共14页
汽车行业玻璃升降器百线图的建立教程百格线.docx_第3页
第3页 / 共14页
汽车行业玻璃升降器百线图的建立教程百格线.docx_第4页
第4页 / 共14页
汽车行业玻璃升降器百线图的建立教程百格线.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

汽车行业玻璃升降器百线图的建立教程百格线.docx

《汽车行业玻璃升降器百线图的建立教程百格线.docx》由会员分享,可在线阅读,更多相关《汽车行业玻璃升降器百线图的建立教程百格线.docx(14页珍藏版)》请在冰豆网上搜索。

汽车行业玻璃升降器百线图的建立教程百格线.docx

汽车行业玻璃升降器百线图的建立教程百格线

汽车行业CATIA百线图的构造

汽车中百位线的作用是能够快速得知汽车各部分零件相对于汽车坐标系的位置(如图所示)。

在车身质量控制,人机工程等方面相当重要。

这一用途同样适用于模具及其它行业,比如汽车玻璃升降器中百线图的设计(如图所示)。

对于这样的百位线图用AUTOCAD软件进行设计的工程师一般都通过一步一步画直线,阵列,画圆来实现。

当然用CATIA软件进行三维模型设计,然后投影成工程图,也可以用如上的方法一步一步画出百位线,但这样工作效率非常低。

因此网上很多朋友就询问有没有比较好的方法自动生成百位线。

那么我在这介绍两种种CATIA软件自动生成百位线的方法,这两种方法在CATIAV5R16以上的环境下测试过都没有问题。

首先在装配体里面新建零件,在为新零件建立新原点时选择否,新建的三个坐标平面就是整个汽车的坐标平面,这样整个车的坐标系就出来了,如下图所示

进入CATIA工程制图界面,新建空白文件进入工程图纸页面,然后投影主视图,但要注意工程图纸选择投影品面时要选择新建零件的坐标平面,也就是坐标原点所在的平面(这个很重要)。

投影完成后在投影图的左下角和右上角分别建立两点,着两点的位置所做的矩形能够将整个图纸包含即可,然后选择工具——宏(或Alt+F8)点击宏库——目录——添加现有库——找到宏所在的文件夹,然后选择宏点击运行,如下图所示

确定百线格为100,如下图所示

确定后点击左下角的点,再确定后点击右上角的点,完成后白线图就生成了,如下图所示:

Catia百格线生成宏

你是否为在Catia做2D图纸的时候,画百格线而伤脑筋呢?

别担心,接下来我告诉你一个简单的方法

1.新建一个txt文本文档,比如Draw-Grid.txt

2.把以下内容复制到Draw-Grid.txt中

=========这里开始,不要复制我=======

OptionExplicit

'***********************************************************************

'  Purpose:

     ThismacroallowsyoutocreateGridlineinCATIAdrawing

'  Author:

chenqa

'  Languages:

  VBScript

'  Locales:

      English

'  DevelopingCATIALevel:

V5R12

'  Viewmushparalleltosystemaixes,viewangle0deg,90degand-90deg

'***********************************************************************

SubCATMain()

CATIA.RefreshDisplay=False

DimsStatusAsString

   'SettheCATIApopupfilealertstoFalse

   'Itpreventstostopthemacroateachalertduringitsexecution

   CATIA.DisplayFileAlerts=False

   'Optional:

allowstofindthesamplewhereverit'sinstalled

   'Variablesdeclaration

   DimoDrwDocumentAsDrawingDocument

   DimoDrwSheetsAsDrawingSheets

   DimoDrwSheetAsDrawingSheet

   DimoDrwViewAsDrawingView

   DimoFactory2DASFactory2D

  

  'TheDistancebetweenthelines

   DimDAsInteger

   DimnxAsInteger

   DimnyAsInteger

  'ThepointcoordinateselectfromDrawing

   DimX1AsInteger

   DimY1AsInteger

   DimX2AsInteger

   DimY2AsInteger

   DimPt1AsPoint2D

   DimPt2AsPoint2D

   

  'TheviewscaledAngleforrotateviewscaleforviewscale

   DimdScale,dAngleAsDouble

   'Theviewcoordinateorigin

   DimXAsInt

    DimYAsInt

      

   DimxSel  AsINFITF.Selection

   D=InputBox("PleaseInputtheDistanceValue","inputbox","100")

   D=Cint(D)

   'Retriveanewdrawingdocument

   SetoDrwDocument=CATIA.ActiveDocument

   

'Retrievethedrawingdocument'ssheetscollection

   SetoDrwSheets=oDrwDocument.Sheets

'Retrievetheactivesheet

   SetoDrwSheet=oDrwSheets.ActiveSheet

      

   'Retrievetheactiveviewofthesheet

   SetoDrwView=oDrwSheet.Views.ActiveView

   'Retrivethevalueoftheview  

    X=oDrwView.xAxisData

    Y=oDrwView.yAxisData

    dScale=oDrwView.Scale

    dAngle=oDrwView.Angle

    SetoFactory2D=oDrwView.Factory2D

  'Getthecoordinatefromtheselecttwopoint

   'OnErrorResumeNext

    SetxSel=CATIA.ActiveDocument.Selection

    xSel.clear

    ReDimsFilter(0)

    sFilter(0)="Point2D"

    MsgBox"Pleaseselecttheleft-bottompoint"

    sStatus=xSel.SelectElement2(sFilter,"SelectFirstPoint.",false)

    If(sStatus="Normal")Then

     DimSelectedPoint1AsSelectedElement

     SetSelectedPoint1=xSel.Item

(1)

  

     Dimpt1Coord

(2)AsInt

     SelectedPoint1.GetCoordinates(pt1Coord)

     'MsgBox"Thefrstpointhasbeenselected"

     ElseMsgBox"Selecta2DPoint1"

     ExitSub

     EndIf

  

     MsgBox"Pleaseselecttheritht-toppoint"

     sStatus=xSel.SelectElement2(sFilter,"SelectTheSecondPoint.",false)

     If(sStatus="Normal")Then

      DimSelectedPoint2AsSelectedElement

   

      SetSelectedPoint2=xSel.Item

(1)

  

     Dimpt2Coord

(2)AsInt

   SelectedPoint2.GetCoordinates(pt2Coord)

    'MsgBox"Thesecondpointhasbeenselected"

    ElseMsgBox"Selecta2Dpoint1"

    ExitSub

    EndIf

  

ifdAngle=0then

  X1=Cint((pt1Coord(0)-X)/dScale)

  Y1=Cint((pt1Coord

(1)-Y)/dScale)

  X2=Cint((pt2Coord(0)-X)/dScale)

  Y2=Cint((pt2Coord

(1)-Y)/dScale)

endif

  'MsgBox(pt1Coord(0))

  'MsgBoxX

  ifdAngle>0then

   X1=Cint((pt1Coord

(1)-Y)/dScale)

     Y1=Cint((pt1Coord(0)-X)/dScale)

     X2=Cint((pt2Coord

(1)-Y)/dScale)

     Y2=Cint((pt2Coord(0)-X)/dScale)

endif

ifdAngle<0then

   X1=Cint((pt1Coord

(1)-Y)/dScale)

     Y1=Cint((pt1Coord(0)-X)/dScale)

     X2=Cint((pt2Coord

(1)-Y)/dScale)

     Y2=Cint((pt2Coord(0)-X)/dScale)

endif

   X1=D*Cint(X1/D)

   Y1=D*Cint(Y1/D)

   X2=D*Cint(X2/D)

   Y2=D*Cint(Y2/D)

   

   nx=(X2-X1)\D'Thenumberofthehorizontalline

   ny=(Y2-Y1)\D'Thenumberoftheverticalline

   

   DimLine2D1AsLine2D

   DimCircle2D1asCircle2D

  DimMyTextasDrawingText

  DimiFontsizeasDouble

   DimiAsInt

   DimjAsInt

   DimRAsDoubel'theradiusofthecircle

  

   iFontSize=3.5

   R=8

   R=R/dScale

'------------------------------------------------------

DimDi_H,Di_Vasint

DimText_XYZ_Hasstring

DimText_XYZ_Vasstring

Di_H=1

Di_V=1

'ComparethedrawingviewHVwith3DAixes

DimXX1,YY1,ZZ1,XX2,YY2,ZZ2asint

oDrwView.GenerativeBehavior.GetProjectionPlaneXX1,YY1,ZZ1,XX2,YY2,ZZ2

if(XX1=1)then

   Text_XYZ_H="X"

Endif

if(XX1=-1)then

   Text_XYZ_H="X"

   Di_H=-1

Endif

if(YY1=1)then

   Text_XYZ_H="Y"

Endif

if(YY1=-1)then

   Text_XYZ_H="Y"

   Di_H=-1

Endif

if(ZZ1=1)then

   Text_XYZ_H="Z"

Endif

if(ZZ1=-1)then

   Text_XYZ_H="Z"

   Di_H=-1

Endif

if(XX2=1)then

   Text_XYZ_V="X"

Endif

if(XX2=-1)then

   Text_XYZ_V="X"

   Di_V=-1

Endif

if(YY2=1)then

   Text_XYZ_V="Y"

Endif

if(YY2=-1)then

   Text_XYZ_V="Y"

   Di_V=-1

Endif

if(ZZ2=1)then

   Text_XYZ_V="Z"

Endif

if(ZZ2=-1)then

   Text_XYZ_V="Z"

   Di_V=-1

Endif

ifdAngle>0then

   Di_V=-Di_V

endif

ifdAngle<0then

   Di_H=-Di_H

endif

DimoSelasSelection

DimoVisPropsasVisPropertySet

setoSel=oDrwDocument.Selection

oSel.Clear

DimTextVAsint

TextV=R/2

'Drawthehorizontallline

   fori=0TOny

     ifdAngle=0then

         setLine2D1=oFactory2D.CreateLine(X1-D/3,Y1+D*i,X1+nx*D+D/3,Y1+D*i)

         oSel.AddLine2D1

         setCircle2D1=oFactory2D.CreateClosedCircle(X1-D/3-R,Y1+D*i,R)

         oSel.AddCircle2D1

         setLine2D1=oFactory2D.CreateLine(X1-D/3-R*2,Y1+D*i,X1-D/3,Y1+D*i)

         oSel.AddLine2D1

         SetMyText=oDrwView.Texts.Add(Text_XYZ_V,X1-D/3-R,Y1+D*i+TextV)

       MyText.AnchorPosition=catMiddleCenter

        MyText.SetFontSize0,0,iFontSize

         SetMyText=oDrwView.Texts.Add((Y1+D*i)*Di_V,X1-D/3-R,Y1+D*i-TextV)

         MyText.AnchorPosition=catMiddleCenter

         MyText.SetFontSize0,0,iFontSize

      endif

     ifdAngle>0then

         setLine2D1=oFactory2D.CreateLine(X1-D/3,-Y1-D*i,X1+nx*D+D/3,-Y1-D*i)

         oSel.AddLine2D1

         setCircle2D1=oFactory2D.CreateClosedCircle(X1+nx*D+D/3+R,-Y1-D*i,R)

         oSel.AddCircle2D1

         setLine2D1=oFactory2D.CreateLine(X1+nx*D+D/3+R,-Y1-D*i+R,X1+nx*D+D/3+R,-Y1-D*i-R)

         oSel.AddLine2D1

         SetMyText=oDrwView.Texts.Add(Text_XYZ_V,X1+nx*D+D/3+R+TextV,-Y1-D*i)

        MyText.AnchorPosition=catMiddleCenter

        MyText.SetFontSize0,0,iFontSize

         SetMyText=oDrwView.Texts.Add((Y1+D*i)*Di_V,X1+nx*D+D/3+R-TextV,-Y1-D*i)

         MyText.AnchorPosition=catMiddleCenter

         MyText.SetFontSize0,0,iFontSize

      endif

     ifdAngle<0then

         setLine2D1=oFactory2D.CreateLine(-X1+D/3,Y1+D*i,-(X1+nx*D+D/3),Y1+D*i)

         oSel.AddLine2D1

         setCircle2D1=oFactory2D.CreateClosedCircle(-(X1+nx*D+D/3)-R,Y1+D*i,R)

         oSel.AddCircle2D1

         setLine2D1=oFactory2D.CreateLine(-X1-nx*D-D/3-R,Y1+D*i+R,-X1-nx*D-D/3-R,Y1+D*i-R)

         oSel.AddLine2D1

         SetMyText=oDrwView.Texts.Add(Text_XYZ_V,-X1-nx*D-D/3-R+TextV,Y1+D*i)

        MyText.AnchorPosition=catMiddleCenter

         MyText.SetFontSize0,0,iFontSize

         SetMyText=oDrwView.Texts.Add((Y1+D*i)*Di_V,-X1-nx*D-D/3-R-TextV,Y1+D*i)

         MyText.AnchorPosition=catMiddleCenter

        MyText.SetFontSize0,0,iFontSize

      endif

   next

    

'Drawtheverticalline

   forj=0TOnx

     ifdAngle=0then

         setLine2D1=oFactory2D.CreateLine(X1+D*j,Y1-D/3,X1+D*j,Y1+ny*D+D/3)

         oSel.AddLine2D1

         setCircle2D1=oFactory2D.CreateClosedCircle(X1+D*j,Y1+ny*D+D/3+R,R)

         oSel.AddCircle2D1

         setLine2D1=oFactory2D.CreateLine(X1+D*j-R,y1+ny*D+D/3+R,X1+D*J+R,y1+ny*D+D/3+R)

         oSel.AddLine2D1

          SetMyText=oDrwView.Texts.Add(Text_XYZ_H,X1+D*j,Y1+ny*D+D/3+R+TextV)

                MyText.AnchorPosition=catMiddleCenter

                MyText.SetFontSize0,0,iFontSize

          SetMyText=oDrwView.Texts.Add((X1+D*j)*Di_H,X1+D*j,y1+ny*D+D/3+R-TextV)

                MyText.AnchorPosition=catMiddleCenter

            MyText.SetFontSize0,0,iFontSize

     endif

     ifdAngle>0then

         setLine2D1=oFactory2D.CreateLine(X1+D*j,-Y1+D/3,X1+D*j,-Y1-ny*D-D/3)

         oSel.AddLine2D1

         setCircle2D1=oFactory2D.CreateClosedCircle(X1+D*j,-Y1+D/3+R,R)

         oSel.AddCircle2D1

         setLine2D1=oFactory2D.CreateLine(X1+D*j,-Y1+D/3+R*2,X1+D*J,-Y1+D/3)

         oSel.AddLine2D1

          SetMyText=oDrwView.Texts.Add(Text_XYZ_H,X1+D*j+TextV,-Y1+D/3+R)

                MyText.AnchorPosition=catMiddleCenter

            MyText.SetFontSize

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1