机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 6793|回复: 3

通过宏添加solidworks零件材料

[复制链接]
发表于 2019-11-28 16:10:49 | 显示全部楼层 |阅读模式
本帖最后由 735057167 于 2019-11-28 16:25 编辑 6 P2 r: b" Q& _) ^) h
! Y3 A8 o. @8 ~# X$ B1 x3 Y
由于模型需要测量总的重量,可通过宏来一键添加solidworks自带材料中304密度不是7。9需要自定义材料! S0 ~' U4 p5 z2 W- F
- K$ D8 f/ L3 K1 I' N# D1 l8 G" \
也可以通过批量打开(dim)来实现4 O" }) p" a9 o/ p

9 O, U; x/ H2 Y! k7 J; R. Q. j/ \2 v2 y4 E4 f; |7 J( q
宏代码如下
9 Q# z1 f' ^" `+ Y, D
/ b4 u" ^! o1 S9 SDim swApp As Object
0 \0 f# d: N0 b! J; @1 o8 ?$ |Dim Part As Object( K- S8 b7 s) n: P  c& |
Dim boolstatus As Boolean
9 g% O! v* b* |3 V5 B" m4 v5 U$ P# rDim longstatus As Long, longwarnings As Long" f8 P/ P0 ^0 l7 p
Sub 自适应材料()
* G$ j% \" Q3 b- r1 j    Dim N
# U$ W& U) H  F* [    Dim a, b
5 z/ p  v& O/ H    Dim name, NAME1
( \+ L5 z# S0 ?$ b2 C6 |" u2 ?    Set swApp = Application.SldWorks
3 n# i9 J9 B$ ^' V$ [    Set Part = swApp.ActiveDoc/ D4 D' ?' u! q8 Y, [
    Set selngr = Part.SelectionManager
9 e/ u8 u% r' Q* i" S$ b    swApp.ActiveDoc.ActiveView.FrameState = 1
! M( |" g/ d  F4 F9 u. E8 j$ W4 s3 e    N = swApp.ActiveDoc.GetTitle() '取得文件名
# O. W( W/ e, A; W) w$ H( t+ j    Set swModel = swApp.ActiveDoc. i" b8 o. J5 t) _. T
    Set swConfig = swModel.GetActiveConfiguration+ i* E# n0 s  p6 |4 w% f, l
    CFGNAME = swConfig.name() '当前配置名称
  c8 r% U! _( g, \* I0 z7 F0 V" G    NAME1 = CFGNAME
' P; v( w5 I9 Z9 ]    For i = 1 To Len(N)
1 r1 G" ?6 w4 |( t/ r        a = Mid(N, i, 1)
) a$ U5 e9 d3 P$ e        b = Mid(N, i, 2)
9 \7 D/ n" f2 |' |1 x0 p        If a = "瓷" Then5 [/ |! Q. o  q( U# S3 s) u
            name = "A95瓷管"3 w3 y3 o7 z7 u( i
            Exit For
0 p/ H7 n& P9 e( e   ElseIf a = "铜" Then' H- t$ B& ~. A" r% ~
            name = "铜"
% C; j" Q1 C  a! X& g2 B7 b            Exit For1 E1 X7 \' n: S
        ElseIf b = "环氧" Then3 n( |6 b0 Y" O0 p" B
            name = "环氧板"4 a! W, p0 R2 x' Z" [
            Exit For
3 P( X2 k, N- {+ w: l        ElseIf b = "云母" Then
& N$ [1 K5 `# i- q" p" \            name = "云母"- b" u! V' ?& L* B& J; K
            Exit For
. \- w) @9 B: k6 O        Else/ G! m# r' @0 w! a5 z7 n( U& U
            name = "SUS 304"
4 ?- M/ r* F# w, r% b        End If
) T' H+ D9 n0 R# d# @1 o1 C1 O( H    Next9 ]: j1 v$ d/ W/ Y2 r+ t4 h
    Set Part = swApp.ActiveDoc0 b! \; _; r9 b% X* A4 y
    boolstatus = Part.Extension.SelectByID2("未知", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)
; d& ~6 z7 g. q: l    boolstatus = Part.Extension.SelectByID2("未知", "BROWSERITEM", 0, 0, 0, False, 0, Nothing, 0)
+ t- }% N; f2 L' T- J( ^    Part.SetMaterialPropertyName2 N, "C:/Program Files/SolidWorks Corp/SOLIDWORKS (2)/lang/chinese-simplified/sldmaterials/materials.sldmat", name' ~8 f. n/ x( R6 `
    Part.SetMaterialPropertyName2 NAME1, "C:/Program Files/SolidWorks Corp/SOLIDWORKS (2)/lang/chinese-simplified/sldmaterials/materials.sldmat", name
, x& A" T9 e( n# x6 t    Part.Save '保存# l5 b4 A) E3 g8 G; }1 O5 N
End Sub9 _! _$ t5 V! s
由于无法上传宏文件,需要的可以留个邮件, Z  p5 _4 I  H3 w' ^
6 U' A. M7 M! K/ H' ~  E& o
$ u5 y, Q1 h7 U. Z
4 f& y4 u3 |: n, v  K2 P8 Y% K# }, o- D

本帖子中包含更多资源

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

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 16:59 , Processed in 0.067147 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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