QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
切割清单怎样进行方程计算?.jpg
9 w7 G1 ]3 u0 W- s! Z2 G% V! b8 x5 h7 r2 j
如图所示
  b' d/ ~5 z- w# f) y1.在切割清单中点击表格项目,方程为灰显# n( T( A! E: M1 v4 Q  z& N3 A
2.现有(切割清单项目:单件重)与(表格项目:件数)
4 i6 Y; X; m* u7 G/ t: }3.如何计算   单件重*件数    ?
0 g' c1 z$ `$ l7 g9 s
发表于 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 编辑
4 }5 a6 ^8 c& i+ u
1 b* E) t! K/ N樓主這個工程圖…/ S  k: E" a9 }
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用?  R! @; y4 @8 {: Y; e
還是由零件/裝配體生成的工程圖?
& u. J- S4 z7 j8 o+ B7 y兩者貌似都沒問題的,不明白樓主的實際操作過程…

评分

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

查看全部评分

 楼主| 发表于 2013-7-2 20:46:10 | 显示全部楼层 来自: 中国河北唐山
gt.adan 发表于 2013-6-30 10:58 static/image/common/back.gif
' ?$ T/ j# j: e& C樓主這個工程圖…3 T( y$ ]2 s# Q1 e' z! k+ \
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用?, }# m7 A4 \, o2 i% h6 _# K! a
還是由零件/裝配體生成 ...
* a& B1 Q4 R0 @# [4 H
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用,是在切割清单生成的表格中计算
发表于 2013-7-2 21:11:07 | 显示全部楼层 来自: 中国北京
  这个问题两年前我都提过了
发表于 2013-7-2 22:08:09 | 显示全部楼层 来自: 中国台湾
ugnxs 发表于 2013-7-2 20:46 static/image/common/back.gif9 X' a  a6 g/ E3 N3 P2 H' r& D. @( |  ^
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用,是在切割清单生成的表格中计算

; v, y1 c6 x! c4 d可以的話請將您做好的表格傳上來~
发表于 2013-7-3 08:12:01 | 显示全部楼层 来自: 中国辽宁沈阳
忘了告诉你,切割清单好象不能直接加方程式,9 N! A7 e2 }# G8 G! Y
用材料明细表做的详细切割清单才可记添加方程式。
8 s) x; X. J8 l下面GIF动画图片你参考一下。再到帮助里看一下说明。  J$ k8 _2 b: x+ e! o. w
详细切割清单.gif
# G/ }7 M7 u9 G# j: F
" e8 D! H6 G) O4 {" _' S! i, ?
发表于 2013-7-3 11:48:32 | 显示全部楼层 来自: 中国台湾
qiminger 发表于 2013-7-3 08:12 static/image/common/back.gif: z+ G  l9 k. a( R( R+ T
忘了告诉你,切割清单好象不能直接加方程式,2 X/ Q( t" b- v3 z& R5 U
用材料明细表做的详细切割清单才可记添加方程式。0 k3 H& c7 Q! ]& }
下面GIF动 ...
! S2 w& H* Z5 h/ }- |% x
可能阿丹理解有誤…但是切割清單貌似可以加方程的呀…請 qiminger 前輩幫忙看下…
/ J- j, ~  H+ X* K0 o& m+ g: m5 ~% e5 R7 d
capture-1.gif
发表于 2013-7-3 14:39:54 | 显示全部楼层 来自: 中国辽宁沈阳
gt.adan 发表于 2013-7-3 11:48 static/image/common/back.gif
# a2 Y; E- t- Y; j9 Q7 b可能阿丹理解有誤…但是切割清單貌似可以加方程的呀…請 qiminger 前輩幫忙看下…

7 G" S* r7 Z- B7 \, B- o! _谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。
% P- U) X# h2 f- @' v刚才又试一下,可以象电子表格那样添加,但结果不知为什么不对。9 g+ o  C1 z; s1 d  i
2.gif
' D5 S* t" ?6 W6 Y
发表于 2013-7-3 17:23:08 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-7-4 01:12 编辑
  ]2 I4 l/ K. L: N& l
