春暖花开,或许你还在做Interface配接单;秋高气爽,又或许你还要维护焊点信息。有没有想过是命运的安排还是上天的惩罚,要让你在CATIA里面处理那些空间点?因为这些点点确实很不友好:要一个一个测量点坐标,再把数字一个一个腾挪出去,枯燥无聊有没有,怕错怕漏有没有!来,坐稳了,解码小技能他来了!

  • 工具:CATIA V5 + Excel
    不要问这两个工具哪里来的,问就是不知道。尽量别来绿色、精简、免安装之类的,没测试过不知道有没有bug。

  • 输入:简单来说,就是一堆点咯。呃,基本上就是CATPart文件在CATIA里面打开,能看到一些小点点,长得像叉叉星星或者圈圈圆圆都无所谓,红的蓝的绿的紫的白的青的也无所谓,用“点筛选器”工具,能框住它们就好。

 
不过也有个限制,只能是通过创建“点”产生的点点暂不支持提取、相交、投影、平移旋转等产生的点点,这种情况下可以先消参处理。

 

 

输出:一个新打开的Excel文件,里面的内容定然不会让你失望的啦

  • 操作步骤:

    1. 进到CATIA软件里面,按下Alt+F11键,新建一个模块。
      先点击“确定”创建一个VBA工程。没有弹出这个窗口的可以忽略,直接进下一步。

    2. 然后创建一个新库,路径和名称可以自便。

    3. 再通过单击“插入/模块”菜单,新建一个模块。

    4. 双击新建好的模块,粘贴下面这段代码进去。

Sub CATMain()    
Dim inputtype(0),Status,myselect
    Dim myarray(),myname(),mytype(),mycell(),feature()
    CATIA.Visible=True
    Set oSelection=CATIA.ActiveDocument.Selection
    inputtype(0)=“ZeroDim”
    Status=oSelection.SelectElement3(inputtype,“selectpoints”,True,CATMultiSelTriggWhenSelPerf,False)
    If Status=“Cancel” Then Exit Sub
    ReDim myarray(2)
    For i=To oSelection.Count
        ReDim Preserve myname(i1)
        ReDim Preserve mytype(i1)
        ReDim Preserve feature(i1)
        ReDim Preserve mycell(2,i1)
        Set myselect=oSelection.Item2(i).Value
        myname(i1)=myselect.Name
        mytype(i1)=TypeName(myselect)
        feature(i1)=myselect.Thickness.Parent.Parent.Name
        myselect.GetCoordinates myarray ‘如果不是创建“点”产生的点点,这里会出错
        For j=To 2
            mycell(j,i1)=Str(myarray(j))
        Next j
    Next i
    Dim excel As Object
    Set excel=CreateObject(“Excel.Application”)
    Set excelbook=excel.Workbooks.Add
    Set excelsheet=excelbook.Worksheets(1)
    excelsheet.Application.Visible=True
    excelsheet.cells(2,2)=“Order”
    excelsheet.cells(2,3)=“Name”
    excelsheet.cells(2,4)=“X”
    excelsheet.cells(2,5)=“Y”
    excelsheet.cells(2,6)=“Z”
    excelsheet.cells(2,7)=“Type”
    excelsheet.cells(2,8)=“PartA”
    excelsheet.cells(2,9)=“PartB”
    excelsheet.cells(2,10)=“PartC”
    For k=To i1
        excelsheet.cells(k+2,2)=k
        excelsheet.cells(k+2,3)=myname(k1)
        For j=To 2
            excelsheet.cells(k+2,j+4)=Round(mycell(j,k1),3)
        Next j
        excelsheet.cells(k+2,7)=mytype(k1)
        excelsheet.cells(k+2,8).NumberFormatLocal=“@”
        excelsheet.cells(k+2,8)=feature(k1)
    Next k
    excelsheet.range(excelsheet.cells(3,8),excelsheet.cells(i+1,8)).TextToColumnsDestination:=excelsheet.cells(3,8),Other:=True,OtherChar:=“-“
    excelsheet.columns(“B:J”).EntireColumn.AutoFit
End Sub
        5.回到CATIA主界面,框住想要导出的点点。可以按住Ctrl多次增减。
        6.按下Alt+F8键,单击运行。眨眨眼,等那个意中人新的Excel文件出现。