QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3593|回复: 19
收起左侧

[求助] 批量更改属性宏代码求助?添加属性的?

[复制链接]
发表于 2016-1-11 11:11:38 | 显示全部楼层 |阅读模式 来自: 中国上海

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
本帖最后由 litao036 于 2016-1-12 10:23 编辑 1 {5 b4 P7 d' H3 @) d
( L3 m+ s. `  O

5 k0 p: Q2 y! I2 I+ B, d/ v1 j
Sub ReadPrp()
Set swApp = CreateObject("SldWorks.Application") '启动SW
ReadFilesCount = 0
HeaderRow = 2
RowNumber = HeaderRow + 1
PathName = Cells(RowNumber, 2) '读取第一个路径的值
While Not (PathName = "" Or PathName = 0 Or IsEmpty(PathName)) '直到读完路径栏
    FileName = Cells(RowNumber, 3) & "." & Cells(RowNumber, 4)
    If UCase(Right(FileName, 3)) = "PRT" Then swFileTYpe = 1
    If UCase(Right(FileName, 3)) = "ASM" Then swFileTYpe = 2
'    If UCase(Right(Filename, 3)) = "DRW" Then swFileTYpe = 3
    Set swDoc = Nothing
    If Dir(PathName & FileName) <> "" Then
        Set swDoc = swApp.OpenDoc(PathName & FileName, swFileTYpe) '开启档案
    End If
    If Not swDoc Is Nothing Then
        ColumnNumber = 6
        PropName = Cells(HeaderRow, ColumnNumber)
        While Not (PropName = "" Or PropName = 0 Or IsEmpty(PropName)) '直到读完表头
            PropValue = swDoc.CustomInfo2("", PropName) '获取属性
            Sheet1.Cells(RowNumber, ColumnNumber) = PropValue
            ColumnNumber = ColumnNumber + 1 '下一栏
            PropName = Cells(HeaderRow, ColumnNumber)
'            If swFileTYpe = 2 And ColumnNumber = 10 Then ColumnNumber = 13  '组件跳过读取零件的材料属性
        Wend '回到>直到读完表头
; |/ |, B( M6 b# a$ W' ^
这个 读取自定义 属性的  如何改成读取 配置属性的?????
) `6 h  |" I7 R( u

" h. ^1 ?0 g7 X1 ]5 j" w. R! ^. s$ c
Sub WritePrp()
Set swApp = CreateObject("SldWorks.Application") '启动SW
SavedFilesCount = 0
HeaderRow = 2
RowNumber = 3
RowNumber = HeaderRow + 1
PathName = Cells(RowNumber, 2)  '读取第一个路径的值
While Not (PathName = "" Or PathName = 0 Or IsEmpty(PathName)) '直到读完路径栏
    FileName = Cells(RowNumber, 3) & "." & Cells(RowNumber, 4)
    If UCase(Right(FileName, 3)) = "PRT" Then swFileTYpe = 1
    If UCase(Right(FileName, 3)) = "ASM" Then swFileTYpe = 2
    If UCase(Right(FileName, 3)) = "DRW" Then swFileTYpe = 3
    Set swDoc = Nothing
    If Dir(PathName & FileName) <> "" Then
        Set swDoc = swApp.OpenDoc(PathName & FileName, swFileTYpe) '打开文件
    End If
    If Not swDoc Is Nothing Then
        ColumnNumber = 6
        PropName = Cells(HeaderRow, ColumnNumber)
        If PropName = "材料" And swFileTYpe = 2 Then GoTo 200
         If PropName = "材料厚度" And swFileTYpe = 2 Then GoTo 200
        
        While Not (PropName = "" Or PropName = 0 Or IsEmpty(PropName)) '直到读完表头
'            ConfigName = Cells(RowNumber, 3)
            PropValue = Cells(RowNumber, ColumnNumber)
            
            If Len(PropValue) > 0 Then
            swDoc.DeleteCustomInfo2 ConfigName, PropName '删除属性
            swDoc.AddCustomInfo3 ConfigName, PropName, 30, PropValue '新增属性
            End If
'            If ColumnNumber = 9 And swFileTYpe = 2 Then
'            ColumnNumber = ColumnNumber + 3
'            End If
            
            ColumnNumber = ColumnNumber + 1 '下一栏
            PropName = Cells(HeaderRow, ColumnNumber)
200
        Wend '回到>直到读完表头
        Dim lErrors             As Long
        Dim lWarnings           As Long
        SaveOk = swDoc.Save3(1, lErrors, lWarnings)
        swApp.CloseDoc PathName & FileName '关闭工程图
        If SaveOk Then
            Cells(RowNumber, 2).Interior.Color = RGB(255, 255, 127)
            SavedFilesCount = SavedFilesCount + 1
        End If
    End If
这个 输入自定义 属性的  如何改成输入到 配置属性的?????
哪位高手 指导一下

8 m: [  O5 U; p+ L6 N  p( Z$ [& i5 r; x& G
+ M6 p1 Y- W. ?, X: s! W* b/ P  c7 P
发表于 2016-1-11 11:25:06 | 显示全部楼层 来自: 中国浙江嘉兴
http://www.3dportal.cn/discuz/fo ... ead&tid=1451365
; o4 b6 ^9 ~' ]+ `" i8 e+ J: A. i% l3 m1 V
0 P9 q( `1 ?' d2 i! P
有關 配置属性 如上可參考看看
 楼主| 发表于 2016-1-11 11:33:45 | 显示全部楼层 来自: 中国上海
好的  谢谢
 楼主| 发表于 2016-1-11 12:57:06 | 显示全部楼层 来自: 中国上海
这个还是 改不好   有哪位高手 帮我直接改一下  贴出来  谢谢了
发表于 2016-1-11 13:21:57 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2016-1-11 13:33 编辑
. u  v% k6 A( s% x9 d" w5 v; S2 W. i4 v- U- d2 j
Sub ReadPrp()  及 Sub WritePrp()    之編程皆不完整 (兩個宏都沒有 END SUB)/ S! o7 J4 i; d* S" m0 `

, v: |0 I7 j+ g7 i2 ?9 ~" i# X' _需要幫助請重新上傳原始SWP檔% K; g/ k1 o. E8 `% e: `& p1 O7 }
+ i/ {- e$ c+ j3 y, n, B- T

: t8 t3 z# G% Y. u0 t, O% W6 l; C是配合EXCEL操作的嗎?   是的話也需上傳EXCEL檔 1 G2 V* B, M+ V2 C% B* N  ~5 I# }
8 c$ P. T/ V' `1 [; \8 k! R. V
' [  ~( A' D+ H4 A4 f
 楼主| 发表于 2016-1-11 13:51:30 | 显示全部楼层 来自: 中国上海
我已经发给你了 网盘  帮我看一下 改改 谢谢了
发表于 2016-1-11 14:32:39 | 显示全部楼层 来自: 中国浙江嘉兴
litao036 发表于 2016-1-11 13:51
6 }, J0 Y3 I; \* Q' S, H( _* R我已经发给你了 网盘  帮我看一下 改改 谢谢了

( D. u( P5 A% j. b無法操作! h4 B7 ]" T: y; K5 T6 B

. l! z3 h2 b; h* D( P 編輯錯誤.jpg
- n1 H  O3 e" Y+ K
1 [+ ]+ q& j; G6 `' _4 z
 楼主| 发表于 2016-1-11 14:37:31 | 显示全部楼层 来自: 中国上海
你是32 位系统?

点评

win7 64位元  发表于 2016-1-11 14:44
 楼主| 发表于 2016-1-11 14:42:34 | 显示全部楼层 来自: 中国上海
你注册一下  试试   QQ截图20160111144159.png
 楼主| 发表于 2016-1-11 14:45:53 | 显示全部楼层 来自: 中国上海
Solidworks 批量改名改属性工具.zip (141.15 KB, 下载次数: 61)
 楼主| 发表于 2016-1-11 14:51:42 | 显示全部楼层 来自: 中国上海
ryouss 发表于 2016-1-11 14:32
1 r0 L: o$ N# G- q. u0 |- q, x無法操作

( t4 `' u- g5 Q% B我从新上传了  你在看看 哈哈
发表于 2016-1-11 15:00:03 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2016-1-11 15:06 编辑
1 J3 F" }; C. }& K! ^" P7 b- f" d% |( A6 [' Z) w
點了 "系統註冊控件" 已不顯示錯誤了
/ l: o# e: A) k6 X. b- y* f( [7 o' N
但是 點了 "系統註冊控件"  什麼也沒動作
( S" C  _) M/ r+ D" s9 k6 _9 k( g: ]0 ~2 W1 G; B9 h: \/ y
應該陳述下如何操作- M, y+ X" v# L, W  {
excel也是2010,宏的簡体字全部轉成繁体,就不知道是不是註冊繁版的因素.
6 j3 |( @4 P: C
发表于 2016-1-11 15:18:04 | 显示全部楼层 来自: 中国浙江嘉兴
另工程圖也用不到  配置屬性9 q- X9 K9 ^3 h3 z* v; T2 x- G

1 J4 r% I7 b4 c( }0 z. E! M sheet1.jpg
1 S8 b& C( F' w& `/ s8 ?4 h
 楼主| 发表于 2016-1-11 15:23:00 | 显示全部楼层 来自: 中国上海
ryouss 发表于 2016-1-11 15:18
9 S" E1 x' t* y* e另工程圖也用不到  配置屬性

( p. b3 d/ q2 A* s% z6 v1、集成改名改属性;. Z$ L, ?' Y! w7 A; L/ v$ w6 T
2、菜单采用系统菜单方式,看着专业,呵呵,
2 ~' B0 z2 J5 }3、鼠标点击零件行可显示零件的预览图,
2 M5 N. K% s/ y5 M+ {9 i! E$ h: u4、零件的预览图拖动图标题栏可以移到自己需要的位置固定;
: O, A) ^+ ~1 a5 Z5、预览图标题栏点右键可设大小,
( C0 [" g/ o: Y( \6、增加环境设置工具;& V; a: Z$ }& m- ]( A3 C+ G+ T
7、如果选取的零件有工程图,会在零件名的左侧显示五角星;改名时会将工程图的名字一并更改并关联。
) \0 o+ |  K8 L2 d' O, z) Z/ D8 n% b# g

! e3 Z; N5 N6 J6 H( ^3 r; Q) @使用说明:
% ?3 w/ A( k) @5 L; M; `% s1、详细功能自己体会;2 i8 N! C: I: @' p9 @
2、表头1-6列请不要更改,7列及后续列可按照各自产品的属性值需要,自行更改。
232125h1kdwtztkwktw1ib.jpg
发表于 2016-1-11 16:40:45 | 显示全部楼层 来自: 中国广东佛山
支持原创~
发表于 2016-1-11 22:24:34 | 显示全部楼层 来自: 中国山东莱芜
sw2016出现错误
捕获.PNG
发表于 2016-1-11 22:47:45 | 显示全部楼层 来自: 中国山东莱芜
可以读取外形尺寸,但是属性读后没有显示,属性是配置属性,是不是不支持。
发表于 2016-1-11 23:22:04 | 显示全部楼层 来自: 中国山东莱芜
试过,只能读取自定义属性,若能读取配置特定属性就好了,不知能否改,求助。
发表于 2016-1-27 21:05:29 | 显示全部楼层 来自: 中国山东莱芜
以下是闷人的做法,能否参考2 x" E; y" `: O
【利用 Excel 批量修改SW檔案屬性】http://www.solidworks.org.tw/for ... hread&tid=26079
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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