如何将CATIA中的硬点坐标导出到EXCEL中?

2018-04-08 16:52:26·  来源:汽车底盘零件设计
 
我们知道,设计人员经常要用到CATIA中的点的坐标信息,并分享给其他专业,比如底盘的硬点信息,如果是不多的几个点,可以通过CATIA中的测量工具直接量取,但如果有几十个点呢?还是通过一个一个的手工量取,再记录,不仅浪费大量的时间,还极容易出错。
前言

我们知道,设计人员经常要用到CATIA中的点的坐标信息,并分享给其他专业,比如底盘的硬点信息,如果是不多的几个点,可以通过CATIA中的测量工具直接量取,但如果有几十个点呢?还是通过一个一个的手工量取,再记录,不仅浪费大量的时间,还极容易出错。

搜索网上一般将点坐标导出到EXCEL中的操作方法非常的复杂,而且步骤之多不利于记忆,且导入到EXCEL中的坐标还需要再次处理,非常的不方便,今天我们就介绍一种基于CATIA二次开发的导点小工具,可以一键将CATIA中当前零部件的所有点坐标导出到excel中,全程只需要点击一次图标,非常方便。

下面是具体的设置步骤,设置完成后,后续只需点击图标按钮即可!

设置步骤

首先,点击【工具】>【宏】>【宏…】



弹出宏的对话框:

CATIA 底盘

如果是第一次设置宏,需要进行库的创建,只需按照提示一步一步创建即可,上面截图已经完成了库的创建。

接下来点击创建按钮创建一个新的宏:



弹出创建新宏对话框,可以更改宏名称,这里使用默认的名称,点击确定:



可以看到新的宏已经出现在宏的对话框里:



双击或者运行上面的创建的新宏,出现下面的窗口:



在上面红框的位置复制已经写好的代码:



完成复制粘贴后关闭宏编辑窗口:



最后我们讲解如何在CATIA的工具条上做一个专门的按钮用于实现导点的功能。

再次点击【工具】>【自定义…】



打开自定义对话框,点击命令选项卡,选择宏,我们看到编辑后的宏显示在右侧的框中,选中‘模块1’,如果需要设置其他属性,可以点击显示属性按钮。



这里我们修改下显示的图标,修改完毕后,点击‘模块1’不松,直接拖放到工具条上合适的位置,如下图所示。拖放完成后可以关闭自定义对话框,设置就完成了。



下面我们测试效果,新建一个part并绘制一个零件几何体,在零件几何体上新建几个点,点击上图中新建的图标按钮,接着弹出一个excel表格,并显示CATIA中所有的点坐标信息。



附录(程序代码)

Dim objGEXCELapp As Object
Dim objGEXCELwkBks As Object
Dim objGEXCELwkBk As Object
Dim objGEXCELwkShs As Object
Dim objGEXCELSh As Object

Sub CATMain()

CATIA.Activedocument.Selection.Search "CATGmoSearch.Point,all" '找到当前激活文档的所有点
StartExcel '打开EXCEL
ExportPoint '导出各个点

End Sub

'*************************************a*****************************************
Sub StartExcel()
'******************************************************************************
Err.Clear
On Error Resume Next
Set objGEXCELapp = GetObject(, "EXCEL.Application")
If Err.Number <> 0 Then
Err.Clear
Set objGEXCELapp = CreateObject("EXCEL.Application")
End If
objGEXCELapp.Application.Visible = True
Set objGEXCELwkBks = objGEXCELapp.Application.WorkBooks
Set objGEXCELwkBk = objGEXCELwkBks.Add
Set objGEXCELwkShs = objGEXCELwkBk.Worksheets(1) 'create new sheet1
Set objGEXCELSh = objGEXCELwkBk.Sheets(1)
objGEXCELSh.Cells(1, "A") = "Name"
objGEXCELSh.Cells(1, "B") = "X"
objGEXCELSh.Cells(1, "C") = "Y"
objGEXCELSh.Cells(1, "D") = "Z"
End Sub

'******************************************************************************
Sub ExportPoint()
'******************************************************************************
For i = 1 To CATIA.Activedocument.Selection.Count '从1到所有的点的数目
Set oSelElem = CATIA.Activedocument.Selection.Item(i) '选择的对象
Set Point = oSelElem.Value
Set TheSPAWorkbench = CATIA.Activedocument.GetWorkbench("SPAWorkbench")
Set TheMeasurable = TheSPAWorkbench.GetMeasurable(Point)
Dim Coordinates(2)
TheMeasurable.GetPoint Coordinates
objGEXCELSh.Cells(i + 1, "A") = Point.Name
objGEXCELSh.Cells(i + 1, "B") = Coordinates(0)
objGEXCELSh.Cells(i + 1, "C") = Coordinates(1)
objGEXCELSh.Cells(i + 1, "D") = Coordinates(2)
Next
End Sub