QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1336|回复: 3
收起左侧

[讨论] 为什么材料明细表的数量会出现零值?

[复制链接]
发表于 2015-8-31 09:59:10 | 显示全部楼层 |阅读模式 来自: 中国甘肃兰州

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

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

x
在材料明细表中,产生零值的原因是什么?# V7 U, A; f: F+ ]6 w# S
7 x$ R) u# i4 t# M% T! M
1.jpg
: c" ~3 b# P5 W( R  W4 }) F9 I1 o\* ]0 B4 z/ V  [8 X' e

* P/ {. V+ g6 v, O! c+ t5 q, c8 v" [7 a

& `5 `* Q" G; N& D9 h
! {" R( O7 R- g% {) q
 楼主| 发表于 2015-8-31 13:50:05 | 显示全部楼层 来自: 中国甘肃兰州
本帖最后由 ning84 于 2015-8-31 14:09 编辑 5 l' m8 t. E* }. d
7 ]* H) M3 _4 \/ i9 N, N
与版本没有任何关系。Sw2013照样也出现同样问题。
! q- c1 p; ~- }( c( _" q4 Y出现这个问题的原因是运行了这段API程序" l& H# W7 \9 d; l  ?5 e  o

" U! W9 a2 L( _% a* {1 Q% T- m
  1. ' F: Y4 v) V2 z5 x2 i. ~4 p2 Y* a
  2. Private Sub proceBom()
    # _7 j& H# s* M$ a! Y
  3.    Dim SwApp As SldWorks.SldWorks, SwModel As ModelDoc2
    ( |9 f% j. ?3 l  G) ~+ {
  4.       Set SwApp = Application.SldWorks' n4 x0 _  p/ P/ O% J
  5.       Set SwModel = SwApp.ActiveDoc
    % T, u. k3 `, Z! D
  6.    Dim SwDraw As DrawingDoc, SwView As View) `* p. P4 w! u! a8 z
  7.       Set SwDraw = SwModel
    $ f+ Q. n$ K+ L+ {, W& n
  8.       Set SwView = SwDraw.GetFirstView
    % f2 G% j* Y$ l# b) X, ]$ K4 O( M0 R
  9.       Set SwView = SwView.GetNextView
    & F3 v# M/ L4 h* K: n, S6 E2 K
  10.    Dim ConfName- l% U' F5 x# d
  11.       ConfName = SwView.ReferencedConfiguration' t: ], `/ I2 a% U% m- m
  12.       Set SwView = SwView.GetNextView0 V! S! ~7 Q$ G% f+ Y
  13.       SwView.ReferencedConfiguration = ConfName
    " b% @& N4 g' E4 C- w$ o+ b3 j8 f
  14.       Debug.Print SwView.Name
    ; L3 O" N2 W, R+ T5 W" a5 R
  15.       
    9 x$ ~( Y# @% n2 t+ X  f
  16.    Dim SwSelMgr As SelectionMgr, Names
    % U1 P: `( s- \- U: o
  17.       Set SwSelMgr = SwModel.SelectionManager  g% H* t# M  \
  18.    Dim SwFeat As Feature, SwBomFeat As BomFeature, tmp
    % i1 B! E" ]- e' @
  19.       tmp = SwModel.Extension.SelectByID2("VesselBOM", "BOMFEATURE", 0, 0, 0, False, 0, Nothing, 0)0 C% ]" J+ I8 g2 b' o: j7 X
  20.       'tmp = SwModel.Extension.SelectByID2("SaddleFBOM", "BOMFEATURE", 0, 0, 0, False, 0, Nothing, 0)
    % I) ~& r1 ^9 Q0 z
  21.       'tmp = SwModel.Extension.SelectByID2("SaddleSBOM", "BOMFEATURE", 0, 0, 0, False, 0, Nothing, 0). \4 ]' q, Z) n; o
  22.       Set SwBomFeat = SwSelMgr.GetSelectedObject5(1)8 v( t0 r1 O- K, k
  23.       Set SwFeat = SwBomFeat.GetFeature
      ?: ~5 ]( `6 i0 F5 H
  24.       ''& `2 N& W/ B, U  l2 T" R# ?
  25.       Names = SwBomFeat.GetConfigurations(False, Visible)$ G* ~. X" I! L4 A% L: y  |
  26.       For jj = 0 To UBound(Names)& ]* d5 d4 m/ b3 b8 {5 ?5 ~
  27.          If Names(jj) = ConfName Then 'SwView.ReferencedConfiguration Then
    1 q2 ?' T( M( M3 U+ [  l) E
  28.             Visible(jj) = True$ @0 _- W* O: B5 y. d
  29.             Exit For$ ?9 Y/ M) c: k6 J
  30.          End If
    ' U3 m. ]; B8 r* w1 ^: U" C
  31.       Next jj
    . u  X8 @0 F0 s! p* [
  32.       ''9 M" I* Z0 Q: v" p  z3 u! Y6 {# V
  33.       BoolStatus = SwBomFeat.SetConfigurations(False, Visible, Names)7 I6 E7 F# b' S: @0 k
  34.    Dim SwTabAnn As TableAnnotation% Z- w$ P3 b2 ~5 `4 J  m' t: r
  35.       Set SwTabAnn = SwBomFeat.GetTableAnnotations(0)
    4 C: P$ O6 ^* \, }& C
  36.       BomTitle SwTabAnn  M4 S. q, R" e* x0 C
  37.       
    . R, S' E( [7 K& Q* G
  38. End Sub
    4 k6 A, _$ ~; S' L3 A

  39. 4 H# j: Z+ S) x/ l% v
  40. ''
    2 c) l8 L1 u+ v: O3 q  F8 O0 }
  41. Function BomTitle(SwTabAnn As TableAnnotation)
    9 m( F+ C5 A' F! i
  42.    Dim cArr, Arr0 c. {/ ?9 ~3 E/ S( P0 i: F
  43.        'cArr = Array("序号", "标 准 号", "名        称", "数量", "材  料", "模型质量", "小计①", "下 料 尺 寸", "下料质量", "小计②", "②-①")
    , J; x! g( ?, B7 S* I2 Q, h8 ^
  44.        'cArr = Array("序号", "标 准 号", "名        称", "数量", "材  料", " ⑴", "①", "下 料 尺 寸", " ⑵", "②", "②-①")- m+ f6 y$ ^0 I& `$ Y
  45.        cArr = Array("序号", "图号或标准号", "名        称", "数量", "材  料", " ⑴", "⑵", "下 料 尺 寸", " ①", "②", "②-⑵")
    + |1 \: a7 ]1 [5 n# u+ s" U% X
  46.        Arr = Array("序号", "图号", "名称", "数量", "材料", "质量", "", "下料尺寸", "下料质量", "", "")
    $ M+ v5 j3 {/ w
  47.    Dim wArr
    2 h0 c" {# C; w: _# w/ i
  48.        'wArr = Array(8, 20, 50, 8, 25, 12, 12, 40, 12, 12, 11)
    ) K1 J5 {2 @5 R' {8 q0 G
  49.        wArr = Array(8, 17, 45, 8, 18, 10, 10, 35, 10, 10, 9)
    ( p6 p  R# L% A* \1 _1 l" x3 P
  50.   Dim TextFormat As TextFormat* j/ k% J0 `- w! B( e1 k) V
  51.       With SwTabAnn
    : R- R6 q4 U$ [7 t! S- B
  52.          ''0 g9 a( y4 y/ i( q
  53.          For jj = 0 To .ColumnCount - 2" o5 R* }$ q6 i' ^4 o
  54.             .SetColumnTitle jj, cArr(jj)  S! B: R2 n4 F; I3 Z- U) L# A
  55.             .SetColumnWidth jj, wArr(jj) / 1000, 0
    1 n4 i7 g! G, [* T2 T2 F  T
  56.             .SetColumnCustomProperty jj, Arr(jj)
    9 Z; ?& b3 X% f
  57.          Next jj
    5 }7 s/ O8 O* e- B. s- @% }
  58.          ''
    % C8 k2 {2 {. d% ?" U  v' X
  59.          For ii = 0 To .RowCount - 28 L7 p& |- u( i1 i- D2 Y
  60.              For jj = 0 To .ColumnCount - 1* h5 @1 i/ ]- E' {& z( W
  61.                Select Case jj5 n9 z5 f* B, ^" _: e
  62.                   Case 2
    . i2 b" ?' u6 \3 L7 {% {% f0 ]6 p' ^
  63.                      .Text(ii, jj) = " " & Trim(.Text(ii, 2))
    / t1 Q: j; n5 Y% z. w' J' r
  64.                      .CellTextHorizontalJustification(ii, jj) = swTextJustificationLeft' |( Q; H5 q3 ?: o( M6 E
  65.                   Case Else4 c5 }- g9 |# J4 F0 I$ N0 z
  66.                      .CellTextHorizontalJustification(ii, jj) = swTextJustificationCenter
    / u; m* y) g0 _8 ^2 W4 I
  67.                End Select5 W5 q: E3 v- r: S* \3 W
  68.                ''5 b. m4 X. {' v) U( [  N
  69.                Set TextFormat = .GetCellTextFormat(ii, jj)2 f* U* Z) E  v% D
  70.                With TextFormat; C9 d0 t/ X3 i# y
  71.                   .CharHeight = 2.8 / 1000& k, h! {3 }8 C6 T+ j5 ]* s9 x
  72.                   .WidthFactor = 0.8
    # c, @' J! O9 s; N4 S6 d
  73.                   .TypeFaceName = "宋体"
    0 B  `& c- y* y" ^6 A3 T
  74.                   If ii = SwTabAnn.RowCount - 1 Then
      e9 N  C; |' W2 i0 P( {* v; k
  75.                      .Bold = True
    2 h" F5 E' L2 u1 X
  76.                   Else
    * m7 b' P/ }7 n. X
  77.                      .Bold = False# v! U$ V  X$ Y3 H! `, q6 f, [: d
  78.                   End If
    $ Z% {% ?7 d1 m0 t5 P
  79.                End With
    4 D/ K+ T+ K" }, r3 x
  80.                .SetCellTextFormat .RowCount - 1, jj, False, TextFormat
    , ?4 D) Q0 ?% c8 B
  81.              Next jj& B4 w" E8 g' U! p" O! _8 l! E# o
  82.              ''0 d7 I: O  \  k+ f3 M1 v/ Y( z* A1 ~
  83.            If .Text(ii, 3) <> "-" Then6 C- R  u7 r: B5 V' k
  84.              If .Text(ii, 3) = 1 Then
    : S: s3 r! e: G) o
  85.                   If Val(.Text(ii, 5)) > 0 Then5 ^5 m( F8 u5 T
  86.                      .Text(ii, 6) = Format(.Text(ii, 5), "0.0#")) Z/ V! m0 t$ S  r4 T
  87.                      .Text(ii, 5) = " " 'Format(.Text(ii, 5), "0.0#")3 ?( \. K% b  a7 ]# h, F3 f" x
  88.                   End If
    6 P7 [4 C2 f; j% b# J* i+ S! a
  89.                   ''( u0 h2 r3 Q1 B% Q* [0 g8 w
  90.                   If Val(.Text(ii, 8)) > 0 Then
    0 E& K) P5 m# U, D0 Z- N5 a, o' C. M
  91.                      .Text(ii, 9) = Format(.Text(ii, 8), "0.0#")
    7 b4 M( P! Q* ?7 l& @" J
  92.                      .Text(ii, 8) = " " 'Format(.Text(ii, 8), "0.0#")
    . T, j; v; q* @
  93.                   End If
    9 P" c. g/ |. P! ^  D
  94.              Else' a2 u0 z6 i3 Q" b& m& L
  95.                  .Text(ii, 5) = Format(.Text(ii, 5), "0.0#")
    7 J6 k4 F; t% s; P$ }/ h# z4 q. O
  96.                  .Text(ii, 8) = Format(.Text(ii, 8), "0.0#")
    7 a1 U5 N8 S9 Z6 X
  97.                  .Text(ii, 6) = Format(.Text(ii, 5) * .Text(ii, 3), "0.0#"). w4 s; f& d( N
  98.                  .Text(ii, 9) = Format(.Text(ii, 8) * .Text(ii, 3), "0.0#")
    1 z+ g. n6 Z7 K
  99.              End If6 Z# |3 o7 q5 D* a: a: b
  100.              If .Text(ii, 7) <> "" And Val(.Text(ii, 9)) > 0 Then' t; L! ]# T5 b8 V' R0 D
  101.                  .Text(ii, 10) = Format(Val(.Text(ii, 9)) - Val(.Text(ii, 6)), "0")
    % Y$ a" A9 `* G( h
  102.              Else
    & B* K% @  O8 R1 U  {
  103.                  .Text(ii, 8) = " "
    " B6 V: R! R- h8 a/ z
  104.                  .Text(ii, 9) = " "$ i% z' d  v; A3 B
  105.              End If
    $ [9 m1 K. L, G& [. k! Z
  106.            End If6 U; U) V1 R1 k) D$ p' [
  107.          Next ii  }5 @7 }' |: z4 f+ o: I% i
  108.          ''
    # o7 D( ]3 c9 e( E8 k6 M  t
  109.          For ii = 0 To .RowCount - 1
      q  m2 {5 p: ~8 D) ?0 }
  110.              .SetRowHeight ii, 5 / 1000, 0
      d/ O# c+ o5 V' i% {7 _4 U2 o; X
  111.          Next ii
    - ~: u- ]- G2 L5 |. t2 M( I
  112.          ''
    . V$ v% e5 r- j0 C
  113.       End With3 Q, `- S/ }7 J8 k: \
  114.       
    4 [5 i7 b; a+ v) ~2 R4 U0 X0 M
  115. End Function
    " I7 p- S# ?% u& w0 B

  116. / E4 }# i' g& ^# t; U3 a4 L; t
  117. 4 a+ j6 C2 }* T& X+ L6 J3 A
复制代码

, ]7 |, \" R. a' H$ Y$ [" t( i; K0 ?* p# U, b/ `

3 W0 G: P, u& Q* z: |$ \
 楼主| 发表于 2015-8-31 14:21:23 | 显示全部楼层 来自: 中国甘肃兰州
原材料明细表没问题
! V. G2 d/ M* X9 P 0.jpg $ l1 y. k; Q5 g3 |. z0 \# C( D

8 r: v: B! }0 \7 \2 u. U运行API后出现问题3 D9 A* Z6 m1 U5 G+ S* y

* S% ]% y3 h, X0 h4 x 1.jpg
1 w! q/ F( N( ]7 l& t- ^- J' y- x% M0 _& z; g( r
发表于 2015-8-31 16:16:07 | 显示全部楼层 来自: 中国北京
我们还出现过负值和小数,代理商已经把问题发SW美国总部,以后就再没消息了
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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