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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
樓主: 李邈

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

[復制鏈接]
21#
發表于 2024-11-21 19:55:25 | 只看該作者
faker558 發表于 2024-11-21 16:359 M& k6 h3 h. D' |8 T! d, H
在開元沒有看到這個功能啊
8 C: H4 U5 J# J
有的呀,BOM工具里面
2 l5 b3 l, p* u/ d0 \4 p$ t我這個后面自定義了一個數量的項目,這個項是寫到零件屬性里面的,所以加在后面跟插件的數量對比,如果不一樣,就改成和插件統計的一樣,這樣零件屬性里面就有數量了9 o6 `' R0 {5 b' D4 Q

本帖子中包含更多資源

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

×
22#
發表于 2024-11-21 20:34:27 | 只看該作者
本帖最后由 faker558 于 2024-11-21 20:44 編輯 8 M) \$ b4 ^+ y# r" L9 }' I+ j  j8 l
看前方 發表于 2024-11-21 19:55
! p# s1 Q5 g- t+ l. R1 E有的呀,BOM工具里面0 j. Y- T4 d; b& t- ^1 U
我這個后面自定義了一個數量的項目,這個項是寫到零件屬性里面的,所以加在后面跟 ...
+ Q1 P4 T  D6 D8 n! _& K+ m
感謝樓主,找到了。但是是付費項目,我下載了你的宏文件壓縮包,運行了這個宏,怎么毫無反應,零件自定義屬性里也沒變化,沒有自動寫入數量,有什么注意事項嗎
23#
 樓主| 發表于 2024-11-22 08:08:00 | 只看該作者
土豆土豆442 發表于 2024-10-7 16:38
" j- o; f# v9 g! W7 w1 f# `樓主,能求個宏嗎?不會搞
1 {1 D+ }1 n9 f3 c. z
一樓就是9 C1 B7 y# E6 J, H* @7 C0 w
24#
 樓主| 發表于 2024-11-22 08:08:56 | 只看該作者
faker558 發表于 2024-11-21 16:36
  R; s& O& F  Q, f& e% p1 d刷個威望下附件

: ]" B3 l% [: O0 Y7 g4 ~; b& E5 x就怕你威望不夠,代碼都給你了
" ]. y6 p* m9 E7 w6 t/ Z' F: @( \: E
25#
發表于 2024-11-22 08:48:09 | 只看該作者
faker558 發表于 2024-11-21 20:34! l. P: @6 i/ k8 |8 r
感謝樓主,找到了。但是是付費項目,我下載了你的宏文件壓縮包,運行了這個宏,怎么毫無反應,零件自定 ...

& c* O7 C2 E) w( P0 p2 b那個宏不是我寫的,我沒有用宏9 y& V4 n$ P; D( P8 S
我截的那個圖里面,前面那個總數量就是插件統計的,但是那個數量寫不到零件屬性里面,所以我在后面加了一個數量的項,這個項是可以鏈接到零件屬性里面去的。然后按照插件統計的總數量手動填上去,零件數量上就有顯示了
# O$ ~& i( Q* Y4 \* k  @" m4 v
26#
發表于 2024-11-22 11:30:19 | 只看該作者
李邈 發表于 2024-11-22 08:08( E& N7 ]. G* V1 w1 W0 v/ w
就怕你威望不夠,代碼都給你了
5 p& P" t. a+ G$ `, a5 T
樓主,我用了你那個宏,怎么屬性列表里的數量沒有變化% X6 k3 @' V9 `. B* U7 H* N
27#
發表于 2024-11-22 11:31:39 | 只看該作者
李邈 發表于 2024-11-22 08:08
; E( R& j0 ]: Z就怕你威望不夠,代碼都給你了
. l) E, ^! A- \; }2 l) A) Q- T
壓縮包的我試了,復制代碼也試了
28#
發表于 2024-11-22 11:49:02 | 只看該作者
感謝樓主分享,很不錯!
: z8 n, Q7 c9 ]$ P: t  V樓主辛苦了!

點評

應該的xixi  發表于 2024-11-23 08:30
29#
發表于 2024-11-22 11:49:20 | 只看該作者
李邈 發表于 2024-11-22 08:08, ?% c/ f! _/ Q, d) a- Z# V% Z
就怕你威望不夠,代碼都給你了

