QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
切割清单怎样进行方程计算?.jpg
* f. G1 S# K- r9 Z/ @3 x3 M7 Y# \* o: L* f1 O7 y4 F
如图所示
8 g* t; D, {) u0 H# j* y; b1.在切割清单中点击表格项目,方程为灰显
( Q8 n1 X6 L9 c+ B2.现有(切割清单项目:单件重)与(表格项目:件数)
) r. m& E- F: @" `8 o3.如何计算   单件重*件数    ?/ A* J0 f8 t. J, `  f
发表于 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 编辑   ?" ?- G0 |' t
6 b& l+ ]- G# E. r& s: W
樓主這個工程圖…; p; z7 w" d! Q0 s, H) V, F- C
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用?2 h  H3 s) c% L, [* D
還是由零件/裝配體生成的工程圖?: d3 G+ _: R9 h. ]
兩者貌似都沒問題的,不明白樓主的實際操作過程…

评分

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

查看全部评分

 楼主| 发表于 2013-7-2 20:46:10 | 显示全部楼层 来自: 中国河北唐山
gt.adan 发表于 2013-6-30 10:58 static/image/common/back.gif
: `( L- D. u6 C4 b! ~樓主這個工程圖…; H: i, {$ N8 {  a# r; ]7 A
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用?  _4 t, V2 Y* D9 V+ z
還是由零件/裝配體生成 ...
7 R7 h( e) X& I0 l
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用,是在切割清单生成的表格中计算
发表于 2013-7-2 21:11:07 | 显示全部楼层 来自: 中国北京
  这个问题两年前我都提过了
发表于 2013-7-2 22:08:09 | 显示全部楼层 来自: 中国台湾
ugnxs 发表于 2013-7-2 20:46 static/image/common/back.gif
1 s# X- z  T4 c; a是新建的空白表格想要做成「單重」*「件數」的模板供日後使用,是在切割清单生成的表格中计算
, ?2 O# C: q; N" D
可以的話請將您做好的表格傳上來~
发表于 2013-7-3 08:12:01 | 显示全部楼层 来自: 中国辽宁沈阳
忘了告诉你,切割清单好象不能直接加方程式,
/ I8 h/ O5 u- Z8 G7 z用材料明细表做的详细切割清单才可记添加方程式。# M& s2 E! q' g1 c$ ?% ~0 J
下面GIF动画图片你参考一下。再到帮助里看一下说明。) n/ v. ?0 h9 y$ E5 ]5 B. v2 E
详细切割清单.gif % ^" F+ l% [$ \3 O
! K4 I: G2 w% q8 x& ~
发表于 2013-7-3 11:48:32 | 显示全部楼层 来自: 中国台湾
qiminger 发表于 2013-7-3 08:12 static/image/common/back.gif
+ T. Z$ E. W$ I7 U忘了告诉你,切割清单好象不能直接加方程式,
* _5 G2 H0 i: U/ i( ]( l1 U" F用材料明细表做的详细切割清单才可记添加方程式。
6 s4 T3 r) ]9 s& o, y下面GIF动 ...
' U& j( E- [1 a$ S" r  o
可能阿丹理解有誤…但是切割清單貌似可以加方程的呀…請 qiminger 前輩幫忙看下…4 J3 u! B+ K- B& y; P0 [
2 g9 i1 I$ j6 n+ X3 Q
capture-1.gif
发表于 2013-7-3 14:39:54 | 显示全部楼层 来自: 中国辽宁沈阳
gt.adan 发表于 2013-7-3 11:48 static/image/common/back.gif
7 [% l% b, I1 z" L& P& p可能阿丹理解有誤…但是切割清單貌似可以加方程的呀…請 qiminger 前輩幫忙看下…

& W. U- ]  }7 N  j谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。
% S1 Q5 d" [/ b% ?5 l% d, K# g) d刚才又试一下,可以象电子表格那样添加,但结果不知为什么不对。
7 C" `1 |* x/ @0 @) b 2.gif
; x* l5 B# E# V2 t
发表于 2013-7-3 17:23:08 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-7-4 01:12 编辑 " O- J; w# V6 x% X; D
qiminger 发表于 2013-7-3 14:39 static/image/common/back.gif6 k6 Q7 C- J9 _+ a
谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。
# z1 O0 k2 z; b% D8 x$ J刚才又试一下,可以象电子表格那样添 ...

