QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
00.jpg   l4 g$ j& Z# u8 F, v# D
常用方法是人工选择单元格,隐藏选择行。
5 K( c( W% Q) H9 f
& [) _, A# |1 U4 Y/ G请问,还有什么更简单快速的方法,隐藏选择材料明细表时的行。
0 J) k2 ^- @% R& H) b
: ?& W; [* r; N  Q. \: o+ o" _7 @$ l3 s8 N9 b& z* F( I

( o# R1 L; B' d$ _9 U7 {
" }1 h+ ?6 [0 I: A7 S0 b; c& q
 楼主| 发表于 2016-2-11 06:51:16 | 显示全部楼层 来自: 中国甘肃兰州
本帖最后由 ning84 于 2016-2-14 17:27 编辑 ! l: c6 G, E/ q

( ~4 I- ^, u! v, c; F, `5 X* b7 |4 P用API解决,没找到隐藏单元行的指令。只能用.text(ii,6)来判断。
6 }) x# q: Z7 s8 t4 t用API解决的问题,厚度排序和合并,下料尺寸排序。/ m3 V+ L: M  K1 d- v3 d. |. I" r

  1. * A$ z5 [2 Z4 T1 _  b/ n! z# d+ a

  2. * {: R, K$ e+ Z) Z
  3. Function TitleBomPlateBom()( x4 J  q8 ^+ j+ Y$ T* o0 e" }
  4.    Dim Arr, cArr, wArr
    8 @5 U# g1 M6 Y# |4 K
  5.       cArr = Array("序号", "标 准 号", "名        称", "数量", "材  料", "质量" & Chr(13) & "(单)", "质量" & Chr(13) & "(合)", "备  注")
    9 z& p7 A' p  M4 G* R
  6.       Arr = Array("", "标准号", "名称", "", "材料", "质量", "", "备注")
    8 Y' y3 Y% P& V* r
  7.       wArr = Array(10, 25, 50, 12, 25, 15, 18, 25)
    9 W% O8 d% |" `
  8.       5 [, a9 H5 m: L1 d- R0 ^! {0 u
  9.     Dim SwApp As SldWorks.SldWorks, SwModel As ModelDoc2
    1 t: X; _, B$ m$ i: S% T
  10.        Set SwApp = Application.SldWorks& @+ N2 F: s0 H( [. l- Q7 T/ Z0 S0 n
  11.        Set SwModel = SwApp.ActiveDoc9 ?0 L3 m, c: c2 S* W3 _
  12.    Dim SwSelMgr As SelectionMgr, tmp: B' Q4 b; W4 J" E
  13.        Set SwSelMgr = SwModel.SelectionManager" ^" V4 d6 f- V% `. d/ c& y& B
  14.    Dim SwBomFeat As BomFeature, SwBomTabAnn As BomTableAnnotation' y: n8 [- `$ c8 d$ H
  15.        tmp = SwModel.Extension.SelectByID2("TitleBom", "BOMFEATURE", 0, 0, 0, False, 0, Nothing, 0)
    8 D( M( }3 S# E, h, C8 F: M
  16.        Set SwBomFeat = SwSelMgr.GetSelectedObject5(1)
    . f+ p7 N  M0 u1 v2 L
  17.        Set SwBomTabAnn = SwBomFeat.GetTableAnnotations(0)
    ' F" j) a! Q$ W; j! S) w: k' _( w
  18.        'Debug.Print SwBomTabAnn.BomFeature.GetFeature.Name* N( I7 W* |7 G0 {4 t" s# @
  19.    Dim SwTabAnn As TableAnnotation, Str, SwAnn As Annotation( A/ t- K) S5 t# I8 q. n4 ?' ]
  20.        Set SwTabAnn = SwBomTabAnn
    3 h2 ~4 a! X3 o% o% k* O
  21.    Dim Xx, Yy
    . X5 S4 ~/ I% c
  22.        Xx = 420 - 5
    : `! c* n/ e' `) L; M
  23.        Xx = Xx / 1000. Q0 ^8 |) B$ ^! S* a
  24.        Yy = 30 / 1000
    8 N4 C5 l# |8 i5 j2 H8 ?5 H! ]3 O: b
  25.        '': z) c% G* ]9 {
  26.        With SwTabAnn, N( j& L- K* u) e) ]; N- K
  27.           For jj = 0 To UBound(cArr)  ' .ColumnCount - 17 U5 s8 Z, l2 a( ~5 J# ~' C: M+ }
  28.              .SetColumnWidth jj, wArr(jj) / 1000, 0
    " L) ^7 c" e- _, ]7 M3 p5 w
  29.              .SetColumnTitle jj, cArr(jj)$ T& `; [. k2 T( b
  30.              SwBomTabAnn.SetColumnCustomProperty jj, Arr(jj)
    ' x/ \6 i( Z! U
  31.           Next jj/ B% v0 {/ b/ ~1 F5 M% E  M
  32.           For ii = 0 To .RowCount
    % i0 {2 N( K& a
  33.              If ii = .RowCount Then6 p5 s" }4 s2 q) }6 e3 B2 V
  34.                 .SetRowHeight ii, 0.01, 0* W5 h' h: J+ c8 g! _8 n6 ]* ?' l1 @# i
  35.              Else% M7 I' V! c( O: h) {4 A3 R" X
  36.                 .SetRowHeight ii, 0.005, 04 t- D, x: p3 K9 j  j9 T
  37.              End If  V/ \! P0 s: b2 w7 g
  38.           Next ii
    , ~) B8 k7 O  |
  39.           .AnchorType = swBOMConfigurationAnchor_BottomRight* _+ l# T2 q! o# I5 c
  40.           Set SwAnn = .GetAnnotation
      l0 |1 w2 [5 H- J
  41.           SwAnn.SetPosition Xx, Yy, 01 r% ]: q1 z, B9 d0 Z# K! S
  42.        End With
    ( \9 R' v6 k; ?0 |

  43. 3 I9 {1 H1 B, x9 N
  44. End Function
    ( d8 N# s  m9 `0 m, e* S) Q, w9 o

  45. ; ^9 ~. ?% y: l$ h7 |5 c9 o* s0 a
  46. 2 ?$ }6 |9 N* u5 O5 A  G. r
