找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 32441|回复: 9
打印 上一主题 下一主题

[讨论] catia v5 如何快速大量更改文件名(也包含零件编号)、移动文件?

[复制链接]
跳转到指定楼层
1
发表于 2013-10-22 14:26:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
CATIA v5 如何方便快捷大量的更改文件名(也包含零件编号)、并移动文件位置?????怎么弄a?
我用的是v5R21
         ▁▁▁▁▁▁▁
{:soso__16874759533306069441_3:}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2013-10-22 14:32:31 | 只看该作者
比如我用“桌面”命令,能改文件名、移动文件位置,却不能同时改掉已加载的文件链接(也就是重新打开后catia找不到文件,要手动查找)
3
发表于 2013-10-23 12:22:07 | 只看该作者
顶一下。
4
发表于 2013-10-23 19:30:13 | 只看该作者
给你说个最笨最简单的方法。

移动过的文件,改掉加载文件链接,其实你只需把复制前的那个文件名改了,然后复制过的文件就不会加载原先的复制文件了。一定要把之前的那个文件名改了。而不是后来的。
5
发表于 2013-10-23 23:21:51 | 只看该作者
本帖最后由 lon 于 2013-10-23 23:24 编辑
万能哥 发表于 2013-10-23 19:30
给你说个最笨最简单的方法。

移动过的文件,改掉加载文件链接,其实你只需把复制前的那个文件名改了,然 ...

你说的好像是一种操作,好像是符合原理的。不过我是想快速处理较多的文件(改文件名、改编号、移动文件位置),而且装配体内链接方便重连,没有自动,起码有简便大量处理方式也好。一个一个改,每步多一个操作,积累便繁琐了!没方法只能一步一步做了。
6
发表于 2013-10-24 11:38:00 | 只看该作者
学习了
7
发表于 2018-6-26 21:51:00 | 只看该作者
使用发送命令
8
发表于 2018-6-28 20:59:31 | 只看该作者
hao---------------
9
发表于 2018-7-8 20:32:34 | 只看该作者
用宏来完成批量改名并另存

' -----------------------------------------------------------
'批量重命名后批量保存
'程序说明:
'程序实现在Product下,对第一层结构树内零件批量重命名,
'并将重命名后的零件以新零件名保存在当前路径下。
'程序运行前应先手动将不需要重命名的零部件隐藏(如外购件等)。
' -----------------------------------------------------------
Sub CATMain()
    On Error Resume Next
    Set rootDoc = CATIA.ActiveDocument
    On Error GoTo 0
    If TypeName(rootDoc) <> "ProductDocument" Then
        MsgBox "错误!" & vbLf & _
                "本程序仅能在Product下运行!" & vbLf & vbLf & _
                "程序将被关闭!", vbOKOnly + vbCritical
        Exit Sub
    End If
                MsgBox "注意!" & vbLf & _
                        "运行前请先隐藏外购件及标准件!", vbOKOnly + vbInformation
Set productDocument1 = CATIA.ActiveDocument
Set selection = productDocument1.Selection
Set visPropertySet = selection.VisProperties
Set product1 = productDocument1.Product
Set products1 = product1.Products

DocPath = productDocument1.Path '获取当前文档保存路径或改成你想要的路径
'初始化
strName = Inputbox("请输入产品编号"&chr(13)&chr(13)&"取消输入则退出","","401-0000")

If strName=False Then '取消命名则退出程序
Exit Sub
End If

j=0
k=0

'寻找相同的part,并隐藏
For m=1 to products1.Count-1
For n=m+1  to products1.Count
  str1 = products1.Item(m).PartNumber
  str2 = products1.Item(n).PartNumber
  if (Instr(str1,str2)) Then
    Set producti = products1.Item(n)
    Set products1 = producti.Parent
    selection.Add producti
    Set visPropertySet = visPropertySet.Parent
    visPropertySet.SetShow 1
    selection.Clear
  end if  
Next
Next
'重命名
For i=1 to products1.Count
Set producti = products1.Item(i)
Set products1 = producti.Parent
selection.Add producti
Set visPropertySet = visPropertySet.Parent
visPropertySet.GetShow showstate
selection.Clear
If  showstate <> 1 Then  '隐藏为1
  If not(Instr(products1.Item(i).PartNumber,strName)) Then
   j=j+1
   str = CStr(int(j))
   if j<10 then
      str = "0" & str
   end if  
        if 10<j<=100 then
           str = "0" & str  '零件号尾部
        end if
   products1.Item(i).PartNumber= strName & "-" & str      '批量修改零件号
   strPartNumber = products1.Item(i).PartNumber
   products1.Item(i).name          = strPartNumber  & "." & 1
