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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
查看: 3121|回复: 17
打印 上一主题 下一主题

求版大的用Excel批量修改工程图属性

  [复制链接]

15

主题

69

帖子

118

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
259
QQ
跳转到指定楼层
楼主
发表于 2015-6-27 12:27:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


这个是台湾的几何网大侠做的,但是下载不了,请问这个坛子里有吗?求链接。
还有我想实现
将零件的自定义属性 中的“图号”和“零件名”提取出来自动将“图号”+“零件名”命名为新文件名,因为工程图出完肯定就是这种格式的命名,现在这样做就把零件和工程图的名字搞成一样了。
我知道这需要二次开发,现在我准备学习这个,早日实现自己想要的功能,加油!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞9717 拍砖拍砖3873
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

19

主题

73

帖子

200

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
397
QQ
沙发
发表于 2015-6-27 12:32:50 | 只看该作者
那裏的4#有原始碼~
轉過來了~原始檔案就是附檔 (若亂碼 請看以下代碼,中文請自行翻譯你們需要的文字語言
code.rar (2.22 KB, 下载次数: 76)
寫入屬性的程式碼
    Sub WriteSlddrwPrp()
    Set swApp = CreateObject("SldWorks.Application") '啟動SW
    SavedFilesCount = 0
    HeaderRow = 2
    RowNumber = 2
    RowNumber = HeaderRow + 1
    PathName = Cells(RowNumber, 1) '讀取第一個路徑的值
    While Not (PathName = "" Or PathName = 0 Or IsEmpty(PathName)) '直到讀完路徑欄
        Filename = Cells(RowNumber, 2)
        Set Drawing = Nothing
        If Dir(PathName & Filename) <> &quot;&quot; Then
            Set Drawing = swApp.OpenDoc(PathName & Filename, 3) '開啟工程圖
        End If
        If Not Drawing Is Nothing Then
            ColumnNumber = 3
            PropName = Cells(HeaderRow, ColumnNumber)
            While Not (PropName = &quot;&quot; Or PropName = 0 Or IsEmpty(PropName)) '直到讀完表頭
                PropValue = Cells(RowNumber, ColumnNumber)
                Drawing.DeleteCustomInfo2 &quot;&quot;, PropName '刪除屬性
                Drawing.AddCustomInfo3 &quot;&quot;, PropName, 30, PropValue '新增屬性
                ColumnNumber = ColumnNumber + 1 '下一欄
                PropName = Cells(HeaderRow, ColumnNumber)
            Wend '回到>直到讀完表頭
            Dim lErrors             As Long
            Dim lWarnings           As Long
            SaveOk = Drawing.Save3(1, lErrors, lWarnings)
            swApp.CloseDoc PathName & Filename '關閉工程圖
            If SaveOk Then Cells(RowNumber, 1).Interior.Color = RGB(255, 255, 127) 'SavedFilesCount = SavedFilesCount + 1
        End If
        RowNumber = RowNumber + 1 '下一列
        PathName = Cells(RowNumber, 1)
    Wend '回到>直到讀完路徑欄
    'MsgBox &quot;更新了 &quot; & SavedFilesCount & &quot; 個檔案&quot;
    End Sub

复制代码
選擇檔案的程式碼
    Sub BrowseDialog()
    Dim intChoice As Integer
    Dim FilePathName As String
    Dim i As Integer
    RowNumber = 3
    PathName = Cells(RowNumber, 1) '讀取第一個路徑的值
    While Not (PathName = &quot;&quot; Or PathName = 0 Or IsEmpty(PathName)) '直到讀完路徑欄(尋找繼續填寫的位置)
        RowNumber = RowNumber + 1 '下一列
        PathName = Cells(RowNumber, 1)
    Wend '回到>直到讀完路徑欄
    Application.FileDialog(msoFileDialogFilePicker).AllowMultiSelect = True '設定為多選對話框
    Application.FileDialog(msoFileDialogFilePicker).Filters.Clear '清除既有類型
    Application.FileDialog(msoFileDialogFilePicker).Filters.Add &quot;騷窩宮程圖&quot;, &quot;*.SLDDRW&quot; '設定檔案類型
    intChoice = Application.FileDialog(msoFileDialogFilePicker).Show '彈出對話框
    If intChoice <> 0 Then '判斷有否點選檔案
        For i = 1 To Application.FileDialog(msoFileDialogFilePicker).SelectedItems.Count '逐一讀取所選檔案
            FilePathName = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(i) '讀取完整檔案名稱
            FilePath = Left(FilePathName, InStrRev(FilePathName, &quot;&quot;)) '分解路徑
            Filename = Right(FilePathName, Len(FilePathName) - Len(FilePath)) '分解檔案名稱
            Cells(i + RowNumber - 1, 1) = FilePath '填寫路徑
            Cells(i + RowNumber - 1, 2) = Filename '填寫檔案名稱
        Next i
    End If
    End Sub

复制代码
讀取屬性的程式碼

    Sub ReadSlddrwPrp()
    Set swApp = CreateObject(&quot;SldWorks.Application&quot;) '啟動SW
    HeaderRow = 2
    RowNumber = HeaderRow + 1
    PathName = Cells(RowNumber, 1) '讀取第一個路徑的值
    While Not (PathName = &quot;&quot; Or PathName = 0 Or IsEmpty(PathName)) '直到讀完路徑欄
        Filename = Cells(RowNumber, 2)
        Set Drawing = swApp.OpenDoc(PathName & Filename, 3) '開啟工程圖
        If Not Drawing Is Nothing Then
            ColumnNumber = 3
            PropName = Cells(HeaderRow, ColumnNumber)
            While Not (PropName = &quot;&quot; Or PropName = 0 Or IsEmpty(PropName)) '直到讀完表頭
                PropValue = Drawing.CustomInfo2(&quot;&quot;, PropName) 'GetCustomProperty(PropName, 30) '獲取屬性
                Cells(RowNumber, ColumnNumber) = PropValue
                ColumnNumber = ColumnNumber + 1 '下一欄
                PropName = Cells(HeaderRow, ColumnNumber)
            Wend '回到>直到讀完表頭
            swApp.CloseDoc PathName & Filename '關閉工程圖
            Cells(RowNumber, 1).Interior.Color = RGB(200, 255, 200)
        End If
        RowNumber = RowNumber + 1 '下一列
        PathName = Cells(RowNumber, 1)
    Wend '回到>直到讀完路徑欄
    End Sub

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

使用道具 举报

13

主题

75

帖子

102

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
257
QQ
板凳
发表于 2015-6-27 12:36:26 | 只看该作者
能否直接给个excel表格文件,这个txt打开很多乱码,感谢2楼美女
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

21

主题

71

帖子

112

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
308
QQ
地板
发表于 2015-6-27 12:40:19 | 只看该作者
原始檔案就是這3個代碼~我已經用代碼方式丟出來了~
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

14

主题

70

帖子

85

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
200
QQ
5#
发表于 2015-6-27 12:44:40 | 只看该作者

   经典案例图书
,厉害,看来我也要加油学习了!!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

16

主题

76

帖子

110

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
270
QQ
6#
发表于 2015-6-27 12:51:41 | 只看该作者
good
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

120

帖子

29

金币

堂主

Rank: 4

积分
627

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

7#
发表于 2017-2-17 21:55:38 | 只看该作者

   经典案例图书
厉害,看来我也要加油学习了!!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

575

帖子

1348

金币

传奇

Rank: 8Rank: 8

积分
6747

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

8#
发表于 2017-5-4 15:03:09 | 只看该作者
SolidWorks机械工程师网
回复

使用道具 举报

7

主题

62

帖子

211

金币

堂主

Rank: 4

积分
594

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

9#
发表于 2017-5-5 08:55:22 | 只看该作者
这个太复杂了,用凯元工具中的BOM工具读取所有的属性到一个表中,然后修改就可以了,代码自己弄不了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

575

帖子

1348

金币

传奇

Rank: 8Rank: 8

积分
6747

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

10#
发表于 2017-5-11 14:34:01 | 只看该作者
好东西,努力学习学习!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

34

帖子

10

金币

天使

Rank: 2Rank: 2

积分
102

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

11#
发表于 2017-7-18 22:40:21 | 只看该作者
收藏一下,以后下载有用
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

110

帖子

839

金币

传奇

Rank: 8Rank: 8

积分
3289

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

12#
发表于 2018-1-30 18:41:32 | 只看该作者
好好学习,天天向上!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

34

帖子

47

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
200

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

13#
发表于 2018-2-1 17:40:19 | 只看该作者
学习一下,二次开发
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

296

帖子

114

金币

堂主

Rank: 4

积分
993

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

14#
发表于 2018-2-9 08:58:35 | 只看该作者
说的什么意思,看到最后都被搞糊涂了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

138

帖子

809

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2895

最佳新人活跃会员热心会员宣传达人灌水之王

15#
发表于 2022-4-27 14:14:45 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

x1990625 发表于 2015-6-27 12:32
那裏的4#有原始碼~
轉過來了~原始檔案就是附檔 (若亂碼 請看以下代碼,中文請自行翻譯你們需要的文字語言



能否直接给个excel表格文件,这个txt打开很多乱码,感谢美女
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

107

帖子

435

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1220

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

16#
发表于 2023-7-2 14:14:55 | 只看该作者

   经典案例图书
活到老学到老!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

125

帖子

151

金币

堂主

Rank: 4

积分
810

最佳新人活跃会员热心会员宣传达人灌水之王

17#
发表于 2024-3-2 11:33:39 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

活到老学到老!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

1118

帖子

217

金币

传奇

Rank: 8Rank: 8

积分
3737

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

18#
发表于 2024-3-3 10:45:33 | 只看该作者

   经典案例图书
好好学习,天天向上!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-4-27 00:54 , Processed in 0.225289 second(s), 36 queries .

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

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

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