久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
樓主: 李邈

SW宏-零件數量自動寫入自定義屬性表

[復制鏈接]
21#
發表于 2024-11-21 19:55:25 | 只看該作者
faker558 發表于 2024-11-21 16:351 t" V) N) z3 v6 b, }4 C
在開元沒有看到這個功能啊

8 v6 s7 j$ O0 p有的呀,BOM工具里面/ o- F2 T  [6 j% o% s( D
我這個后面自定義了一個數量的項目,這個項是寫到零件屬性里面的,所以加在后面跟插件的數量對比,如果不一樣,就改成和插件統計的一樣,這樣零件屬性里面就有數量了: }2 r5 j# A! ^0 Y0 w: N: S

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
22#
發表于 2024-11-21 20:34:27 | 只看該作者
本帖最后由 faker558 于 2024-11-21 20:44 編輯 2 U1 ~8 N; J: Z) J1 n$ z2 G
看前方 發表于 2024-11-21 19:556 k& o6 z- Y+ |
有的呀,BOM工具里面
$ g; K4 W: n3 W6 M' F8 ~我這個后面自定義了一個數量的項目,這個項是寫到零件屬性里面的,所以加在后面跟 ...
  ], Y5 f9 X0 M& ^
感謝樓主,找到了。但是是付費項目,我下載了你的宏文件壓縮包,運行了這個宏,怎么毫無反應,零件自定義屬性里也沒變化,沒有自動寫入數量,有什么注意事項嗎
23#
 樓主| 發表于 2024-11-22 08:08:00 | 只看該作者
土豆土豆442 發表于 2024-10-7 16:38
' r( s' g% d9 N: k樓主,能求個宏嗎?不會搞

+ B* H  B6 x) l, K- s一樓就是
+ c- I2 H% j/ t5 X" G/ s9 `& N
24#
 樓主| 發表于 2024-11-22 08:08:56 | 只看該作者
faker558 發表于 2024-11-21 16:36
1 A( Q- q( I* T5 T) r刷個威望下附件

( p/ J, W# Y/ f: Z- E+ B就怕你威望不夠,代碼都給你了
- C# e% |' m3 A& n# E8 z: k
25#
發表于 2024-11-22 08:48:09 | 只看該作者
faker558 發表于 2024-11-21 20:341 B+ v2 d# A$ S4 L9 K- ]2 _
感謝樓主,找到了。但是是付費項目,我下載了你的宏文件壓縮包,運行了這個宏,怎么毫無反應,零件自定 ...
2 h& E& o% C7 Q3 f  Y0 Q
那個宏不是我寫的,我沒有用宏
4 r: t2 ~2 S) r我截的那個圖里面,前面那個總數量就是插件統計的,但是那個數量寫不到零件屬性里面,所以我在后面加了一個數量的項,這個項是可以鏈接到零件屬性里面去的。然后按照插件統計的總數量手動填上去,零件數量上就有顯示了) @7 u; l/ R/ @! S5 k. X
26#
發表于 2024-11-22 11:30:19 | 只看該作者
李邈 發表于 2024-11-22 08:08
; i/ U+ [% L1 N, b7 S1 }就怕你威望不夠,代碼都給你了

