版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Catia 百格線生成宏你是否為在Catia 做 2D 圖紙的時候,畫百格線而傷腦筋呢?別擔(dān)心,接下來我告訴你一個簡單的方法1. 新建一個 txt 文本文檔,比如Draw-Grid.txt2.把以下容復(fù)制到Draw-Grid.txt中這里開始,不要復(fù)制我Option Explicit' *'Purpose: This macro allows you to create Grid line in CATIA drawing' Author: chenqa'Languages:VBScript'Locales:English' Developing
2、 CATIA Level: V5R12' View mush parallel to system aixes,view angle 0deg,90deg and -90deg' *Sub CATMain()CATIA.RefreshDisplay = FalseDim sStatus As String' Set the CATIA popup file alerts to False' It prevents to stop the macro at each alert during its execution CATIA.DisplayFileAlert
3、s = False' Optional: allows to find the sample wherever it's installed' Variables declarationDim oDrwDocument As DrawingDocumentDim oDrwSheets As DrawingSheetsDim oDrwSheet As DrawingSheetDim oDrwView As DrawingViewDim oFactory2D AS Factory2D' The Distance between the linesDim D As I
4、ntegerDim nx As IntegerDim ny As Integer' The point coordinate select from Drawing Dim X1 As IntegerDim Y1 As IntegerDim X2 As IntegerDim Y2 As IntegerDim Pt1 As Point2DDim Pt2 As Point2D'The view scale dAngle for rotate view scale for view scale Dim dScale,dAngle As Double'The view coor
5、dinate originDim X As IntDim Y As IntDim xSelAs INFITF.SelectionD= InputBox("Please Input the Distance Value", "input box", "100")D= Cint (D)' Retrive a new drawing documentSet oDrwDocument = CATIA.ActiveDocument' Retrieve the drawing document's sheets colle
6、ction Set oDrwSheets = oDrwDocument.Sheets' Retrieve the active sheetSet oDrwSheet = oDrwSheets.ActiveSheet' Retrieve the active view of the sheet'Retrive the value of the viewX= oDrwView.xAxisDataY= oDrwView.yAxisDatadScale = oDrwView.ScaledAngle= oDrwView.AngleSet oFactory2D = oDrwView
7、.Factory2D'Get the coordinate from the select two point 'On Error Resume NextReDim sFilter(0)sFilter(0) = "Point2D"MsgBox "Please select the left-bottom point "sStatus = xSel.SelectElement2(sFilter, "Select First Point.", false)If (sStatus = "Normal")
8、ThenDim SelectedPoint1 As SelectedElementSet SelectedPoint1 = xSel.Item(1)Dim pt1Coord(2) As Int SelectedPoint1.GetCoordinates ( pt1Coord ) 'MsgBox "The frst point has been selected "Else MsgBox "Select a 2D Point 1"Exit SubEnd IfMsgBox "Please select the ritht-top point
9、 "sStatus = xSel.SelectElement2(sFilter, "Select The Second Point.", false)If (sStatus = "Normal") ThenDim SelectedPoint2 As SelectedElementSet SelectedPoint2 = xSel.Item(1)Dim pt2Coord(2) As IntSelectedPoint2.GetCoordinates ( pt2Coord )'MsgBox "The second point has
10、 been selected "Else MsgBox "Select a 2D point 1"Exit SubEnd Ifif dAngle=0 thenX1= Cint( (pt1Coord(0) - X)/dScale)Y1= Cint (pt1Coord(1) - Y)/dScale)X2= Cint (pt2Coord(0) - X)/dScale)Y2= Cint (pt2Coord(1) - Y)/dScale)end if'MsgBox (pt1Coord(0)'MsgBox Xif dAngle>0 thenX1=Cint
11、(pt1Coord(1)-Y)/dScale)Y1=Cint (pt1Coord(0) -X)/dScale)X2= Cint (pt2Coord(1)-Y)/dScale)Y2= Cint (pt2Coord(0)-X)/dScale)end ifif dAngle<0 thenX1=Cint(pt1Coord(1)-Y)/dScale)Y1=Cint (pt1Coord(0) -X)/dScale)X2= Cint (pt2Coord(1)-Y)/dScale)Y2= Cint (pt2Coord(0)-X)/dScale)end ifX1 = D * Cint(X1/D)Y1 =
12、D * Cint (Y1/D)X2= D * Cint (X2/D)Y2 = D * Cint (Y2/D)nx = (X2-X1) D 'The number of the horizontal line ny = (Y2-Y1) D 'The number of the vertical lineDim Line2D1 As Line2DDim Circle2D1 as Circle2DDim MyText as DrawingTextDim iFontsize as DoubleDim i As IntDim j As IntDim R As Doubel 'th
13、e radius of the circleiFontSize = 3.5R=8R=R / dScale'-Dim Di_H,Di_V as intDim Text_XYZ_H as stringDim Text_XYZ_V as stringDi_H=1Di_V=1XX1,YY1,ZZ1,XX2,YY2,ZZ2if (XX1=1) thenText_XYZ_H="X"End ifif (XX1=-1) thenText_XYZ_H="X"Di_H=-1End ifif (YY1=1) thenText_XYZ_H="Y"En
14、d ifif (YY1=-1) thenText_XYZ_H="Y"Di_H=-1End ifif (ZZ1=1) thenText_XYZ_H="Z"End ifif (ZZ1=-1) thenText_XYZ_H="Z"Di_H=-1End ifif (XX2=1) thenText_XYZ_V="X"End ifif (XX2=-1) thenText_XYZ_V="X"Di_V=-1End ifif (YY2=1) thenText_XYZ_V="Y"End ifif
15、 (YY2=-1) thenText_XYZ_V="Y"Di_V=-1End ifif (ZZ2=1) thenText_XYZ_V="Z"End ifif (ZZ2=-1) thenText_XYZ_V="Z"Di_V=-1End ifif dAngle>0 thenDi_V=-Di_Vend ifif dAngle<0 thenDi_H=-Di_Hend ifDim oSel as SelectionDim oVisProps as VisPropertySetset oSel = oDrwDocument.Selec
16、tionoSel.ClearDim TextV As intTextV=R/2'Draw the horizontall linefor i=0 TO nyif dAngle=0 thenset Line2D1 = oFactory2D.CreateLine (X1-D/3,Y1+D*i,X1+nx*D+D/3,Y1+D*i)oSel.Add Line2D1set Circle2D1=oFactory2D.CreateClosedCircle(X1-D/3 -R,Y1+D*i,R)oSel.Add Circle2D1set Line2D1=oFactory2D.CreateLine(X
17、1-D/3-R*2,Y1+D*i,X1-D/3,Y1+D*i)oSel.Add Line2D1MyText.AnchorPosition = catMiddleCenter MyText.SetFontSize 0, 0, iFontSizeMyText.AnchorPosition = catMiddleCenter MyText.SetFontSize 0, 0, iFontSizeend ifif dAngle>0 thenset Line2D1 = oFactory2D.CreateLine (X1-D/3,-Y1-D*i,X1+nx*D+D/3,-Y1-D*i)oSel.Add
18、 Line2D1set Circle2D1=oFactory2D.CreateClosedCircle(X1+nx*D+D/3+R,-Y1-D*i,R)oSel.Add Circle2D1set Line2D1=oFactory2D.CreateLine(X1+nx*D+D/3+R,-Y1-D*i+R,X1+nx*D+D/3+R,-Y1-D*i-R)oSel.Add Line2D1MyText.AnchorPosition = catMiddleCenter MyText.SetFontSize 0, 0, iFontSizeMyText.AnchorPosition = catMiddleC
19、enter MyText.SetFontSize 0, 0, iFontSize end ifif dAngle<0 thenset Line2D1 = oFactory2D.CreateLine (-X1+D/3,Y1+D*i,-(X1+nx*D+D/3),Y1+D*i)oSel.Add Line2D1setCircle2D1=oFactory2D.CreateClosedCircle(-(X1+nx*D+D/3)-R,Y1+D*i,R) oSel.Add Circle2D1set Line2D1=oFactory2D.CreateLine(-X1-nx*D-D/3-R,Y1+D*i+
20、R,-X1-nx*D-D/3-R,Y1+D *i-R)oSel.Add Line2D1MyText.AnchorPosition = catMiddleCenterMyText.SetFontSize 0, 0, iFontSizeMyText.AnchorPosition = catMiddleCenter MyText.SetFontSize 0, 0, iFontSizeend ifnext'Draw the vertical linefor j=0 TO nxif dAngle=0 thenset Line2D1 = oFactory2D.CreateLine (X1+D*j,
21、Y1-D/3,X1+D*j,Y1+ny*D+D/3)oSel.Add Line2D1setCircle2D1=oFactory2D.CreateClosedCircle(X1+D*j,Y1+ny*D+D/3+R,R) oSel.Add Circle2D1set Line2D1 =oFactory2D.CreateLine(X1+D*j-R,y1+ny*D+D/3+R,X1+D*J+R,y1+ny*D+D /3+R)oSel.Add Line2D1Set MyText =MyText.SetFontSize 0, 0, iFontSizeSet MyText =MyText.SetFontSiz
22、e 0, 0, iFontSizeend ifif dAngle>0 thenset Line2D1 = oFactory2D.CreateLine (X1+D*j,-Y1+D/3,X1+D*j,-Y1-ny*D-D/3)oSel.Add Line2D1setCircle2D1=oFactory2D.CreateClosedCircle(X1+D*j,-Y1+D/3+R,R) oSel.Add Circle2D1set Line2D1 =oFactory2D.CreateLine(X1+D*j,-Y1+D/3+R*2,X1+D*J,-Y1+D/3)oSel.Add Line2D1Set
23、MyText =MyText.AnchorPosition = catMiddleCenterMyText.SetFontSize 0, 0, iFontSizeSet MyText =MyText.AnchorPosition = catMiddleCenterMyText.SetFontSize 0, 0, iFontSizeend ifif dAngle<0 thenset Line2D1 = oFactory2D.CreateLine (-X1-D*j,Y1-D/3,-X1-D*j,Y1+ny*D+D/3)oSel.Add Line2D1set Circle2D1=oFactory2D.CreateClosedCircle(-X1-D*j,Y1-D/3-R,R)oSel.Add Circle2D1set Line2D1 =oFactory2D.CreateLine(-X1-D*j,Y1-D/3-R*2,-X1-D*J,Y1-D/3)oSel.Add
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 污水課程設(shè)計紫外消毒
- 數(shù)字電路ic課程設(shè)計
- 教育培訓(xùn)行業(yè)教學(xué)方法培訓(xùn)體驗
- 電子課程設(shè)計網(wǎng)課答案
- 稅務(wù)工作總結(jié)制度建設(shè)與規(guī)范化監(jiān)督
- 急救護理工作總結(jié)
- 貸款經(jīng)理工作總結(jié)
- 電信通訊科技行業(yè)技術(shù)分析
- 旅游行業(yè)促銷活動總結(jié)
- 酒店用品銷售工作總結(jié)
- 高低壓供配電設(shè)備檢查和檢修保養(yǎng)合同3篇
- 投資可行性分析財務(wù)數(shù)據(jù)全套表格
- 2023-2024學(xué)年福建省廈門市八年級(上)期末物理試卷
- 易查云全球智能貿(mào)易信息查詢平臺商業(yè)計劃書
- 招標(biāo)文件的保密措施
- 2024小米在線測評題
- GA/T 804-2024機動車號牌專用固封裝置
- 公務(wù)車輛定點洗車協(xié)議書2024年
- 學(xué)??照{(diào)維修合同模板
- 2015年下半年教師資格考試-小學(xué)《教育教學(xué)知識與能力》真題及答案解析
- 陰道內(nèi)放置卡前列甲酯栓在無痛人工流產(chǎn)中運用
評論
0/150
提交評論