0 J* ?0 ]/ g8 H- s謝謝回覆~( L% ]' y1 M5 |" l( ^' n
=========================================================3 B0 Q$ j& O. G. M* T3 b0 a
不知道樓主為何要切割清單又要材料明細表…可能真的有需要吧。! b+ w8 E& S' R% M. U- z* ]* l/ p
=========================================================0 t7 K* f) B, M% z: o4 L3 R
關於您的動畫演示,如果可行的話前輩上傳檔案,阿丹幫忙研究看下~
发表于 2013-7-4 01:17:49 | 显示全部楼层 来自: 中国台湾
qiminger 发表于 2013-7-3 14:39 static/image/common/back.gif
, h  x" Q. \! H谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。# I$ I) F3 \5 H9 H" z, e/ s
刚才又试一下,可以象电子表格那样添 ...

/ q: k" U/ u7 E6 |* z; a網路上說的「焊件切割清單無法寫入方程」這話說得太辭不達意,往往會讓人誤解。
3 n2 o1 b) n( e8 N7 ?/ `應該說無法實現整欄(列)的方程套用,只能對單一輸入窗格套用方程。意即咱們的動畫所示。
+ J( U3 q" r: m件數少的時候,直接輸入方程的方法或許可行;: M- L5 v0 X, S
然而一旦件數多(切割清單多)的時候,每一個欄位都要重新輸入對應的「單重」*「件數」?2 D- v+ x6 F: H% \0 }: n
100件就要輸入100次?光是用想的就累人了…" e* Y1 e% p: W+ k" z

& K5 A$ a2 U  Z5 t8 C
& x8 Q( d' f7 E! X
发表于 2013-7-4 07:48:27 | 显示全部楼层 来自: 中国天津
本帖最后由 qiminger 于 2013-7-4 07:55 编辑
1 x* o- v  h8 i' u
gt.adan 发表于 2013-7-4 01:17 http://www.3dportal.cn/discuz/static/image/common/back.gif: @5 W: ?3 I$ }2 q- \9 D- \% o
網路上說的「焊件切割清單無法寫入方程」這話說得太辭不達意,往往會讓人誤解。
) T) y5 ]+ L& J2 K$ |, b# R$ F應該說無法實現整欄(列) ...

1 A) p8 r6 }4 c9 {# }6 n
  |2 V. _& R- t+ d对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。, U+ l4 e6 b1 g) G
再说楼主的问题,是想在切割清单里加入单重和总重吧,一般的话切割清单里不必加。+ f8 r( B, T# T8 c3 K# P
就是要加的话,详细切割清单和在焊件里设置自定义属性,应该能达到目的。
6 d+ S+ U, I9 ^  T9 [" [+ H* |再请阿丹将那个可以计算总重的切割清单分享一份。+ w, k4 Y9 k, p+ ?. ?2 U6 t- O
焊件.rar (446.02 KB, 下载次数: 59)
发表于 2013-7-5 10:14:23 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-7-5 10:16 编辑
7 c7 r- J7 {1 G* x/ `% }- d
qiminger 发表于 2013-7-4 07:48 static/image/common/back.gif
$ |! C/ [3 a) Y2 v3 h4 ~1 p对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。% X  B7 U# A9 i- O9 ?' G
再说楼主的问题,是想在切 ...
( v/ ~5 @5 |. h& U
回覆 qiminger 前輩,您的工程圖俺打開後,數值是正常的,並無像動畫中顯示的負值。& N1 {0 H1 m) j; O. ?! C
由於焊件清單截至目前仍不支援清單總重的方程寫入,而且逐項輸入也如您所說的沒有利用價值。
2 o6 T; L4 D+ j; B0 ~0 d動手試過幾回後發現無法實現要求,所以阿丹只能借用前人分享的宏來生成單重及總重的屬性以調用。  u& b& v1 y0 J
文件相信前輩應該是有了,若是有需要再請您告知。2 T3 \. F# _1 q

5 f4 K9 L. I4 L# N7 `: N# ?' k QQ截圖20130705101454.gif
发表于 2015-9-21 21:03:53 | 显示全部楼层 来自: 中国河北唐山
qiminger 发表于 2013-7-4 07:48
  D0 f) C0 P4 ~, I8 u9 ~对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。