'保存重命名的文件
        CATIA.DisplayFileAlerts = False
    products1.Item(i).ReferenceProduct.Parent.SaveAs DocPath & "\" & products1.Item(i).PartNumber
        On Error Resume Next
        CATIA.DisplayFileAlerts = False
    end if
  end if  
Next
'寻找相同的part,并编号
k2=1
For m=1 to products1.Count-1
Set producti = products1.Item(m)
Set products1 = producti.Parent
selection.Add producti
Set visPropertySet = visPropertySet.Parent
visPropertySet.GetShow showstate
selection.Clear
If showstate <> 1 Then
  For n=m+1  to products1.Count
   str1 = products1.Item(m).PartNumber
   str2 = products1.Item(n).PartNumber
    If (Instr(str1,str2)) Then
     k2=k2+1
     products1.Item(n).name          = str2  & "." & k2
       End if  
  Next
' k2=1
End if
Next
Msgbox "所有文件已保存至--->" & vbLf & vbLf & DocPath
End Sub
10
发表于 2018-7-8 20:33:55 | 只看该作者
用宏来完成批量改名并另存

' -----------------------------------------------------------
'批量重命名后批量保存
'程序说明:
'程序实现在Product下,对第一层结构树内零件批量重命名,
'并将重命名后的零件以新零件名保存在当前路径下。
'程序运行前应先手动将不需要重命名的零部件隐藏(如外购件等)。
' -----------------------------------------------------------
Sub CATMain()
    On Error Resume Next
    Set rootDoc = CATIA.ActiveDocument
    On Error GoTo 0
    If TypeName(rootDoc) <> "ProductDocument" Then
        MsgBox "错误!" & vbLf & _
                "本程序仅能在Product下运行!" & vbLf & vbLf & _
                "程序将被关闭!", vbOKOnly + vbCritical
        Exit Sub
    End If
                MsgBox "注意!" & vbLf & _
                        "运行前请先隐藏外购件及标准件!", vbOKOnly + vbInformation
Set productDocument1 = CATIA.ActiveDocument
Set selection = productDocument1.Selection
Set visPropertySet = selection.VisProperties
Set product1 = productDocument1.Product
Set products1 = product1.Products

DocPath = productDocument1.Path '获取当前文档保存路径或改成你想要的路径
'初始化
strName = Inputbox("请输入产品编号"&chr(13)&chr(13)&"取消输入则退出","","401-0000")

If strName=False Then '取消命名则退出程序
Exit Sub
End If

j=0
k=0

'寻找相同的part,并隐藏
For m=1 to products1.Count-1
For n=m+1  to products1.Count
  str1 = products1.Item(m).PartNumber
  str2 = products1.Item(n).PartNumber
  if (Instr(str1,str2)) Then
    Set producti = products1.Item(n)
    Set products1 = producti.Parent
    selection.Add producti
    Set visPropertySet = visPropertySet.Parent
    visPropertySet.SetShow 1
    selection.Clear
  end if  
Next
Next
'重命名
For i=1 to products1.Count
Set producti = products1.Item(i)
Set products1 = producti.Parent
selection.Add producti
Set visPropertySet = visPropertySet.Parent
visPropertySet.GetShow showstate
selection.Clear
If  showstate <> 1 Then  '隐藏为1
  If not(Instr(products1.Item(i).PartNumber,strName)) Then
   j=j+1
   str = CStr(int(j))
   if j<10 then
      str = "0" & str
   end if  
        if 10<j<=100 then
           str = "0" & str  '零件号尾部
        end if
   products1.Item(i).PartNumber= strName & "-" & str      '批量修改零件号
   strPartNumber = products1.Item(i).PartNumber
   products1.Item(i).name          = strPartNumber  & "." & 1
'保存重命名的文件
        CATIA.DisplayFileAlerts = False
    products1.Item(i).ReferenceProduct.Parent.SaveAs DocPath & "\" & products1.Item(i).PartNumber
        On Error Resume Next
        CATIA.DisplayFileAlerts = False
    end if
  end if  
Next
'寻找相同的part,并编号
k2=1
For m=1 to products1.Count-1
Set producti = products1.Item(m)
Set products1 = producti.Parent
selection.Add producti
Set visPropertySet = visPropertySet.Parent
visPropertySet.GetShow showstate
selection.Clear
If showstate <> 1 Then
  For n=m+1  to products1.Count
   str1 = products1.Item(m).PartNumber
   str2 = products1.Item(n).PartNumber
    If (Instr(str1,str2)) Then
     k2=k2+1
     products1.Item(n).name          = str2  & "." & k2
       End if  
  Next
' k2=1
End if
Next
Msgbox "所有文件已保存至--->" & vbLf & vbLf & DocPath
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-3 13:52 , Processed in 0.024870 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表