复制代码
* U$ O/ r' Q: J, i$ \
  O3 M/ S6 t9 F: H

) N! |% r+ S- N3 F; C) v& ?! i3 ]
  1. ( h" T8 V( ?' @' g  o7 s
  2. ''
    1 c4 X4 W& u1 t  r% d% l
  3. Function MainPlateBOM(SwBomTabAnn As BomTableAnnotation, SwTabAnn As TableAnnotation, cArr, Arr, wArr, Xx, Yy, oAnchorType)+ M. o/ E/ t/ M
  4.        Xx = Xx / 1000" z- U4 N6 T9 A0 a% F1 N9 h4 s2 V
  5.        Yy = Yy / 1000
    ) H' Y* g7 f  Y& |/ l
  6.        ''4 _# H; V* v5 u% p, j, C
  7.        With SwTabAnn3 o& T8 ~0 L1 K0 V& w# U! r* f% y
  8.           For jj = 0 To UBound(cArr)  ' .ColumnCount - 15 {" m1 A* i) Q4 B
  9.              SwBomTabAnn.SetColumnCustomProperty jj, Arr(jj)- W" c# q' x( v
  10.              .SetColumnTitle jj, cArr(jj)
    5 W2 \+ B0 |1 y1 @
  11.              .SetColumnWidth jj, wArr(jj) / 1000, 0
    / n( Y/ |# e" p2 B$ W9 Z
  12.           Next jj  b, q  Z! ?. p3 _) M! b. f' g. ]
  13.           For ii = 0 To .RowCount
    : ]  y/ W8 C' a& F! U, A/ A) v
  14.              If ii = .RowCount Then9 }% F8 G8 I& n
  15.                 .SetRowHeight ii, 0.01, 0
    6 B3 V  q* M" Q/ b% ?# U$ F" h
  16.              Else9 D0 V1 Q0 h& B4 U
  17.                 .SetRowHeight ii, 0.005, 0
    / N1 [4 O+ e7 @  W
  18.              End If9 ~# f; P: n, K+ [5 N" \
  19.           Next ii
    5 u0 }( u! n  v+ E0 ]4 x
  20.           .AnchorType = oAnchorType/ t) r2 W4 y9 x- |. M
  21.           Set SwAnn = .GetAnnotation
    ; t  ?: d! D( d% S8 [
  22.           SwAnn.SetPosition Xx, Yy, 0
    8 {! i8 \$ B* M5 N
  23.        End With  d6 k/ E, b. b5 G: U) }
  24. End Function
    , F: b. D8 W( C% K8 O
  25. Private Sub ChangeBOM()
    / I1 d' o9 W- @" t2 b
  26.     Dim T: T = Timer7 u0 Y" ~. y  T& z+ a
  27.     Dim Arr(1), cArr(1), wArr(1)
    , O1 ]. m8 t  {* |% G  L
  28.       cArr(0) = Array("序号", "标 准 号", "名        称", "数量", "材  料", "质量" & Chr(13) & "(单)", "质量" & Chr(13) & "(合)", "备  注"). K% l2 n* ~. ~+ ~: v0 o' A
  29.       Arr(0) = Array("", "标准号", "名称", "", "材料", "质量", "", "备注")
    . t/ l( K; M* v9 F( }! N/ g
  30.       wArr(0) = Array(10, 25, 50, 12, 25, 15, 18, 25)$ t  |$ F* C) t0 G) R
  31.       ''
    / ~3 L. ?+ y) C  n) X
  32.       cArr(1) = Array("件号", "名    称", "模型质量", "下料尺寸", "下料质量", "数量", "材料", "δ", "下料质量-模型质量", "备  注")  T& ^) e6 P. i  y, b
  33.       Arr(1) = Array("件号", "名称", "质量", "下料尺寸", "下料质量", "", "材料", "δ", "", "")$ h8 d( F$ E: H% C
  34.       wArr(1) = Array(10, 40, 15, 35, 15, 10, 20, 8, 40, 15)
    5 Q6 L' c8 y* _1 {$ z9 }
  35.     9 n- \. H, a) n8 `0 Q
  36.     6 S) F0 h  }$ d: M4 H7 e7 C
  37.     Dim SwApp As SldWorks.SldWorks, SwModel As ModelDoc28 j: `. i0 D4 \0 B' F# S( V5 A5 G
  38.         Set SwApp = Application.SldWorks
    ) I6 N& @( }/ u7 \4 n6 ^2 p& F
  39.         Set SwModel = SwApp.ActiveDoc2 H6 q4 A% Q# q' k' W* Y. X
  40.     Dim SwSelMgr As SelectionMgr
    8 [# }, U, w* m  K
  41.         Set SwSelMgr = SwModel.SelectionManager) M7 M, [. [) }! r
  42.     Dim SwFeat As Feature, SwBomFeat As BomFeature/ _6 `& u) v9 o0 T8 [
  43.     7 s: i7 u$ j& c! p, b( j2 K
  44.     Dim SwBomTabAnn As BomTableAnnotation, SwTabAnn As TableAnnotation
    ( @3 R$ ?5 E# q' I1 J5 `
  45.         Set SwFeat = SwModel.FirstFeature
    + Z1 T+ c1 Q- ]' [. J5 o
  46.         Do While Not SwFeat Is Nothing1 b0 L0 g" l; G# W4 i; m3 t
  47.            '''
    5 |: j: N" D* D& r! f
  48.            If UCase(SwFeat.Name) Like "*BOM*" And SwFeat.GetTypeName = "BomFeat" Then
    & i- `2 a3 h( C
  49.               'SwFeat.Select True! o  v  `6 S2 `$ p# w) {
  50.               Set SwBomFeat = SwFeat.GetSpecificFeature2  ' SwSelMgr.GetSelectedObject5(1)8 q& ^5 x  P9 {$ O9 z& X+ t
  51.               Set SwBomTabAnn = SwBomFeat.GetTableAnnotations(0)
    6 e9 R. j/ J, }+ x
  52.               Debug.Print SwBomFeat.GetFeature.Name
    * q; m. S; L( p; r
  53.               Set SwTabAnn = SwBomTabAnn
    # ~  P7 f1 t: z: w( P
  54.               'Debug.Print SwFeat.Name, SwFeat.GetTypeName/ Y5 S% f+ m8 P- N/ T
  55.               If UCase(SwFeat.Name) Like "*MAIN*" Then
    / F6 S3 |4 b/ L/ M& ]! v" i
  56.                  MainPlateBOM SwBomTabAnn, SwTabAnn, cArr(0), Arr(0), wArr(0), 420 - 5, 30, swBOMConfigurationAnchor_BottomRight
    7 t' |* d  z$ Q0 f
  57.                    ''
    $ P5 `; N$ T* O) U7 |; y2 }
  58.               ElseIf UCase(SwFeat.Name) Like "*PLATE*" Then
    ; I# @3 |& B' Y9 y7 [2 _
  59.                  MainPlateBOM SwBomTabAnn, SwTabAnn, cArr(1), Arr(1), wArr(1), 25, 5, swBOMConfigurationAnchor_BottomLeft
    / F# w3 F$ E" I" J8 x
  60.                     With SwTabAnn '+ w  G4 }2 I3 y4 q
  61.                        For ii = .RowCount To 0 Step -1% {+ z' Q" D2 J' l# W
  62.                          If .Text(ii, 3) Like "*板材*" Then5 h* `  O3 O) |; K  `
  63.                             Debug.Print .Text(ii, 6)" t' J+ O+ s" _) N$ H7 |8 H
  64.                          Else
    ' v$ m" W0 I; I+ U  z
  65.                            .DeleteRow (ii)
    ) X, p! n. Z" {
  66.                          End If
    1 [+ T! g0 N5 H. y) Q8 Q: O
  67.                        Next ii
    . M, _' J7 ^' w! ^! a
  68.                     End With
    ; n% Y* E& c9 L8 ~# J

  69. 2 n! _$ h+ Q$ I/ ?! U) Z5 l
  70.               End If
    * l: y$ t/ c1 n+ F# j( n
  71.               Debug.Print "SWBOMFEAT", SwBomFeat.GetFeature.Name/ `  J0 Z0 F! }$ |% \; h6 C
  72.            PrintTiming T
    3 }# [9 r- [4 P, k* a& r/ N
  73.            End If
    " A* Z. s% {! R9 H9 O- E
  74.            Set SwFeat = SwFeat.GetNextFeature- Y1 N1 C( j$ p# ]  I) T
  75.            SwModel.ClearSelection2 True, r# C9 d4 x% ^" I( ~
  76.            
    % W8 a% ~& V; P
  77.         Loop0 u6 b- i) S$ \) y
  78. End Sub
    % ]7 e* y4 H0 \
复制代码

6 P' J0 W& y' q- p. u
# W' E# c% z. M7 {
: P- ?2 J) X' a. O3 T, D. `' i$ O' W( r" x$ n5 X6 B1 ^

6 a6 O& r* I+ b1 c7 Q0 w/ E. E, p4 @" K4 ~- O' E6 [  i/ M
发表于 2016-2-11 21:12:17 | 显示全部楼层 来自: 中国安徽蚌埠
用shift选择头和尾,用crl剔除多余的,然后点隐藏
发表于 2016-2-12 09:22:07 | 显示全部楼层 来自: 中国辽宁
本帖最后由 qiminger 于 2016-2-12 11:09 编辑 ) B+ B" O1 H4 E0 T
+ q4 v) ]+ A4 T$ U* c$ u# a
原来要排列下料单,导出在Excel中进行吧。
发表于 2016-2-13 21:28:49 | 显示全部楼层 来自: 中国辽宁盘锦
寂静天花板 发表于 2016-2-12 09:32% d3 ]( p8 P: i2 z' o
肯定是你选中哪个,才会有下一步的选择,否则软件知道你要干什么。

4 k# A/ f) t; A- `1 o" ~我看懂了# Z0 A. N; r* z/ x1 B4 ^) g0 z
楼主的意思是,这个命令也要和别的命令可以有两种操作方法是一样的& v4 t. \1 ^' }  [. c$ L8 ?3 D; T
具体为:选择命令后选择要执行的部位;选择要执行的部位再选择要执行的命令4 Y5 s) @5 ?, N3 }. f
楼主倾向于选择命令后选择要执行的部位
发表于 2016-2-17 09:25:29 | 显示全部楼层 来自: 中国江苏苏州
阿帕奇 发表于 2016-2-13 21:28) ^, T, O0 {# H# Y4 r
我看懂了6 w2 g; y. b2 P& a+ b5 v. p; ]
楼主的意思是,这个命令也要和别的命令可以有两种操作方法是一样的$ g* I" D/ ~- I% `6 E) U
具体为:选择命令后选择要 ...

  K5 V) l3 J  S" U; w高手,这个解释太精辟了
发表于 2016-2-17 13:13:55 | 显示全部楼层 来自: 中国四川乐山
阿帕奇 发表于 2016-2-13 21:28
2 {2 j" K6 ?" B我看懂了; B7 [# C2 I7 t6 s, O1 Z' S
楼主的意思是,这个命令也要和别的命令可以有两种操作方法是一样的
* c3 I' [, X. B' m& s具体为:选择命令后选择要 ...

5 e7 u6 A7 V* s; N还是武直10一语中的
发表于 2016-2-21 20:50:15 | 显示全部楼层 来自: 中国辽宁
啥都没准 发表于 2016-2-17 13:13 static/image/common/back.gif
1 V6 @  T; I) _% |% x还是武直10一语中的

, s* f( L" J2 @7 j* j  Y5 y9 Ehttp://www.3dportal.cn/discuz///mobcent//app/data/phiz/default/31.png那是谁啊) V( r% u& g  c* V1 q" A& A2 D
发表于 2016-2-22 08:29:43 | 显示全部楼层 来自: 中国四川乐山
阿帕奇 发表于 2016-2-21 20:502 X* b" i4 q: k6 I& R7 l
那是谁啊

% B" {( }5 Z- a( D  _( `+ G7 `  E哈哈,玩笑话!武直10”外形“是高仿版的阿帕奇
发表于 2016-2-27 10:48:20 | 显示全部楼层 来自: 中国辽宁
啥都没准 发表于 2016-2-22 08:29 static/image/common/back.gif
5 X: B( w* Z4 v7 |3 \2 L" z哈哈,玩笑话!武直10”外形“是高仿版的阿帕奇

. r$ ?8 j1 ~; pmade in china啊http://www.3dportal.cn/discuz///mobcent//app/data/phiz/default/03.png$ @. q# c& [* r7 E; E
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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