QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
切割清单怎样进行方程计算?.jpg 0 t0 T8 o8 A4 [  P; h. h: a
/ l0 s! W) S( c, L. W
如图所示9 H3 K7 P4 e& r  r- A" ?
1.在切割清单中点击表格项目,方程为灰显' I+ g% x, ^, D; z& E$ a) W8 i
2.现有(切割清单项目:单件重)与(表格项目:件数); Y* I6 J; F2 u+ V+ D7 o- g
3.如何计算   单件重*件数    ?
6 K( L4 q3 i9 n+ [. q
发表于 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 编辑 ' E: C! Q# @1 l' T. {3 h

. a  G' u9 S. }0 [$ `樓主這個工程圖…
; D) d5 L+ K' k: n' r是新建的空白表格想要做成「單重」*「件數」的模板供日後使用?" X1 w* U* A8 V1 w4 i  q
還是由零件/裝配體生成的工程圖?( X" L8 _. \8 s+ W- \1 [- b
兩者貌似都沒問題的,不明白樓主的實際操作過程…

评分

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

查看全部评分

 楼主| 发表于 2013-7-2 20:46:10 | 显示全部楼层 来自: 中国河北唐山
gt.adan 发表于 2013-6-30 10:58 static/image/common/back.gif! `6 ~  p, y) \
樓主這個工程圖…
; G: g; {3 z% v5 B是新建的空白表格想要做成「單重」*「件數」的模板供日後使用?
8 L, M0 f0 o2 Y" M2 R4 H還是由零件/裝配體生成 ...
9 k$ S6 O& W7 N" s$ T& s
是新建的空白表格想要做成「單重」*「件數」的模板供日後使用,是在切割清单生成的表格中计算
发表于 2013-7-2 21:11:07 | 显示全部楼层 来自: 中国北京
  这个问题两年前我都提过了
发表于 2013-7-2 22:08:09 | 显示全部楼层 来自: 中国台湾
ugnxs 发表于 2013-7-2 20:46 static/image/common/back.gif
3 e# u2 X: k, o( k+ t, b" L: r3 H; O是新建的空白表格想要做成「單重」*「件數」的模板供日後使用,是在切割清单生成的表格中计算
  m# i% y5 F9 ]6 R
可以的話請將您做好的表格傳上來~
发表于 2013-7-3 08:12:01 | 显示全部楼层 来自: 中国辽宁沈阳
忘了告诉你,切割清单好象不能直接加方程式,: q) ?1 s7 s6 Q( H6 t* q7 v1 q
用材料明细表做的详细切割清单才可记添加方程式。0 z& B3 l7 [- z0 t
下面GIF动画图片你参考一下。再到帮助里看一下说明。
4 v2 |0 @4 ]% Z; B2 d% a  H5 v 详细切割清单.gif * ^! W  W+ F6 z/ }& o0 n
2 B% I. W- _: m
发表于 2013-7-3 11:48:32 | 显示全部楼层 来自: 中国台湾
qiminger 发表于 2013-7-3 08:12 static/image/common/back.gif) v2 {4 _3 l4 ]2 b' A+ m% U3 l. u
忘了告诉你,切割清单好象不能直接加方程式,4 Q) c( J, ^; U- |$ Z
用材料明细表做的详细切割清单才可记添加方程式。. S# s7 e& q1 R- U5 Q
下面GIF动 ...
3 J3 P/ Z- `2 p3 @# `
可能阿丹理解有誤…但是切割清單貌似可以加方程的呀…請 qiminger 前輩幫忙看下…
! v# U3 h$ |+ G0 [0 M
" c3 \6 B: \  X capture-1.gif
发表于 2013-7-3 14:39:54 | 显示全部楼层 来自: 中国辽宁沈阳
gt.adan 发表于 2013-7-3 11:48 static/image/common/back.gif; @  [+ E7 C& E% E. {! D5 ~  ?
可能阿丹理解有誤…但是切割清單貌似可以加方程的呀…請 qiminger 前輩幫忙看下…

- H( v% L: g- R+ t谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。7 U2 A( S2 W3 S1 L
刚才又试一下,可以象电子表格那样添加,但结果不知为什么不对。
% O- S8 w" }4 R4 _' R 2.gif / Q) x! {! g. Z" _
发表于 2013-7-3 17:23:08 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-7-4 01:12 编辑 7 A* i4 a6 s% D/ C2 C
qiminger 发表于 2013-7-3 14:39 static/image/common/back.gif
* P+ \9 p+ ]4 C) i3 o9 Y谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。6 {7 y; p9 R8 H/ n  C4 g4 q1 v
刚才又试一下,可以象电子表格那样添 ...
4 O2 G( E4 v* A7 h8 l9 k
謝謝回覆~# Z- E6 t) O: n7 f0 i. e
=========================================================0 K0 l# G8 E: s8 r) f1 ]- S# l: J8 B
不知道樓主為何要切割清單又要材料明細表…可能真的有需要吧。2 i5 D4 E4 }; G. _( ]. C
=========================================================
, _6 E5 H2 m/ N' m7 w4 I關於您的動畫演示,如果可行的話前輩上傳檔案,阿丹幫忙研究看下~
发表于 2013-7-4 01:17:49 | 显示全部楼层 来自: 中国台湾
qiminger 发表于 2013-7-3 14:39 static/image/common/back.gif
/ j% t: ^+ P) ^7 j* f; g谢谢交流,以前没太细研究在切割清单方程式,草率下定论,见笑了。
8 _1 p; h; `/ N; M, ?! A, }' K( L4 p刚才又试一下,可以象电子表格那样添 ...
* E! R4 |9 l) X5 h4 J; K
網路上說的「焊件切割清單無法寫入方程」這話說得太辭不達意,往往會讓人誤解。: R/ b/ f7 `5 S8 n8 J% h
應該說無法實現整欄(列)的方程套用,只能對單一輸入窗格套用方程。意即咱們的動畫所示。+ R( \. N& Y6 t6 e
件數少的時候,直接輸入方程的方法或許可行;- v5 g4 O# I& Z! K
然而一旦件數多(切割清單多)的時候,每一個欄位都要重新輸入對應的「單重」*「件數」?' W7 d6 q9 H% c4 Z$ a! E$ t* j
100件就要輸入100次?光是用想的就累人了…
+ R* d; l% ~4 P2 v3 M( e. L8 k# U' B' V

5 m9 |& I0 X. w$ n
发表于 2013-7-4 07:48:27 | 显示全部楼层 来自: 中国天津
本帖最后由 qiminger 于 2013-7-4 07:55 编辑 ! \# \" o6 _/ |! V6 b
gt.adan 发表于 2013-7-4 01:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
5 U2 J7 [1 q. V' K5 s" d2 R  b網路上說的「焊件切割清單無法寫入方程」這話說得太辭不達意,往往會讓人誤解。' M+ |6 }8 L, q' V& R4 @- _
應該說無法實現整欄(列) ...
1 Q- @- N& L! ^3 u3 @
/ v/ L- \( t4 o
对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。
6 b$ @6 K% C1 v再说楼主的问题,是想在切割清单里加入单重和总重吧,一般的话切割清单里不必加。
/ [9 ^5 ?' |5 a) v! K( k就是要加的话,详细切割清单和在焊件里设置自定义属性,应该能达到目的。7 L" ?9 Z" ]: S0 r
再请阿丹将那个可以计算总重的切割清单分享一份。2 s' Q% Z, S  d1 h7 Z
焊件.rar (446.02 KB, 下载次数: 59)
发表于 2013-7-5 10:14:23 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2013-7-5 10:16 编辑 " g' Q- w2 M' R, H
qiminger 发表于 2013-7-4 07:48 static/image/common/back.gif
9 P% \( h1 o0 k4 I" a对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。
) o; H6 r& g7 d+ L再说楼主的问题,是想在切 ...

( j: V8 L2 h+ O6 k回覆 qiminger 前輩,您的工程圖俺打開後,數值是正常的,並無像動畫中顯示的負值。
7 o5 q: W- }9 S由於焊件清單截至目前仍不支援清單總重的方程寫入,而且逐項輸入也如您所說的沒有利用價值。
; t" B/ P* _, d% E( b5 {4 K7 o動手試過幾回後發現無法實現要求,所以阿丹只能借用前人分享的宏來生成單重及總重的屬性以調用。: ~' S9 C1 k6 T0 p9 K
文件相信前輩應該是有了,若是有需要再請您告知。
3 q' ^& I* }# ?% |
8 Y& [# I: F2 i# S% O QQ截圖20130705101454.gif
发表于 2015-9-21 21:03:53 | 显示全部楼层 来自: 中国河北唐山
qiminger 发表于 2013-7-4 07:48
" V' F. S/ `/ F2 @" U8 s7 R- i对应栏位输入方程式没有应用价值,我上源文件,还麻烦阿丹有时间研究一下。
8 t3 U1 @8 ?4 o/ \再说楼主的问题,是想在切 ...

# J/ q1 Q* E& L+ h谢谢分享!可是为什么列属性是不可编辑的?而且我加了一列:“材质”,也是不能编辑,为什么?
发表于 2015-9-22 07:18:26 | 显示全部楼层 来自: 中国山东威海
mingri 发表于 2015-9-21 21:03# N  ?# g) Y; v+ L
谢谢分享!可是为什么列属性是不可编辑的?而且我加了一列:“材质”,也是不能编辑,为什么?
4 @7 W  e: z) n8 x
切割清单有属性链接,不可编辑,如果一定要编辑,就会断开参考的。。。
发表于 2016-3-7 15:23:28 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2013-7-5 10:144 Q4 \- S: _( e' N9 g$ m% b6 W
回覆 qiminger 前輩,您的工程圖俺打開後,數值是正常的,並無像動畫中顯示的負值。/ Q! N9 U# h5 n2 C* K
由於焊件清單截至目 ...
4 ^3 u, }) J$ Q( }7 |, j# b
切割清单里计算每一行的总重确实太麻烦了,请丹大提供一下可以生成总重的宏,谢谢!
发表于 2016-3-9 14:01:48 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2016-3-10 20:17 编辑 ) }: H! f0 h/ G$ w0 |% ?$ ]  P
pzhzshun 发表于 2016-3-7 15:232 f9 |0 A' H6 L$ g' ?* I
切割清单里计算每一行的总重确实太麻烦了,请丹大提供一下可以生成总重的宏,谢谢!

3 J; ?( }2 Z" i! h  [6 X# z& w這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。/ }; L' z" q$ B/ S! |
請注意,以下是電腦顯示後綴名稱的代碼,不顯示後綴名稱的請看#21說明。& u% m, r5 s4 p' Z
  1. Option Explicit
      U* C+ t/ H/ ^/ x
  2. Dim swApp As SldWorks.SldWorks' y) D1 g( y% u/ z5 K8 @& V2 Z
  3. Dim Part As SldWorks.ModelDoc2
    9 G8 _1 T& g) f& ^: \
  4. Dim thisFeat As SldWorks.Feature
    6 I3 M# P9 ~" Z
  5. Dim thisSubFeat As SldWorks.Feature. S1 Q  H3 X4 C
  6. Dim cutFolder As Object8 K+ R1 [  e8 E( I; w" `' ^
  7. Dim BodyCount As Integer
    / b7 z& a" [" v! |+ f
  8. Dim fn As String
    + |- }. t8 T6 t" ?! Y- A
  9. Dim pn As String
    2 a: F/ q, X, p& n) [
  10. Dim custPropMgr As SldWorks.CustomPropertyManager8 J/ g8 D& D9 x. c
  11. Dim propNames As Variant
    8 c: E# D! h1 l9 v9 i
  12. Dim vName As Variant
    ! X/ g1 W, K; s) W' m  R
  13. Dim propName As String
    7 v, W. e8 G1 i7 D+ v
  14. Dim Value As String7 u( y- X" u: T
  15. Dim resolvedValue As String
    & H% A% l$ C$ V6 q
  16. Dim TotalW As Double
    1 ~9 t4 U9 g, K5 n' i, O* Y' `
  17. Sub main()% i  u! h2 O' J0 j1 Q+ O0 i
  18. Set swApp = Application.SldWorks2 j' e/ Z4 e5 l4 G
  19. Set Part = swApp.ActiveDoc
    7 c3 y$ z* ~! P  d3 L4 Z6 j
  20. Set thisFeat = Part.FirstFeature
    ! D0 K, n* m0 X7 ^* T7 K" r
  21. Do While Not thisFeat Is Nothing
    + _  y+ v- X4 r& ~3 z4 \& ^" `2 [
  22.     If thisFeat.GetTypeName = "SolidBodyFolder" Then/ {, o. z/ v7 M$ P& J" Y, m
  23.         thisFeat.GetSpecificFeature2.UpdateCutList1 Z  W1 L+ b6 K! B  w( B& c
  24.     End If( g" {6 v0 n" l0 Z. H1 V
  25.     Set thisSubFeat = thisFeat.GetFirstSubFeature
    - }& i" c( ~( w+ L9 v
  26.     Do While Not thisSubFeat Is Nothing+ N4 I" `; N* R( S
  27.         If thisSubFeat.GetTypeName = "CutListFolder" Then
    + c% P. }( O) Z+ l; Q+ s. L  [
  28.             Set cutFolder = thisSubFeat.GetSpecificFeature2
    ( d8 l* Y/ K* {$ A
  29.         End If; d7 D/ }( f% ?9 U5 V
  30.         If Not cutFolder Is Nothing Then/ w. Q# L/ O" t
  31.             BodyCount = cutFolder.GetBodyCount
    - l. B, n- A( b
  32.             If BodyCount > 0 Then8 i+ z* f2 f2 `( K; @
  33.                 Set custPropMgr = thisSubFeat.CustomPropertyManager
    ! d. U/ n2 `% |$ A
  34.                 If Not custPropMgr Is Nothing Then
    . m/ Z; ?/ i2 t" W
  35.                     custPropMgr.Delete "Total Weight"$ W4 d* W% H, K" D1 G- n
  36.                     custPropMgr.Delete "Weight"3 P5 U2 x3 L" A/ H5 U! o
  37.                     fn = thisSubFeat.Name
    2 p, G* _5 [8 ~; z2 H" R
  38.                     pn = Part.GetTitle
    6 C1 _, ]: u8 M0 h
  39.                     custPropMgr.Add "WEIGHT", "Text", Chr(34) & "SW-Mass@@@" & fn & "@" & pn & ".SLDPRT" & Chr(34)
    ! p; i% Z! a$ d+ r1 _1 F2 j
  40.                     propNames = custPropMgr.GetNames
      N: c, Z+ T8 R4 I. r
  41.                     If Not IsEmpty(propNames) Then: U1 U9 \7 A4 o: m/ y6 Q
  42.                         For Each vName In propNames
    2 A$ r* W9 y0 A. ~1 T! b
  43.                             propName = vName# y* U+ i" z9 w
  44.                             custPropMgr.Get2 propName, Value, resolvedValue
    : w$ n, I: o: s* @5 u7 ?
  45.                             If propName = "WEIGHT" Then TotalW = resolvedValue. G  a5 {, ~2 p' Y. c& U' L
  46.                         Next vName' ^7 {, _6 D+ ]
  47.                     End If
    5 G, g. T/ N8 R- f
  48.                     custPropMgr.Add "TOTAL WEIGHT", "Text", Format(BodyCount * TotalW, "0.00")
    : _0 {1 n* \( C+ Q' E& f7 S( b
  49.                 End If
    7 P% ~8 L8 \. o! d6 P7 H2 t
  50.                
    ; ~9 z& }9 d9 Z/ ~- c
  51.             End If: t' p) E1 P( l- p/ t0 E
  52.         End If
    8 v2 r4 {* r% D- @2 J' _
  53.         Set thisSubFeat = thisSubFeat.GetNextSubFeature
    8 f4 Z8 Q  t- D
  54.     Loop
    / U1 j# B3 {" @4 N
  55.     Set thisFeat = thisFeat.GetNextFeature
    % q2 q9 `3 F( j3 b! o
  56. Loop* t! @5 C; X4 |3 C2 ?9 Z0 s
  57. End Sub
    1 z' i) B, x- x0 q1 K+ F& a2 {
复制代码

5 F, M' n& @: C& a- E  t# |! }
! r! f1 T% \! n1 p) C3 `. B# v- b. u# l" e( j% y/ f
6 @+ q2 ~. v3 H2 N8 j8 F
发表于 2016-3-9 17:18:30 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-9 14:01/ L( o3 H* z4 h( p# {( f" @
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。
. b/ _( N/ u9 S7 u$ ^/ c6 H  W' P0 @; G6 d' {
...
8 D9 |- a$ H" d: V( l3 p7 [' h9 ^
谢谢丹大,回头试一试,非常感谢!
发表于 2016-3-9 18:08:48 | 显示全部楼层 来自: 中国台湾
pzhzshun 发表于 2016-3-9 17:18, v! x" _1 g1 K: Y. w
谢谢丹大,回头试一试,非常感谢!
& p% w5 }( W# v: w! s1 m% i  z
有機會謝謝悶大吧~我只是順手轉貼而已
发表于 2016-3-10 15:53:27 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-9 14:011 [- H  Y. ?" E7 ?" `
這個宏是悶大於2009年分享的   焊件切割清单中自动增加『单重』和『总重』的属性以下內容轉貼自開思。
% _; G$ }8 R+ x- m6 I" g) i- W& M2 X& |
...
% ]/ D% s( m$ |
今天测试了一下:
+ {0 n" b8 u0 a& ]5 O代码第39、48行在 sw2012 里没起作用,『Weight』和『Total Weight』没写入切割清单的属性中。
7 b/ O* k& _/ P7 T. R- V查了一下 API 帮助,发现要把其中的『Add』改为『Add2』,『"Text"』改为『30』才能在切割清单属性中写入这些属性。
* b# K; \2 ~, I( e) M第39行代码中还要把『& ".SLDPRT"』去掉,才能正常显示出单重。
( i3 e$ t, a8 G* l5 H. u3 a2 ~  y39行代码写成下面这样,也能在切割清单的属性中正常显示单重。$ Z# z0 Y1 j) ?8 l: z' O5 k- z
  1. custPropMgr.Add2 "WEIGHT", 30, Chr(34) & "SW-Mass" & Chr(34)
复制代码
, r' q) d! _. o8 a& F7 i$ }0 e

( \, ?- j) v+ H! Z/ E在 sw2016 中,多了一个『Add3』,可以修改属性里的值(『Add2』是不能修改属性的值,只能增加属性)。! R5 _$ ~0 u5 S2 j4 h6 D( w4 w
sw2016 中把39、48行代码里的『Add』改为『Add3』,那么下面两行代码就可以删掉了(不能在 sw2012 里使用『Add3』)。$ u: k! F. r" _% C( Y1 A
  1. custPropMgr.Delete "Total Weight"
    ! {& L( A! C0 `# D. `
  2. custPropMgr.Delete "Weight"
复制代码
; F3 q! L4 Z* S5 N% v4 j2 Y
上面两行代码删不删掉对结果没有什么影响,就影响一点效率而已。, r; N; l; l& `* K- S7 K# e' r* D1 b

+ n+ y8 s  R2 l" y+ T% R这样修改后,这个宏代码就可以在 sw2012 和 sw2016 中使用了(其余版本未测),终于解决了困扰我很久的焊件切割清单中每行总重的问题。& b* {2 X; W  Q
0 r' h% X' _) h& R" \! S3 i
再次感谢丹大和闷大,谢谢!  c& l, V( }- ^# g: Y+ R- q! i8 @
: Z8 [$ A: R% p1 w) k. D( C- P# x
发表于 2016-3-10 16:11:35 | 显示全部楼层 来自: 中国四川攀枝花
本帖最后由 pzhzshun 于 2016-3-10 16:14 编辑 / ]2 j: C. z) M8 u% R
. |3 u9 t, X4 L# V7 I
来个使用的效果图' L* s1 Z6 n$ S  K( H0 r/ `
C004.gif 8 R" W6 b7 f0 k  _+ e+ Z: j, ]9 M
虽然每次修改零件后都要重新生成总重,这也比一行一行地输入公式求总重方便多了。
/ C5 w$ i2 S, |
* w; J& \0 `" [2 l- O
发表于 2016-3-10 17:32:26 | 显示全部楼层 来自: 中国台湾
pzhzshun 发表于 2016-3-10 15:53
* D: H2 C; ~! M1 V今天测试了一下:
& u* G1 K4 E9 i' `. v1 T代码第39、48行在 sw2012 里没起作用,『Weight』和『Total Weight』没写入切割清单的 ...

5 t& n& E- i8 e4 y那是因為您的電腦沒有顯示檔案的後綴名稱(*.SLDPRT),所以39行才會出問題哦~^^
) w% U0 q! L; |* ~2 v謝謝您的分享
发表于 2016-3-12 16:43:22 | 显示全部楼层 来自: 中国四川绵阳
本帖最后由 eastking1111 于 2016-3-12 16:54 编辑 1 V3 q" P5 H- q, c) ~9 v

- D2 v' s1 r0 a感谢你的描述,终于搞定
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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