QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4892|回复: 5
收起左侧

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

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

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

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

x
本帖最后由 arter 于 2018-11-16 15:53 编辑
: A) }; S9 U: l+ {$ v! I8 W0 Y( h- n# M3 ?
在执行宏的按钮时,有时执行了很多次,都没有任何反应,请指教,谢谢。宏的内容如下:$ H6 C( V% A: C. q0 O( `

: P# L$ X! g( \% R9 o: d' ******************************************************************************0 x  R/ g( m: @6 ?* k9 G* b
' C:\Users\admin\AppData\Local\Temp\swx9952\Macro1.swb - macro recorded on 11/14/18 by Arter
1 C  U6 ]3 Y% S, \# H' ******************************************************************************+ [6 i& E% ~2 x' G/ r* C/ C+ B
Dim swApp As Object' r" A! n& e4 N8 T9 S+ m5 m( P; Y- u0 c
: J3 E* u( y) d+ t. c1 [9 B
Dim Part As Object
8 s+ @- E. Q' FDim boolstatus As Boolean4 }+ o- D1 b! N2 K; z- u
Dim longstatus As Long, longwarnings As Long
" ]: g$ O4 s# ]
' n+ g+ O% J3 PSub main()% X) @) m0 d( D5 O6 F& C
, J+ f7 L7 z  ~
Set swApp = Application.SldWorks
# H# D8 ?% f& j
1 K& l- h, X1 s7 g. m  USet Part = swApp.ActiveDoc7 l4 Z/ T$ \/ h% S( n7 c
boolstatus = Part.Extension.SelectByID2("未知", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0). m7 ~9 |& S5 \% I- L' @& @
Part.ClearSelection2 True7 M9 Z& p' Y2 d5 B. M( c, V
Part.SetMaterialPropertyName2 "Default", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "304"; [- e* Y& O1 o' V
Part.ClearSelection2 True
) w1 i, c0 M' q6 {4 |7 v( U; E' gEnd Sub/ c9 o* b8 y+ _) ^/ y1 }$ N

" R$ R0 x: w9 J; `6 i3 P. X
9 X% t7 p7 x( ~9 T8 R9 a- Q8 O, Z. R* J2 i0 {$ y# }) v
 楼主| 发表于 2018-11-16 16:06:53 | 显示全部楼层 来自: 中国江苏无锡
我发现问题所在了6 y/ a; V; A, ^7 v

; F9 Z7 {7 _. b/ kPart.SetMaterialPropertyName2 "Default", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "304"# v* z7 k( W7 r* \% j
, Z+ p2 G' U9 K: W1 n% u! B
上面句子里的”default“是配置的名称,如果零件里的配置名称与此不同,比如是中文的”默认“,则此宏不能用。$ L3 K, c& e8 i/ N+ p1 D/ }/ \
如果在录制宏时,如果,设置成将所有配置的材料都改成304,宏会把每个具体名称配置的材料都设置一下,新零件中配置的名称必须与宏里列举出来的配置名称完全相符才能够被赋予材料,否则依然不行.
8 m  |6 T+ X0 Y" i* c0 y8 Y& Y* U1 x1 X) Q8 E3 C& ^: r$ u
比如有个零件,有两个配置,名称分别是”default“、”默认“。则宏的语句是:8 ^3 t" d9 ^2 A6 J3 f2 B8 X

2 r; g( Z3 r9 }8 m1 u5 ], bSub main()" t* g' @4 t$ {9 s2 S) L' p8 m

$ Z2 Y) d# m5 ^! |+ oSet swApp = Application.SldWorks
# _' [) h9 ~4 w5 ^, @+ \  x
4 O; u$ I: b. T) d2 N) H8 ZSet Part = swApp.ActiveDoc
4 G4 n! k  R7 rboolstatus = Part.Extension.SelectByID2("未知", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)4 l$ E- O# _( s! v- M
Part.ClearSelection2 True5 U$ S' X. j* l# U
Part.SetMaterialPropertyName2 "默认", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "304"0 l0 P3 ~( ?3 u3 t
Part.ClearSelection2 True
- ?( N$ k2 o( PPart.SetMaterialPropertyName2 "default", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "304"
) p8 o  d9 a- `- \6 B& Z' TPart.ClearSelection2 True
! i, p' e$ x0 p: S. U! CEnd Sub! h0 K4 o; J; }' V$ i2 k
  X0 S1 d# m  S+ A( X! |& H
如果再换一个零件,配置的名称不是”default“、”默认“中的任何一个,则不能被赋予材料。
/ Q/ W' u) ^2 N1 J! v9 W各位大侠,有无解决办法?谢谢。
" I" q. i6 @1 c* d  m6 z+ Z! L3 z4 B0 ~- O
- [8 l& \% W8 |
发表于 2018-11-16 16:28:33 | 显示全部楼层 来自: 中国山东烟台
Dim ConfigName As String' ^5 ~/ E/ w6 Y4 J' \, @
    ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name
* P4 R; r5 `- q( l, Y/ M, P2 J; u) L$ X/ W# Z" O* u
7 T; x7 r$ O# d
: o3 h9 p1 B" _/ P$ T( z( b
 楼主| 发表于 2018-11-17 09:37:13 | 显示全部楼层 来自: 中国江苏无锡
fklmn 发表于 2018-11-16 16:28
% w% p' i3 H1 L$ YDim ConfigName As String5 z% h# E: _  Z: G; O8 X
    ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name
; h  a0 V* ?( ?0 t. q0 H
感谢您的回复,我只会很简单的宏操作。我改的下面的宏没有用,能否帮我改下?非常感谢
4 g$ e0 M6 u6 X% B) O5 W- q4 t( `  R/ ?9 c
' ******************************************************************************/ `" ^% b3 X- X$ c+ |
' C:\Users\admin\AppData\Local\Temp\swx3312\Macro1.swb - macro recorded on 11/16/18 by arter
* f0 f6 S9 t; H4 L' ******************************************************************************3 F: N- E' o6 p& y) \3 ~
Dim swApp As Object3 V8 a. j0 D, p6 H/ X

, n2 a1 K+ y3 U! ?Dim Part As Object$ I% K- A8 s5 R5 ]; x1 M
Dim boolstatus As Boolean- y5 c6 X; j) s  R2 Z
Dim longstatus As Long, longwarnings As Long2 m/ q- S8 E+ y5 p4 `
Dim ConfigName As String
9 M8 K# c1 o$ B# _$ m    ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name$ c4 y' K8 w8 q! N- T% x: T

$ ]9 c: M5 c5 ]( {Sub main()( {/ p3 S: d6 Q" T) Q
4 `6 V0 L3 v$ S. c4 U- l8 L/ R
Set swApp = Application.SldWorks
% ?  E' S" \# i- x# T- |! T' P/ E/ I, z3 F0 Y/ S" I
Set Part = swApp.ActiveDoc; z4 Y1 a" H1 ~
boolstatus = Part.Extension.SelectByID2("δ֪", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)
& z+ X3 N4 Q1 p. _2 e! C, GPart.ClearSelection2 True
5 n. {4 b1 O5 Q( UPart.SetMaterialPropertyName2 "default", "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "201"& m1 [5 [3 D& _
Part.ClearSelection2 True. y' m- |  q" A' b
End Sub" s3 k8 x1 `5 N' `1 q$ f
发表于 2018-11-19 18:06:38 | 显示全部楼层 来自: 中国
ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name"
6 L- q* ^$ ]+ V- z1 U8 d! P1 A* _这一句怎么可能放在sub main()前面?放在前面蛤只能定义变量,它根本不会执行了呀。4 [; P  i: y% D; A3 E9 n

: v3 C" D; q7 n2 j! |* V4 S. NDim swApp As Object
% `- e  F! x/ ]! U4 u1 ~0 {* a
: N9 p6 V3 C  p8 C5 eDim Part As Object
( E8 ]5 y* E0 s" L# i, h% IDim boolstatus As Boolean% x/ [" J8 L2 r
Dim longstatus As Long, longwarnings As Long
' i* o% j6 J0 s* ^* ~- R; E% i' ]Dim ConfigName As String
$ ]$ Y( h8 E) q. d' e
- l( |" P) `3 P2 P, W/ D. YSub main()
1 ]% A! Y" D8 H& _5 E8 m# wSet swApp = Application.SldWorks' r- I% j6 {0 I. u: \
Set Part = swApp.ActiveDoc' u8 k3 Y( u, F
boolstatus = Part.Extension.SelectByID2("δ֪", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)8 F+ S$ C' H$ I2 y& Y% j0 T- i
Part.ClearSelection2 True% o7 Q0 J# ^6 Q- _. Y' L$ C+ o0 A
ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name
2 R- S; m1 t. ]. B7 `( }2 z, f! MPart.SetMaterialPropertyName2 ConfigName, "C:/Program Files/SOLIDWORKS Corp/SOLIDWORKS/lang/chinese-simplified/sldmaterials/COSMOS materials.sldmat", "201"
, m" c0 X+ b$ T. b, w1 b, LPart.ClearSelection2 True- z3 b; w0 A- ?/ @# _
End Sub- _1 X' H5 s* J( |1 F
' j4 \8 b% x2 e8 n4 Y0 q- i, F$ j! x, [
你试试这样改行不行?

评分

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

查看全部评分

 楼主| 发表于 2018-11-20 08:45:07 | 显示全部楼层 来自: 中国江苏无锡
NC@jiang@nan 发表于 2018-11-19 18:06; n+ r- e1 w% t* G" T- m9 b
ConfigName = Part.ConfigurationManager.ActiveConfiguration.Name"
! D: {" @/ p# x$ M这一句怎么可能放在sub main()前面 ...
) Q7 h" A+ S4 {8 w2 E& C4 x8 \
非常感谢您的指点,已经好了
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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