CATIA VBA二次开发(二) 快速入门之VBA IDE

         本文为作者原创,拒绝任何形式转载


      接上一篇,本文介绍如何在CATIA IDE中创建VBA项目,仍然以创建正弦曲线为例。点击“工具->宏->宏…”(或者按下ALT+F8),弹出“宏”窗口。在窗口右上角点击“宏库”弹出新的窗口。

      在“宏库”窗口中的“库类型”下拉列表中选择“VBA项目”,然后点击“创建新库…”,输入新建宏的名称(如果有必要请编辑路径),点击确定,退出创建宏窗口。操作过程如下图所示:

CATIA VBA二次开发(二) 快速入门之VBA IDE_第1张图片

     再次点击“工具->宏->Visual Basic编辑器”(或按下ALT+F11),弹出CATIA VBA IDE(IDE意思是集成开发环境)。在项目列表中能看到刚才创建的宏库。右键单击项目列表中的宏库,选择“Insert->UserForm”,可以在IDE中看到新建的窗体,如下图所示:

CATIA VBA二次开发(二) 快速入门之VBA IDE_第2张图片

        在弹出的UserForm1中选择添加三个Label,三个Textbox,连个CommandButton空间,调整控件位置,修改控件名称(其中三个Textbox的名称分别为周期tb_T,振幅tb_A,控制点个数tb_N)和默认值,绘制如下图所示的窗体:

CATIA VBA二次开发(二) 快速入门之VBA IDE_第3张图片

窗体绘制完成之后,双击确定按钮,进入代码编辑页面。把sincurve2.catvbs中主函数体内的代码复制到“确定”按钮的单击事件响应函数中,编辑代码。删除Option Explicit语句(删除后,不必强制在使用之前定义变量)。在菜单中选择“Tools-Options…->Editor”,取消勾选“RequireVariable Declairation”。编辑赋值语句:

T = Me.tb_T
A = Me.tb_A       'A是放大量,适当增大纵坐标比例,使得曲线看起来协调
N = Me.tb_N       'N是控制点数量

返回用户窗体,双击“取消”按钮,在单击事件函数中输入Me.Hide,程序完成。UserForm1中的代码如下:

Private Sub cmbKO_Click()
   Me.Hide
End Sub

Private Sub cmbOK_Click()
    Pi = 3.1415926  '定义圆周率常量
    T = Me.tb_T
    A = Me.tb_A       'A是放大量,适当增大纵坐标比例,使得曲线看起来协调
    N = Me.tb_N       'N是控制点数量
    Set documents1 = CATIA.Documents
    Set partDocument1 = documents1.Add("Part")
    Set part1 = partDocument1.Part
    Set hybridBodies1 = part1.HybridBodies
    Set hybridBody1 = hybridBodies1.Add()
    part1.Update
    Set oHSF = part1.HybridShapeFactory
    Set hybridShapeSpline1 = oHSF.AddNewSpline()
    hybridShapeSpline1.SetSplineType 0
    hybridShapeSpline1.SetClosing 0
    '通过循环完成多个点的创建
    For i = 0 To N - 1 '假设用N个点模拟样条曲线
         '在ZX平面创建曲线,Y坐标为0
    Set CtrPt = oHSF.AddNewPointCoord(A * Pi * i / N, 0#, A * Sin(T * (2 * Pi) * i / N))
    hybridBody1.AppendHybridShape CtrPt
    Set reference1 = part1.CreateReferenceFromObject(CtrPt)
    hybridShapeSpline1.AddPointWithConstraintExplicit reference1, Nothing, -1#, 1, Nothing, 0#
    Next
    hybridBody1.AppendHybridShape hybridShapeSpline1
    part1.Update
End Sub

运行程序,可以看到执行效果和sincurve.catvbs一致,但在界面中可以输入三个变量,变量的含义有对应的Label控件说明,比较明确。




你可能感兴趣的:(vba)