QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

楼主: qiminger
收起左侧

[求助] 宏提取文件名字符为何不成功

[复制链接]
发表于 2013-6-28 20:39:55 | 显示全部楼层 来自: 日本
本帖最后由 hongwei_1987jp 于 2013-6-28 20:50 编辑 ' T  @  y5 K+ k3 |# D' x) u* |1 D/ K
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
+ B8 |3 j( J1 G我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。( S* s; e& n4 ]4 K0 z, e. Z) L
请问partno是不是可以改成任意名字 ...

5 b* y2 s% L1 S0 c- N2 Q' S) ]看看是你说的意思吧   456_123_789_阿帕奇 .rar (32.54 KB, 下载次数: 103)
发表于 2013-6-29 14:26:12 | 显示全部楼层 来自: 中国辽宁盘锦
hongwei_1987jp 发表于 2013-6-28 20:39 static/image/common/back.gif
4 M& d' C' c: U7 J& B看看是你说的意思吧
) }+ ]0 l" m- L0 v" r/ r$ h* ~
在你的文件里可以1 g7 a2 P, a( I$ n+ a  J
我的意思是“数值/方程式”那一栏里也要粘贴宏
发表于 2013-7-17 15:06:23 | 显示全部楼层 来自: 中国江苏常州
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
+ Q; j/ [) W9 v% b) _闷大,请教一下。我这样格式的文件名如何提取
# o8 L; a$ A; l2 C3 L6 v! P3 }例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...

