QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 版主微信号:caivin811031;还未入三维微信群的小伙伴,速度加
2022-07-04
全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
查看: 3796|回复: 5
收起左侧

[已解决] solidworks 2018 宏 有时不能用的问题

[复制链接]
发表于 2018-11-14 14:01:37 | 显示全部楼层 |阅读模式
安装
主题分类用于问题归类:

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

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

x
本帖最后由 arter 于 2018-11-16 15:53 编辑 $ I* L; g, j+ {5 c1 k
; i1 D$ o( o% I7 N4 ?
在执行宏的按钮时,有时执行了很多次,都没有任何反应,请指教,谢谢。宏的内容如下:6 O2 |8 q) F, O4 W+ y* I% [' m9 }

' q8 A+ l- U' m# R: F1 W' ******************************************************************************
% Z5 |0 m$ m3 c7 U' C:\Users\admin\AppData\Local\Temp\swx9952\Macro1.swb - macro recorded on 11/14/18 by Arter8 `& C9 l4 ~6 N& o
' ******************************************************************************3 {5 m) E& Y4 k* [7 {4 O" @* z6 `
Dim swApp As Object; Y6 p! A2 d7 w! {

% I/ n$ r5 d3 P2 V. g+ \Dim Part As Object
: v  r2 h1 _$ A% pDim boolstatus As Boolean
4 B+ h% }% F0 {' X4 _. JDim longstatus As Long, longwarnings As Long
& t( ?& e0 V4 G: K3 t( E+ X
) d4 N$ v# v- E4 g% v+ {. XSub main()
, C8 S- }- M' ~; Z- y( L3 |$ A
6 f! R% G: P8 iSet swApp = Application.SldWorks! o* U0 e5 u0 t3 L; c$ C# u6 f( }

. O  v6 f9 m% S8 g8 l; L: }2 CSet Part = swApp.ActiveDoc
9 Y2 q* H, S3 d, O. M$ F! ]+ ?boolstatus = Part.Extension.SelectByID2("未知", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0): y- X- P; Y+ r4 K* b7 v
Part.ClearSelection2 True# q4 G/ _$ D6 X5 I; u
Part.SetMaterialPropertyName2 "Default", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "304"8 J; x& Q2 N5 M7 Q# E: X
Part.ClearSelection2 True
5 ~) K0 i- e- |% |8 y' aEnd Sub! b7 @4 ^& A9 w% M, Q7 X

: j" t: b& f. H, y  H* w
0 c, l" T+ M3 R7 _$ @% R- V/ X
6 x" @5 }+ Z5 s" X+ p+ V! d6 A
 楼主| 发表于 2018-11-16 16:06:53 | 显示全部楼层
我发现问题所在了
( i2 @' x; j  z! L- N/ @+ p* o5 B* E, v- s6 W! p# T4 l/ t, N+ s$ ]
Part.SetMaterialPropertyName2 "Default", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "304"+ z3 m! L5 p* j2 B* X) F- V

; a# @) J: r8 g1 I% Q6 r上面句子里的”default“是配置的名称,如果零件里的配置名称与此不同,比如是中文的”默认“,则此宏不能用。
; S$ E1 n% F' o: z如果在录制宏时,如果,设置成将所有配置的材料都改成304,宏会把每个具体名称配置的材料都设置一下,新零件中配置的名称必须与宏里列举出来的配置名称完全相符才能够被赋予材料,否则依然不行." L! h$ X, b+ B- b, S, O
; u& b9 X) X9 |1 e$ W) N7 M- g
比如有个零件,有两个配置,名称分别是”default“、”默认“。则宏的语句是:
  C2 F0 R. i, n4 {9 C2 d: s+ i6 n) M" m3 w% s4 q( g# y
Sub main()* ?* C+ \9 U" p# a; j
5 D' J$ w, N2 S* ~7 f
Set swApp = Application.SldWorks
9 l% }" a0 _6 c: J# d; V# c0 o9 L- a
% h* Y! o1 o" I! s: @Set Part = swApp.ActiveDoc& q! T2 U5 p$ E$ l* W, A
boolstatus = Part.Extension.SelectByID2("未知", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)4 f% @( Y$ i- l; ]+ l% V# `: Z4 G. `; R, |4 c
Part.ClearSelection2 True
" Q( ?: u. O) m. F& N4 @Part.SetMaterialPropertyName2 "默认", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "304"6 ?  s9 X/ S) b# Z* n* C! R
Part.ClearSelection2 True; A5 Y( f+ r' J# K1 w$ B
Part.SetMaterialPropertyName2 "default", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "304"7 A; g5 }' d+ M% J2 [- i; k
Part.ClearSelection2 True1 D/ \- a; d- `, V6 i& ?
End Sub
+ Q2 J9 }* I5 _4 i. E* o
3 X, u: M4 p) T& l0 e8 j4 `如果再换一个零件,配置的名称不是”default“、”默认“中的任何一个,则不能被赋予材料。9 Z8 M3 y6 n4 P
各位大侠,有无解决办法?谢谢。! S& D3 p" _/ L( l0 M: u

