SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
查看: 12090|回复: 21
打印 上一主题 下一主题

分享:获取零件或组件的长宽高(外形尺寸)小巧门

  [复制链接]

39

主题

372

帖子

3084

金币

传奇

Rank: 8Rank: 8

积分
7776

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

跳转到指定楼层
楼主
 楼主| 发表于 2021-3-1 14:25:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在sw版本,2018以上支持零件边界框插入,2019以上支持装配体边界框插入,小巧门就是用边界框的这个功能。
如果单单使用边界框插入,在配置特定属性中会生成相关属性,可以使用。
只是,边界框这一个虚线框在工作区,显示确实很不方便,到了装配体,一大堆线条,到了工程图也是每个视图带个框。边界框生成后可以隐藏或压缩,只是感觉不太稳定。
所以这个特征还是不要的好,只要它(边框界)的相关数值就好了。
所以思路就出来了,
首先创建一个边界框,然后获取边界框参数值,即配置属性评估值,
再删除边界框特征,
再写入刚提取参数到文件属性中,
最后防止有文件已有边界框的情况下,可能补压缩特征,或其他原因倒致参数没更新到最新,所以,创建边界前先执行删除旧边界框,再重新创建,以保边界框是最新的,准确的。

另外说一下,这个边界框比之前论坛中的零件(xyz最大最小)长宽高提取的区别,用xyz最大小点提取的,相对一些异形的,坐标是斜的工件就做得不太准了,边界框侧可以最佳适配,或自定义。




下面附代码:


Sub main()


Dim mo0301 As String
Dim mo0302 As String
Dim mo0303 As String
Dim mo0304 As String
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Dim swFeat As Object
Dim swFeatMgr As Object

'Set myModelView = Part.ActiveView
'myModelView.FrameState = swWindowState_e.swWindowMaximized
'boolstatus = Part.Extension.SelectByID2("边界框", "BBOXSKETCH", 0, 0, 0, False, 0, Nothing, 0)
'Part.EditDelete

Set swFeatMgr = Part.FeatureManager
Dim swFeatData As Object
Set swFeatData = swFeatMgr.CreateDefinition(swFeatureNameID_e.swFmBoundingBox)
swFeatData.IncludeHiddenBodies = False
swFeatData.IncludeSurfaces = False
swFeatData.ReferenceFaceOrPlane = 1
Set swFeat = swFeatMgr.CreateFeature(swFeatData)
Part.ClearSelection2 True