- W" H0 P. t1 ?% F十分感謝樓主,可以用了,我的SW版本是2020,把庫改成2020就可以用了,十分感謝
0 j! X6 }5 r4 ?3 Q' E& Q- {
30#
發表于 2024-11-22 11:58:45 | 只看該作者
我用手機助手寫了一個宏程序,不知道為什么用不了,語法錯誤,樓主可以幫忙看看嗎, \/ |4 I) I/ q" Y
以下是一個用于SolidWorks(SW)的向裝配體里面寫入零件總數量的宏的示例。此宏使用VBA(Visual Basic for Applications)編寫,可以在SolidWorks的宏環境中運行。請按照以下步驟操作:: z4 c: E3 d& z& _
) f/ Z! I2 O* L% @/ N
1. 打開SolidWorks并啟用宏環境4:1 i7 u& z, V% ~
確保你的SolidWorks已經安裝了VBA宏支持。
5 I" j& ?' r4 a7 j1 q/ ^! M4 f打開SolidWorks,并啟用宏錄制和運行功能(通常在“工具”或“選項”菜單中可以找到)。
# r9 X- [3 G6 l2 B9 B% I' H6 K5 ^2. 編寫宏代碼:- G! I7 F0 [% w# H" I
 7 |/ g; h. f. H: D
Dim swApp As SldWorks.SldWorks
) u& J# M% a/ P) HDim swAssy As SldWorks.AssemblyDoc
1 U# n' P4 N# D& \, HDim swComp As SldWorks.Component24 S, i; g+ H1 o* Q% s
Dim vComps As Variant
; p$ i" C! Q, R% dDim i As Long, totalQty As Long6 T, D3 E. L, L7 x3 F: {0 n
Dim customPropMgr As SldWorks.CustomPropertyManager3 w+ U  w4 y/ Q4 _" i! x( j- W6 T
Dim customPropName As String
* i: m2 F7 h# j3 U9 e1 Z- k8 }3 F
$ u3 Q' [0 v; ]9 ?% l& s/ C  u' 初始化SolidWorks應用程序對象. Z8 G! a! L! w0 D5 K7 [+ {/ J. m
Set swApp = Application.SldWorks
1 l4 b- [. l5 r5 g, m6 p9 P
$ x8 t$ K/ L" o$ h' 獲取當前活動的裝配體文檔1 }# j' v1 A) W+ x# z% C& c
Set swAssy = swApp.ActiveDoc& v5 I# ~- b: k% k* `
0 M- ~$ ~; n  h
' 檢查是否為裝配體文檔
+ w. q2 j- Y- `" T8 EIf swAssy Is Nothing Or swAssy.GetType <> swDocASSEMBLY Then
2 `( j, o: O2 ?) O* y! l. C    MsgBox "請打開一個裝配體文檔。", vbExclamation. k' L* |; w5 t' G
    Exit Sub, C& }/ G- `% y" ~0 K$ w$ W9 V
End If$ C; E) X! s( R% y& w

+ C6 `) X: Y0 U! Q% \' 初始化零件總數量
8 p: l4 N, E3 }" t; G4 f" s3 s5 ototalQty = 0
/ Y4 F/ E+ q1 _4 X+ G+ {1 g) t9 o) x* l% S$ |  S- E
' 自定義屬性名稱,用于存儲零件總數量' O) D3 m& W( O5 v
customPropName = "TotalQty"% x7 S: M; {* a& S) h
# n5 C' s4 z) ~, {9 i* g- m
' 遍歷裝配體中的所有組件
0 X  r- F& p% a7 }; L$ RWith swAssy.ConfigurationManager.ActiveConfiguration.GetRootComponent3(True). J$ D6 a0 A& f
    Set vComps = .GetChildren& z! E% W& M: s, T; A  @
    If Not IsEmpty(vComps) Then
3 P' F  T6 k9 s" D1 A- z" O        For i = 0 To UBound(vComps). Z% I( J# {8 j- E7 x6 l
            Set swComp = vComps(i)4 |$ C% Q4 B: }* F

