QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 5909|回复: 21
收起左侧

[已解决] 请吉人盛世高人进来指点下利用宏抓取文件名中代号、名称填入到文件属性中的问题

[复制链接]
发表于 2014-9-12 21:25:31 | 显示全部楼层 |阅读模式 来自: 中国广东深圳

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

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

x
高人吉人盛世,我这两天在试着用宏提取SW文件的文件名中的一部分填入到文件属性栏。在学习使用中,出现一个问题。我公司的文件属性都是填在文件属性中的“配置特定”选项卡上。按论坛上的一些讨论帖中的方法提取出来的代号、名称属性都是只能填写到文件属性对话框中的“自定义”选项卡上。请问下高人,如果想把这两个属性提取到“配置特定”选荐卡上,
+ Y# Z7 f7 G. U% ~ 1: `! v5 W. K& E/ R1 V; B5 V) P0 J+ `0 Y! k% _* [
dim yfd/ r  O- S! L. E
* g* m% L# K+ U) C! B2 @yfd=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,InStr(1,part.GetTitle,"_")-1))
: e6 x) K: p# _/ T这个语句里应该怎么修改?3 R% A' u' H9 z; X
也就是说,把属性分别填写到“自定义”栏和“配置特定”栏上时的表达语句有什么不同的地方?" G1 _7 ]5 o9 T! k( T8 e9 A7 N! g8 M
诚心求教。谢谢/ e. c. s6 |( ?, u- P% T+ N
发表于 2014-9-13 12:41:58 | 显示全部楼层 来自: 中国江苏无锡
我对配置特定和自定义 属性也分不清
; J- K4 P8 y! G; @  ?我把配置特定里的 需要方程式表达的属性删除掉 ,就好了: @/ b6 A+ I. V; Y0 l. p' `8 m0 L1 n
 楼主| 发表于 2014-9-15 20:55:35 | 显示全部楼层 来自: 中国广东深圳
两三天都没高人指点下,唉
发表于 2014-9-15 22:36:37 | 显示全部楼层 来自: 中国天津
不懂,路过
发表于 2014-9-16 11:56:02 | 显示全部楼层 来自: 中国山东威海
配置特定和自定义属性确实很多人搞不清楚,期待专家指导
发表于 2014-9-17 10:44:25 | 显示全部楼层 来自: 中国山东潍坊
直接在零中定义名称代号等
发表于 2014-9-17 15:18:14 | 显示全部楼层 来自: 中国台湾
嵌合代碼的方式在2013以後不能再使用了…悶大已經說明過可用其他方式。  \9 ~, X' ^7 b; q2 m- a
提取部份文件名稱寫入「指定配置」的方法如下,做參考了…* O% h+ v1 N( r: T; g- A
至於要提取前幾碼、後幾碼、分開提取寫入"代號""名稱"等不同的要求…容後討論…2 c7 u1 h# R2 [; O/ L7 T
以下為:提取文件名稱前七碼寫入當前配置的"partno"屬性欄
0 K. e% m+ F7 Z8 {$ u, W2 d  W
Dim swApp As Object/ K8 j& b4 I0 c7 V. j* k
, u6 W8 ^" j' F0 l3 Z3 }  D7 m
Dim ActivationConfig As String3 G" U" V: `. j/ H. G
Dim retval As String0 q+ t( o6 b5 w# s5 O+ e
Dim Part As Object! K/ d, P: O) v! n/ d- A
Dim boolstatus As Boolean0 `$ v- T2 r2 B, d( h
Dim longstatus As Long, longwarnings As Long* I1 D' m* V. u

7 o5 H6 x0 u% O- I" C2 D# ]Sub main()
8 ]3 r5 f% y' A0 Z6 e; n/ D
$ V3 V+ ^& \' ]0 Y4 pSet swApp = Application.SldWorks
2 ?. d. X, o# H# O; D
8 Z. i8 S' M, B/ s. G! o: \2 c7 L* \Set Part = swApp.ActiveDoc# I  l  q- o+ P, a2 f
Set SelMgr = Part.SelectionManager2 [& f# [8 \: g! P; J, S
Set swConfigMgr = Part.ConfigurationManager/ q3 X+ G3 U8 b( H
Set swConfig = swConfigMgr.ActiveConfiguration
8 D: H- e) `: h( _! N  |* QActivationConfig = swConfig.Name
- Z8 F" Z/ N, _7 w/ }( Y
; W& W3 E8 V5 r  ^# \1 [5 ?, Jretval = swApp.ActiveDoc.DeleteCustomInfo2(ActivationConfig, "PartNo")7 F6 Z' g  J5 O
retval = swApp.ActiveDoc.AddCustomInfo3(ActivationConfig, "PartNo", swCustomInfoText, Left(Part.GetTitle, 7))
: R  e/ U1 E0 ]) v0 S- _6 I3 s
7 q, C4 W& C9 w/ v1 P( X1 c$ dEnd Sub

  P+ F' \$ j; T* r! o$ \; u* ~! R8 \* w! G9 D) B1 }" |

1 w. l  \" Z0 M& L. D, H& d
2 r( V1 ^" b1 `8 W

评分

参与人数 1三维币 +3 收起 理由
阿帕奇 + 3

查看全部评分

 楼主| 发表于 2014-9-17 21:48:33 | 显示全部楼层 来自: 中国广东深圳
gt.adan 发表于 2014-9-17 15:18 static/image/common/back.gif  B5 m% w8 I" H, n
嵌合代碼的方式在2013以後不能再使用了…悶大已經說明過可用其他方式。! [! {$ B' C0 S1 c& p6 B2 p& D
提取部份文件名稱寫入「指定配置」 ...
" S: G$ H$ Q1 G/ T$ g5 R
我试过,在SW2013中,也不是不能用那些内嵌宏代码。在SW2013中本身是不能写入两个触发执行宏代码的方程式了,提示语法错误,但在SW2013以前的版本中做好的模板先把那两个触发执行代码的方程式写进去的话,在SW2013中用这个已经先写入了触发方程式的模板建的文件还是能执行这两个方程式以触发执行内嵌宏代码的,只是在这两个触发方程式前会有个错误提示。但总的来说不影响最后执行结果。
" U- `! f) \# @1 f! \  I请问阿丹大神,你的这个代码是外置宏代码吗?是需要每个零件都运行一次才能达到提取属性的目的吗?现在除了忍受我前面说的那两个方程式报错的方式外,还有没有别的可以用内嵌宏或者别的方法达到文件名更改后会自动相应的提取出文件名一部分出来更新属性栏中原来的属性的办法呢?求教。
发表于 2014-9-17 22:17:26 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2014-9-17 22:18 编辑
/ y- E4 ]& O. n+ w% A* _2 U2 C0 }
  N0 x  x8 J$ D8 T( i+ u! J1. 稱呼俺阿丹行了…別再大神大嬸的了…:L$ `2 f. q6 d6 g) c& S: Z8 ~
2. 總的來說,樓主這樣做的目的是什麼?BOM 要用的嗎?
- n1 U# W2 _- }3 t/ l! w0 ~
- X7 P5 M8 g* [1 t5 V1 l宏運行的方式很多,但我不是很懂,如果就您的要求來說,更改文件名稱後屬性會自動應變,2 I& k* o( Y/ ~/ _% a
那麼在悶大的內嵌宏代碼中加入「指定配置的名稱」即可。
2 J3 X2 b7 h& a& t  j8 K0 U$ n: J6 P8 e$ n$ Y5 T
1$ J% g$ _' n5 M% t! q. m3 L" `* N
dim dummy
1 {( K: E$ N8 I$ Zdummy=part.Extension.CustomPropertyManager("配置名稱").Set("partno",Left(part.GetTitle,6))

; O, t9 h6 I1 f9 P* e; ]紅色字體鍵入配置的名稱,例如參考檔案中默認的名稱:default, c' l8 g' i, n7 x+ ?, V" U

4 F" V: P; I0 E1 h  L8 \; H參考文件: 091714-jiangnan.rar (12.43 KB, 下载次数: 36)
 楼主| 发表于 2014-9-17 22:23:27 | 显示全部楼层 来自: 中国广东深圳
gt.adan 发表于 2014-9-17 22:17 static/image/common/back.gif' U- Q/ z! w: j. h* h% y0 m
1. 稱呼俺阿丹行了…別再大神大嬸的了…
! s; d( ^$ A7 s/ }+ Z, y2. 總的來說,樓主這樣做的目的是什麼?BOM 要用的嗎?
+ W9 |  ^4 P( e6 |& ?. [6 b8 F
收到。谢谢。明天到公司电脑上试试。
 楼主| 发表于 2014-9-17 22:30:42 | 显示全部楼层 来自: 中国广东深圳
gt.adan 发表于 2014-9-17 22:17 static/image/common/back.gif
9 n7 X) y* t& s4 T& M1. 稱呼俺阿丹行了…別再大神大嬸的了…
' |) B* |) c! o$ [9 E2. 總的來說,樓主這樣做的目的是什麼?BOM 要用的嗎?

, K5 c% C% ~* A4 o2 ]) N  X忘记回复第二个问题了。我这样做的目的其实就是想在更改了零件名称后,属性会自动变更,以防BOM表填写出错了。其实把这个属性填写到“自定义”里也可以,只是可能我有强迫症吧,因为公司现在有的设备是用配置做的,属性都是填写到配置特定上,所以想看下能不能自动提取这个属性到配置特定里去。不过看了下,如果这个提取要和配置名称挂上勾的话,估计有点悬,因为普通零件默认配置是“默认”,但焊件等这些东西的默认配置是“按加工”“按焊接”等,而且我公司这边焊接件还蛮多的。我先试试提取属性的问题,然后再看看有没有解决配置名称不一样的问题的办法吧。谢了。
发表于 2014-9-18 14:45:10 | 显示全部楼层 来自: 中国台湾
上述的嵌入代碼必需「指定」配置名稱…礙於樓主說的每個檔案配置名稱不同…- Z  H* x. j; M5 g1 {- f
將悶大的三行代碼添加以下內容,即可激活當前配置。
7 `+ r; Q# n6 y3 m; [% @
0 y- w  W4 ?) b* p6 U
12 H# T" ^" W( u
dim dummy% [; l* k9 l" M5 ?
dummy=part.Extension.CustomPropertyManager(part.ConfigurationManager.ActiveConfiguration.Name).Set("partno",Left(part.GetTitle,6))

: }* N7 M( U8 l4 Z- \8 U3 p) i/ v- W

8 p. i: n$ \. t8 A0 W
 楼主| 发表于 2014-9-18 15:37:00 | 显示全部楼层 来自: 中国广东广州
gt.adan 发表于 2014-9-18 14:45 static/image/common/back.gif; E# W- t2 I" o0 i" I  f) i2 x
上述的嵌入代碼必需「指定」配置名稱…礙於樓主說的每個檔案配置名稱不同…4 O1 ]' i6 x- O6 Q4 g0 z
將悶大的三行代碼添加以下內容 ...
+ l  F  |2 ^$ X, V5 V/ h
上来找焊件件轮廓库,看到您的回复。我马上去试试。谢谢。
 楼主| 发表于 2014-9-18 21:40:41 | 显示全部楼层 来自: 中国广东深圳
gt.adan 发表于 2014-9-18 14:45 static/image/common/back.gif" L+ y6 e% ], T4 v) |
上述的嵌入代碼必需「指定」配置名稱…礙於樓主說的每個檔案配置名稱不同…/ I& v! }, \3 W& i. w! N+ k4 P
將悶大的三行代碼添加以下內容 ...

9 F3 }( W7 `2 j' x经测试,零件环境和装配体环境都成功实现抓取零件文件名一部分提取到配置特定选项卡的功能。
! g$ K, O% U0 p: ?& S万分感谢。
/ d3 w1 ^4 E, C2 @3 }2 a0 t请问,这个API有实用的教材吗?能否请帮我推荐一两本?要从入门开始的,我对API还没什么了解,只能对着现成的代码做些推测性的修改满足一些小的功能需要,想稍深入的了解一下。
发表于 2014-9-18 23:02:02 | 显示全部楼层 来自: 中国台湾
我,是徹底的宏盲…要推荐的話…可能請教一下悶老大、梁叔、等其他常分享宏代碼的前輩~~
! m6 j  M! \; h% Z2 c5 N& h  \: k; b' s# [8 m
BTW,很高興有幫上忙。
 楼主| 发表于 2014-9-19 01:34:28 | 显示全部楼层 来自: 中国广东深圳
gt.adan 发表于 2014-9-18 23:02 static/image/common/back.gif
1 ~+ c5 _; C! O% W$ q' E/ K我,是徹底的宏盲…要推荐的話…可能請教一下悶老大、梁叔、等其他常分享宏代碼的前輩~~% p( v% L+ j7 h( d' X6 Q  M
, ^8 g: m9 @3 {4 c
BT ...
. j! {6 A+ ], z" u. i* Z
不会吧?宏盲把我这搞了好久都没搞定的问题轻松搞定啦?这些宏代码都是从哪里查来的呢?
发表于 2014-9-19 09:39:11 | 显示全部楼层 来自: 中国台湾
自帶的 API help  和精通VBA的朋友
发表于 2014-9-19 09:58:09 | 显示全部楼层 来自: 中国香港
gt.adan 发表于 2014-9-19 09:39 static/image/common/back.gif
' x2 l; _& c4 t! T$ G+ S自帶的 API help  和精通VBA的朋友
! f0 _* F1 |) }: Q! n+ K% w/ `
丹哥太讚了, 謙遜有禮, 年青有為, 有態度, 有高度.
3 T$ t, A7 z+ j9 n/ P3 }0 `$ D  O8 h: v$ E3 x9 O+ I( M
不像某人..........................一把年紀
发表于 2014-9-19 10:15:39 | 显示全部楼层 来自: 中国台湾
Francis 发表于 2014-9-19 09:58 static/image/common/back.gif3 b( C4 y3 G3 f4 Z% |
丹哥太讚了, 謙遜有禮, 年青有為, 有態度, 有高度./ U8 U; z. y# p' m1 j# }: O* ]0 M
1 Z1 H" j" t  Y
不像某人..........................一把年紀

- [. h& L  b1 E' O/ F# g2 X, n繼續追隨悶大,努力學習!
 楼主| 发表于 2014-9-19 21:03:15 | 显示全部楼层 来自: 中国广东深圳
确实。有的人,一把年纪也是白活。
' q; j& V2 R: n阿丹过于谦虚呀,呵呵
 楼主| 发表于 2014-9-19 21:05:13 | 显示全部楼层 来自: 中国广东深圳
gt.adan 发表于 2014-9-19 10:15 static/image/common/back.gif7 r+ J, Z, O5 w& \, K1 F  `
繼續追隨悶大,努力學習!
# n; L0 D1 {& F  i
1 ]" G/ s* O$ l' \% P
确实。有的人,一把年纪也是白活。9 I% ~8 u* J8 H8 t* s
阿丹过于谦虚呀,呵呵
3 X/ F( Q+ c  w9 v$ w  X! g/ {. b  h% p' o4 v
SW自带的API帮助文件,阴沟里洗版的,看了看,不得其门而入。有时间得去书城看看有没有中文版教程了,精不精通没关系,了解还是应该了解下了。
发表于 2022-2-11 10:40:07 | 显示全部楼层 来自: 中国浙江台州
本帖最后由 xtiveco 于 2022-2-11 11:10 编辑
  B0 u( {9 [& U
/ n/ a, r& P* e& R这个是“配置特定”用,自定义属性没有。@gt.adan   自定义属性宏怎么写?
调试.jpg
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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