QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
全站
goto3d 说: 版主微信号:caivin811031;还未入三维微信群的小伙伴,速度加
2022-07-04
查看: 10231|回复: 30
收起左侧

[分享] 工程图中用宏填写切割清单每行的总重

[复制链接]
发表于 2016-3-14 15:56:58 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 pzhzshun 于 2016-3-15 16:32 编辑
7 Y# C0 i! \. e  I; b- {/ o1 `% [/ E! W) t0 D% c& [
  前段时间,在这个贴子里:http://www.3dportal.cn/discuz/forum.php?mod=redirect&goto=findpost&ptid=1253110&pid=8713151&fromuid=73388根据丹大的帮助,学会了用宏把切割清单里每个零件的总重写入到属性中。解决了手工填写每行焊件总重的问题。0 U7 t) Z8 G+ `# \5 J1 r  p$ L
  用了一段时间,感觉这种写入总重的方式还是有些不妥的地方:修改了焊件的尺寸后,每次都要运行宏把总重写入属性里。如果忘记运行宏,那么工程图中切割清单里每行的总重就是错误的。+ S! z0 m% y! w* X& B( z% @. O9 }! D
  为避免每次修改焊件尺寸都要运行宏写入总重的弊端,就考虑用宏把每行总重的计算公式,直接写在工程图切割清单,总重的那一单元格中。
' b  s$ I% t4 f, M; y2 s  用我可怜的 E 文知识,在 API 帮助里查询了许久,终于找到了工程图切割清单中填写内容的代码。  U$ ?0 e8 R+ ^. c& _: v
  独乐乐不如众乐乐,这里把代码分享一下:
" f2 U7 [  G' j% @2 ?) [( q
  1. Option Explicit8 v. Y- u; G6 h( ]4 I
  2. Dim swApp As SldWorks.SldWorks, L: l. P4 t$ j* Y8 K: `. [+ k6 S1 s
  3. Dim swDraw As SldWorks.DrawingDoc. }4 D, [) n# E: B# F% B" K
  4. Dim swView As SldWorks.View
      P0 f+ L: X/ Y  ^! _+ `
  5. Dim swTable As SldWorks.TableAnnotation6 C, a* F0 G" _5 a- _* U3 w1 G) b
  6. Dim nNumRow As Long
    4 [& c% A! [. Y8 I& }6 S
  7. Dim i As Long- k$ n3 W9 P0 ^; Z4 v$ u' k
  8. Sub main()
    2 {" x+ C3 a! s2 C* G- j+ [* d' |' \
  9.     Set swApp = Application.SldWorks7 L( G) Q( v4 \! m$ A% H: a2 X
  10.     Set swDraw = swApp.ActiveDoc$ W' ]; Y! e5 E. \& Z6 Y
  11.     Set swView = swDraw.GetFirstView
    0 D# |3 w  T; n! X* o7 a, b6 M8 |
  12.     Do While Not swView Is Nothing2 u+ j% Q" P7 ^
  13.         Set swTable = swView.GetFirstTableAnnotation. g$ O2 t. E$ d0 l
  14.         Do While Not swTable Is Nothing
    # N* N0 @, Y5 s# N. `3 J1 l; M* R! g
  15.             nNumRow = swTable.RowCount '获取切割清单行数
    9 e. H+ z' C" c0 o. q- R
  16.             For i = 0 To nNumRow - 2
    6 W" S5 A" T2 X6 s: G* q
  17.                 swTable.Text(i, 6) = "={2}D" & i + 1 & "*F" & i + 1 '写入总重方程式到切割清单
    / }- e- n1 _( x
  18.             Next i# C9 O5 V6 ]+ u# J  f6 k0 s5 K
  19.             Set swTable = swTable.GetNext- i" Q9 @0 n! v* x* j
  20.         Loop# m' S* i3 ]2 ^
  21.         Set swView = swView.GetNextView6 R# x" q0 _9 R- t
  22.     Loop
    8 @  ^2 ~) ~# |1 L
  23. End Sub& s. C9 B3 Q: B5 h8 e% I, [7 ]
复制代码

, u  {( T4 T  V$ E; C% F如果不愿意复制粘贴,那就下载这个吧: 工程图切割清单填写每行焊件总重.rar (6.48 KB, 下载次数: 337)

评分

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

查看全部评分

发表于 2016-3-14 18:29:51 | 显示全部楼层
很不错,还是应该向师傅多学习,极不懂的地方多问问,对自己也所帮助提高,在此还应万分感谢师傅。
发表于 2016-3-14 19:16:02 | 显示全部楼层
谢谢分享好方法,给楼主一个大大的赞。
发表于 2016-3-14 19:40:51 | 显示全部楼层
感谢热心分享
发表于 2016-3-14 20:59:07 | 显示全部楼层
不错实用的工具
发表于 2016-3-15 11:21:47 | 显示全部楼层
讚一個!舉一反三!謝謝樓主分享。
 楼主| 发表于 2016-3-15 11:43:00 | 显示全部楼层
gt.adan 发表于 2016-3-15 11:21
3 x7 ?* M. R; i$ c讚一個!舉一反三!謝謝樓主分享。
  K* ?- X; S  M5 `
感谢丹大的大力支持!
发表于 2016-3-15 13:08:47 | 显示全部楼层
很实用的工具,谢楼主!
发表于 2016-3-15 15:09:59 | 显示全部楼层
其實,樓主可以搜一下「常駐宏」及「特徵宏」,悶大都有很完整說明及教學% Q% k+ X+ j/ \; I# s
一來無需在工程中圖再運行另一個宏來填寫方程,二來能徹底解決無法自動更新的問題。
 楼主| 发表于 2016-3-15 16:32:10 | 显示全部楼层
gt.adan 发表于 2016-3-15 15:09% f4 }6 X5 s. s3 G/ p* t
其實,樓主可以搜一下「常駐宏」及「特徵宏」,悶大都有很完整說明及教學7 \9 W% B. I9 o8 G
一來無需在工程中圖再運行另一個 ...
3 O/ ~1 L  k  v% e  g9 V
本论坛里搜索不到『常驻宏』和『特征宏』的资料,到开思去找到了闷大的原帖:- ~* V- W9 F3 |: J* x" @
http://bbs.icax.org/thread-911488-1-2.html/ k& E* m6 z7 d6 C2 O, C; y
感觉用常驻宏来更新比特征宏要好一些,闷大的常驻宏切换窗口就运行一下,这样就不用手动去更新总重了,真正做到了一劳永逸。, Y3 I: ~) [# @; ^/ W1 [
非常感谢丹大的提示!
发表于 2016-4-20 17:18:49 | 显示全部楼层
这个16的代码在12中运行出问题,提示如图% E$ M; O- Y* e0 Q9 v9 c1 i% ~
2.jpg 1.jpg 7 C& [* M. t  J2 a: Q; d9 [  S7 p2 D
  q( I1 A( e: a
发表于 2016-4-21 15:29:10 | 显示全部楼层
hexiaohuihex 发表于 2016-4-20 17:182 V; o! d1 U. [. I" u
这个16的代码在12中运行出问题,提示如图

" u3 F1 b: N, [5 x; R. H已解决,是我自己拷贝代码的过程中一些乱码一同拷入,没删干净导致宏不认。
; @! j+ _/ U/ r, l已正常运行,多谢楼主了
发表于 2016-4-21 20:21:19 | 显示全部楼层
对于焊接切割清单计算总重的这个问题,闷大在别网有一个能彻底解决总重的问题,而且如果配合常驻宏还能一劳永逸,楼主研究的精神是好,但是如果想彻底解决这个问题,还是建议楼主去拜读闷大的,[总重宏],相信楼主会深有感触。
发表于 2016-4-21 21:05:02 | 显示全部楼层
觉得好奇怪!3 r# I7 W; Q. C& w, @. H- S
我在焊接件的模板属性制作时,先添加焊接->添加属性,如图 0421.png : M4 Z2 H* z# e' u6 @

1 ^0 v' H9 Q6 u+ e; o( N  P0 K, ]画好焊件; i4 S% o/ @& Q. {
设置材料,子实体的属性自动出现# w1 {5 u  O8 N1 o+ H
04212.png
  E9 Y' x) J' ~# k
5 F' z. w; l3 Q6 d看总重在文件属性
8 _7 [$ u0 L& J2 M- P- U 04213.png ( ]' w6 t7 T4 `5 U; H, g) g
/ @, r1 ]2 }& g/ c/ S3 `/ v
没有什么难度的啊0 m- c+ l, n' |" I3 c
具体效果
" F; J# n# {, P) e& M
  u% c& b0 y1 a  g 171433wvjx2uapsb4xj447.gif
. S" H4 \  h) C- s+ y+ l8 f0 b% L5 a7 S# L, L

: j* e9 L) K0 \/ Q) ]1 J

评分

参与人数 1三维币 +5 收起 理由
不靠谱的江静 + 5 应助

查看全部评分

发表于 2016-4-22 18:24:37 | 显示全部楼层
jinqin11 发表于 2016-4-21 21:05" w# S- W1 K! n9 F% G% E
觉得好奇怪!
1 S+ X" Z% d$ C1 E- j我在焊接件的模板属性制作时,先添加焊接->添加属性,如图

6 L& o! M8 ~5 g+ e材料明细表和焊件切割清单的区别在于,焊件切割清单可以直接提取焊件的轮廓属性(如果需要甚至还可以直接提取某一焊接件长度),比如说,“∠5*5"但是用材料明细表就不能达到这个目的。。。而且,对于专业做焊接结构的人来说,焊接清单比材料切割清单好很多很多。
发表于 2016-5-27 21:41:14 | 显示全部楼层
你好  我下载了你上传的压缩包   然后在工程图里点工具  宏  运行  选择到解压后的代码   点击运行怎么提示找不到工程或库     我用的2015版的
发表于 2016-7-25 22:21:26 | 显示全部楼层
支持   ````````````
发表于 2016-8-10 21:49:02 | 显示全部楼层
谢谢分享。
发表于 2018-3-2 15:54:50 | 显示全部楼层
好东西。能不能在公式上面加上获取“数量”,“单重”,“总重”所在的列,然后在用这个公式啊
发表于 2018-3-5 15:04:20 | 显示全部楼层
这个宏不错,下载研究了
发表于 2018-3-9 08:47:19 | 显示全部楼层
好象用不了
发表于 2018-3-9 15:07:17 | 显示全部楼层
直接运行这个下载的宏sw2017没反应,用VB运行出现如下情况:# s! F0 {+ h, R

' S7 L8 C; p7 {
捕获.JPG
发表于 2018-3-9 16:29:36 | 显示全部楼层
这个完全是利用sw宏运行的,也没反应' J* Q! K. d2 G4 d% q6 ?; T3 [7 Z
& C8 q5 `8 c, y3 p. a0 n! H
捕获2.JPG
发表于 2018-3-9 16:36:37 | 显示全部楼层
是标题栏的属性名称不匹配?
发表于 2018-3-9 17:00:58 | 显示全部楼层
搞定,是我的表格跟楼主的不一样
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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