QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 12091|回复: 30
收起左侧

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

[复制链接]
发表于 2016-3-14 15:56:58 | 显示全部楼层 |阅读模式 来自: 中国四川攀枝花

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

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

x
本帖最后由 pzhzshun 于 2016-3-15 16:32 编辑 1 j& V  S; Q2 y, i, J* A
9 t. w( r; k  z5 V4 v: r0 V* O
  前段时间,在这个贴子里:http://www.3dportal.cn/discuz/forum.php?mod=redirect&goto=findpost&ptid=1253110&pid=8713151&fromuid=73388根据丹大的帮助,学会了用宏把切割清单里每个零件的总重写入到属性中。解决了手工填写每行焊件总重的问题。1 q: k( x( R' X, c2 }* ~4 W3 }, |* l
  用了一段时间,感觉这种写入总重的方式还是有些不妥的地方:修改了焊件的尺寸后,每次都要运行宏把总重写入属性里。如果忘记运行宏,那么工程图中切割清单里每行的总重就是错误的。
, ^* j; Z+ C% }: g# M2 I0 M  为避免每次修改焊件尺寸都要运行宏写入总重的弊端,就考虑用宏把每行总重的计算公式,直接写在工程图切割清单,总重的那一单元格中。
  ~2 [" }1 g4 s, d( Z  用我可怜的 E 文知识,在 API 帮助里查询了许久,终于找到了工程图切割清单中填写内容的代码。  j) @9 x# g: f7 i8 I7 _' v/ K9 @
  独乐乐不如众乐乐,这里把代码分享一下:7 I+ l$ g- E; S. t3 r5 R* J
  1. Option Explicit
      Z! m/ R4 g( |5 B1 o# ?$ j1 O
  2. Dim swApp As SldWorks.SldWorks
    2 t1 N& M& ~( c+ F1 y
  3. Dim swDraw As SldWorks.DrawingDoc/ V3 a0 s5 c7 A6 Q) ~
  4. Dim swView As SldWorks.View: Z9 G& r( Y, R# s% p: w0 p
  5. Dim swTable As SldWorks.TableAnnotation0 o1 J. z8 _+ `. ~
  6. Dim nNumRow As Long( }7 p1 j+ Z4 p
  7. Dim i As Long$ R0 n( x' z$ R) Y: P( ?
  8. Sub main()
    * C2 d1 z$ W8 @
  9.     Set swApp = Application.SldWorks
    ! }1 t3 ]7 Q" D  @& e5 I* k5 w+ z
  10.     Set swDraw = swApp.ActiveDoc
    $ b- m' O( \) m0 I
  11.     Set swView = swDraw.GetFirstView! h( T+ n* \0 ~0 P
  12.     Do While Not swView Is Nothing
    . E- z; Z% U: r0 }
  13.         Set swTable = swView.GetFirstTableAnnotation" |$ t2 b8 c3 t  \$ J
  14.         Do While Not swTable Is Nothing
    : S; T8 A& Q& Y; e( @% S+ O% c
  15.             nNumRow = swTable.RowCount '获取切割清单行数: I; N0 Z/ d2 F
  16.             For i = 0 To nNumRow - 2
    / c3 q& h+ R. ?8 a8 \/ V* M
  17.                 swTable.Text(i, 6) = "={2}D" & i + 1 & "*F" & i + 1 '写入总重方程式到切割清单
    8 z6 Q1 X* H. ]' l" Y2 G! d
  18.             Next i
    . {* b2 a; p( F7 M: e$ n+ I# B
  19.             Set swTable = swTable.GetNext7 B# P6 y$ q( Q3 o+ r3 m
  20.         Loop8 @5 L( t5 t0 c( J  w8 K. X
  21.         Set swView = swView.GetNextView4 u! m8 w" y5 _# U4 |! l
  22.     Loop
    7 H# u4 @' x3 l0 u1 r! R: w
  23. End Sub! C2 \$ u$ J: J& P1 j+ F3 x# [
复制代码
; F! ~) R+ _! p9 b% l6 V( P
如果不愿意复制粘贴,那就下载这个吧: 工程图切割清单填写每行焊件总重.rar (6.48 KB, 下载次数: 338)

评分

参与人数 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:219 a5 l; r4 h; J9 L' U
讚一個!舉一反三!謝謝樓主分享。
) {! }+ A/ Z2 C9 u' ~
感谢丹大的大力支持!
发表于 2016-3-15 13:08:47 | 显示全部楼层 来自: 中国广西桂林
很实用的工具,谢楼主!
发表于 2016-3-15 15:09:59 | 显示全部楼层 来自: 中国台湾
其實,樓主可以搜一下「常駐宏」及「特徵宏」,悶大都有很完整說明及教學* Q/ u1 B5 W1 r, U% \6 h# e( s
一來無需在工程中圖再運行另一個宏來填寫方程,二來能徹底解決無法自動更新的問題。
 楼主| 发表于 2016-3-15 16:32:10 | 显示全部楼层 来自: 中国四川攀枝花
gt.adan 发表于 2016-3-15 15:09
4 e- b) t) A9 g. v; C5 b( L5 o/ k7 H' D其實,樓主可以搜一下「常駐宏」及「特徵宏」,悶大都有很完整說明及教學% ?3 z( d4 V- ^  J' m
一來無需在工程中圖再運行另一個 ...
9 U0 r) q5 p8 p: g. z% {
本论坛里搜索不到『常驻宏』和『特征宏』的资料,到开思去找到了闷大的原帖:
& r$ ~: H- m2 [; H! h# bhttp://bbs.icax.org/thread-911488-1-2.html4 J8 O# X- q2 ^! m  d
感觉用常驻宏来更新比特征宏要好一些,闷大的常驻宏切换窗口就运行一下,这样就不用手动去更新总重了,真正做到了一劳永逸。
7 S7 V: y" L& \0 {! ~- |非常感谢丹大的提示!
发表于 2016-4-20 17:18:49 | 显示全部楼层 来自: 中国辽宁大连
这个16的代码在12中运行出问题,提示如图
& s+ P: e! T) i5 b# C, ^/ q 2.jpg 1.jpg
: [+ l3 K' h+ O" T7 M+ G( `  a* T5 u3 F2 l/ ]2 j8 \9 }0 X
发表于 2016-4-21 15:29:10 | 显示全部楼层 来自: 中国辽宁大连
hexiaohuihex 发表于 2016-4-20 17:18
( U7 r# m# M8 q7 u' _这个16的代码在12中运行出问题,提示如图
( P' X* T  N/ o: J" O
已解决,是我自己拷贝代码的过程中一些乱码一同拷入,没删干净导致宏不认。' f/ c8 ^9 v. J5 `( b7 Z, t& S7 j
已正常运行,多谢楼主了
发表于 2016-4-21 20:21:19 | 显示全部楼层 来自: 中国山东
对于焊接切割清单计算总重的这个问题,闷大在别网有一个能彻底解决总重的问题,而且如果配合常驻宏还能一劳永逸,楼主研究的精神是好,但是如果想彻底解决这个问题,还是建议楼主去拜读闷大的,[总重宏],相信楼主会深有感触。
发表于 2016-4-21 21:05:02 | 显示全部楼层 来自: 中国安徽蚌埠
觉得好奇怪!& t  e: E3 i. O( z9 |8 y7 C
我在焊接件的模板属性制作时,先添加焊接->添加属性,如图 0421.png ' m0 V' y4 v0 |* K" I# }8 e
+ ~5 O/ p9 A0 K1 `
画好焊件
1 w3 @; q6 S8 r$ q9 D( `" J2 i设置材料,子实体的属性自动出现
5 d0 u1 D5 E" B 04212.png 3 ?0 L7 t. u3 E* b
5 t& J' `6 T& @9 [
看总重在文件属性
5 j" |7 U. a+ ]( A# y 04213.png 7 m% w* A& f, U- T  C
, |) a+ L9 K. a, {0 J% d5 e
没有什么难度的啊
  T- f% R& Z, B  q* i' T具体效果
5 c7 l, l. t  U; q/ \  ]3 }2 a. n5 t. z' {% ^
171433wvjx2uapsb4xj447.gif
& |8 A6 E  j# g6 Y! M' U, Z6 n
, z$ |( s+ R) W+ ~0 p; a* \' J% [# y& O. f% [

评分

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

查看全部评分

发表于 2016-4-22 18:24:37 | 显示全部楼层 来自: 中国天津
jinqin11 发表于 2016-4-21 21:05/ T1 I1 {8 i& M. f3 @, v, B2 H. e
觉得好奇怪!- q2 A: |. q2 {& u* ?2 s6 c( i) s& J
我在焊接件的模板属性制作时,先添加焊接->添加属性,如图

8 Y# F, O% c" y' j材料明细表和焊件切割清单的区别在于,焊件切割清单可以直接提取焊件的轮廓属性(如果需要甚至还可以直接提取某一焊接件长度),比如说,“∠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运行出现如下情况:4 \6 h) N! {- x; V  j& |

- U& a. w# H7 i' _) x
捕获.JPG
发表于 2018-3-9 16:29:36 | 显示全部楼层 来自: 中国湖南
这个完全是利用sw宏运行的,也没反应
" n. _# `) v: ^7 c7 |, l
8 u& ]1 H" I7 _& N" o
捕获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备2023026364号-1 )

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