主实体特征中有一个主几何体,通过Add方法可以在零件文档中新加一个实体特征。
更改零件几何体的相关属性,在想要更改的零件体上右键,选择
弹出更改的消息框
通过代码新建零件几何体,并重新命名
通过获取零件几何体的xy平面,初始的元素
通过代码新建草图
shapefactory对实体进行操作
在创建完草图特征后,通过绝对轴属性可以很容易获取它的轴系系统,比如水平轴和垂直轴。
Sub mi()
Dim plnxy As Plane
Dim opart As Part
Set opart = CATIA.ActiveDocument.Part
Set plnxy = opart.OriginElements.PlaneXY
Dim obody As Body
Set obody = opart.Bodies.Item(3)
Set osketch = obody.Sketches.Add(plnxy)
Dim oHRef As Line2D, oVRef As Line2D
Set oHRef = osketch.AbsoluteAxis.HorizontalReference
Set oVRef = osketch.AbsoluteAxis.VerticalReference
End Sub
Factory2D是草绘元素的构造器,可以通过它在草绘特征中绘制曲线。 Factory2D必须用Sketch,OpenEdition方法来获取,编辑完成后再用oSketch.Close Edition关闭编辑操作。代码如下所示:
草图的打开编辑,和关闭编辑
在factory2d中创建曲线特征,点,线,圆等
得到Factory2D对象后,可以使用它的创建方法来创建曲线特征。最常用的创建方法有三个:CreatePoint、CreateLine、CreateCircle和CreateClosedCircle。它们分别用于创建点,直线,圆弧及整圆。
通过代码在草图中进行编辑,打开编辑后,画一条直线,然后要关闭草图编辑
Sub mi()
Dim plnxy As Plane
Dim opart As Part
Set opart = CATIA.ActiveDocument.Part
Set plnxy = opart.OriginElements.PlaneXY
Dim obody As Body, osketch As Sketch
Set obody = opart.Bodies.Item(3)
Set osketch = obody.Sketches.Add(plnxy)
'打开草图编辑
Dim factory2D1 As Factory2D
Set factory2D1 = osketch.OpenEdition()
Set oline = factory2D1.CreateLine(0, 0, 10, 20)
'关闭草图编辑
osketch.CloseEdition
opart.Update
End Sub
同手工创建图形一样,草绘图形创建完成之后总是应该对它们进行约束。Constraints也是一个集合对象,可以使用Add方法来获取Constraint对象。三种Add方法分别对应于三种约束类型,即单一元素的约束、两个元素的约束和三个元素的约束。
创建两条呈一定角度的线段
Sub mi()
Dim plnxy As Plane
Dim opart As Part
Set opart = CATIA.ActiveDocument.Part
Set plnxy = opart.OriginElements.PlaneXY
Dim obody As Body, osketch As Sketch
Set obody = opart.Bodies.Item(3)
Set osketch = obody.Sketches.Add(plnxy)
'打开草图编辑
Dim factory2D1 As Factory2D
Set factory2D1 = osketch.OpenEdition()
Set oline = factory2D1.CreateLine(0, 0, 10, 20)
'进行尺寸约束
Dim olineh As Line2D
Set olineh = osketch.AbsoluteAxis.HorizontalReference
Dim rf1 As Reference, rf2 As Reference '进行引用的创建
Set rf1 = opart.CreateReferenceFromObject(oline)
Set rf2 = opart.CreateReferenceFromObject(olineh)
Dim oconstraints As Constraints, ocinstraint As Constraint
Set oconstraints = osketch.Constraints
Set ocinstraint = oconstraints.AddBiEltCst(catCstTypeAngle, rf1, rf2)
ocinstraint.Dimension.Value = 30 '定义角度是30
'关闭草图编辑
osketch.CloseEdition
opart.Update
End Sub
Imports MECMOD
Imports HybridShapeTypeLib
Imports INFITF
Imports PARTITF
Public Class Form1
' 窗体初始化的函数
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
On Error Resume Next '有错误的话会忽略,继续执行下一句
' 如果打开catia,就获取当前的这个
CATIA = GetObject(, "CATIA.Application")
If Err.Number <> 0 Then
' 如果没有打开catia,则打开新的catia
CATIA = CreateObject("CATIA.Application")
CATIA.Visible = True
End If
On Error GoTo 0
' 让catia始终在最上层
MakeMeOnTop(Me.Handle, True)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
InitCATIAPart(True) 'true表示新建一个part
'创建草绘特征
Dim oPlaneYZ As Plane, oSketch As Sketch
oPlaneYZ = oPart.OriginElements.PlaneYZ
oSketch = oBody.Sketches.Add(oPlaneYZ)
'编辑草绘特征
Dim oFactory2D As Factory2D
oFactory2D = oSketch.OpenEdition
'创建直线
Dim oLine As Line2D
oLine = oFactory2D.CreateLine(0, 0, 10, 20)
Dim oLineH As Line2D
oLineH = oSketch.AbsoluteAxis.HorizontalReference
Dim oRef1 As Reference, oRef2 As Reference
oRef1 = oPart.CreateReferenceFromObject(oLine)
oRef2 = oPart.CreateReferenceFromObject(oLineH)
'创建约束
Dim oConstraints As Constraints, oConstraint As Constraint
oConstraints = oSketch.Constraints
'oConstraint = oConstraints.AddBiEltCst(catCstTypeAngle, oRef1, oRef2) '改成如下
oConstraint = oConstraints.AddBiEltCst(CatConstraintType.catCstTypeAngle, oRef1, oRef2)
oConstraint.Dimension.Value = 30
oSketch.CloseEdition()
'创建Pad特征 需要import PARTITF
Dim oSF As ShapeFactory, oPad As Pad
' 教材上代码会报错,注释掉
'oSF = oPart.ShapeFactory
'oPad = oSF.AddNewPad(oSketch, 20)
'oPad.IsThin = True
'更新零件
oPart.Update()
End Sub
End Class
ShapeFactory是实体特征的构造器,如图3-7所示,用它可以完成绝大部分的实体特征的创建。从前面的内容中应该已经清楚构造类的用法,即先获取构造类,再调用构造类的构造方法便可完成特征的创建。
Sub kn()
Dim opart As Part
Set opart = CATIA.ActiveDocument.Part
Set obody = CATIA.ActiveDocument.Part.Bodies.Item(3)
Set osketch = obody.Sketches.Item(2)
'获得工厂对象
Dim shapefactory1 As ShapeFactory
Set shapefactory1 = opart.ShapeFactory
Set oPad = shapefactory1.AddNewPad(osketch, 10)
opart.Update
End Sub
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。