1 }% |3 Y9 `3 l            ' 檢查組件是否被抑制,如果沒有被抑制,則計入總數
) u8 R2 |5 y" W9 E9 D* O            If swComp.GetSuppression() = swComponentSuppression_e.swComponentNotSuppressed Then
% L: S$ |3 V8 @4 L! z                ' 如果組件是零件,則數量加1* }0 r3 U$ ]( W+ D* G5 `: O
                If swComp.GetType = swDocPART Then
0 s/ }& F+ ^/ x4 O- @                    totalQty = totalQty + 1
* B- h* q5 X8 n9 f7 |                ElseIf swComp.GetType = swDocASSEMBLY Then
  i" U5 q4 z" {% {6 S5 ~* E( N                    ' 如果組件是子裝配體,則遞歸計算子裝配體中的零件數量0 G3 Z+ M$ Q' X; l: L9 K- H4 D# r( v
                    ' 這里為了簡化示例,不遞歸計算子裝配體中的零件數量) E; V, ]* [$ T  A# \% K& W
                    ' 你可以根據需要添加遞歸函數來處理子裝配體9 g% {! N! {# T: D
                End If6 {- O/ p/ J* }/ H$ b, J6 s
            End If
  u0 l/ m' Z$ z5 S+ D0 _        Next i
, d  K+ V( |5 h9 s( B    End If3 T" `% T/ P0 A
End
3 g0 O3 x+ g7 c, g. _+ oWith
3 P2 G" Z/ a# {0 E. `' 創建或更新自定義屬性以存儲零件總數量
+ Z: `) g) S# m& gSet customPropMgr = swAssy.Extension.CustomPropertyManager("")/ k" y* e; y4 O& w# {; }) N
customPropMgr.Add2 customPropName, "系統", CStr(totalQty), swCustomPropertyInfo_e.swCustomPropText
( \- T+ J$ g' S! B- ?' 注意:如果屬性已存在,Add2 方法會更新其值,而不是創建新屬性。5 J: K! ^" Q9 r/ V
' 如果你想要確保屬性總是被更新(即使值沒有變化),可以使用Set2方法代替Add2。
/ v9 G- `/ `2 S7 z4 W
2 [7 r- j" \! a! i. |4 X- P% y' 清理對象
" x, H) p7 d4 g9 m9 _2 ?3 a  TSet swComp = Nothing- [0 Q: k$ D+ w! |
Set swAssy = Nothing9 L, k/ B* X& A
Set swApp = Nothing8 t# O, z( q/ Q' V( U- F0 t
+ k# H! O: g! ^% V" Q  S. m7 j
' 提示用戶操作完成2 p: Q6 W* J. p, ?  @
MsgBox "零件總數量已寫入到自定義屬性 """ & customPropName & """ 中,總數為:" & totalQty, vbInformation
+ p( n  c' K$ X# }&#160;- X& E+ g" h: M
3. 運行宏4:
4 r: i! v4 W) n1 `7 ?% r$ N5 @在SolidWorks中,打開一個裝配體文檔。3 t# I* Z9 U+ S! P0 m6 S
通過宏管理器(通常在“工具”菜單下)找到并運行你編寫的宏。
' _2 c0 l0 f8 s/ y: {+ u4. 驗證結果:3 @5 L5 X. G2 v7 b% ]* b! R  a) G
運行宏后,你應該會在裝配體的自定義屬性中找到一個名為“TotalQty”的屬性,其值應該等于裝配體中零件的總數量。; I3 i# U! w7 C
**注意事項 **:
# q0 G4 V9 g& L/ {: f此宏僅計算裝配體中的頂層零件數量,不包括子裝配體中的零件數量。如果你需要計算包括子裝配體在內的所有零件數量,你需要添加遞歸函數來處理子裝配體。
  b% d  X/ F% h; n1 Z1 m! P5 Z在運行宏之前,請確保你的SolidWorks文檔沒有未保存的更改,以防宏運行過程中發生意外導致數據丟失。5 ?+ s6 T# F4 F7 L! R
宏代碼中的錯誤處理部分可以根據你的需求進行擴展和完善,以提高宏的健壯性和可靠性。
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

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

GMT+8, 2025-8-18 18:10 , Processed in 0.085698 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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