+发表新主题
yjljxcad 发布于2024-8-11 14:38 35 次浏览 5 位用户参与讨论
跳转到指定楼层

  • Sub main()
  • Set swApp = Application.SldWorks
  • Set Part = swApp.ActiveDoc

  • Dim swModelName As String
  • Dim FileName As String
  • Dim i As Integer

  • FileName = Part.GetPathName() '读取当前SW模型文档名(含路径)
  • 'i = InStrRev(swModelName, "") '取""字符位置
  • 'FileName = Mid(swModelName, i + 1, Len(swModelName) - i) '取出文件名包含后缀
  • 'FileName = Left(FileName, Len(FileName) - 7)   '取文件名,去后缀
  • Filename = Part.GetPathName()
  • No = Len(Filename)
  • Filename = Left(Filename, No - 7)

  • Dim myModelView As Object
  • Set myModelView = Part.ActiveView
  • myModelView.FrameState = swWindowState_e.swWindowMaximized

  • ' Save As
  • longstatus = Part.SaveAs3(FileName & ".STP", 0, 0)
  • End Sub

复制代码


想做个宏转STEP, 测试总是没什么反应,不报错,也不生成文件
回复

使用道具 举报

已有5人评论

yjljxcad 发表于 2024-8-11 14:45:46
是STEP,不是STP
回复

使用道具 举报

guangyu85 发表于 2024-8-13 08:21:26
1 楼主你这个应该用宏录制,而不是去写代码
2 所谓的宏是批处理命令,而不是脚本。如果楼主打算写脚本的话应该用vba之类的编程语言进行二次开发
3 其实如果一次文件量少于30个的话还不如一个一个弄呢
回复

使用道具 举报

爱之龄 发表于 2024-8-15 04:20:36
longstatus = Part.SaveAs3(FileName & ".STEP", 0, 0)
试一下
回复

使用道具 举报

yjljxcad 发表于 2024-8-15 08:34:27
爱之龄 发表于 2024-8-15 04:20
longstatus = Part.SaveAs3(FileName & ".STEP", 0, 0)
试一下...
是的,问题解决了,我在二楼贴出答案了,还是要谢谢你
对了,大师如果要改成手动选择保存路径呢?并带有记忆,记住上次选择的路径
回复

使用道具 举报

sonli001 发表于 2024-8-16 09:32:36
把后缀的文件名代码改成pdf,dwg等等,也可以使用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| Archiver|手机版|小黑屋| 碧波制图网 Published by Stonespider

Copyright © 2021-2023 Kangli Wu   All Rights Reserved.

Powered by Discuz! X3.5( 苏ICP备18011607号-1 )

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