QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2942|回复: 9
收起左侧

[讨论] 如何快速隐藏材料明细表的行。

[复制链接]
发表于 2016-2-10 21:12:19 | 显示全部楼层 |阅读模式 来自: 中国甘肃兰州

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

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

x
00.jpg
( P( C$ S3 M& ]) D* ^8 H& M8 }常用方法是人工选择单元格,隐藏选择行。; T5 i3 h! ^* V3 d  i2 v: ^
& e( N8 S1 ]. J, L& P* y5 M
请问,还有什么更简单快速的方法,隐藏选择材料明细表时的行。; P" [8 l5 ?0 L+ U2 G; J
8 v/ a) c& d" [6 p

( M) `$ s; \% s0 y: @& O8 T# |6 r8 T' v1 ?3 K
4 r9 i! O1 \# J8 j. E
 楼主| 发表于 2016-2-11 06:51:16 | 显示全部楼层 来自: 中国甘肃兰州
本帖最后由 ning84 于 2016-2-14 17:27 编辑 & v; B. [! H8 t* \
1 t* a0 g% x1 a) A! ^8 g
用API解决,没找到隐藏单元行的指令。只能用.text(ii,6)来判断。
& t* h, j4 G9 o8 c用API解决的问题,厚度排序和合并,下料尺寸排序。( E4 l2 Z) |' i8 c7 [

  1. 6 ]4 L8 u( |# B4 W. `0 C/ `
  2. ) g% Z- D/ }8 i4 @$ x
  3. Function TitleBomPlateBom()
    $ f  s2 X+ M) r/ R- ~5 K
  4.    Dim Arr, cArr, wArr
    6 M: S! Z0 n& v4 ]. p
  5.       cArr = Array("序号", "标 准 号", "名        称", "数量", "材  料", "质量" & Chr(13) & "(单)", "质量" & Chr(13) & "(合)", "备  注")
    + ~$ @! M6 ~2 b3 e" v, I9 W
  6.       Arr = Array("", "标准号", "名称", "", "材料", "质量", "", "备注")8 A" \- j5 m6 _) }# y+ U
  7.       wArr = Array(10, 25, 50, 12, 25, 15, 18, 25)' z0 K8 g$ a5 W& t4 e! x
  8.       2 H: e- P& s6 O( @; r
  9.     Dim SwApp As SldWorks.SldWorks, SwModel As ModelDoc2
    4 P- @- x4 @2 m
  10.        Set SwApp = Application.SldWorks) t2 A! C! ~% \/ P/ r" j  q$ d1 d4 {. @8 W
  11.        Set SwModel = SwApp.ActiveDoc
    8 F) Y1 ~+ B4 |  f, ~
  12.    Dim SwSelMgr As SelectionMgr, tmp3 f; b2 ]5 P# V. A. z5 C, E3 C
  13.        Set SwSelMgr = SwModel.SelectionManager; J0 _4 z0 ~+ u5 l' B
  14.    Dim SwBomFeat As BomFeature, SwBomTabAnn As BomTableAnnotation
    # t$ j% s* W, T- \
  15.        tmp = SwModel.Extension.SelectByID2("TitleBom", "BOMFEATURE", 0, 0, 0, False, 0, Nothing, 0)9 M' n% t4 d- ^' i: H  R
  16.        Set SwBomFeat = SwSelMgr.GetSelectedObject5(1). X7 U- q6 U6 D1 u4 ]
  17.        Set SwBomTabAnn = SwBomFeat.GetTableAnnotations(0): [0 A* h6 n) v  E2 \
  18.        'Debug.Print SwBomTabAnn.BomFeature.GetFeature.Name4 o  S4 N3 x7 n  d  t
  19.    Dim SwTabAnn As TableAnnotation, Str, SwAnn As Annotation
    * |* i/ G2 s( x
  20.        Set SwTabAnn = SwBomTabAnn
    ( N8 l6 ]; j' M- u1 @
  21.    Dim Xx, Yy
    + P/ P" R: E1 r4 B  z
  22.        Xx = 420 - 5
    9 e, ?: O8 K0 Q2 Y" w# c! k; p; m
  23.        Xx = Xx / 10002 K$ P9 V" O* `* `. @
  24.        Yy = 30 / 10005 s- w' G, I8 ^; b- w1 X
  25.        ''
    . @( Z* I& c* n; F, W) N
  26.        With SwTabAnn; y" H: B2 e6 V" B
  27.           For jj = 0 To UBound(cArr)  ' .ColumnCount - 1( C3 ^( V: h: M: r& z  U0 y
  28.              .SetColumnWidth jj, wArr(jj) / 1000, 0( i  s5 g6 q$ Q
  29.              .SetColumnTitle jj, cArr(jj)# P3 A3 u; L: Z: `4 P
  30.              SwBomTabAnn.SetColumnCustomProperty jj, Arr(jj)% G# ?2 D. ?' p) y0 R4 ~
  31.           Next jj
    6 c- ~, z% C! |
  32.           For ii = 0 To .RowCount5 j. `- H  y( v% Q1 O4 c
  33.              If ii = .RowCount Then
    3 ?: ~4 x% G# x) n
  34.                 .SetRowHeight ii, 0.01, 01 D) C4 F0 l( s/ N( L. ?
  35.              Else. c* O2 Z- Y9 W  ^( z# I  R+ P9 b
  36.                 .SetRowHeight ii, 0.005, 0
    - V2 d$ m) @1 W1 ^; M5 y/ y) W$ r
  37.              End If% \( |9 \* N2 t/ O0 ]& ]: `% C
  38.           Next ii
    4 ?/ l1 y5 f7 \+ k- `# {- B& Z
  39.           .AnchorType = swBOMConfigurationAnchor_BottomRight* o$ r% A9 B' d+ u- y) v
  40.           Set SwAnn = .GetAnnotation
    : ?! D! N, _- ?  P7 R
  41.           SwAnn.SetPosition Xx, Yy, 06 a. M' @3 u1 ?: ~# f
  42.        End With
    3 F; x- h& f* f. ^- Q. ~

  43. 9 `* m. b( u$ [+ v+ I* F4 a+ ]
  44. End Function' h$ e/ e' A$ n+ I* x) {# o
  45. 7 i% R2 D0 z6 `. _

  46. . S! n  S2 h' J) J
复制代码

8 e6 w) e$ r/ \! S
9 \+ y/ k- s. P) U: Y8 R% Q$ ]/ p+ }0 S: B+ f0 B7 E% I

  1. 1 k3 T% g1 |& \& ?: ?/ |
  2. ''1 P. s6 _, H6 f7 Z9 h" u
  3. Function MainPlateBOM(SwBomTabAnn As BomTableAnnotation, SwTabAnn As TableAnnotation, cArr, Arr, wArr, Xx, Yy, oAnchorType)5 Q$ {/ Z& F+ z2 n7 R
  4.        Xx = Xx / 1000( S% ?5 Y& M8 O- {! K+ Y, F
  5.        Yy = Yy / 10009 t6 |# S0 e* I0 a
  6.        ''  C+ Z. f  L/ }5 U, I. G
  7.        With SwTabAnn; |9 {2 e0 N7 k. {9 g+ a% l2 G
  8.           For jj = 0 To UBound(cArr)  ' .ColumnCount - 1
    9 s4 m6 X3 R8 ?0 c% b
  9.              SwBomTabAnn.SetColumnCustomProperty jj, Arr(jj)5 ?- R  t2 J; k4 K
  10.              .SetColumnTitle jj, cArr(jj)- j" ?* @9 [1 g. s
  11.              .SetColumnWidth jj, wArr(jj) / 1000, 0& p/ [4 u9 ~! s4 w* T
  12.           Next jj
    $ L7 _* E2 }1 E) Y
  13.           For ii = 0 To .RowCount0 o  e7 r! [  O
  14.              If ii = .RowCount Then
      v1 y9 b7 ]5 o
  15.                 .SetRowHeight ii, 0.01, 0  r$ C& L2 e8 f) \: d; x. ?
  16.              Else4 j, H9 y, z0 R1 m. E+ C
  17.                 .SetRowHeight ii, 0.005, 09 x2 o. y+ A8 N" e. @
  18.              End If% ]+ [% M, P9 Q; l0 [! M- G2 f' J
  19.           Next ii
    4 S$ i- w# T- `
  20.           .AnchorType = oAnchorType
    7 r. R8 C! a( ^! H5 `) l. h
  21.           Set SwAnn = .GetAnnotation
    / J( d/ c5 T- K7 p  E( l( _* a& k
  22.           SwAnn.SetPosition Xx, Yy, 0
    $ }  L, L- K# Q9 @- v( }$ _
  23.        End With
    4 x4 v/ z- Y* z7 {9 s
  24. End Function; j2 H1 |* Q) J$ M  z
  25. Private Sub ChangeBOM()
    0 g. K% F2 _4 d( Q. S% [
  26.     Dim T: T = Timer
    ( I) k  u. U: _7 [5 P# j% C! N
  27.     Dim Arr(1), cArr(1), wArr(1)" X% A" {% N$ |; K+ q+ X2 n$ T
  28.       cArr(0) = Array("序号", "标 准 号", "名        称", "数量", "材  料", "质量" & Chr(13) & "(单)", "质量" & Chr(13) & "(合)", "备  注")
      h) l* O" m$ \; b5 M
  29.       Arr(0) = Array("", "标准号", "名称", "", "材料", "质量", "", "备注"): i* I; [7 P* p. \$ X5 T
  30.       wArr(0) = Array(10, 25, 50, 12, 25, 15, 18, 25)
    : L8 J2 V/ O; B# x+ E
  31.       ''+ i( Z6 W1 K0 [2 ?! m
  32.       cArr(1) = Array("件号", "名    称", "模型质量", "下料尺寸", "下料质量", "数量", "材料", "δ", "下料质量-模型质量", "备  注")
      E; H  J) F* _6 u2 T9 i4 X1 K& ?& u
  33.       Arr(1) = Array("件号", "名称", "质量", "下料尺寸", "下料质量", "", "材料", "δ", "", "")  D% W/ i& A" }* m8 q  ~
  34.       wArr(1) = Array(10, 40, 15, 35, 15, 10, 20, 8, 40, 15)
    ( s: x( s1 F' K6 l' W, _2 M
  35.    
    $ c! A7 d/ i9 |# z) }& I/ ~( L
  36.    
    5 g( _8 B2 q# g4 }' O4 C
  37.     Dim SwApp As SldWorks.SldWorks, SwModel As ModelDoc2
    : ^# _# z2 n  |( m5 I; ?9 ], U
  38.         Set SwApp = Application.SldWorks
    ( G9 U8 \& k7 [  F  T
  39.         Set SwModel = SwApp.ActiveDoc
    7 Q3 `5 Q+ H% c1 {) K
  40.     Dim SwSelMgr As SelectionMgr
    ) u: k5 t+ o, V4 ?3 ]3 _
  41.         Set SwSelMgr = SwModel.SelectionManager8 n3 j# j& t' n
  42.     Dim SwFeat As Feature, SwBomFeat As BomFeature3 k) z' }6 i" v# e5 N( T
  43.    
    ' D- R( @  T' q# r
  44.     Dim SwBomTabAnn As BomTableAnnotation, SwTabAnn As TableAnnotation
    6 ?- v) C! S$ p/ U, r  U9 P
  45.         Set SwFeat = SwModel.FirstFeature
    $ [* ?5 i6 v" G6 d
  46.         Do While Not SwFeat Is Nothing2 A$ r2 X4 J  r1 d  y4 \- |9 `
  47.            '''
    1 Q0 P6 N3 o2 }. |8 Y7 ^( X. R  e/ _
  48.            If UCase(SwFeat.Name) Like "*BOM*" And SwFeat.GetTypeName = "BomFeat" Then
    ' M, M& z! p2 ^
  49.               'SwFeat.Select True
    : v4 K( T, n( z6 F" y5 e( e
  50.               Set SwBomFeat = SwFeat.GetSpecificFeature2  ' SwSelMgr.GetSelectedObject5(1)8 T' D: C" I( Z5 @# ]
  51.               Set SwBomTabAnn = SwBomFeat.GetTableAnnotations(0)+ {+ O+ Y# B3 G5 K% K  v; t
  52.               Debug.Print SwBomFeat.GetFeature.Name' Y1 S( K$ i5 G* W4 K
  53.               Set SwTabAnn = SwBomTabAnn5 k' a+ X! c3 e, V8 e( O
  54.               'Debug.Print SwFeat.Name, SwFeat.GetTypeName
    4 v% Y  ^% _" Z
  55.               If UCase(SwFeat.Name) Like "*MAIN*" Then
    6 G8 A% P; N$ N0 @5 I* ]0 f
  56.                  MainPlateBOM SwBomTabAnn, SwTabAnn, cArr(0), Arr(0), wArr(0), 420 - 5, 30, swBOMConfigurationAnchor_BottomRight! z7 y7 b3 i7 M" V( \, E) |8 Q
  57.                    ''
    : b/ N, c6 H0 i
  58.               ElseIf UCase(SwFeat.Name) Like "*PLATE*" Then
    " o. u0 X3 w* g' ~) }
  59.                  MainPlateBOM SwBomTabAnn, SwTabAnn, cArr(1), Arr(1), wArr(1), 25, 5, swBOMConfigurationAnchor_BottomLeft
    2 ]* t: g% }3 E7 B+ I7 H4 Y
  60.                     With SwTabAnn '; N* X( C9 a/ f, n
  61.                        For ii = .RowCount To 0 Step -15 N5 }9 K/ I* Z0 z3 |, k
  62.                          If .Text(ii, 3) Like "*板材*" Then
      z4 h, k1 j- U! g
  63.                             Debug.Print .Text(ii, 6)% N4 Z& }; Y, Q* j8 p. E7 P
  64.                          Else) E4 n- |5 g  Q$ N
  65.                            .DeleteRow (ii)% ~7 R7 ^( M2 Z* t; b1 J+ u( R2 y
  66.                          End If
    7 _8 @) t* r" N2 W- ]6 M# Q
  67.                        Next ii
      k! a9 M4 v$ ~$ o3 }; q9 G! Y* b
  68.                     End With- E/ R! l. ~* v9 s/ ~5 O

  69. + Q/ G, q# J( `" b
  70.               End If. ^  o/ G2 `' B1 J# }9 ~) G" T
  71.               Debug.Print "SWBOMFEAT", SwBomFeat.GetFeature.Name
    - \7 r+ S2 `' }% [% S  i$ C- p
  72.            PrintTiming T
    ) Z, w$ Z$ N+ E  }
  73.            End If8 W2 F  d1 a2 l# C
  74.            Set SwFeat = SwFeat.GetNextFeature
    5 C1 k' o. p- n! F1 {
  75.            SwModel.ClearSelection2 True; u, v/ W- R( I4 S# T) o
  76.            
    9 f, o& x( O0 x; c" y% \
  77.         Loop: E8 C6 W  j( t) v1 ~" d
  78. End Sub0 k) `, @; {8 v8 t$ G) m
复制代码

; g' a5 j5 V. \3 t: E1 f, H( T. B: @" N5 I# [1 o3 p% b; r6 Q' D

6 k- J5 D" z+ E: s% R' D! f6 A+ k) G7 R
; [$ J' i4 R8 `: U. F
+ ], X) p/ S+ [/ f/ M9 j& H1 {
发表于 2016-2-11 21:12:17 | 显示全部楼层 来自: 中国安徽蚌埠
用shift选择头和尾,用crl剔除多余的,然后点隐藏
发表于 2016-2-12 09:22:07 | 显示全部楼层 来自: 中国辽宁
本帖最后由 qiminger 于 2016-2-12 11:09 编辑 , G, `0 E! ^) @

- U: D# @" Y4 y7 z原来要排列下料单,导出在Excel中进行吧。
发表于 2016-2-13 21:28:49 | 显示全部楼层 来自: 中国辽宁盘锦
寂静天花板 发表于 2016-2-12 09:32
9 {3 E* t$ Z$ e; M9 K肯定是你选中哪个,才会有下一步的选择,否则软件知道你要干什么。

/ C+ B( A- O/ i我看懂了: U- B1 t# G; t! N4 R$ I
楼主的意思是,这个命令也要和别的命令可以有两种操作方法是一样的
" M5 ^5 d6 _4 Z$ t4 o0 e( U4 u  [/ F具体为:选择命令后选择要执行的部位;选择要执行的部位再选择要执行的命令
4 y2 [4 @+ Q* L楼主倾向于选择命令后选择要执行的部位
发表于 2016-2-17 09:25:29 | 显示全部楼层 来自: 中国江苏苏州
阿帕奇 发表于 2016-2-13 21:28
6 B7 Y; `+ p1 j" P/ ]1 {我看懂了5 h3 ~1 ?. l- M+ r/ j9 [. A
楼主的意思是,这个命令也要和别的命令可以有两种操作方法是一样的
" W/ h9 E5 D! m0 S. |" i具体为:选择命令后选择要 ...
# l# ^1 f. X2 o/ q7 s8 \, M5 \
高手,这个解释太精辟了
发表于 2016-2-17 13:13:55 | 显示全部楼层 来自: 中国四川乐山
阿帕奇 发表于 2016-2-13 21:28  n6 m; c- ~& I1 o% T- v9 Y5 M" x
我看懂了$ }3 C: ^: f3 g; _! u. o! C
楼主的意思是,这个命令也要和别的命令可以有两种操作方法是一样的
( ?1 X, U) Y9 f0 `具体为:选择命令后选择要 ...
7 n. `: S8 @7 o2 q' s% f  l8 T
还是武直10一语中的
发表于 2016-2-21 20:50:15 | 显示全部楼层 来自: 中国辽宁
啥都没准 发表于 2016-2-17 13:13 static/image/common/back.gif2 _# m/ @4 C1 V! Y) T
还是武直10一语中的
' i7 B2 U, O) E8 D3 ^8 w; P4 u
http://www.3dportal.cn/discuz///mobcent//app/data/phiz/default/31.png那是谁啊  H8 w2 U. u( ]* N" x
发表于 2016-2-22 08:29:43 | 显示全部楼层 来自: 中国四川乐山
阿帕奇 发表于 2016-2-21 20:50- c# P: b! o" _6 p( M7 a
那是谁啊
2 B7 w. O3 m" Q4 H# [. F, A
哈哈,玩笑话!武直10”外形“是高仿版的阿帕奇
发表于 2016-2-27 10:48:20 | 显示全部楼层 来自: 中国辽宁
啥都没准 发表于 2016-2-22 08:29 static/image/common/back.gif
- Z1 S. t( {: b1 S1 ~7 D哈哈,玩笑话!武直10”外形“是高仿版的阿帕奇

2 q6 |" H3 x, i+ ~1 A( Imade in china啊http://www.3dportal.cn/discuz///mobcent//app/data/phiz/default/03.png
. n) o, n1 Z: j& q
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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