qiminger 发表于 2013-7-3 14:39 static/image/common/back.gif& j8 V, I, }7 h* E3 s' E
谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。6 ?( c9 g' D- G8 l9 G
刚才又试一下,可以象电子表格那样添 ...

# e8 ]0 Z' s- u0 j: a9 C" U謝謝回覆~
3 F, q7 E6 W3 e7 [- S0 }. y; y=========================================================) U5 H" M* o+ r" N" c' g7 @/ L
不知道樓主為何要切割清單又要材料明細表…可能真的有需要吧。5 u% [6 U/ L% a, _2 @
=========================================================/ Q0 \% e( W; f& r4 w/ x# Y
關於您的動畫演示,如果可行的話前輩上傳檔案,阿丹幫忙研究看下~
发表于 2013-7-4 01:17:49 | 显示全部楼层 来自: 中国台湾
qiminger 发表于 2013-7-3 14:39 static/image/common/back.gif8 V, C9 v' ^+ }
谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。
% A0 B: G8 ~% }- \, z+ z刚才又试一下,可以象电子表格那样添 ...

9 S; T0 }) C: Z$ f! C, m4 N! y. N網路上說的「焊件切割清單無法寫入方程」這話說得太辭不達意,往往會讓人誤解。: L3 f# [( \6 @& K. h& u$ G
應該說無法實現整欄(列)的方程套用,只能對單一輸入窗格套用方程。意即咱們的動畫所示。" `! v- d7 _: l. R  G: l
件數少的時候,直接輸入方程的方法或許可行;  M- A. Q4 w. X8 o2 P; X
然而一旦件數多(切割清單多)的時候,每一個欄位都要重新輸入對應的「單重」*「件數」?; T7 D4 \' }% G: ^* J7 H/ J
100件就要輸入100次?光是用想的就累人了…
! Q# M9 h' w2 T$ Z% }; o9 k7 n$ e: _. K4 L0 ~5 ~7 g$ R