! f7 E. B" g' g1 q& [: U. }3 y2 N$ V$ P8 l8 j3 H: H$ F4 Z$ L
发表于 2018-11-16 16:28:33 | 显示全部楼层
Dim ConfigName As String! h$ j7 b0 l4 G) |+ J3 |: b# q
    ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name; j" y3 i/ n+ s, }$ w4 y

& ^. j3 W2 P& g' @, S- i' P  o9 e$ `: ?5 l) X! b

4 f' R4 p$ b$ R3 E9 b" H
 楼主| 发表于 2018-11-17 09:37:13 | 显示全部楼层
fklmn 发表于 2018-11-16 16:28
& X- {8 D9 ^4 E5 a! S) ^* pDim ConfigName As String: Y6 h0 C( M2 i3 X: [7 {4 D
    ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name

9 Y3 Y4 [& I; p感谢您的回复,我只会很简单的宏操作。我改的下面的宏没有用,能否帮我改下?非常感谢4 g, A5 O3 j. _% i
1 ~  R9 v! Z' o, i
' ******************************************************************************( f/ W7 }" l* Y8 A/ h9 A( T
' C:\Users\admin\AppData\Local\Temp\swx3312\Macro1.swb - macro recorded on 11/16/18 by arter' |2 _  l1 Y+ R/ z: f4 e2 P
' ******************************************************************************% `1 h; i- f6 T
Dim swApp As Object: `! y7 n& a2 L+ c- W
5 P& x  L0 G4 y! u9 Y) w
Dim Part As Object
2 u% ?/ M$ P" Z$ K/ k( r" CDim boolstatus As Boolean$ k4 ^6 {: D) B( b- u
Dim longstatus As Long, longwarnings As Long, o: S6 `- \: S. T9 z
Dim ConfigName As String
/ N# H# M8 Y7 {$ b7 |7 \3 Z    ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name
9 L6 m, u1 O7 i" p& p$ o7 ]
" l/ C  ~# L- [7 a3 `1 nSub main()! F+ o: |7 H; o* g/ G" k% _
. B, t/ _0 [: Z+ T
Set swApp = Application.SldWorks( n% L, u! |& d1 r! a4 ^" c8 p# j

6 A+ z% z) Y7 x# `# p' xSet Part = swApp.ActiveDoc% w2 I' `) v! N; \  s9 v' C, P8 m
boolstatus = Part.Extension.SelectByID2("δ֪", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)
0 l% j0 z9 |/ J4 ^) ]3 {1 lPart.ClearSelection2 True
2 |( Z% O/ d" v* v$ ]/ d' e8 n% UPart.SetMaterialPropertyName2 "default", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "201"3 @- L% [1 b/ M' l+ V$ Q) u% S
Part.ClearSelection2 True
" x2 f4 \8 F9 ]8 N! c9 [/ L: F6 SEnd Sub3 q- e! b* D2 v# |8 H
发表于 2018-11-19 18:06:38 | 显示全部楼层
ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name" 3 S* c6 V+ ~, r
这一句怎么可能放在sub main()前面?放在前面蛤只能定义变量,它根本不会执行了呀。
  C/ ~) g7 D7 o4 l, P
( l/ n6 Q8 n4 {* [, WDim swApp As Object
7 [# e; }7 P8 G" w+ O/ M$ E( X: J( J
9 N5 M( E2 c# D! ~" B& [  XDim Part As Object7 T. I- }7 v! o6 g/ [) X" A
Dim boolstatus As Boolean) a1 {1 O0 U/ v/ i8 F: s
Dim longstatus As Long, longwarnings As Long" k8 A5 T4 b! Z/ A4 K0 K! P) ^" ?
Dim ConfigName As String
- m! l3 M6 F( z: g5 f; p. \- {9 ]6 ^, n& F( a. S
Sub main()
( _# o; C2 r' I) @  jSet swApp = Application.SldWorks- V, |6 g; V3 b/ c: p& Q
Set Part = swApp.ActiveDoc
' R! e5 a1 x, m, w; S9 q/ Mboolstatus = Part.Extension.SelectByID2("δ֪", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)
) `8 p" N/ g7 V' MPart.ClearSelection2 True  c* f) t) p( b9 j+ q- U
ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name4 l* N" u& E" Q4 l8 R0 q3 Z1 W
Part.SetMaterialPropertyName2 ConfigName, "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "201"
/ Z+ a* S* L. R/ d% OPart.ClearSelection2 True
, C9 I  p3 C' b, ?. Z( a+ @End Sub
5 o+ b, J) V+ r( p5 ~2 \' w) p! t2 L9 \- _7 C& a6 P
你试试这样改行不行?

评分

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

查看全部评分

 楼主| 发表于 2018-11-20 08:45:07 | 显示全部楼层
NC@jiang@nan 发表于 2018-11-19 18:06, E* _) g7 p+ X: X: E8 J
ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name"
! I1 f2 ^3 e* q, d& z这一句怎么可能放在sub main()前面 ...

- Q  _% x" s7 }' q3 X& \. K& _非常感谢您的指点,已经好了
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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