QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 8351|回复: 23
收起左侧

[求助] solidworks切割清单中的方程计算(图)

[复制链接]
发表于 2013-6-29 14:11:34 | 显示全部楼层 |阅读模式 来自: 中国辽宁沈阳

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

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

x
切割清单怎样进行方程计算?.jpg
% L# y0 r1 B$ e7 A( F  U/ }. J9 n2 @- x
如图所示1 l6 O! X  |- B% Z$ L" _* q
1.在切割清单中点击表格项目,方程为灰显8 `: k2 ~1 I1 M: P& Z
2.现有(切割清单项目:单件重)与(表格项目:件数). c- z8 f, u7 X7 q" Y# \' Z( C' C* {
3.如何计算   单件重*件数    ?
8 h2 {6 N' L' g3 P$ w
发表于 2013-6-30 09:06:50 | 显示全部楼层 来自: 中国山东济南
顶,期待解决。。。
发表于 2013-6-30 09:45:09 | 显示全部楼层 来自: 中国广东东莞
方程应该是在文档属性中添加的.不是在清单中添加的吧?
发表于 2013-6-30 10:58:04 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-6-30 11:05 编辑
2 q. [% P3 G) C( n( e$ `' H0 v8 T$ n+ z7 f% W( Z# f
樓主這個工程圖…9 q3 Z) k- w& L7 G" {: t( U$ ^
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用?
. ?3 g2 n9 h$ @- x3 V  {還是由零件/裝配體生成的工程圖?
. y) `9 f6 O) U兩者貌似都沒問題的,不明白樓主的實際操作過程…

评分

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

查看全部评分

 楼主| 发表于 2013-7-2 20:46:10 | 显示全部楼层 来自: 中国河北唐山
gt.adan 发表于 2013-6-30 10:58 static/image/common/back.gif: x! o) s) W2 H7 Z3 O
樓主這個工程圖…
; }1 R0 w) d' C( D是新建的空白表格想要做成「單重」*「件數」的模板供日後使用?+ x2 A: Y0 s7 v. w* Y+ ^
還是由零件/裝配體生成 ...
- {8 h# L# X2 V: ~' m
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用,是在切割清单生成的表格中计算
发表于 2013-7-2 21:11:07 | 显示全部楼层 来自: 中国北京
  这个问题两年前我都提过了
发表于 2013-7-2 22:08:09 | 显示全部楼层 来自: 中国台湾
ugnxs 发表于 2013-7-2 20:46 static/image/common/back.gif& S$ ~7 C: ^- ^; |4 k9 Z7 M& E
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用,是在切割清单生成的表格中计算
6 v8 y. s% ]" [& ]
可以的話請將您做好的表格傳上來~
发表于 2013-7-3 08:12:01 | 显示全部楼层 来自: 中国辽宁沈阳
忘了告诉你,切割清单好象不能直接加方程式,3 F3 j1 G! S6 V* i' A
用材料明细表做的详细切割清单才可记添加方程式。
8 k+ m. d7 Q1 {. O  V) _% u: v. Z7 e下面GIF动画图片你参考一下。再到帮助里看一下说明。  N+ s! ^) ?9 T+ G$ R; G; s
详细切割清单.gif
8 @- H2 d* H: g8 P' @8 r4 y* H- ]& d9 R$ N
发表于 2013-7-3 11:48:32 | 显示全部楼层 来自: 中国台湾
qiminger 发表于 2013-7-3 08:12 static/image/common/back.gif! J# Q" _  l/ [9 \
忘了告诉你,切割清单好象不能直接加方程式,- v. M' ]2 Z8 {; ]: c
用材料明细表做的详细切割清单才可记添加方程式。
/ P. }0 P$ T1 E1 f# k$ \( n下面GIF动 ...

- J7 o: K  T$ U; D2 |可能阿丹理解有誤…但是切割清單貌似可以加方程的呀…請 qiminger 前輩幫忙看下…
( C0 A: \$ c: I& m7 A7 H5 E' S- J$ ~" i
& }4 m9 r" {" m) ]+ H capture-1.gif
发表于 2013-7-3 14:39:54 | 显示全部楼层 来自: 中国辽宁沈阳
gt.adan 发表于 2013-7-3 11:48 static/image/common/back.gif- A3 x' v) Y; l( g5 T  k
可能阿丹理解有誤…但是切割清單貌似可以加方程的呀…請 qiminger 前輩幫忙看下…

% h: o& b: s5 ^1 W( n9 Y# g谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。
1 Y# Z/ i9 Y; I刚才又试一下,可以象电子表格那样添加,但结果不知为什么不对。
; O9 K7 j4 |0 o( i 2.gif % o; E8 ?7 t% W" Z7 C% x8 g1 U& k
发表于 2013-7-3 17:23:08 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-7-4 01:12 编辑 " B4 H* h4 h+ L$ Z
qiminger 发表于 2013-7-3 14:39 static/image/common/back.gif' T3 q6 B  a+ ?
谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。
, u; ]7 ?& \6 v( V8 T刚才又试一下,可以象电子表格那样添 ...
* w9 j- c+ ~/ b
謝謝回覆~
2 l" M! t, s4 i. h=========================================================
7 T4 m3 g0 U1 W不知道樓主為何要切割清單又要材料明細表…可能真的有需要吧。7 v- r; Z- y" f# P2 @' x9 C0 \, a* w8 |
=========================================================
& L) S; e8 |, s4 D  W% n* j; v* a/ X關於您的動畫演示,如果可行的話前輩上傳檔案,阿丹幫忙研究看下~
发表于 2013-7-4 01:17:49 | 显示全部楼层 来自: 中国台湾
qiminger 发表于 2013-7-3 14:39 static/image/common/back.gif8 U3 F; l7 z2 m/ z
谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。
) U6 V$ W/ V6 U" |$ i/ m) c5 e0 c刚才又试一下,可以象电子表格那样添 ...

( S7 c( ~4 z$ `9 G" P: w網路上說的「焊件切割清單無法寫入方程」這話說得太辭不達意,往往會讓人誤解。! `& z( H  E. A8 k7 C0 h
應該說無法實現整欄(列)的方程套用,只能對單一輸入窗格套用方程。意即咱們的動畫所示。
2 x- W  T7 d/ T9 v+ A# `, f! t件數少的時候,直接輸入方程的方法或許可行;
( G. ]- _" r5 ]2 B5 E" [然而一旦件數多(切割清單多)的時候,每一個欄位都要重新輸入對應的「單重」*「件數」?# P/ i) q- P. k: B: E4 j2 C6 K
100件就要輸入100次?光是用想的就累人了…6 P+ {! J* @  f1 @$ D6 ?4 H

. f' `4 ~9 o, O* E& e" X$ x2 n# z9 N7 t; ~. h+ ^; Z) v; G3 H% w3 U! b
发表于 2013-7-4 07:48:27 | 显示全部楼层 来自: 中国天津
本帖最后由 qiminger 于 2013-7-4 07:55 编辑
9 S- x5 n8 {: I3 K% t
gt.adan 发表于 2013-7-4 01:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
: l' G7 ?8 |% \9 }& n3 i網路上說的「焊件切割清單無法寫入方程」這話說得太辭不達意,往往會讓人誤解。
+ T6 Z* m2 ^8 ~; Q4 z( E應該說無法實現整欄(列) ...

6 }3 B- r5 ]) I+ @3 I: \+ W( A& X- U1 b* V' A
对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。8 P3 x- K0 [9 E) M$ U$ e
再说楼主的问题,是想在切割清单里加入单重和总重吧,一般的话切割清单里不必加。
( P) x1 v( x* R$ ~# u3 R# [2 B: V就是要加的话,详细切割清单和在焊件里设置自定义属性,应该能达到目的。, b3 M  i+ d' p0 C, N
再请阿丹将那个可以计算总重的切割清单分享一份。# A+ V# `+ o8 |3 ?4 @2 F
焊件.rar (446.02 KB, 下载次数: 59)
发表于 2013-7-5 10:14:23 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-7-5 10:16 编辑
' ?9 I1 f# _/ b; @
qiminger 发表于 2013-7-4 07:48 static/image/common/back.gif
$ M3 w( O( G2 G" G+ x; L( a; J2 Y对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。
* l3 q! V0 _$ _3 O! R$ R: u7 r再说楼主的问题,是想在切 ...
5 p( x* i" }, U' {' k& ]
回覆 qiminger 前輩,您的工程圖俺打開後,數值是正常的,並無像動畫中顯示的負值。" b9 c( h  p' u
由於焊件清單截至目前仍不支援清單總重的方程寫入,而且逐項輸入也如您所說的沒有利用價值。- T( i2 }- c" i
動手試過幾回後發現無法實現要求,所以阿丹只能借用前人分享的宏來生成單重及總重的屬性以調用。5 ]/ d% g- ^* \% H
文件相信前輩應該是有了,若是有需要再請您告知。, u3 m, O/ H# `8 }1 s5 ^
: ?8 n- B9 ]7 o9 Q7 q; I
QQ截圖20130705101454.gif
发表于 2015-9-21 21:03:53 | 显示全部楼层 来自: 中国河北唐山
qiminger 发表于 2013-7-4 07:48  D( u: p0 t, n8 j% J0 [
对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。
& a) Z% y' m2 F+ h再说楼主的问题,是想在切 ...

2 w4 P# ]- U" {1 ]谢谢分享!可是为什么列属性是不可编辑的?而且我加了一列:“材质”,也是不能编辑,为什么?
发表于 2015-9-22 07:18:26 | 显示全部楼层 来自: 中国山东威海
mingri 发表于 2015-9-21 21:03
/ ~. x7 \  M  T% y* [5 u1 A谢谢分享!可是为什么列属性是不可编辑的?而且我加了一列:“材质”,也是不能编辑,为什么?

5 f) ?: }5 Y/ q2 S切割清单有属性链接,不可编辑,如果一定要编辑,就会断开参考的。。。
发表于 2016-3-7 15:23:28 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2013-7-5 10:14, o; u  R2 H4 m: \) L  d; \
回覆 qiminger 前輩,您的工程圖俺打開後,數值是正常的,並無像動畫中顯示的負值。: h  k& v- }; R
由於焊件清單截至目 ...

  K! L4 O( g: ^9 S7 N切割清单里计算每一行的总重确实太麻烦了,请丹大提供一下可以生成总重的宏,谢谢!
发表于 2016-3-9 14:01:48 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2016-3-10 20:17 编辑
3 B- }' A! U. b; {1 a) {: D
pzhzshun 发表于 2016-3-7 15:23
8 u& v8 e# [2 V" ^& a$ O, Y- R切割清单里计算每一行的总重确实太麻烦了,请丹大提供一下可以生成总重的宏,谢谢!
9 x( P3 d* m, `* g7 S, m
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。
2 C$ L& x! L! _! f5 _/ F6 T請注意,以下是電腦顯示後綴名稱的代碼,不顯示後綴名稱的請看#21說明。
. X' `0 Y$ u( J
  1. Option Explicit- ^( u: y6 a; m* Z( Z' |; M
  2. Dim swApp As SldWorks.SldWorks* d" Z" X: y! z4 Y
  3. Dim Part As SldWorks.ModelDoc2
    " p  ~; }# q  F% f) r" ~
  4. Dim thisFeat As SldWorks.Feature
    + F; J. g- J- A
  5. Dim thisSubFeat As SldWorks.Feature$ c; r% B! V: y. q% c6 r& d
  6. Dim cutFolder As Object
    2 X% O/ p$ }. p
  7. Dim BodyCount As Integer
    - X9 ]' A- r" H7 s; V+ n& D' g& [
  8. Dim fn As String; ]" U6 X+ I. f3 E' l+ x
  9. Dim pn As String7 T( a. N( v9 O3 Q% m/ F" P0 W
  10. Dim custPropMgr As SldWorks.CustomPropertyManager
    9 P! A- p: z' t' T
  11. Dim propNames As Variant
    / z) P' j# u) L8 r( d
  12. Dim vName As Variant* n. `; Y6 z1 a! Q7 r% g( h7 J
  13. Dim propName As String
    - e9 D5 B+ b% y) A* T
  14. Dim Value As String" }6 Q7 p( U! ?+ p
  15. Dim resolvedValue As String- o8 X7 B( \5 p# O+ D
  16. Dim TotalW As Double/ K# `6 Q: b% \1 ^+ E/ c; x
  17. Sub main()
    1 q5 X' y' g& K! O6 E0 |2 C' F
  18. Set swApp = Application.SldWorks( @% j' f* e2 O) N& l
  19. Set Part = swApp.ActiveDoc) m5 z6 n2 N0 ]5 E. `
  20. Set thisFeat = Part.FirstFeature- J! V+ R+ L' Z/ j2 {' n
  21. Do While Not thisFeat Is Nothing; x! J- |- n* P8 J( o# Z
  22.     If thisFeat.GetTypeName = "SolidBodyFolder" Then/ \9 l6 I8 E6 U4 [$ f$ ]
  23.         thisFeat.GetSpecificFeature2.UpdateCutList
    - t) x2 b+ m; L% I& r: c
  24.     End If" Z0 f+ w5 x" ]0 c
  25.     Set thisSubFeat = thisFeat.GetFirstSubFeature# e5 w# v, K( [' v
  26.     Do While Not thisSubFeat Is Nothing
    9 y. f  F4 ^1 Q6 ~1 Z
  27.         If thisSubFeat.GetTypeName = "CutListFolder" Then& e% Z6 d$ C4 u4 g
  28.             Set cutFolder = thisSubFeat.GetSpecificFeature2
    : l5 ]& z% d" l# s. ]/ R9 Z# M
  29.         End If
    , K3 S5 j0 P" j" N
  30.         If Not cutFolder Is Nothing Then
    6 l" _( ~# l) S$ _1 N
  31.             BodyCount = cutFolder.GetBodyCount+ T% R" V) Y" q! h- L" Z4 Y
  32.             If BodyCount > 0 Then( m  z+ V8 I/ K  X3 c. r/ |
  33.                 Set custPropMgr = thisSubFeat.CustomPropertyManager
    1 }6 f) V% @  {0 v3 B
  34.                 If Not custPropMgr Is Nothing Then
    2 m/ V! Z5 l6 Z' ]4 ?& J0 ]' b
  35.                     custPropMgr.Delete "Total Weight"; Y: p! \. m0 i
  36.                     custPropMgr.Delete "Weight"
      R; P' z1 ^2 V. u
  37.                     fn = thisSubFeat.Name
    ( `/ b" n, E6 G  N- M& T
  38.                     pn = Part.GetTitle7 `1 A; K9 r$ \! `9 j$ }
  39.                     custPropMgr.Add "WEIGHT", "Text", Chr(34) & "SW-Mass@@@" & fn & "@" & pn & ".SLDPRT" & Chr(34)6 L- l% a1 r, r
  40.                     propNames = custPropMgr.GetNames3 ]9 m1 m% G* c6 J, ]# c. t
  41.                     If Not IsEmpty(propNames) Then
    0 U4 N, U* U+ E1 P" J; `$ D+ L3 h, ^& n
  42.                         For Each vName In propNames
    & t# `0 v) Q" c/ I9 s. U! l
  43.                             propName = vName
    0 g5 j% }# J4 y2 _% e
  44.                             custPropMgr.Get2 propName, Value, resolvedValue
    2 \8 ]. `# @" ^  u' e9 m  i; o9 u
  45.                             If propName = "WEIGHT" Then TotalW = resolvedValue
    0 j# f3 w  k: O! R/ a. y& E
  46.                         Next vName& u" g0 Q  C- G
  47.                     End If
    # T9 b! [1 ], v4 |4 _, z  p4 B
  48.                     custPropMgr.Add "TOTAL WEIGHT", "Text", Format(BodyCount * TotalW, "0.00")5 r# @9 b, i3 R4 B% w; l
  49.                 End If
    & S$ c: n) \! Z( R; b
  50.                 $ E* X' M, s/ [+ ?
  51.             End If
    1 f/ l) i0 T/ H2 T' ]6 q# |) O
  52.         End If, ?/ m# m* s! }" A% {/ `4 o
  53.         Set thisSubFeat = thisSubFeat.GetNextSubFeature( k4 m# U( M' J  E) B6 [4 Y$ ~9 k6 _
  54.     Loop
    ; e* X/ Y# Y+ g3 A
  55.     Set thisFeat = thisFeat.GetNextFeature
    % Q+ Y7 i/ q) y2 y, F
  56. Loop& o( a$ ]5 `$ j2 ^/ C
  57. End Sub5 O6 Y8 q; E0 w
复制代码
/ c* l1 [% X- O4 ^, F2 ~, r/ u
1 Q7 q+ j/ w" \' x; p1 p; \
& ?  W6 y+ h' x; O" X; L( X

5 C3 a1 ^. O( f9 q! K/ U
发表于 2016-3-9 17:18:30 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-9 14:01% U& E5 j) x& J1 s: e# L( J" s" g
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。
* e: ^# }& ?* I
% Q# ~, @1 C; n5 h. c& _; x/ B$ ?% G ...
6 |$ t4 e6 y! r+ t
谢谢丹大,回头试一试,非常感谢!
发表于 2016-3-9 18:08:48 | 显示全部楼层 来自: 中国台湾
pzhzshun 发表于 2016-3-9 17:18& w4 h. @) o: n$ z. @
谢谢丹大,回头试一试,非常感谢!
8 T; `, s& n; ~3 a7 \4 W# w: }
有機會謝謝悶大吧~我只是順手轉貼而已
发表于 2016-3-10 15:53:27 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-9 14:014 a5 o: h) O/ o2 n) n+ }
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。
9 P7 Q6 b4 F3 I. |4 `  e* [' A
# y- a! x) g# f' }+ E8 K  A) F ...
' v$ q4 R( U; b7 D0 R
今天测试了一下:% w- X, e( d5 F1 Y3 k) @
代码第39、48行在 sw2012 里没起作用,『Weight』和『Total Weight』没写入切割清单的属性中。
0 b" [( r9 E$ S查了一下 API 帮助,发现要把其中的『Add』改为『Add2』,『"Text"』改为『30』才能在切割清单属性中写入这些属性。; T. J9 ]# S$ {# G, x  L
第39行代码中还要把『& ".SLDPRT"』去掉,才能正常显示出单重。
+ Z6 x; i" T" @$ C5 G1 Z7 }% Z39行代码写成下面这样,也能在切割清单的属性中正常显示单重。
; _/ d, \5 h4 F9 y: L! ^
  1. custPropMgr.Add2 "WEIGHT", 30, Chr(34) & "SW-Mass" & Chr(34)
复制代码

0 K7 n! p  G6 y
! d6 _( @7 {- q5 P$ V. j在 sw2016 中,多了一个『Add3』,可以修改属性里的值(『Add2』是不能修改属性的值,只能增加属性)。  m: C7 H3 U6 j5 ~
sw2016 中把39、48行代码里的『Add』改为『Add3』,那么下面两行代码就可以删掉了(不能在 sw2012 里使用『Add3』)。
' w: h5 g7 x2 t3 p" M& S* y
  1. custPropMgr.Delete "Total Weight"
    " ?6 \6 Q( n3 ?
  2. custPropMgr.Delete "Weight"
复制代码
4 y. u  O# Q0 n3 u3 q
上面两行代码删不删掉对结果没有什么影响,就影响一点效率而已。- u& @, X- ]$ {7 v- v9 ~5 ]2 s
" `/ n! O0 z5 U2 o
这样修改后,这个宏代码就可以在 sw2012 和 sw2016 中使用了(其余版本未测),终于解决了困扰我很久的焊件切割清单中每行总重的问题。
' z* s1 U7 r% Q
6 c7 E3 N0 Q9 [( X再次感谢丹大和闷大,谢谢!: G: z: ?2 e7 x
& L! q6 a5 ^+ u1 {& n
发表于 2016-3-10 16:11:35 | 显示全部楼层 来自: 中国四川攀枝花
本帖最后由 pzhzshun 于 2016-3-10 16:14 编辑
+ v/ X* @' F( L2 n+ e% R& k
+ g" V1 S: G( V/ m来个使用的效果图/ \% v0 c* G* p
C004.gif
9 d7 U, I* J% G, ?7 {虽然每次修改零件后都要重新生成总重,这也比一行一行地输入公式求总重方便多了。3 ]! |# Q+ N% L7 Y
$ A- K+ a' _# X% I; _3 C  a
发表于 2016-3-10 17:32:26 | 显示全部楼层 来自: 中国台湾
pzhzshun 发表于 2016-3-10 15:53/ j# v' O# D! K3 G* q: m/ I
今天测试了一下:. r% I% n1 O1 v1 B( U5 L
代码第39、48行在 sw2012 里没起作用,『Weight』和『Total Weight』没写入切割清单的 ...

8 j0 g7 @& Y6 \1 n! g9 M那是因為您的電腦沒有顯示檔案的後綴名稱(*.SLDPRT),所以39行才會出問題哦~^^
4 o7 C3 r' a/ |# m. B% @- u* }" B" {謝謝您的分享
发表于 2016-3-12 16:43:22 | 显示全部楼层 来自: 中国四川绵阳
本帖最后由 eastking1111 于 2016-3-12 16:54 编辑 : q: v8 A% |; a5 Q6 y( k& n
' t, L. x: x" z2 Z. j
感谢你的描述,终于搞定
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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