CATIA V5 Automation Detailed Steps基于VB的catia二次开发代码.docx
《CATIA V5 Automation Detailed Steps基于VB的catia二次开发代码.docx》由会员分享,可在线阅读,更多相关《CATIA V5 Automation Detailed Steps基于VB的catia二次开发代码.docx(20页珍藏版)》请在冰豆网上搜索。
CATIAV5AutomationDetailedSteps基于VB的catia二次开发代码
CATIAV5Automation
DetailedSteps
TableofContents
Views.vbp3
PartDesign.vbp5
ShapeDesign.vbp8
Assembly.vbp12
Drafting.vbp15
GetPoint.vbp18
TestSelections.vbp20
Views.vbp
OptionExplicit
DimCATIAAsINFITF.Application
DimmyDocAsPartDocument
PrivateSubCommand1_Click()
OnErrorResumeNext
SetCATIA=GetObject(,"CATIA.Application")
IfErr.Number<>0Then
SetCATIA=CreateObject("CATIA.Application")
CATIA.Visible=True
EndIf
OnErrorGoTo0
'OpeningBolt.CATPart
DimmyDirAsString
myDir=App.Path
SetmyDoc=CATIA.Documents.Open(myDir&"\Bolt.CATPart")
DimmyViewer3AsViewer3D
DimmyViewPointAsViewpoint3D
'GettingtheactiveViewer
SetmyViewer3=CATIA.ActiveWindow.ActiveViewer
myViewer3.RenderingMode=catRenderShading
DimmyCam3dAsCamera3D
DimiAsInteger
'Displaythenumberofdefinedcameras.
MsgBoxmyDoc.Cameras.Count
'Scaningallthecamerasofthedocument
Fori=1TomyDoc.Cameras.Count
SetmyCam3d=myDoc.Cameras.Item(i)
'ModifyingtheViewpoint3Doftheactiveviewer
myViewer3.Viewpoint3D=myCam3d.Viewpoint3D
myViewer3.Reframe
myViewer3.ZoomIn
myViewer3.Update
MsgBoxmyCam3d.Name
Next
'Selectingthefrontcamera
SetmyCam3d=myDoc.Cameras.Item("*front")
myViewer3.Viewpoint3D=myCam3d.Viewpoint3D
'Savingthedocument
IfMsgBox("SaveBolt2",vbOKCancel)=vbOKThen
OnErrorResumeNext
Kill(myDir&"\Bolt2.CATPart")
CallmyDoc.SaveAs(myDir&"\Bolt2.CATPart")
CallmyDoc.Close
OnErrorGoTo0
EndIf
EndSub
PartDesign.vbp
OptionExplicit
DimCATIAAsINFITF.Application
PrivateSubCommand1_Click()
OnErrorResumeNext
SetCATIA=GetObject(,"CATIA.Application")
IfErr.Number<>0Then
SetCATIA=CreateObject("CATIA.Application")
CATIA.Visible=True
EndIf
OnErrorGoTo0
'CreatinganewPart
DimMyDocAsPartDocument
SetMyDoc=CATIA.Documents.Add("Part")
'GettingthedefaultBodycalled"MechanicalTool.1"(internalname)
DimmyBodyAsBody
SetmyBody=MyDoc.Part.Bodies.Item("MechanicalTool.1")
'Activatingthebodyasthe"InWorkObject"
MyDoc.Part.InWorkObject=myBody
'CreatingareferenceonXYplane
DimReferencePlaneAsReference
SetReferencePlane=MyDoc.Part.CreateReferenceFromGeometry(MyDoc.Part.OriginElements.PlaneXY)
'CreatingmySketch1onXYPlane
DimmySketch1AsSketch
SetmySketch1=myBody.Sketches.Add(ReferencePlane)
'OpeningmySketch1andgettingthefactory
DimMyFactory1AsFactory2D
SetMyFactory1=mySketch1.OpenEdition()
'Creating4lines
Diml1AsLine2D
Diml2AsLine2D
Diml3AsLine2D
Diml4AsLine2D
Setl1=MyFactory1.CreateLine(10#,10#,10#,30#)
Setl2=MyFactory1.CreateLine(10#,30#,40#,30#)
Setl3=MyFactory1.CreateLine(40#,30#,40#,10#)
Setl4=MyFactory1.CreateLine(40#,10#,10#,10#)
mySketch1.CloseEdition
'CreatingmySketch2onXYPlane
DimmySketch2AsSketch
SetmySketch2=myBody.Sketches.Add(ReferencePlane)
'OpeningmySketch2andgettingthefactory
DimMyFactory2AsFactory2D
SetMyFactory2=mySketch2.OpenEdition()
'Creating1Circle
Dimc1AsCircle2D
Setc1=MyFactory2.CreateClosedCircle(40#,30#,10#)
mySketch2.CloseEdition
'GettingtheshapeFactory
DimMyFactAsShapeFactory
SetMyFact=MyDoc.Part.ShapeFactory
'Creatingapad
DimmyPadAsPad
SetmyPad=MyFact.AddNewPad(mySketch1,20)
'CreatingaPocket
DimmyPokAsPocket
SetmyPok=MyFact.AddNewPocket(mySketch2,-20)
MyDoc.Part.Update
'Reframingthewindowonthepart
CATIA.ActiveWindow.ActiveViewer.Reframe
EndSub
ShapeDesign.vbp
OptionExplicit
DimCATIAAsINFITF.Application
PrivateSubCommand1_Click()
OnErrorResumeNext
SetCATIA=GetObject(,"CATIA.Application")
IfErr.Number<>0Then
SetCATIA=CreateObject("CATIA.Application")
CATIA.Visible=True
EndIf
OnErrorGoTo0
DimmyPartDocumentAsPartDocument
SetmyPartDocument=CATIA.Documents.Add("Part")
DimmyPartAsPart
SetmyPart=myPartDocument.Part
'CreatinganOpen_bodyifnotalreadyexisting
OnErrorResumeNext
DimmyHybridBodyAsHybridBody
SetmyHybridBody=myPart.HybridBodies.Item("Open_body.1")
IfmyHybridBodyIsNothingThen
SetmyHybridBody=myPart.HybridBodies.Add
EndIf
OnErrorGoTo0
DimMyHSFactAsHybridShapeFactory
SetMyHSFact=myPart.HybridShapeFactory
myPart.Update
'Creating6Points
DimHyPt1AsHybridShapePointCoord
DimHyPt2AsHybridShapePointCoord
DimHyPt3AsHybridShapePointCoord
DimHyPt4AsHybridShapePointCoord
DimHyPt5AsHybridShapePointCoord
DimHyPt6AsHybridShapePointCoord
SetHyPt1=MyHSFact.AddNewPointCoord(10#,60#,30#)
SetHyPt2=MyHSFact.AddNewPointCoord(70#,75#,35#)
SetHyPt3=MyHSFact.AddNewPointCoord(100#,80#,30#)
SetHyPt4=MyHSFact.AddNewPointCoord(100#,80#,40#)
SetHyPt5=MyHSFact.AddNewPointCoord(95#,20#,45#)
SetHyPt6=MyHSFact.AddNewPointCoord(100#,10#,50#)
'Creatingreferencesonthepoints
DimR1AsReference
DimR2AsReference
DimR3AsReference
DimR4AsReference
DimR5AsReference
DimR6AsReference
SetR1=myPart.CreateReferenceFromGeometry(HyPt1)
SetR2=myPart.CreateReferenceFromGeometry(HyPt2)
SetR3=myPart.CreateReferenceFromGeometry(HyPt3)
SetR4=myPart.CreateReferenceFromGeometry(HyPt4)
SetR5=myPart.CreateReferenceFromGeometry(HyPt5)
SetR6=myPart.CreateReferenceFromGeometry(HyPt6)
DimmyControlPointAsHybridShapeControlPoint
'Wecanreusethesamevariable:
'myControlPoint'
'CreatingfirstSpline
DimHyLine1AsHybridShapeSpline
SetHyLine1=MyHSFact.AddNewSpline
HyLine1.SetSplineType0
HyLine1.SetClosing0
'Addingthecontrolpoints
SetmyControlPoint=MyHSFact.AddNewControlPoint(R1)
HyLine1.AddControlPointmyControlPoint
SetmyControlPoint=MyHSFact.AddNewControlPoint(R2)
HyLine1.AddControlPointmyControlPoint
SetmyControlPoint=MyHSFact.AddNewControlPoint(R3)
HyLine1.AddControlPointmyControlPoint
'CreatingsecondSpline
DimHyLine2AsHybridShapeSpline
SetHyLine2=MyHSFact.AddNewSpline
CallHyLine2.SetSplineType(0)
CallHyLine2.SetClosing(0)
SetmyControlPoint=MyHSFact.AddNewControlPoint(R4)
HyLine2.AddControlPointmyControlPoint
SetmyControlPoint=MyHSFact.AddNewControlPoint(R5)
HyLine2.AddControlPointmyControlPoint
SetmyControlPoint=MyHSFact.AddNewControlPoint(R6)
HyLine2.AddControlPointmyControlPoint
DimRef1AsReference
DimRef2AsReference
'CreatingaSweep
SetRef1=myPart.CreateReferenceFromGeometry(HyLine1)
SetRef2=myPart.CreateReferenceFromGeometry(HyLine2)
DimHybridShapeSweepExplicit1AsHybridShapeSweepExplicit
SetHybridShapeSweepExplicit1=MyHSFact.AddNewSweepExplicit(Ref1,Ref2)
'myHybridBody.AppendHybridShapeHyLine1
'myHybridBody.AppendHybridShapeHyLine2
myHybridBody.AppendHybridShapeHybridShapeSweepExplicit1
'Creatinga3DPoint
DimHyPt7AsHybridShapePointCoord
SetHyPt7=MyHSFact.AddNewPointCoord(50#,30#,100#)
myHybridBody.AppendHybridShapeHyPt7
'Creatingtheprojectionof"HyPt7"onthesurface"HybridShapeSweepExplicit1"
DimRef3AsReference
DimRef4AsReference
SetRef3=myPart.CreateReferenceFromGeometry(HyPt7)
SetRef4=myPart.CreateReferenceFromGeometry(HybridShapeSweepExplicit1)
DimHybridShapeProject1AsHybridShapeProject
SetHybridShapeProject1=MyHSFact.AddNewProject(Ref3,Ref4)
myHybridBody.AppendHybridShapeHybridShapeProject1
myPart.Update
EndSub
Assembly.vbp
OptionExplicit
DimCATIAAsObject
PrivateSubCommand1_Click()
DimiAsInteger
ReDimmyNames
(1)'AsString
OnErrorResumeNext
SetCATIA=GetObject(,"CATIA.Application")
IfErr.Number<>0Then
SetCATIA=CreateObject("CATIA.Application")
CATIA.Visible=True
EndIf
OnErrorGoTo0
DimmyDirAsString
myDir=App.Path
'Creatingtherootproduct
DimTitanic'AsProductDocument
SetTitanic=CATIA.Documents.Add("Product")
'Creatingthehullatlevel1
myNames(0)=myDir+"\Hull.CATPart"
CallTitanic.Product.Products.AddComponentsFromFiles(myNames,"*")
Titanic.Product.PartNumber="Titanic"
Dimassy1'AsProduct
'Creatingsub-product"ass1"atlevel1
'NewProductnotassociatedwithaProductDocumentfile
Setassy1=Titanic.Product.Products.AddNewProduct("ass1")
'CreatingtheCastleunder"ass1"atlevel2
myNames(0)=myDir+"\Castle.CATPart"
Callassy1.Products.AddComponentsFromFiles(myNames,"*")
'CreatingtheFunnelunder"ass1"atlevel2
myNames(0)=myDir+"\Funnel.CATPart"
Callassy1.Products.AddComponentsFromFiles(myNames,"*")
Titanic.Product.Update
DimAss1RefProduct'AsProduct
SetAss1RefProduct=assy1.ReferenceProduct
'Creating2ndinstanceofsubproduct"ass1"atlevel1
DimProduct2'AsProduct
SetProduct2=Titanic.Product.Products.AddComponent(Ass1RefProduct)
'Creatingthetransformationmatrix
ReDimvar1(11)
var1(0)=1#
var1
(1)=0#
var1
(2)=0#
var1(3)=0#
var1(4)=1#
var1(5)=0#
var1(6)=0#
var1(7)=0#
var1(8)=1#
var1(9)=60#'translationalongX
var1(10)=0#'translationalongY
var1(11)=0#'translationalongZ
'Movingtheinstance
Product2.Move.Applyvar1
'Creating3rdinstanceof"ass1"atlevel1
DimProduct3'AsProduct
SetProduct3=Titanic.Product.Products.AddComponent(Ass1RefProduct)
var1(9)=120#'translationalongX
'Movingtheinstance
Product3.Move.Applyvar1
'CreatingtheBillOfMaterialinthefileTitanicBOM.txt
CallTitanic.Product.ExtractBOM(catFileTypeText,myDir&"\TitanicBOM.txt")
EndSub
Drafting.vbp
OptionExplicit
DimCATIAAsINFITF.Application
PrivateSubCommand1_Click()
DimiAsInteger
OnErrorResumeNext
SetCATIA=GetObject(,"CATIA.Application")
IfErr.Number<>0Then
SetCATIA=CreateObject("CATIA.Application")
CATIA.Visible=True
EndIf
DimmyDirAsString
myDir=App.Path
'Opening"Bolt.CATPart"file
DimMyPartDocAsPartDocument
SetMyPartDoc=