找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 141368|回复: 748
打印 上一主题 下一主题

[教程] 宏:焊件切割清单中自动增加『单重』和『总重』的属性+3!(限額5位)

  [复制链接]
跳转到指定楼层
1
发表于 2009-12-15 00:31:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
如果用过焊件,相信必会感到再加上重量属性时非常不便,
相关帖子:https://www.icax.org/487297p1p1 92楼的例子
如果焊件切割清单中存在100项的话,就要分别增加重量属性100次了,
一旦面对设变,那就更糟糕透了。

只要采取一些二次开发的伎俩,编写一个简单的宏,
每次更新的时候运行一下,那就无后顾之忧了。

如有谁人可以顺利应用并展示效果,加三分起!(限額5位)
游客,如果您要查看本帖隐藏内容请回复


本帖最后由 Francis 于 2009-12-16 10:56 编辑

评分

参与人数 1技术 +3 收起 理由
zhanghaitao + 3 精品文章

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏23 分享淘帖 赞一下!赞一下!2
推荐
发表于 2009-12-17 21:03:54 | 只看该作者
其实 Add 和 Add2 两个方法功能是相同的,仅仅是第二个输入参数的类型不同

所以,使用简体中文版的同志们,应该这样改程序
custPropMgr.Add "Weight", "Text", Chr(34) & "SW-Mass@@@" & fn & "@" & pn & Chr(34)
custPropMgr.Add "Weight", "文字", Chr(34) & "SW-Mass@@@" & fn & "@" & pn & Chr(34)
将 text 改为 “文字”就可以了

可能SW也发现了Add方法的漏洞,才创建了新的方法 Add2

评分

参与人数 1技术 +3 大米 +10 收起 理由
Francis + 3 + 10 一再感谢!

查看全部评分

推荐
发表于 2009-12-15 10:33:04 | 只看该作者
zhanghaitao 发表于 2009-12-15 09:06
只有顶顶了,不懂红


不会吧,S大不是已经参加了ICT举办的二次开发技术交流会吗?怎么还会说不懂啊?

其实也不需要懂得什么,要尝试,只要复制内码到VBA编辑器即可运行,这是基本功啊。

由版主带头说不懂,这是不良现象,菜鸟们更会大条理由要求喂食。
推荐
发表于 2014-11-22 11:35:54 | 只看该作者
本帖最后由 zyf0732 于 2014-11-22 11:44 编辑
大鹿 发表于 2014-11-22 10:11
楼上既然成功扩展用途,可否分享出来让更说人受益。

响应鹿大号召,我就是在闷大基础上增加了几个适合我的属性
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim thisFeat As SldWorks.Feature
Dim thisSubFeat As SldWorks.Feature
Dim cutFolder As Object
Dim BodyCount As Integer
Dim fn As String
Dim pn As String
Dim custPropMgr As SldWorks.CustomPropertyManager
Dim propNames As Variant
Dim vName As Variant
Dim propName As String
Dim Value As String
Dim resolvedValue As String
Dim TotalW As Double
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set thisFeat = Part.FirstFeature
Do While Not thisFeat Is Nothing
    If thisFeat.GetTypeName = "SolidBodyFolder" Then
        thisFeat.GetSpecificFeature2.UpdateCutList
    End If
    Set thisSubFeat = thisFeat.GetFirstSubFeature
    Do While Not thisSubFeat Is Nothing
        If thisSubFeat.GetTypeName = "CutListFolder" Then
            Set cutFolder = thisSubFeat.GetSpecificFeature2
        End If
        If Not cutFolder Is Nothing Then
            BodyCount = cutFolder.GetBodyCount
            If BodyCount > 0 Then
                Set custPropMgr = thisSubFeat.CustomPropertyManager
                If Not custPropMgr Is Nothing Then
                    custPropMgr.Delete "Total Weight"
                    custPropMgr.Delete "Weight"
                    custPropMgr.Delete "h名称"
                    custPropMgr.Delete "h数量"
                    custPropMgr.Delete "图号"
                    fn = thisSubFeat.Name
                    pn = Part.GetTitle
                    custPropMgr.Add "Weight", "文字", Chr(34) & "SW-Mass@@@" & fn & "@" & pn & Chr(34)
                    custPropMgr.Add "h名称", "文字", fn
                    propNames = custPropMgr.GetNames
                    If Not IsEmpty(propNames) Then
                        For Each vName In propNames
                            propName = vName
                            custPropMgr.Get2 propName, Value, resolvedValue
                            If propName = "Weight" Then TotalW = resolvedValue
                        Next vName
                    End If
                    custPropMgr.Add "Total Weight", "文字", Format(BodyCount * TotalW, "0.00")
                    custPropMgr.Add "h数量", "文字", BodyCount
                    custPropMgr.Add "图号", "文字", Left(pn, InStrRev(pn, ".") - 1) & "-"
                End If
            End If
        End If
        Set thisSubFeat = thisSubFeat.GetNextSubFeature
    Loop
    Set thisFeat = thisFeat.GetNextFeature
Loop
End Sub


不过这段程序没明白什么意思
   propNames = custPropMgr.GetNames
                    If Not IsEmpty(propNames) Then
                        For Each vName In propNames
                            propName = vName
                            custPropMgr.Get2 propName, Value, resolvedValue
                            If propName = "Weight" Then TotalW = resolvedValue
                        Next vName
                    End If
还有请问各位大侠 能否把各个宏变都成按钮图标,用哪个就点哪个,不用再选择?
推荐
发表于 2013-10-2 16:34:36 | 只看该作者
snailtian 发表于 2013-10-2 16:25
闷兄,我实践了,有以下问题:
weiht和total weight 都有,但是weight中评估的值出不了质量。还有total we ...

新建零件后结果一样

本帖子中包含更多资源

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

x
2
发表于 2009-12-15 07:52:30 | 只看该作者
顶闷大 教程 谢谢教学
二次开发不懂

本帖最后由 zhoushan403 于 2009-12-15 07:54 编辑
3
发表于 2009-12-15 09:06:37 | 只看该作者
只有顶顶了,不懂红
4
发表于 2009-12-15 09:24:11 | 只看该作者
回帖,顶一下看
5
发表于 2009-12-15 09:43:10 | 只看该作者
顶闷老师
6
发表于 2009-12-15 10:09:40 | 只看该作者
俺也不懂宏
7
发表于 2009-12-15 10:29:19 | 只看该作者
宏就那么难?学习啊
9
发表于 2009-12-15 10:39:03 | 只看该作者
不好意思,我试下子
10
发表于 2009-12-15 17:09:08 | 只看该作者
学习学习再学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-22 09:35 , Processed in 0.036073 second(s), 15 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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