0 S; a; {, {1 z, v现现丑) @. F$ u2 F6 e
下面的代码应该可以实现你的要求。4 k1 [9 n: }$ f9 V
str2提取零件号,如你的例子中取到:300_222_33
8 ?. j- J# `) U/ G8 G% \- B$ Nstr3提取零件名称,如你的例子中取到:固定销压板
  J+ n1 t, ^" D  E' G7 ]
  w8 z& B$ v( ~2013
' W; g) R1 M7 B: ~: A1 ]Dim str1
, K$ c3 c0 ^) }1 lDim str2
: \" ?2 r* m# nDim str38 Z; f6 i) w& M9 v5 `
Dim L1; S+ a( l/ B% D. ]0 B6 K& s
str1 = Part.GetTitle
# M- c/ b8 i! c1 {! zL1 = InStrRev(str1, "_", , 0)- @# @) C# p" C/ Z" A7 L* G
str2 = Part.Extension.CustomPropertyManager("".Set("mycode", Left(str1, L1 - 1))4 v8 U( X* U: b+ o* `
str3 = Part.Extension.CustomPropertyManager("").Set("mypartname", Mid(str1, L1 + 1))
发表于 2013-7-17 16:46:46 | 显示全部楼层 来自: 中国辽宁盘锦
lider2010 发表于 2013-7-17 15:06 static/image/common/back.gif, k* `0 X) @5 b# H) Y
现现丑
6 A5 L( }0 X7 _, j下面的代码应该可以实现你的要求。
( ?. N3 @& z/ istr2提取零件号,如你的例子中取到:300_222_33
  f0 F9 o+ Y% b/ |9 Y" S9 A2 o% ?3 D
感谢你啊,我这些天都没在试这个东西了
发表于 2013-12-8 14:02:26 | 显示全部楼层 来自: 中国广东东莞
感谢分享~~~~~~~~~~
发表于 2013-12-8 14:10:34 | 显示全部楼层 来自: 中国天津
大师请受小弟一拜
发表于 2013-12-12 11:10:58 | 显示全部楼层 来自: 中国台湾
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
: c* X" ]& r9 s4 \) S+ C: h我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。- ^5 s6 P: S: a2 `- W2 w
请问partno是不是可以改成任意名字 ...
- Y" V4 p% z, R5 o) u, c& Y+ ?
阿版,昨天測試了一下,發現您少了一步,就是悶大說的方程執行。
: O& H1 i% j5 Z9 y4 D& p以我自身為例,全域變數是"result",屬性名稱是"marco"
, ]. j& R2 S8 N- I' v所以方程就是:"result"="marco"0 L% c" j$ B" {; h, `
然而這種語法在2013是不被接受的,我用2012則是成功。$ l* p, e( H; m2 p5 n) z
宏我也不懂,所以2013失敗的原因,可能還要再請教悶大了~

评分

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

查看全部评分

发表于 2013-12-12 14:46:59 | 显示全部楼层 来自: 中国辽宁盘锦
gt.adan 发表于 2013-12-12 11:10 static/image/common/back.gif
6 U- h) b8 @8 S' e* j阿版,昨天測試了一下,發現您少了一步,就是悶大說的方程執行。, z  Z9 C+ Q9 H5 n3 V7 o( N
以我自身為例,全域變數是"result",屬 ...
7 J/ d3 ^: W. B4 g8 A8 E
希望闷大能出手
发表于 2013-12-12 20:50:15 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-12-13 08:25 编辑
+ {* P$ }" L# ?; b1 p- C+ Z* ~& R# O
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
# Q& ^. M4 m6 N6 Y+ v1 ]! B8 Y. i闷大,请教一下。我这样格式的文件名如何提取
% L) O3 J* t( X$ \例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
+ S* j! j! f" o$ E
如 300_222_33_固定销压板,假設 300_222_33_ 之位數不變,只有第三個" _ "之後的位數會變動的話,
2 I; g: {# w2 `9 i% f公式如圖1,在 2012 SP4版  測試結果如 圖2,圖3,但如 圖4 方程式表的"執行宏"成"紅色標記",這就不能理解了.4 O- P8 ?$ U; e2 F
(以上是借用悶大公式做修改)
( d7 d% A4 D7 P% Y, r- \/ u: Q圖1
) u! J6 d* E: D. _- H( Z 函數.jpg
; c& T5 \9 z/ N圖28 {9 R6 S2 X* o( A& r6 ?6 j
Clipboard01.jpg
3 |2 G+ t# e5 F: W8 Y- ~% d  }圖3/ U( o8 h5 x: e
Clipboard02.jpg
; D# @$ X$ r/ G# P; b: q# {圖4
0 m4 O$ }5 y8 I& R. R5 ]: ^, H& f% T3 X 方程式.jpg.jpg
0 b; t! H+ V# B  J2 m圖5* [. G  J2 m& B5 Y7 @& C2 v
capture_12132013_082427.jpg & e6 u. l1 K" Q" L% E' n
300_222_36_固定销.rar (18.03 KB, 下载次数: 34)

评分

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

查看全部评分

发表于 2013-12-13 09:04:23 | 显示全部楼层 来自: 中国香港
gt.adan 发表于 2013-12-12 11:10 static/image/common/back.gif
3 `. A. m2 b& W( {) e阿版,昨天測試了一下,發現您少了一步,就是悶大說的方程執行。$ C, _  V5 V, Y
以我自身為例,全域變數是"result",屬 ...
# Z/ k) D+ H2 z& C( k* p$ D: a7 V
很多隱含功能(沒從官方渠道發放的功能),到了某個版本就會被消滅,常有發生。
; \7 V. B: H/ A估計這樣嵌入VB代碼的方式,到了2013版本被禁止了。: x4 J: t5 `4 ]" N1 ]
8 w/ {7 N+ c3 Y' N
方法總是有的。例如:# u" s, z4 \: X; Y; t
1. 一般宏(屬於半自動,須手動執行宏)3 j2 d/ F: C4 I# W/ v3 Z& z1 X
2. 宏特徵
7 ^0 n( f- I  e. A' z6 x3. 利用窗體或類模塊,常駐VB代碼在Solidworks程序中,當發生特定“事件”執行宏
发表于 2013-12-13 09:48:50 | 显示全部楼层 来自: 中国台湾
Francis 发表于 2013-12-13 09:04 static/image/common/back.gif
$ Z* U$ Y! ?1 V7 F+ X5 }很多隱含功能(沒從官方渠道發放的功能),到了某個版本就會被消滅,常有發生。/ [  U2 B/ H! j4 _/ k' ~" L, @0 H
估計這樣嵌入VB代碼的方 ...
( K) _  U$ V, U+ ^$ D' U$ T
第一個常用,但是自己不會編寫巨集…
1 h+ D& n5 k  m! S第二個只看過悶大使用,自己要研究一下…5 i. C5 d" q5 T/ n! V2 `0 e
第三個離我太遙遠…只能看悶大表演了…- f7 U, A8 d! h: x' H5 E5 R. j
* H% v; k0 I9 f; z! ~, U" c
謝謝悶大指導。
发表于 2013-12-13 11:11:57 | 显示全部楼层 来自: 中国浙江嘉兴
Francis 发表于 2013-12-13 09:04 static/image/common/back.gif
- C) _) e* h* h很多隱含功能(沒從官方渠道發放的功能),到了某個版本就會被消滅,常有發生。7 @2 d$ V1 z7 k1 A/ q! X2 k: }' a
估計這樣嵌入VB代碼的方 ...

! v+ K) q# X" e4 L謝謝悶大指導,悶大簡單幾句提示又有得費腦力了
发表于 2013-12-13 17:31:02 | 显示全部楼层 来自: 中国广东深圳
ryouss 发表于 2013-6-24 17:25 static/image/common/back.gif1 B3 s, H$ N* w
如下VBA宏的編程[2012版測試]1 A9 ^8 V) d' X* k( X
# T. y1 Y4 ^. o/ x9 o) `0 [0 E
' **************************************************
+ f; k( r; O- H9 c6 T, k* r* Y  |2 [
大神,运行宏没有反应啊.能不能把宏程序打包一下。谢谢!
发表于 2013-12-13 20:34:18 | 显示全部楼层 来自: 中国浙江嘉兴
398312203 发表于 2013-12-13 17:31 static/image/common/back.gif5 r+ Z2 K9 N% [, T5 z
大神,运行宏没有反应啊.能不能把宏程序打包一下。谢谢!

) i9 K6 S+ O! u+ J- f請說清楚一些,什麼是"宏程序打包一下"
发表于 2013-12-13 20:57:32 | 显示全部楼层 来自: 中国广东深圳
阿帕奇 发表于 2013-12-12 14:46 static/image/common/back.gif& T) v( I; ~5 |3 {: F: M
希望闷大能出手
- @8 ?* f6 M/ X4 S9 {* t1 a9 L
阿版,我这两天正需要研究这个东西了,但之前根本没接触过这用宏提取文件名中的某一部分生成自定义属性的问题,请问你研究得怎样啦?有所成没?是否可以向你请教请教?因为这个估计不是一句两句话能说得清楚,可能需要耗费你一些时间,不知道是否方便
发表于 2013-12-13 22:53:54 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-12-14 08:03 编辑
! {4 v7 U: l* h3 K1 M3 X( K5 {
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif6 I7 S& j5 |5 {  t2 e( p& Z5 p
http://fans.solidworks.com.cn/thread-33730-1-1.html
" w# j. n) V. C; j2 r& `2 Y. a/ f5 @蛋大的教程可能有幫助

- c: q9 J& ^1 ^& B練習6#的悶招
7 V* v9 g$ ~6 o( S用到 "宏"-"方程式"-"連接屬性",應是較深級的應用,但對管控圖紙的尺寸統一性一致性,是很好的一種選擇方式.
+ Q0 ~5 b/ c; |% A  l' b' J
. {+ U$ E7 m1 q5 |& q, v capture-1.gif

评分

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

查看全部评分

发表于 2013-12-14 10:06:20 | 显示全部楼层 来自: 中国广东深圳
ryouss 发表于 2013-12-13 22:53 static/image/common/back.gif
9 I% l0 ?! |( U3 V! e$ \$ j) N; o練習6#的悶招
2 g/ j; \3 b+ E( k; s用到 "宏"-"方程式"-"連接屬性",應是較深級的應用,但對管控圖紙的尺寸統一性一致性,是很好 ...

$ F( K% P. V$ m唉,看这些高深的应用,像看天书一样呀。这段时间要研究这个,要好好看看了
发表于 2013-12-14 10:28:00 | 显示全部楼层 来自: 中国香港
NC@jiang@nan 发表于 2013-12-14 10:06 static/image/common/back.gif
! a6 b6 J* P2 E7 W唉,看这些高深的应用,像看天书一样呀。这段时间要研究这个,要好好看看了
; h. ~9 V& H9 S% r+ r3 N
不用研究了,請細看35#樓悶人怎麼回覆吧。
发表于 2013-12-14 10:38:56 | 显示全部楼层 来自: 中国广东深圳
Francis 发表于 2013-12-14 10:28 static/image/common/back.gif  o7 R0 y! q' t! ?6 h$ x
不用研究了,請細看35#樓悶人怎麼回覆吧。
7 Q% y# [& G% Y$ S; w7 g
呵呵,你的2013版不能用这个宏了吗?
发表于 2013-12-14 11:45:05 | 显示全部楼层 来自: 中国香港
NC@jiang@nan 发表于 2013-12-14 10:38 static/image/common/back.gif% T% [! F9 l5 P8 ^# p8 D
呵呵,你的2013版不能用这个宏了吗?
' q8 X1 E8 I& w9 F
不知道!悶人沒有2013版本。
) K0 d# E/ g4 d& _* ?8 q- O) m5 L3 [' C7 Z/ d
有情細心閱讀各人的每一帖子。
发表于 2013-12-14 15:03:25 | 显示全部楼层 来自: 中国广东深圳
Francis 发表于 2013-12-14 11:45 static/image/common/back.gif
8 t4 u8 i: O/ v  H/ Z% t7 A% U, i' N4 a不知道!悶人沒有2013版本。  B" U4 x* g. n$ {6 O
5 B- w% t% J+ X( L5 d, {, @
有情細心閱讀各人的每一帖子。
/ q' ]5 x& {/ \, K7 C
没试过不下结论。
发表于 2013-12-14 15:18:37 | 显示全部楼层 来自: 中国香港
NC@jiang@nan 发表于 2013-12-14 15:03 static/image/common/back.gif$ c" a6 Y; ?* L5 p, m5 b/ q0 T
没试过不下结论。
% _) H/ U3 |) X" w" e
請再細心看帖,沒人下結論。
发表于 2013-12-14 20:56:37 | 显示全部楼层 来自: 中国广东深圳
Francis 发表于 2013-12-14 15:18 static/image/common/back.gif- \) R+ L8 c0 ^0 g: J
請再細心看帖,沒人下結論。

3 I! X) a! D/ a) ^4 {, W哦哦,这样的呀。
发表于 2013-12-16 15:08:22 | 显示全部楼层 来自: 中国广东深圳
本帖最后由 398312203 于 2013-12-16 15:10 编辑 - s/ P0 [# L' \5 C1 ]! b- R
ryouss 发表于 2013-6-24 17:25 static/image/common/back.gif$ \: ?5 q/ H' D1 O. C
如下VBA宏的編程[2012版測試]
- s! `5 H: ]; Z; p$ d9 x/ L
* ?1 t5 y; k7 Z  N5 k$ U' M' **************************************************

# w) Y2 b7 o% o2 W$ S( t5 {大神,你好!根据你的提示我自己做了一些修改,主要是提取代号_名称这样组合的文件,我在我电脑win8.1运行很好,发给win7的时候说找不到工程或库。能帮我看下吗?
4 `# {0 F' p- |3 w/ b QQ截图20131216151553.png
2 D- z7 W0 D9 q& L" M' **************************************************
# l6 I' \# k1 _6 u8 M9 e'提取代号_名称命名的零件,程序以_进行分界
2 Q% T5 o" H6 y# M5 A$ a' **************************************************( K$ t5 H$ P1 b; g5 O
Sub main()( F, K6 `+ A/ ^  p  ]9 r
Dim swApp       As SldWorks.SldWorks2 {; Z: f$ ]' y, F6 V
Dim swModel     As SldWorks.ModelDoc28 u# R3 c5 p$ q6 Z" @/ k
Dim retval      As String
9 K8 N6 t& Z) B2 [Set swApp = Application.SldWorks$ B: m- @$ P8 M; r
Set swModel = swApp.GetFirstDocument3 _8 G" H( U, W9 ?4 M
path_name = swModel.GetPathName '取出当前文档的路径及名称. X( t2 @! W0 k7 L0 _9 n
name_ = swModel.GetTitle '取出当前文档的名称
8 O. c) U. X/ \3 |9 x: v  v  K! DL1 = InStrRev(name_, "_", , 0) '取出当前文档“_”之前代号的长度! x+ `& |4 C. Q- M
L2 = InStrRev(name_, ".", , 0) '取出“.”之前的长度
2 s4 Q% n/ Z' ]name_front = Left(name_, L1 - 1) '取出当前文档“_”之前的文本/ E( ~5 ~" j& h, q1 g% ?
name_back = Mid(name_, L1 + 1, L2 - L1 - 1) '取出当前文档“_”和“.”之间的的文本; p4 f0 X3 d& `$ A4 s# W
retval = swModel.DeleteCustomInfo("代号" '删除之前的代号& |* G# g) S. y7 _) ~7 t
retval = swModel.AddCustomInfo3("", "代号", swCustomInfoText, name_front) '将代号值写入自定义属性
9 Z7 u& R. l& d* N; d& S2 yretval = swModel.DeleteCustomInfo("名称") '删除之前的名称0 L2 i3 e" E) ^: [: x+ p9 [, y
retval = swModel.AddCustomInfo3("", "名称", swCustomInfoText, name_back) '将名称值写入自定义属性
! {! J; ?9 m& ^End Sub) ~7 \' @  c4 ~; ~+ e

' Z* M9 c, S. [' ~  J: ?
- g. x* Z5 R2 O8 k
发表于 2013-12-17 11:30:16 | 显示全部楼层 来自: 中国广东深圳
398312203 发表于 2013-12-16 15:08 static/image/common/back.gif/ P8 m9 N5 ~' E7 N5 X) Q3 z
大神,你好!根据你的提示我自己做了一些修改,主要是提取代号_名称这样组合的文件,我在我电脑win8.1运行 ...
( }* d5 a$ d8 U
自己给自己顶一个……
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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