机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: steve_suich

模型改名同时改工程图

[复制链接]
发表于 2024-9-25 21:43:59 | 显示全部楼层
楼主你好!我按着你给的代码宏运行了还是有问题呢   运行报错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-26 10:27:40 | 显示全部楼层
cszhouhx01 发表于 2024-9-25 21:43
9 s' x3 i' e& w& m6 c, C' u楼主你好!我按着你给的代码宏运行了还是有问题呢   运行报错

2 ?% f2 x& S9 G' H提供一下你的宏,我检查一下
& H, J$ ^2 n$ \: d6 p8 J) A9 F) I! Y0 Z. d# k8 `8 Y
回复 支持 反对

使用道具 举报

发表于 2024-9-27 21:36:48 | 显示全部楼层
: C/ H5 R; F6 p: z  d" k, d% H$ K
Dim swApp As Object
  ^# h0 a, \0 a0 F; _2 p6 E; ?Dim Part As Object
% _+ w/ y  @" y1 KSub main()( d; Q1 b; F0 ?# l- {
* e+ X# ~% O: @Set swApp = Application.SldWorks
% }6 c% ?! P( N; t$ l* I! rSet Part = swApp.ActiveDoc4 t2 a3 y3 ~0 J9 @4 k" C- f; K: g+ s# V4 `) l
Set swSelMgr = Part.SelectionManager, R& k/ q0 j( ]" _  @
Set swComp = swSelMgr.GetSelectedObject(1)! D. @) D9 Z1 O4 s% c
+ m  ~; T, S& Q5 |" ?8 k! Qoldpathname = swComp.GetPathName! t: i  S9 z% v% S$ R$ _# x! F5 A) H6 d0 L0 [, _
Path = Left(oldpathname, InStrRev(oldpathname, "\"))
8 k5 f3 w& p8 Nntype = Mid(oldpathname, InStrRev(oldpathname, ".")): f% I; o3 ^. B# V/ i  N- Y( I5 s& H3 p8 n+ B4 R; h' u/ r4 g: z4 `
oldfi = Mid(oldpathname, InStrRev(oldpathname, "\") + 1)& _! r& R0 n4 o
; f! M9 \3 j& Q/ d4 foldname = Left(oldfi, InStrRev(oldfi, ".") - 1)2 d! N5 r1 [/ I# B  M" H6 j
7 ~& h: y2 E/ p9 K0 O: y* f     mip = InputBox("changename", "name", oldname)$ e* \5 I$ z- t; B" w1 P9 S& X$ o' Y- O
If mip <> "" Then
! b" ]! a. E# f- B  Part.Extension.RenameDocument mip8 b: X. F' n' y  w& E1 O, k- K( F. |1 L- H
  Part.Save4 s6 ]; Y8 z; M
  tmpfi = Dir(Path & "*.SLDDRW")+ S& m( x+ h2 d5 {/ B- C7 t- t- f
  Do Until tmpfi = ""- v4 j; l6 {8 v9 h# M5 [- i9 l$ N) Y, d4 V6 ~# h
    vDepend = swApp.GetDocumentDependencies(Path & tmpfi, False, False)9 {1 d7 q  o/ d0 }: f' v
    If Mid(vDepend(1), InStrRev(vDepend(1), "") + 1) = oldfi Then% I+ Y3 @) [4 D" ]
0 J3 T$ p$ e" k7 k9 ]     Name Path & tmpfi As Path & mip & ".SLDDRW"
; z5 v! S6 e& R. B9 ~3 n    bl = swApp.ReplaceReferencedDocument(Path & mip & ".SLDDRW", vDepend(1), Path & mip & ntype)9 s+ K- S$ t8 i9 a& j' E0 B4 o2 @% w
! P+ W1 r+ J& |2 L  b2 N     Exit Do0 j9 ~& I6 l+ F% V; c$ b9 e# a/ h
   End If% K2 \, ], ?7 t2 m( l/ f: @9 n! V
tmpfi = Dir* @: D+ V& b  H3 |; B
( M9 ^% n; c: Y( V, mLoop
0 A+ V1 G# P( `* a& _+ f. W$ b. N7 xEnd If  @/ K' \6 k  [/ y
/ w! r) I1 F" R3 hEnd Sub2
4 l$ r% K  f  h3 W) _
2 ?! w; z4 X6 G- {: r# I" ]/ w' O; ?) v7 w5 S5 X7 W/ ?
你好   我就是按你这提供的代码写的宏

点评

先确认一下工程图里面有没有视图,如果没有,那么会报错。  发表于 2024-9-30 10:15
回复 支持 反对

使用道具 举报

发表于 2024-9-29 08:56:31 | 显示全部楼层
怎么讲
; m& |7 w; g. g# q2 s3 F  S" Y4 X! N8 [
回复

使用道具 举报

 楼主| 发表于 2024-9-30 09:49:00 | 显示全部楼层
这个宏代码确实有点奇怪,同样的代码在不同的电脑上运行有的可以,有的不行。SW版本都是2016,不好排查原因了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-30 10:14:20 | 显示全部楼层
发现一个问题,如果工程图里面没有参考任何模型。那么这个代码vDepend = swApp.GetDocumentDependencies(Path & tmpfi, False, False)就会报错。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-30 10:38:51 | 显示全部楼层
cszhouhx01 发表于 2024-9-27 21:361 M% t$ }: K1 [, O2 Z' d1 K
Dim swApp As Object! K0 d+ ~7 i$ K* M* j( p4 Q
Dim Part As Object
& M5 Y# e( [) m! b" P( u: J* dSub main()( d; Q1 b; F0 ?# l- {

9 B% _/ |/ L, c1 HIf Mid(vDepend(1), InStrRev(vDepend(1), "") + 1) = oldfi Then  缺少"\": l/ i; J4 H2 i0 B
正确的应该是If Mid(vDepend(1), InStrRev(vDepend(1), "\") + 1) = oldfi Then0 c  Q* ~0 i6 @* ]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-12-25 15:12 , Processed in 0.049307 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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