CATIA二次开发VBA入门(5)——catia文档操作vb.net程序案例,打开catia文件,进行视图操作,退出程序

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

引出

CATIA二次开发VBA入门(5)——catia文档操作vb.net程序案例,打开catia文件,进行视图操作,退出程序


catia文档操作案例

1.初始化窗体,始终置顶

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    ' --------------------------------------------------------------
    ' 窗口属性设定API声明
    ' --------------------------------------------------------------
    Private Declare Function SetWindowPos Lib "user32" (
                                    ByVal hwnd As Long,
                                    ByVal hWndInsertAfter As Long,
                                    ByVal x As Long, ByVal y As Long,
                                    ByVal cx As Long, ByVal cy As Long,
                                    ByVal wFlags As Long) As Long
    Private Const SWP_NOMOVE = &H2
    Private Const SWP_NOSIZE = &H1
    Private Const HWND_TOPMOST = -1
    Private Const HWND_NOTOPMOST = -2

    ' ***********************************************************************
    '   目的:      设置窗口使其始终在其它窗口上面
    '
    '   输入:      iHwnd:    要设置的窗口句柄
    '               bOnTop:   设置或取消窗口的置顶属性
    '                         可选,默认为真
    ' ***********************************************************************
    Sub MakeMeOnTop(iHwnd As Long, Optional bOnTop As Boolean = True)

        If bOnTop Then
            SetWindowPos(iHwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE)
        Else
            SetWindowPos(iHwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE)
        End If

    End Sub

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

始终置顶方式2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.打开文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在较旧版本的Visual Basic中,如VB6及其之前的版本,CommonDialog 控件用于提供一个通用的对话框界面,可以用于打开文件、保存文件、选择颜色或打印文档等功能。用户可以通过在工具箱中添加 CommonDialog 控件到窗体上,然后在代码中设置其属性和调用其方法来使用这些标准对话框。

以下是使用 CommonDialog 控件的一个简单例子:

vb
' 设置对话框的操作为打开文件
CommonDialog1.Action = vbCommonDialogOpenFile

' 显示打开文件对话框
CommonDialog1.ShowOpen

' 使用用户选择的文件名
If CommonDialog1.FileName <> "" Then
    MsgBox "您选择的文件是:" & CommonDialog1.FileName
End If

然而,在.NET环境中(比如VB.NET),CommonDialog 控件已经被不同的专用对话框控件所替代,例如:

  • OpenFileDialog - 打开文件对话框
  • SaveFileDialog - 保存文件对话框
  • ColorDialog - 颜色选择对话框
  • FontDialog - 字体选择对话框
  • PrintDialog - 打印对话框

在VB.NET中使用这些对话框通常更简单、更直接,不需要设置 Action 属性,只需要创建对话框的实例,设置所需的属性,并调用 ShowDialog 方法即可。例如,使用 OpenFileDialog 的代码如下:

' 创建打开文件对话框的实例
Dim openFileDialog As New OpenFileDialog()

' 配置对话框的属性
openFileDialog.Title = "选择文件"
openFileDialog.Filter = "所有文件 (*.*)|*.*"

' 显示对话框并检查对话框结果
If openFileDialog.ShowDialog() = DialogResult.OK Then
    ' 获取用户选择的文件名
    MessageBox.Show("您选择的文件是:" & openFileDialog.FileName)
End If

使用这种方式,你可以为你的VB.NET应用程序提供一个现代化和一致的对话框体验。

3.视图切换

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.退出

在Visual Basic 6.0及其之前的版本中,Unload Me 是一条常用的语句,用于从内存中卸载当前窗体。然而,在Visual Basic .NET(VB.NET)中,这个语句不再适用,因为VB.NET采用了不同的窗体管理和内存管理机制。

在VB.NET中,要关闭当前窗体,你应该使用 Me.Close() 方法。这个方法会关闭窗体并释放其占用的资源。例如:

' 关闭当前窗体
Me.Close()

Me.Close() 方法会触发窗体的 FormClosedFormClosing 事件,你可以在这些事件中执行任何必要的清理工作。

如果你想要从内存中完全移除窗体,以便它不再可用,并且可以被垃圾回收器回收,你可以在窗体的 FormClosed 事件中设置窗体变量为 Nothing

Private Sub YourForm_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
    ' 设置窗体变量为 Nothing,以便它可以被垃圾回收
    YourForm = Nothing
End Sub

请注意,在VB.NET中,窗体通常是按需加载的,这意味着只有当窗体被显示时,它才会被加载到内存中。当窗体被关闭时,它通常会被卸载,除非有其他代码或事件保持对它的引用。因此,在大多数情况下,你不需要手动卸载窗体,Me.Close() 就足够了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5.完整代码

model

Imports MECMOD
Imports PARTITF
Imports HybridShapeTypeLib

Module Module1
    Public CATIA As INFITF.Application
    Public oPartDoc As PartDocument
    Public oPart As Part
    Public oBodies As Bodies
    Public oBody As Body
    Public oHBodies As HybridBodies
    Public oHBody As HybridBody
    Public oSF As ShapeFactory
    Public oHSF As HybridShapeFactory


    ' ***********************************************************************
    '   目的:      初始化CATIA产品文档,并初始化必要的基本变量
    '
    '   输入:      bNewProduct:   初始化时是否新建产品文件
    '                              可选,默认新建文件
    '               strProduct:    初始化时是否打开已经存在的产品文件
    '                              可选,默认新建文件
    ' ***********************************************************************
    Sub InitCATIAPart(Optional ByVal bNewPart As Boolean = True,
                      Optional ByVal strPart As String = "")
        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

        If bNewPart Then
            oPartDoc = CATIA.Documents.Add("Part")
        Else
            If strPart = "" Then
                oPartDoc = CATIA.ActiveDocument
                If oPartDoc Is Nothing Then
                    Err.Clear()
                    oPartDoc = CATIA.Documents.Add("Part")
                End If
            Else
                If Dir(strPart) <> "" Then
                    oPartDoc = CATIA.Documents.Open(strPart)
                Else
                    MsgBox("指定的文件不存在!")
                    End
                End If
            End If
        End If


        On Error GoTo 0

        oPartDoc = CATIA.ActiveDocument
        oPart = oPartDoc.Part
        oBodies = oPart.Bodies
        oBody = oBodies.Item(1)
        oHBodies = oPart.HybridBodies
        oHBody = oHBodies.Add()
        oSF = oPart.ShapeFactory
        oHSF = oPart.HybridShapeFactory

    End Sub

    ' ------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arya's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值