5 Q; A/ f' d$ p3 ?8 s* E
发表于 2013-7-4 07:48:27 | 显示全部楼层 来自: 中国天津
本帖最后由 qiminger 于 2013-7-4 07:55 编辑
' d+ A) B6 ^$ O0 `. O6 Q
gt.adan 发表于 2013-7-4 01:17 http://www.3dportal.cn/discuz/static/image/common/back.gif9 s1 W+ Q% W* Y! p, m3 b) M
網路上說的「焊件切割清單無法寫入方程」這話說得太辭不達意,往往會讓人誤解。/ `$ M8 L! M8 B, f" @, I
應該說無法實現整欄(列) ...
) g. z/ v& n# x
5 c! J: _$ ^, g3 K
对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。7 T! V7 e, E6 ]
再说楼主的问题,是想在切割清单里加入单重和总重吧,一般的话切割清单里不必加。+ A* P4 I; J7 e- w; e
就是要加的话,详细切割清单和在焊件里设置自定义属性,应该能达到目的。0 p5 A# p9 C" x! s9 H
再请阿丹将那个可以计算总重的切割清单分享一份。% h, `5 d1 C* {( E' g: @
焊件.rar (446.02 KB, 下载次数: 59)
发表于 2013-7-5 10:14:23 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-7-5 10:16 编辑
4 O9 X% i' @! y/ M
qiminger 发表于 2013-7-4 07:48 static/image/common/back.gif5 p  b5 b* p- E. F+ Y  R2 J
对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。' i" z* T4 K8 F  K0 D
再说楼主的问题,是想在切 ...
: E) |3 A* D) V. f" M
回覆 qiminger 前輩,您的工程圖俺打開後,數值是正常的,並無像動畫中顯示的負值。5 v) r- Q' z8 b' E
由於焊件清單截至目前仍不支援清單總重的方程寫入,而且逐項輸入也如您所說的沒有利用價值。+ I4 Z- X6 U( b' C7 N$ d
動手試過幾回後發現無法實現要求,所以阿丹只能借用前人分享的宏來生成單重及總重的屬性以調用。3 |) K5 r/ y- C+ t, f+ F5 v6 C9 c
文件相信前輩應該是有了,若是有需要再請您告知。
) ]1 r; G  ^6 l( F9 v0 n4 P" u) e; w$ q( h7 r" M+ X, N
QQ截圖20130705101454.gif
发表于 2015-9-21 21:03:53 | 显示全部楼层 来自: 中国河北唐山
qiminger 发表于 2013-7-4 07:48$ e$ ^; F- [$ P+ f' j2 g; Y
对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。
9 p9 [' @3 ?/ M. o! g7 x再说楼主的问题,是想在切 ...
" m1 l/ z3 d  `+ m8 ?1 t  G0 N
谢谢分享!可是为什么列属性是不可编辑的?而且我加了一列:“材质”,也是不能编辑,为什么?
发表于 2015-9-22 07:18:26 | 显示全部楼层 来自: 中国山东威海
mingri 发表于 2015-9-21 21:03
. E! N: m6 L- ]! m% y谢谢分享!可是为什么列属性是不可编辑的?而且我加了一列:“材质”,也是不能编辑,为什么?
6 E' V9 Y6 y/ y% x$ s- D
切割清单有属性链接,不可编辑,如果一定要编辑,就会断开参考的。。。
发表于 2016-3-7 15:23:28 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2013-7-5 10:14+ p1 y& o' e( ]% n, z6 E
回覆 qiminger 前輩,您的工程圖俺打開後,數值是正常的,並無像動畫中顯示的負值。7 @5 p4 `0 w) K) K! Y  ?
由於焊件清單截至目 ...

1 \, n( Z" J* v& ~! E切割清单里计算每一行的总重确实太麻烦了,请丹大提供一下可以生成总重的宏,谢谢!
发表于 2016-3-9 14:01:48 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2016-3-10 20:17 编辑
! |. C' c4 z& w
pzhzshun 发表于 2016-3-7 15:23
( i+ b8 z6 g4 |" ^切割清单里计算每一行的总重确实太麻烦了,请丹大提供一下可以生成总重的宏,谢谢!

! d- Q: _5 f* L4 x$ A# J這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。( Y' {: z3 J* x3 ?
請注意,以下是電腦顯示後綴名稱的代碼,不顯示後綴名稱的請看#21說明。
, Q" u3 O5 g5 [- c7 _
  1. Option Explicit
      ^* N# k' ^- y% [
  2. Dim swApp As SldWorks.SldWorks* W& Y6 z3 }" v) d# W
  3. Dim Part As SldWorks.ModelDoc2" k! A1 I3 d$ `# C
  4. Dim thisFeat As SldWorks.Feature6 \& v5 E3 a/ k+ E% ]: b5 ?9 w. ~; h
  5. Dim thisSubFeat As SldWorks.Feature
      ^) A" T# b9 H8 R  I9 u) k
  6. Dim cutFolder As Object% w0 J& ]' f, e. R% F, c. x
  7. Dim BodyCount As Integer8 c/ |+ y) V0 p/ `. x
  8. Dim fn As String4 @0 y7 u+ M# D( K; y4 R6 z
  9. Dim pn As String
    6 Z* t" F( f& V! V: V) V; _
  10. Dim custPropMgr As SldWorks.CustomPropertyManager
    9 o% ^3 \; A& s  J
  11. Dim propNames As Variant/ G1 E* T! `% Y/ H. D2 l- i' o) I
  12. Dim vName As Variant5 m' ^8 E9 v8 V  d; R- M. f
  13. Dim propName As String  j7 B% S/ w, K- X
  14. Dim Value As String
    : \' ~. O9 C8 x' M% T$ m/ h
  15. Dim resolvedValue As String
    & c. C! i: M. u; z
  16. Dim TotalW As Double
    6 L- Q% o$ v0 L) ~( I; M4 q. e
  17. Sub main(): w5 ^0 |. n7 m2 G9 c) l5 `! I3 F
  18. Set swApp = Application.SldWorks
    1 X* L5 P+ Q& e, h
  19. Set Part = swApp.ActiveDoc
    + g, q0 x0 |/ U  K  @, D  \
  20. Set thisFeat = Part.FirstFeature2 C, r$ b, ?$ a" j- [8 |* O  c: C
  21. Do While Not thisFeat Is Nothing
    4 }4 z' Z5 {; v8 f, M
  22.     If thisFeat.GetTypeName = "SolidBodyFolder" Then
    . t' Z/ m0 l" ?
  23.         thisFeat.GetSpecificFeature2.UpdateCutList
    4 h0 m1 V/ V" t  Z2 W0 i# r
  24.     End If
    ! `, I* g" u6 Y& F+ b8 P
  25.     Set thisSubFeat = thisFeat.GetFirstSubFeature# D) a0 _3 z5 y( T/ S5 E
  26.     Do While Not thisSubFeat Is Nothing. o4 x) a! R! J: b/ e6 Z( @
  27.         If thisSubFeat.GetTypeName = "CutListFolder" Then! w/ {3 \+ t; s
  28.             Set cutFolder = thisSubFeat.GetSpecificFeature23 |% {4 y* R; G0 ~& L
  29.         End If
    ( B, S. B' d! w/ x7 w
  30.         If Not cutFolder Is Nothing Then
    , s+ m- F2 _5 z/ t- g: C; }, ?
  31.             BodyCount = cutFolder.GetBodyCount
    - i; x& d# d: Q" v3 {1 {
  32.             If BodyCount > 0 Then
    / Z0 J0 w6 }2 N" c$ g. R
  33.                 Set custPropMgr = thisSubFeat.CustomPropertyManager. \) Q- Q. y! Z( ~4 R; p5 n5 e
  34.                 If Not custPropMgr Is Nothing Then$ o% V7 l" g( N4 v6 z: l
  35.                     custPropMgr.Delete "Total Weight"4 F0 B3 j1 t, w) j! ]
  36.                     custPropMgr.Delete "Weight"7 A$ s0 o% h, y
  37.                     fn = thisSubFeat.Name
    - V. N& C; n1 B- w
  38.                     pn = Part.GetTitle
    : _* q& F+ v6 M6 O9 @* F3 ~
  39.                     custPropMgr.Add "WEIGHT", "Text", Chr(34) & "SW-Mass@@@" & fn & "@" & pn & ".SLDPRT" & Chr(34)% L- R/ q& A2 {( U1 f" `5 k
  40.                     propNames = custPropMgr.GetNames
    ) l3 p0 Z+ ~" v! o) P# ?$ x; U1 w" M
  41.                     If Not IsEmpty(propNames) Then1 Z- u: a9 O5 e' s2 c1 [
  42.                         For Each vName In propNames
    0 o- B, h6 d0 j/ R  g
  43.                             propName = vName. `5 y7 D& ^) g8 g2 y2 S! i
  44.                             custPropMgr.Get2 propName, Value, resolvedValue
    0 ~0 W  G, |2 ]; v  n! V* F
  45.                             If propName = "WEIGHT" Then TotalW = resolvedValue
    ! `" V' O* i5 L5 ^" [/ j% ]
  46.                         Next vName/ G* {5 m' W/ j
  47.                     End If' |3 C( U& T6 {( m" A3 B
  48.                     custPropMgr.Add "TOTAL WEIGHT", "Text", Format(BodyCount * TotalW, "0.00")
    , ~0 s( R6 l# h8 t( z; u
  49.                 End If
    0 K- B+ U, G+ J  `% [
  50.                 $ U; l/ J% ^4 \
  51.             End If4 \: y# A* b+ q2 E
  52.         End If3 m* u1 |2 f! H5 _: a0 U
  53.         Set thisSubFeat = thisSubFeat.GetNextSubFeature
    4 z5 a& J, _0 ^& `) }7 q3 P: @
  54.     Loop% J9 g; {( j! U' }+ ?( n. J1 Q
  55.     Set thisFeat = thisFeat.GetNextFeature# ~; |2 f' d% K4 ]4 _# f4 H
  56. Loop
    6 Z) Z& m" m! a6 l# o0 i2 I
  57. End Sub
    6 I  Q; w. {3 P# ?& q
复制代码

$ F* E1 \2 \+ T  j' d0 Y( e& e; F! z! N3 n/ u
& i8 W# }- c9 G

, k+ n9 j# s! L8 q9 @) s
发表于 2016-3-9 17:18:30 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-9 14:01+ j# j! \9 R# L, k
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。
9 {+ p* b' q! H9 _* D- [6 J7 J. G1 o( Y* [7 x) X
...
. H: V4 |4 d5 m/ y2 n
谢谢丹大,回头试一试,非常感谢!
发表于 2016-3-9 18:08:48 | 显示全部楼层 来自: 中国台湾
pzhzshun 发表于 2016-3-9 17:18# t9 L, Q5 s2 J  }3 D9 Y. q% J2 e
谢谢丹大,回头试一试,非常感谢!
0 |" O3 D' n* Y7 z( ^! m/ u( z
有機會謝謝悶大吧~我只是順手轉貼而已
发表于 2016-3-10 15:53:27 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-9 14:012 @2 ^  v  ^; c, T' _
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。& {5 q( r- U4 R: [# N6 P0 k

6 d, @5 y  a6 M# \- [; A) v ...
- G6 y+ k0 ~% G  T( m
今天测试了一下:
) g1 x) g: h. j+ U9 Q$ R( V代码第39、48行在 sw2012 里没起作用,『Weight』和『Total Weight』没写入切割清单的属性中。
  U4 d& v4 o# u2 U; z. o5 r查了一下 API 帮助,发现要把其中的『Add』改为『Add2』,『"Text"』改为『30』才能在切割清单属性中写入这些属性。
- o6 w2 W7 d0 R" R第39行代码中还要把『& ".SLDPRT"』去掉,才能正常显示出单重。
) @( M$ e! P' D) T39行代码写成下面这样,也能在切割清单的属性中正常显示单重。3 M! [( @: F' U4 e1 j$ S( n: ]
  1. custPropMgr.Add2 "WEIGHT", 30, Chr(34) & "SW-Mass" & Chr(34)
复制代码

+ \4 E3 i1 `6 {
! _  G( ^* c  U" M在 sw2016 中,多了一个『Add3』,可以修改属性里的值(『Add2』是不能修改属性的值,只能增加属性)。2 U% ]7 k1 H: p
sw2016 中把39、48行代码里的『Add』改为『Add3』,那么下面两行代码就可以删掉了(不能在 sw2012 里使用『Add3』)。$ H; K9 N8 Y& C! @
  1. custPropMgr.Delete "Total Weight"
    . s8 Z. r' }% @% Y) W6 l# m  n
  2. custPropMgr.Delete "Weight"
复制代码

6 E0 t, O' e' E1 I! Q上面两行代码删不删掉对结果没有什么影响,就影响一点效率而已。& g* @: N7 R$ a% U) f

' N" r  q& X- ~- K这样修改后,这个宏代码就可以在 sw2012 和 sw2016 中使用了(其余版本未测),终于解决了困扰我很久的焊件切割清单中每行总重的问题。( L. Y/ A/ R( r' Z
0 n% `7 I. S$ O' v/ ~. O! _! L( o
再次感谢丹大和闷大,谢谢!
5 O' ~' o, B) I4 a, H7 s/ w: N5 P& @: z7 @0 T! k/ x
发表于 2016-3-10 16:11:35 | 显示全部楼层 来自: 中国四川攀枝花
本帖最后由 pzhzshun 于 2016-3-10 16:14 编辑 1 E4 k( ]3 }; J

" A/ L9 Q  ?" k% I来个使用的效果图
2 i* s: d6 U/ p, `7 F# A8 P  ^ C004.gif 5 G* @% t9 ?8 l' W" I
虽然每次修改零件后都要重新生成总重,这也比一行一行地输入公式求总重方便多了。7 J: i" g+ Y6 e3 [- A5 G( F

! M" q4 g5 v" g
发表于 2016-3-10 17:32:26 | 显示全部楼层 来自: 中国台湾
pzhzshun 发表于 2016-3-10 15:53
$ T: |" d7 D/ w- V; z今天测试了一下:
. V5 T0 Y+ q% D# `# M代码第39、48行在 sw2012 里没起作用,『Weight』和『Total Weight』没写入切割清单的 ...

: a& [. _! o7 k0 F0 ^. a6 [! w那是因為您的電腦沒有顯示檔案的後綴名稱(*.SLDPRT),所以39行才會出問題哦~^^0 W# {' w: u) u( d' D' }8 X/ @
謝謝您的分享
发表于 2016-3-12 16:43:22 | 显示全部楼层 来自: 中国四川绵阳
本帖最后由 eastking1111 于 2016-3-12 16:54 编辑 4 E4 n* T0 F1 T9 Q
' n. H3 W. t3 E
感谢你的描述,终于搞定
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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