mo0301 = swApp.ActiveDoc.GetCustomInfoValue("默认", "合计边界框长度")
mo0302 = swApp.ActiveDoc.GetCustomInfoValue("默认", "合计边界框宽度")
mo0303 = swApp.ActiveDoc.GetCustomInfoValue("默认", "合计边界框厚度")

Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
boolstatus = Part.Extension.SelectByID2("边界框", "BBOXSKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete

mo0304 = mo0301 + " X " + mo0302 + " X " + mo0303

bRet = Part.DeleteCustomInfo2("", "长宽高")
bRet = Part.AddCustomInfo3("", "长宽高", swCustomInfoText, mo0304)


End Sub

评分

参与人数 2威望 +5 金币 +48 贡献 +5 收起 理由
Allate + 5 + 20 + 5 很给力!
wǒ想我是海 + 28 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

1

主题

33

帖子

126

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
251
QQ
沙发
发表于 2021-3-4 14:10:03 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

11

主题

246

帖子

148

金币

VIP用户组

Rank: 100Rank: 100Rank: 100Rank: 100

积分
2607

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

板凳
发表于 2021-3-4 16:02:48 | 只看该作者
luoqingmin 发表于 2021-3-4 14:10
很不错,顶一下!

您好,运行程序会报错,

360截图181412168189116.png
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

39

主题

372

帖子

3084

金币

传奇

Rank: 8Rank: 8

积分
7776

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

地板
 楼主| 发表于 2021-3-4 17:08:35 | 只看该作者
Kerwin1314 发表于 2021-3-4 16:02
您好,运行程序会报错,

在sw版本,2018以上支持零件边界框插入,2019以上支持装配体边界框插入。你用的是哪个版本的sw?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

246

帖子

148

金币

VIP用户组

Rank: 100Rank: 100Rank: 100Rank: 100

积分
2607

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

5#
发表于 2021-3-5 09:11:36 | 只看该作者

   经典案例图书
tg000057 发表于 2021-3-4 17:08
在sw版本,2018以上支持零件边界框插入,2019以上支持装配体边界框插入。你用的是哪个版本的sw?

我用的2018,在单独零件下使用的,您看一下视频,您那里不报错是吗?

bandicam 2021-03-05 09-07-05-190.mp4

(1.82 MB, 下载次数: 128

SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

39

主题

372

帖子

3084

金币

传奇

Rank: 8Rank: 8

积分
7776

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

6#
 楼主| 发表于 2021-3-5 10:25:07 | 只看该作者
Kerwin1314 发表于 2021-3-5 09:11
我用的2018,在单独零件下使用的,您看一下视频,您那里不报错是吗?

嗯,这个说不清楚了,边界框版本的适用是sw更新说明里查到的,但是我电脑只有sw2019,这个宏也是sw2019录制的,sw2019能用于装配体,它的对象应该不适用于sw2018的只适用于零件的,
你可以自己用sw2018录制一个啊,先创建一个边界框,然后录制删除,再创建,再删除,结束录制,然后编辑,把

Dim mo0301 As String
Dim mo0302 As String
Dim mo0303 As String
Dim mo0304 As String
.
.
.
mo0301 = swApp.ActiveDoc.GetCustomInfoValue("默认", "合计边界框长度")
mo0302 = swApp.ActiveDoc.GetCustomInfoValue("默认", "合计边界框宽度")
mo0303 = swApp.ActiveDoc.GetCustomInfoValue("默认", "合计边界框厚度")



mo0304 = mo0301 + " X " + mo0302 + " X " + mo0303

bRet = Part.DeleteCustomInfo2("", "长宽高")
bRet = Part.AddCustomInfo3("", "长宽高", swCustomInfoText, mo0304)

这几段加上去就可了。

SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

246

帖子

148

金币

VIP用户组

Rank: 100Rank: 100Rank: 100Rank: 100

积分
2607

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

7#
发表于 2021-3-6 08:21:07 | 只看该作者

   经典案例图书
tg000057 发表于 2021-3-5 10:25
嗯,这个说不清楚了,边界框版本的适用是sw更新说明里查到的,但是我电脑只有sw2019,这个宏也是sw2019录 ...

好的,谢谢大佬
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8#
发表于 2021-6-8 16:33:49 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

89

帖子

52

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
347

最佳新人活跃会员热心会员宣传达人

9#
发表于 2022-1-7 20:59:15 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

15

主题

398

帖子

74

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1794

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

10#
发表于 2022-3-11 09:48:47 | 只看该作者
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

33

帖子

17

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
215

最佳新人活跃会员宣传达人

11#
发表于 2022-3-24 16:34:57 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

267

帖子

26

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1500

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

12#
发表于 2022-3-26 16:32:27 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

97

帖子

86

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
420

最佳新人活跃会员热心会员宣传达人

13#
发表于 2022-4-17 11:54:11 | 只看该作者
SW2016能做清单高*宽*长的属性吗?将三个数据合并

企业微信截图_16501569048111.png
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

430

帖子

840

金币

传奇

Rank: 8Rank: 8

积分
4576

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

14#
发表于 2022-4-17 20:34:15 | 只看该作者
用SW2016做的STEP转换的获取到的尺寸不准确,没有安装高版的,这程序不知会不会存在同样的问题?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

99

帖子

41

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
438

最佳新人活跃会员热心会员宣传达人

15#
发表于 2022-8-20 18:01:47 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

能做清单高*宽*长的属性吗
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

267

帖子

26

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1500

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

16#
发表于 2022-11-16 21:24:39 | 只看该作者

   经典案例图书
SW机械工程师网,找到组织了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

19

帖子

56

金币

天使

Rank: 2Rank: 2

积分
170

最佳新人宣传达人

17#
发表于 2022-12-3 09:31:46 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

感谢楼主分享,很不错!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

98

帖子

21

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
402

最佳新人活跃会员热心会员宣传达人

18#
发表于 2022-12-3 12:46:02 | 只看该作者

   经典案例图书
请教一下现在写入的是自定义属性,怎么写入到配置属性谢谢!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

185

帖子

160

金币

堂主

Rank: 4

积分
713

最佳新人活跃会员热心会员宣传达人灌水之王

19#
发表于 2023-3-3 18:03:49 | 只看该作者
楼主太有才了,膜拜中……
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

479

帖子

526

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2559

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

20#
发表于 2023-3-4 08:15:12 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-5-5 04:10 , Processed in 0.186613 second(s), 37 queries .

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

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