前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >CATIA二次开发(VB.NET)——零件设计模块以及草图模块

CATIA二次开发(VB.NET)——零件设计模块以及草图模块

原创
作者头像
Arya
发布2025-01-24 22:09:00
发布2025-01-24 22:09:00
740
举报
文章被收录于专栏:后端开发专栏后端开发专栏

第九章 零件设计模块以及草图模块

主零件几何体

主实体特征中有一个主几何体,通过Add方法可以在零件文档中新加一个实体特征。

更改零件几何体的相关属性,在想要更改的零件体上右键,选择

弹出更改的消息框

通过代码新建零件几何体,并重新命名

通过获取零件几何体的xy平面,初始的元素

通过代码新建草图

关于shapefactory 和 hybird shape factory

shapefactory对实体进行操作

草图的轴系

在创建完草图特征后,通过绝对轴属性可以很容易获取它的轴系系统,比如水平轴和垂直轴。

代码语言:java
复制
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是草绘元素的构造器,可以通过它在草绘特征中绘制曲线。 Factory2D必须用Sketch,OpenEdition方法来获取,编辑完成后再用oSketch.Close Edition关闭编辑操作。代码如下所示:

草图的打开编辑,和关闭编辑

在factory2d中创建曲线特征,点,线,圆等

得到Factory2D对象后,可以使用它的创建方法来创建曲线特征。最常用的创建方法有三个:CreatePoint、CreateLine、CreateCircle和CreateClosedCircle。它们分别用于创建点,直线,圆弧及整圆。

案例:在第三个几何体的xy面上画直线

通过代码在草图中进行编辑,打开编辑后,画一条直线,然后要关闭草图编辑

代码语言:java
复制
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方法分别对应于三种约束类型,即单一元素的约束、两个元素的约束和三个元素的约束。

在catia自带的vba中开发

创建两条呈一定角度的线段

代码语言:java
复制
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
在vs中进行开发
代码语言:java
复制
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

ShapeFactory是实体特征的构造器,如图3-7所示,用它可以完成绝大部分的实体特征的创建。从前面的内容中应该已经清楚构造类的用法,即先获取构造类,再调用构造类的构造方法便可完成特征的创建。

定义工作对象
执行代码拉伸
代码语言:java
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第九章 零件设计模块以及草图模块
    • 主零件几何体
    • 关于shapefactory 和 hybird shape factory
    • 草图的轴系
    • Factory2D
      • 案例:在第三个几何体的xy面上画直线
      • 进行尺寸约束
      • 在catia自带的vba中开发
      • 在vs中进行开发
    • ShapeFactory
      • 定义工作对象
      • 执行代码拉伸
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档