' U' X0 }  K$ b/ s1 I1 p再说楼主的问题,是想在切 ...
. m% v) t) z. q
谢谢分享!可是为什么列属性是不可编辑的?而且我加了一列:“材质”,也是不能编辑,为什么?
发表于 2015-9-22 07:18:26 | 显示全部楼层 来自: 中国山东威海
mingri 发表于 2015-9-21 21:03( ]) A0 l; @4 m; I. {0 }; A0 R
谢谢分享!可是为什么列属性是不可编辑的?而且我加了一列:“材质”,也是不能编辑,为什么?
8 d2 l' j. h: A' h+ T1 q
切割清单有属性链接,不可编辑,如果一定要编辑,就会断开参考的。。。
发表于 2016-3-7 15:23:28 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2013-7-5 10:14
6 p+ {: ?, _: N回覆 qiminger 前輩,您的工程圖俺打開後,數值是正常的,並無像動畫中顯示的負值。
& J& @8 ?, I6 _9 I0 k8 b5 b由於焊件清單截至目 ...

$ @6 d, F/ S9 n1 I) t) B. ?/ x5 q切割清单里计算每一行的总重确实太麻烦了,请丹大提供一下可以生成总重的宏,谢谢!
发表于 2016-3-9 14:01:48 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2016-3-10 20:17 编辑 ' K( `: `3 {# g! H# ?7 w) X8 n
pzhzshun 发表于 2016-3-7 15:23: A1 C9 y3 O( J9 g2 d/ O0 s9 ~
切割清单里计算每一行的总重确实太麻烦了,请丹大提供一下可以生成总重的宏,谢谢!

$ f  U* e6 ?- d6 ^. _這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。3 P  B8 J$ H( R$ V# k  w" ~% N; A3 c% e3 x
請注意,以下是電腦顯示後綴名稱的代碼,不顯示後綴名稱的請看#21說明。
4 i; x4 H* ~/ G4 g* W. A
  1. Option Explicit2 }) j: q1 T) P8 A" w
  2. Dim swApp As SldWorks.SldWorks/ o4 H" M7 W# _( N# G7 W
  3. Dim Part As SldWorks.ModelDoc2
    : W/ t$ f' m2 D8 a. B3 c  m
  4. Dim thisFeat As SldWorks.Feature8 E( n+ @) A. l6 P
  5. Dim thisSubFeat As SldWorks.Feature; S/ R1 X: t9 q# n. @. S
  6. Dim cutFolder As Object
    , i3 w5 D$ N- ^/ F0 [3 V
  7. Dim BodyCount As Integer
    1 A2 w# }. i, Z7 s8 ]% T
  8. Dim fn As String- X5 z9 j# y; p
  9. Dim pn As String
    $ ?! x9 }5 z. R. g" N/ s9 Y- y
  10. Dim custPropMgr As SldWorks.CustomPropertyManager
    0 @9 J/ e; M, `; r$ F
  11. Dim propNames As Variant
    ' T9 N, U  |* d0 _* c& P8 W
  12. Dim vName As Variant! z1 s. s) N: b9 ]
  13. Dim propName As String: {" C$ h6 m; k* F0 |
  14. Dim Value As String
    ! q+ l; X  ^" y" X
  15. Dim resolvedValue As String
    % _) c$ j& J/ l8 V  a
  16. Dim TotalW As Double& ]- C% d+ E+ J9 I$ _; S: X
  17. Sub main()
      b/ `6 f9 ~; X% K
  18. Set swApp = Application.SldWorks
    9 ^) H- H* k+ y7 s! D' x
  19. Set Part = swApp.ActiveDoc, H' A1 G+ N  F, V$ i1 O2 P2 L
  20. Set thisFeat = Part.FirstFeature9 k; m0 |, `2 s2 y1 R, {
  21. Do While Not thisFeat Is Nothing
    & u! n- P4 L4 ?! @
  22.     If thisFeat.GetTypeName = "SolidBodyFolder" Then4 m, E6 G1 h: u. r3 s; ]* C
  23.         thisFeat.GetSpecificFeature2.UpdateCutList
    5 J- r/ J; j" C8 r
  24.     End If+ \5 j: @  o" z
  25.     Set thisSubFeat = thisFeat.GetFirstSubFeature
    5 P. R. |2 m. D2 {/ b9 |# o
  26.     Do While Not thisSubFeat Is Nothing' x- R* e& k7 \) F" C
  27.         If thisSubFeat.GetTypeName = "CutListFolder" Then) P1 }  [6 Q% i) S, p7 L( ?( [3 L  i
  28.             Set cutFolder = thisSubFeat.GetSpecificFeature24 q2 z; C# o3 A( y! a+ z
  29.         End If* O$ b( f1 P$ z4 D- I& _& F+ |
  30.         If Not cutFolder Is Nothing Then: {) V& E& t4 G1 X" X- w8 L
  31.             BodyCount = cutFolder.GetBodyCount
    & S' f, s- e% _, D8 G
  32.             If BodyCount > 0 Then! u: a, {- q1 Q+ ~; T9 `0 Q0 i0 n
  33.                 Set custPropMgr = thisSubFeat.CustomPropertyManager
    . U/ U  {# K& d8 A, A6 I, @
  34.                 If Not custPropMgr Is Nothing Then' M0 w" P: F, q7 ?: R
  35.                     custPropMgr.Delete "Total Weight"
    ( I2 w/ V! k4 U/ F6 w# }
  36.                     custPropMgr.Delete "Weight"
    0 |. J8 P" V, V  i
  37.                     fn = thisSubFeat.Name* H- g; @! c& T& P) n7 C+ G
  38.                     pn = Part.GetTitle$ @7 n* r# Q$ H, S. j8 Y
  39.                     custPropMgr.Add "WEIGHT", "Text", Chr(34) & "SW-Mass@@@" & fn & "@" & pn & ".SLDPRT" & Chr(34)
    2 I  Y6 \, [! b, o: b
  40.                     propNames = custPropMgr.GetNames1 L7 ?! g: X/ s: f
  41.                     If Not IsEmpty(propNames) Then( f# B8 c7 g2 f5 k# q, @
  42.                         For Each vName In propNames1 a7 G9 K' Y/ ?/ S
  43.                             propName = vName0 p3 [2 g0 U2 ~8 E) G  o
  44.                             custPropMgr.Get2 propName, Value, resolvedValue
    ( z. g0 @1 @& r4 l
  45.                             If propName = "WEIGHT" Then TotalW = resolvedValue
    , ~- D) n: Z4 v7 h/ W" T9 f
  46.                         Next vName5 ~1 a8 }% g/ g4 B# Q) Y2 I
  47.                     End If
    ) }6 q  |* n& g2 o$ l' O& n% v
  48.                     custPropMgr.Add "TOTAL WEIGHT", "Text", Format(BodyCount * TotalW, "0.00")
    1 x$ l8 b7 V. `1 p# p$ G& a) H3 _
  49.                 End If
    ! p9 B9 K+ {' ^" {" G5 ?" ^
  50.                
    4 o- g# n5 |$ F6 ^3 i
  51.             End If3 Z: V3 e* z; N+ [, L
  52.         End If6 J8 [/ a) d+ g
  53.         Set thisSubFeat = thisSubFeat.GetNextSubFeature( N% T* d- a4 ~
  54.     Loop9 M  Y" c9 e- o+ i% D8 }
  55.     Set thisFeat = thisFeat.GetNextFeature
      D# E+ D0 Y" A
  56. Loop  {' u6 u& _0 h$ J( }
  57. End Sub+ v- J8 D( R$ z
复制代码
9 ~" D5 N8 R7 \

# B4 X# [! c7 A5 k6 X' }+ D9 U) @, Q5 B4 C; h5 e3 t  k

, @7 L; i- g3 w; K8 |4 G
发表于 2016-3-9 17:18:30 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-9 14:01+ N7 p1 G4 k6 o1 t& `
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。
! Q  [6 @1 }  }: A; S
) y1 h- [: X& l/ d9 v ...

0 l0 N: K1 z' ^0 `/ j' r- ~2 n3 {" q谢谢丹大,回头试一试,非常感谢!
发表于 2016-3-9 18:08:48 | 显示全部楼层 来自: 中国台湾
pzhzshun 发表于 2016-3-9 17:18
# M, ^8 K2 F2 }# b* k谢谢丹大,回头试一试,非常感谢!

, G4 X$ T& F, U- H! N5 h有機會謝謝悶大吧~我只是順手轉貼而已
发表于 2016-3-10 15:53:27 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-9 14:01* F2 R3 q8 n6 D! C3 F1 ]/ F
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。
6 r- c. H, }' q6 z$ }& i$ Z" [# R" v8 g, f0 G
...
8 d  p& p& W" z
今天测试了一下:
$ w* d3 I" h7 ^' i; \, {代码第39、48行在 sw2012 里没起作用,『Weight』和『Total Weight』没写入切割清单的属性中。
6 C, U/ u  }: l) h" |( q7 Z; t4 E查了一下 API 帮助,发现要把其中的『Add』改为『Add2』,『"Text"』改为『30』才能在切割清单属性中写入这些属性。
7 u% L5 u# t5 q, a3 ]第39行代码中还要把『& ".SLDPRT"』去掉,才能正常显示出单重。' ?4 n: f, V! x0 K0 N7 D
39行代码写成下面这样,也能在切割清单的属性中正常显示单重。
% V4 X' `* [7 E8 d4 S3 L: L
  1. custPropMgr.Add2 "WEIGHT", 30, Chr(34) & "SW-Mass" & Chr(34)
