SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1480|回复: 10
打印 上一主题 下一主题

用宏半自动输出 DXF 时,文件名的变量是什么呢

  [复制链接]

11

主题

68

帖子

69

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
212
QQ
跳转到指定楼层
楼主
发表于 2017-2-7 11:20:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

   经典图书
小弟在工作中经常需要把工程图转成DXF 方便线切割用
于是自己录制了一个
---------------------------------------------
' ******************************************************************************
' C:TEMswx3212Macro1.swb - macro recorded on 04/14/15 by Administrator
' ******************************************************************************
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = _
Application.SldWorks
Set Part = swApp.ActiveDoc
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
longstatus = Part.SaveAs3("C:UsersYZ01DesktopTX.DXF", 0, 0)
End Sub
-----------------------------------------
并且设置了按钮

这样可以自动在桌面保存一个TX.DXF的文件
现在想做个升级版
每次保存的文件名是SW的文件名+图纸名称
类似于
PunchID&SW-图纸名称(Sheet Name)
因为小弟不懂二次开发,请高手帮忙修改下
谢谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享教程|习题|模型|技巧 点赞点赞1 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

14

主题

69

帖子

113

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
265
QQ
沙发
发表于 2017-2-7 14:37:13 | 只看该作者
试下以下代码
    Option Explicit
    Dim swApp As Object
    Dim Part As Object
    Dim FilePathName As String
    Dim FilePath As String
    Dim FileName As String
    Dim SheetName As String
    Dim DXFPathName As String
    Sub main()
    Set swApp = Application.SldWorks
    Set Part = swApp.ActiveDoc
    FilePathName = Part.GetPathName()
    FilePath = Left(FilePathName, InStrRev(FilePathName, "") - 1)
    FileName = Right(FilePathName, Len(FilePathName) - Len(FilePath) - 1)
    FileName = Left(FileName, Len(FileName) - 7)
    SheetName = Part.GetCurrentSheet.GetName
    DXFPathName = "C:UsersYZ01Desktop" & FileName & " " & SheetName & ".DXF"    '文件名 + 图纸名
    'DXFPathName = "C:UsersYZ01Desktop" & FileName & ".DXF"     '文件名
    Part.SaveAs2 DXFPathName, 0, True, False
    End Sub

复制代码
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

12

主题

90

帖子

79

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
234
QQ
板凳
发表于 2017-2-8 04:52:14 | 只看该作者

   经典图书
在代码:Set Part = swApp.ActiveDoc下一段插入:
Dim swModelName As String
Dim FileName As String
Dim i As Integer
swModelName = Part.GetPathName      '读取当前SW模型文档名(含路径)
i = InStrRev(swModelName, "")'取""字符位置
FileName = Mid(swModelName, i + 1, Len(swModelName) - i)'取出文件名包含后缀
FileName = Left(FilePath, Len(FilePath) - 7)'取文件名,去后缀
...
在保存文件代码适当位置加入"" & FileName & ""
附件为txt文本文件,方便复制
取文件名.rar (408 Bytes, 下载次数: 181)
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

18

主题

78

帖子

89

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
280
QQ
地板
发表于 2017-2-8 06:34:26 | 只看该作者


修改后不能自动输出了, 逐语句调试到这里 报错,菜鸟不懂是什么问题,高手能指正下吗?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

50

帖子

56

金币

天使

Rank: 2Rank: 2

积分
159
QQ
5#
发表于 2017-2-8 06:40:45 | 只看该作者

   经典案例图书
在代码:Set Part = swApp.ActiveDoc下一段插入
Set Part = swApp.ActiveDoc
你的这句代码没有了
下面这段提示错误,也改一下,FileName = Left(FilePath, Len(FilePath) - 7)'取文件名,去后缀
改后:
FileName = Left(FileName, Len(FileName) - 7)   '取文件名,去后缀
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

14

主题

80

帖子

76

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
237
QQ
6#
发表于 2017-2-8 06:49:41 | 只看该作者
现在不报错了
但是还是不能输出,目标目录没有生成文件
' ******************************************************************************
' C:TEMswx3212Macro1.swb - macro recorded on 04/14/15 by Administrator
' ******************************************************************************
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = _
Application.SldWorks
Set Part = swApp.ActiveDoc
Dim swModelName As String
Dim FileName As String
Dim i As Integer
swModelName = Part.GetPathName      '读取当前SW模型文档名(含路径)
i = InStrRev(swModelName, "") '取""字符位置
FileName = Mid(swModelName, i + 1, Len(swModelName) - i) '取出文件名包含后缀
FileName = Left(FileName, Len(FileName) - 7)   '取文件名,去后缀
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
longstatus = Part.SaveAs3("C:UsersYZ01Desktop"" & FileName & "".DXF", 0, 0)
End Sub
逐句调试不会报错
大神再帮我看看  哪里还有问题啊  谢谢
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

25

主题

80

帖子

171

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
352
QQ
7#
发表于 2017-2-8 12:46:10 | 只看该作者

   经典案例图书
声明一下:我真不是大神,代码拼凑的,不要追问我太深了,怕解释不好误了您。一起学习研究。
下面附件内代码我测试了,应该没问题,你试试。
附件压缩包内为txt记事本文件
用宏半自动输出 DXF.rar (626 Bytes, 下载次数: 168)
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

73

帖子

59

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
204
QQ
8#
发表于 2017-2-9 10:22:52 | 只看该作者
在我的机器上还是运行了没反应,楼下有大师做出来了,你看看
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

13

主题

64

帖子

87

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
222
QQ
9#
发表于 2017-2-9 11:10:35 | 只看该作者
谢谢大师了,完全正确
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

18

主题

67

帖子

159

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
323
QQ
10#
发表于 2017-2-10 02:05:16 | 只看该作者

   经典图书
请问下大师,要会这些东西需要学习什么呢?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

63

帖子

135

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
486

最佳新人活跃会员热心会员宣传达人

11#
发表于 2020-4-23 14:38:57 | 只看该作者
谢谢大师了,完全正确
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2025-5-29 23:00 , Processed in 0.204253 second(s), 24 queries , Memcache On.

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

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