6 M0 F8 z# d' T# f/ O- I樓主,我用了你那個宏,怎么屬性列表里的數量沒有變化
6 H% G2 S9 }( p. v8 d" d/ L$ o( ?
27#
發表于 2024-11-22 11:31:39 | 只看該作者
李邈 發表于 2024-11-22 08:08% ^+ E: m! I7 H( V
就怕你威望不夠,代碼都給你了
5 f. I1 w& k, p; i
壓縮包的我試了,復制代碼也試了
28#
發表于 2024-11-22 11:49:02 | 只看該作者
感謝樓主分享,很不錯!7 Y2 r0 I4 O( @, x2 `
樓主辛苦了!

點評

應該的xixi  發表于 2024-11-23 08:30
29#
發表于 2024-11-22 11:49:20 | 只看該作者
李邈 發表于 2024-11-22 08:08
1 J6 J! v2 K4 U6 T) p- \" Q就怕你威望不夠,代碼都給你了
* n& h1 y% M# W/ o1 x4 v+ u) C; \
十分感謝樓主,可以用了,我的SW版本是2020,把庫改成2020就可以用了,十分感謝3 C- o* f5 E: S3 _
30#
發表于 2024-11-22 11:58:45 | 只看該作者
我用手機助手寫了一個宏程序,不知道為什么用不了,語法錯誤,樓主可以幫忙看看嗎/ ~$ C+ p3 D& T/ O
以下是一個用于SolidWorks(SW)的向裝配體里面寫入零件總數量的宏的示例。此宏使用VBA(Visual Basic for Applications)編寫,可以在SolidWorks的宏環境中運行。請按照以下步驟操作:
9 d1 Y: r! o# c3 S# a. i
  G" g7 H9 Y0 L' S2 ~: b* f0 q1. 打開SolidWorks并啟用宏環境4:% M1 s  ?& i% a7 `1 z( E  x8 r* C6 t
確保你的SolidWorks已經安裝了VBA宏支持。( n1 Y% k" L1 ?3 z
打開SolidWorks,并啟用宏錄制和運行功能(通常在“工具”或“選項”菜單中可以找到)。2 W, t( I4 O$ v- I0 j6 `3 l
2. 編寫宏代碼:
7 L* J4 V( ?' f$ A4 _# l 9 |6 r( K. `8 R1 k! U
Dim swApp As SldWorks.SldWorks! x  k% `# J: v6 ?! b
Dim swAssy As SldWorks.AssemblyDoc/ E: e$ B- |6 ]( D* A( p$ {
Dim swComp As SldWorks.Component22 u2 N' [5 T, L% w/ A' }; m8 }' h
Dim vComps As Variant4 k, x$ U: w" Q: K' L% [
Dim i As Long, totalQty As Long2 F8 d1 i% U9 v# ~  \
Dim customPropMgr As SldWorks.CustomPropertyManager8 o) @, ~, P1 y. i/ R( r7 }9 A
Dim customPropName As String, ]4 z" R! Q6 r' ]2 v7 l

& {: N, U2 S0 _. C3 r) {' 初始化SolidWorks應用程序對象$ \- l) p% s. i
Set swApp = Application.SldWorks
- Y$ r  R0 J$ Z) j* r* W. z
  I# ?" r, w, W* v/ b! [) x# M& B7 E' 獲取當前活動的裝配體文檔
/ v) j# H! k9 y( l) L0 YSet swAssy = swApp.ActiveDoc4 U! C3 R( G/ ~$ C
! n3 S# L5 f) \; X+ s0 Z, o  m9 P
' 檢查是否為裝配體文檔! ^, Q; H6 Z, S0 a9 H
If swAssy Is Nothing Or swAssy.GetType <> swDocASSEMBLY Then, K& j3 I  ~- a4 O+ f8 F
    MsgBox "請打開一個裝配體文檔。", vbExclamation
1 U0 h2 q+ M% W. c1 a& S4 V5 V    Exit Sub
4 r! K- M, Q8 ^) l9 d' N& VEnd If
" ]6 B" _* q: j9 `" {
: D" Y" K& [  G6 m/ I9 L1 x' 初始化零件總數量
3 o, _0 [" l, c" dtotalQty = 0
9 @1 o& X1 X& T& W7 c3 ~. ?/ i6 g
' 自定義屬性名稱,用于存儲零件總數量
& a- ?! E3 L' j- ]1 i3 p7 kcustomPropName = "TotalQty"
! M8 V. U. k0 ]+ l8 g: \
. j) |7 }8 o" ?/ Z2 l& W# z' 遍歷裝配體中的所有組件, A$ K9 C% T0 Z
With swAssy.ConfigurationManager.ActiveConfiguration.GetRootComponent3(True)* }# I0 i* A( U9 w/ G& E: p
    Set vComps = .GetChildren7 U/ t5 n8 ^, |! @
    If Not IsEmpty(vComps) Then! R# g' t7 Q8 ]! |1 D$ {, Y! z
        For i = 0 To UBound(vComps)* Y' L) [4 j2 ^5 N
            Set swComp = vComps(i)% ^( }& K6 x; |% z8 Y4 U

+ t. ]7 l/ ~$ L- j7 n3 @            ' 檢查組件是否被抑制,如果沒有被抑制,則計入總數$ Y9 d5 j# q# R) g/ f
            If swComp.GetSuppression() = swComponentSuppression_e.swComponentNotSuppressed Then
* S, x% C4 d4 [- \9 S* Q7 p                ' 如果組件是零件,則數量加1& B9 M1 b3 J1 q
                If swComp.GetType = swDocPART Then
) {% L5 R9 f% e% n2 b                    totalQty = totalQty + 1  V- ?. F4 A% V) K( [$ I: x
                ElseIf swComp.GetType = swDocASSEMBLY Then& I1 x3 k9 Y3 K
                    ' 如果組件是子裝配體,則遞歸計算子裝配體中的零件數量
# T, p7 ^7 Y  l: q7 L  r                    ' 這里為了簡化示例,不遞歸計算子裝配體中的零件數量4 W" I5 {' J4 P9 h- B7 E! O
                    ' 你可以根據需要添加遞歸函數來處理子裝配體
4 U( a5 }$ D$ D" |) L0 V9 t) |                End If, ~0 H8 y9 l  v/ F
            End If# G) G/ Z) A& A! k  ?) E5 X
        Next i5 a' q/ b+ Z2 ]4 h
    End If
' T  I9 f2 ]* `& cEnd ' P* k+ v, q; n/ o  S3 S* n
With
, r$ K( `9 K5 H' 創建或更新自定義屬性以存儲零件總數量
- K5 b8 }5 Q5 p" ~3 ?Set customPropMgr = swAssy.Extension.CustomPropertyManager("")
( P" x! b# J2 t6 d1 e1 T# ?customPropMgr.Add2 customPropName, "系統", CStr(totalQty), swCustomPropertyInfo_e.swCustomPropText" w- W" |- s8 P
' 注意:如果屬性已存在,Add2 方法會更新其值,而不是創建新屬性。
# ]4 |$ d8 c$ c: r, x' e' 如果你想要確保屬性總是被更新(即使值沒有變化),可以使用Set2方法代替Add2。
) }$ z, K" A" S0 _9 N. k2 E/ [+ R' x, }$ ~& ^0 S. V2 M& E2 ?4 E
' 清理對象
# f( {# n; k7 W: {Set swComp = Nothing  a6 z, o% S3 i: K2 V
Set swAssy = Nothing7 }! Z( M* o" w* h& @8 w
Set swApp = Nothing
$ @: _! `5 O0 ]9 W8 v) F. F3 B, l6 t, r. Z0 N& j" r
' 提示用戶操作完成! x! u1 H4 F1 ~" b
MsgBox "零件總數量已寫入到自定義屬性 """ & customPropName & """ 中,總數為:" & totalQty, vbInformation( u( c5 ^1 Q* H6 |
&#160;! h9 X2 [" W3 ]$ `5 J, I) d! M
3. 運行宏4:3 w& w5 \0 [" V+ h; r4 d# c9 b" {8 c
在SolidWorks中,打開一個裝配體文檔。
4 E- L+ x/ ^" D通過宏管理器(通常在“工具”菜單下)找到并運行你編寫的宏。
/ q2 y( q0 t$ a5 _7 F4. 驗證結果:
5 v3 L1 A/ R$ O- q5 T, t運行宏后,你應該會在裝配體的自定義屬性中找到一個名為“TotalQty”的屬性,其值應該等于裝配體中零件的總數量。
1 W+ A! {) N- u7 ]. Z**注意事項 **:
8 p' {: l7 a& `, m0 j# H此宏僅計算裝配體中的頂層零件數量,不包括子裝配體中的零件數量。如果你需要計算包括子裝配體在內的所有零件數量,你需要添加遞歸函數來處理子裝配體。% e- p- b! L6 ^- x
在運行宏之前,請確保你的SolidWorks文檔沒有未保存的更改,以防宏運行過程中發生意外導致數據丟失。; ?4 V7 r' D. ~: v0 I
宏代碼中的錯誤處理部分可以根據你的需求進行擴展和完善,以提高宏的健壯性和可靠性。
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-7-19 18:13 , Processed in 0.073719 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表