复制代码
8 w( g% G# V8 C3 B; B( e' h+ n
" @- T  G' d8 U0 o' r" X, f2 h4 _
在 sw2016 中,多了一个『Add3』,可以修改属性里的值(『Add2』是不能修改属性的值,只能增加属性)。0 w" F1 P1 K$ O/ H3 r; R
sw2016 中把39、48行代码里的『Add』改为『Add3』,那么下面两行代码就可以删掉了(不能在 sw2012 里使用『Add3』)。
( _- K8 y+ H, Q
  1. custPropMgr.Delete "Total Weight"
    " n* _9 ~4 U) C- O6 d
  2. custPropMgr.Delete "Weight"
复制代码

2 Q+ e3 N. }" o8 n5 z! B上面两行代码删不删掉对结果没有什么影响,就影响一点效率而已。
) F4 J2 U) X' G) M& K
5 @# _5 {' K$ R4 c* k# _这样修改后,这个宏代码就可以在 sw2012 和 sw2016 中使用了(其余版本未测),终于解决了困扰我很久的焊件切割清单中每行总重的问题。# ]: f& M6 j% N$ l( j3 ^, X
6 t3 t, J% s( c
再次感谢丹大和闷大,谢谢!3 ^- a4 S, X+ ]; y. c, U: C

