机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 6794|回复: 3

通过宏添加solidworks零件材料

[复制链接]
发表于 2019-11-28 16:10:49 | 显示全部楼层 |阅读模式
本帖最后由 735057167 于 2019-11-28 16:25 编辑
. B2 |' h1 z. X% B# t7 l
, N' J3 V6 ]7 Y  \由于模型需要测量总的重量,可通过宏来一键添加solidworks自带材料中304密度不是7。9需要自定义材料
) J( Y( M* l! {8 w9 {9 {% i9 G) n! O6 A: ^; L
也可以通过批量打开(dim)来实现5 `/ y: ^) B+ A# ]
% c1 f, n& }8 V% [: q( }
: K6 p  u# M, E1 a2 z* E! }  B1 x/ V
宏代码如下4 ?4 Q& o8 J* V
( L; e, G3 c/ Q% Q2 Z
Dim swApp As Object
  ^& ~0 ]1 j" [. u2 K% t- \Dim Part As Object
( ^6 L! x% }3 w0 f# [  c: BDim boolstatus As Boolean; K1 q  D) \7 \4 {3 H: S- v
Dim longstatus As Long, longwarnings As Long
+ l2 W- J: u9 B0 \) O$ z) aSub 自适应材料()3 M3 a2 Y/ M; m& ?; N* F
    Dim N) N3 l! _8 g+ Q4 r; u& p2 N+ h* ?
    Dim a, b/ a, W4 F  q8 {. A& W
    Dim name, NAME1
: ~9 X. Q3 d+ V2 X2 d5 u+ R, E    Set swApp = Application.SldWorks8 {/ ~' S/ t& n: ]5 K7 }
    Set Part = swApp.ActiveDoc
! z; A% C" K* d    Set selngr = Part.SelectionManager
2 b3 D+ Z3 D* {; ~; X  O    swApp.ActiveDoc.ActiveView.FrameState = 1* y% G) l, d) J
    N = swApp.ActiveDoc.GetTitle() '取得文件名
5 b5 D- k5 ?$ [+ ]7 L! C4 d. h. S    Set swModel = swApp.ActiveDoc* t% p& t5 }7 |4 m/ c
    Set swConfig = swModel.GetActiveConfiguration
" h8 Y  y4 f( A/ I- t8 l    CFGNAME = swConfig.name() '当前配置名称
' F9 y: U" j5 ~$ {8 o    NAME1 = CFGNAME
  ]+ f7 n7 r; v/ x+ N/ K) J    For i = 1 To Len(N)
  ~9 Y8 `  c* w+ U        a = Mid(N, i, 1)  t* s7 s+ Z+ |* N& u, Y: U
        b = Mid(N, i, 2)% ]# t6 d, j: E; T4 {" E
        If a = "瓷" Then8 X" Z" k, P5 ?
            name = "A95瓷管"  e3 F  v' G/ F1 Z4 |) L; c2 Z4 A
            Exit For
. ?  u' f- \1 n1 c   ElseIf a = "铜" Then
+ X' D. A! k1 @5 V3 g- ^            name = "铜"2 b: x7 c" l/ J1 S# X8 W8 @/ O
            Exit For$ r- d0 p" t8 i( U
        ElseIf b = "环氧" Then* e8 n/ J0 E; x# o
            name = "环氧板"& e6 G, e$ l( @
            Exit For5 g* H' S5 j( ^" ]
        ElseIf b = "云母" Then
& P1 O& j- X6 X) v- L            name = "云母"
- n( |( w  Z$ l, B            Exit For
" N! ]! \4 f! D4 C/ ~1 k  G        Else
1 {& T: Z# x& F            name = "SUS 304"
( ~. i% X0 S) j0 j        End If( z( O3 G# L+ b1 E) u/ {, d! Y
    Next) R$ u1 c6 h, e. T$ e3 d
    Set Part = swApp.ActiveDoc( i9 Y3 c; l. u) C
    boolstatus = Part.Extension.SelectByID2("未知", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)$ M) C7 w" P" M0 m* Q1 |+ _% o
    boolstatus = Part.Extension.SelectByID2("未知", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)# B! {% H, S" d) b; N6 r
    Part.SetMaterialPropertyName2 N, "C:/Program Files/SolidWorks Corp/SOLIDWORKS (2)/lang/chinese-simplified/sldmaterials/materials.sldmat", name
# g9 l3 r( q0 {; j: ~! M2 H    Part.SetMaterialPropertyName2 NAME1, "C:/Program Files/SolidWorks Corp/SOLIDWORKS (2)/lang/chinese-simplified/sldmaterials/materials.sldmat", name3 W; o2 g# L/ L, B* L
    Part.Save '保存* l: X# Z+ e, X4 ^4 ]! U
End Sub
$ K% s  V/ Z9 ?) K3 u: b由于无法上传宏文件,需要的可以留个邮件
7 {7 \' |( T( \* G& S3 f; ]; b& w! o$ ]- V

* ~" j' `& i9 `9 v" ?8 N5 _9 y6 f6 i! T2 ]  R  E6 Q0 U: w

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2019-11-30 07:57:08 | 显示全部楼层
可以从这里粘贴代码

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2019-11-30 11:23:36 | 显示全部楼层
直接添加零件材料,这个宏貌似更方方便。
回复 支持 反对

使用道具 举报

发表于 2021-7-15 19:56:43 | 显示全部楼层
学习一下,顶一下
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 17:54 , Processed in 0.059304 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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