( Q# N4 u- K+ j4 y" `8 V. s: S
发表于 2016-3-10 16:11:35 | 显示全部楼层 来自: 中国四川攀枝花
本帖最后由 pzhzshun 于 2016-3-10 16:14 编辑 ) }2 |& u1 N* \& `% |  B

  J. _  f! e$ }4 E7 X/ i来个使用的效果图) s: U! ]9 n  t) f. r" v
C004.gif
" S2 R6 {3 i5 k& T  Z虽然每次修改零件后都要重新生成总重,这也比一行一行地输入公式求总重方便多了。
$ |8 w: I' @/ k; z, p* a- k: C& r/ R& L8 S8 o. h; X
发表于 2016-3-10 17:32:26 | 显示全部楼层 来自: 中国台湾
pzhzshun 发表于 2016-3-10 15:53
: S6 P: W( V3 B今天测试了一下:
/ J. j0 g  a) |' s代码第39、48行在 sw2012 里没起作用,『Weight』和『Total Weight』没写入切割清单的 ...

8 ^( c# b- u2 `4 B" i那是因為您的電腦沒有顯示檔案的後綴名稱(*.SLDPRT),所以39行才會出問題哦~^^& |, `6 k1 A" R9 B3 x5 m& T
謝謝您的分享
发表于 2016-3-12 16:43:22 | 显示全部楼层 来自: 中国四川绵阳
本帖最后由 eastking1111 于 2016-3-12 16:54 编辑
6 i" n) U  ]: `, P. w. g, e! J2 ]7 e* ?. q# ?, k! r) W
感谢你的描述,终于搞定
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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