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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
楼主: 310808021
打印 上一主题 下一主题

求图号名称分离的宏,属性可应用到配置特定下面

  [复制链接]

11

主题

106

帖子

63

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
285
QQ
21#
发表于 2015-11-23 16:44:47 | 只看该作者
梁大又对代码进行了改进了,学习啦。
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

11

主题

76

帖子

69

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
203
QQ
22#
发表于 2015-11-23 16:44:58 | 只看该作者


參考如上
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

14

主题

65

帖子

100

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
246
QQ
23#
发表于 2015-11-23 16:46:04 | 只看该作者
梁大,链接打不开
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

13

主题

78

帖子

69

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
227
QQ
24#
发表于 2015-11-23 16:46:30 | 只看该作者
梁大,这个代码,分离代号和名称都顺利,但是,因为我是习惯隐藏文件扩展名的,所以,提取材料时,最后的结果就变成了 "SW-Material@BFHX-LZ-ZT-JX.01-1_零件试验" 这样的了,没有.sldprt或者.SLDASM文件名后缀了,导致不能自动提取材料属性。不知道在我这种隐藏了后缀名的情况下,如何修改这个代码以自动提取材料属性?谢谢
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

77

帖子

52

金币

天使

Rank: 2Rank: 2

积分
189
QQ
25#
发表于 2015-11-23 16:46:33 | 只看该作者

   经典案例图书
像這樣嗎?

Configuration code_name_1.rar (8.86 KB, 下载次数: 109) swp
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

20

主题

84

帖子

130

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
319
QQ
26#
发表于 2015-11-23 16:47:32 | 只看该作者
是的。
我下载了试下。谢谢梁大。
有问题再向梁大请教。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

68

帖子

105

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
256
QQ
27#
发表于 2015-11-23 16:48:09 | 只看该作者

   经典案例图书
梁大,经过测试,问题依旧呀,还是显示成您这个材料栏里的这样,不知道问题在哪里了?难道必须把文件夹选设置成显示文件名后缀才行吗?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

100

帖子

69

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
299
QQ
28#
发表于 2015-11-23 16:49:24 | 只看该作者
楼主是做非标的吧
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

13

主题

68

帖子

104

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
229
QQ
29#
发表于 2015-11-23 16:49:30 | 只看该作者
在什麼條件下要達到什麼結果?
材料栏里到底是要顯示怎樣,請上個圖!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

17

主题

108

帖子

113

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
346
QQ
30#
发表于 2015-11-23 16:50:07 | 只看该作者
參考如下,是針對文件在隱藏擴展名之處理.
另在IF條件下判定的文件名稱稍可簡化,因不影響結果就不處理了.

Configuration Code_Name.rar (9.21 KB, 下载次数: 51) swp
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

20

主题

79

帖子

189

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
385
QQ
31#
发表于 2015-11-23 16:50:24 | 只看该作者
材料栏里就是您发后面的那个时带的那张图里的样子,就是显示“sw-material@零件1"。少了后面的后缀,不是显示成“sw-material@零件1.sldprt",链接不到零件的材料属性。其它的都没问题。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

13

主题

66

帖子

102

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
239
QQ
32#
发表于 2015-11-23 16:50:41 | 只看该作者
是的,这样可以显示出链接属性的,我之前这样改动试过了是可行的。但是您之前发的那个文件是可以无论是装配体还是零件都可以自动添加好这个材料链接属性,而这样改动以后,就是相当于只对零件有效了,因为装配体后缀名和零件后缀名不一致,装配体的属性就没法链接了。我是半个强迫症患者,就是不喜欢显示已知文件的后缀名,否则用您第一个文件可以圆满完成提取文件名、代号和添加材料属性的要求,只能向您请教隐藏这后缀名后有没有无论是零件还是装配体都能添加好有效的这个材料属性链接的办法,请多多指点。
另外,因为做这些试验都是在公司的电脑上,公司电脑禁止连外网,只能在公用上网机上下载文件再转到内网,内网的文件没法拷出来,所以没办法上传相关的图片,请梁大谅解。谢谢。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

73

帖子

88

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
234
QQ
33#
发表于 2015-11-23 16:51:35 | 只看该作者
若是強迫要隱藏擴展名,是認為本來能簡單地處裡就行,就硬生生搞成複雜事,
程度所限,尚沒法在無擴展名之條件下區分出哪個是組件哪個是零件,
可能要找出隱藏下的擴展名需動到DLL(Dynamic Link Library动态链接库文件)處理,這方面就一直沒研究過,
依我的程度,只好作成兩個""一個處裡零件另個處裡組件,而且尚要用人工判定哪個文件是組件或是零件,是有過麻煩了.
也或許其他大大有較好的方案解決就期待著了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

72

帖子

68

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
206
QQ
34#
发表于 2015-11-23 16:52:59 | 只看该作者
能不能先显示再隐藏?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

19

主题

69

帖子

98

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
271
QQ
35#
发表于 2015-11-23 16:53:16 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

首先谢谢梁大提供了那么好的东西~
再来,SW API 里面提供了两个函数可以满足您的使用要求。
1. iModelDoc2.GetType 可以得到文件的类型
2. iModelDoc2.GetPathName 可以得到文件的全路径
针对梁大提供的,可以追加如下函数,
Private Function getModelDocExtAsString(ByVal prModelDoc As SldWorks.ModelDoc2) As String
    Dim sFileName As String
   
    Const swDocPART = 1
    Const swDocASSEMBLY = 2
    Const swDocDRAWING = 3
    If prModelDoc Is Nothing Then Exit Function
    Select Case prModelDoc.GetType
   
        Case swDocPART
            getModelDocExtAsString = ".SLDPRT"
            
        Case swDocASSEMBLY
            getModelDocExtAsString = ".SLDASM"
            
        Case swDocDRAWING
            getModelDocExtAsString = ".SLDDRW"
            
        Case Else
            sFileName = prModelDoc.GetPathName
            If InStr(1, sFileName, ".") > 0 Then
            getModelDocExtAsString = Right(sFileName, Len(sFileName) - InStrRev(sFileName, ".") + 1)
            Else: getModelDocExtAsString = ""
            End If
            
    End Select
   
End Function
并对原来的的一行作如下修改:
'Na = c + ".SLDPRT"
Na = c + getModelDocExtAsString(swApp.ActiveDoc)
即可。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

65

帖子

63

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
208
QQ
36#
发表于 2015-11-23 16:53:42 | 只看该作者

   经典案例图书
想想重點如下:
1. 應該是用 swApp.ActiveDoc.GetPathName 不管是否隱藏擴展名都可以抓到擴展名 .SLDPAT OR .SLDASM
2. 而用 swApp.ActiveDoc.GetTitle() 僅抓出所要的名稱,但在隱藏擴展名時就抓不到 .SLDPAT OR .SLDASM
3. 但用第1項雖是找到名稱帶擴展名,但同時也抓出路徑非所要的,所以就需多做處理過濾掉.
總而言之,N大問題是可解!
參考如下,藍色是所要的.
Path_Name = swApp.ActiveDoc.GetPathName '取得"路徑名稱及擴展名"(不管擴展名是否隱藏)
S1 = InStrRev(Path_Name, "") '符號在路徑之最後位置數
Code_Name_C = Right(Path_Name, Len(Path_Name) - S1) '取得"件號_名稱.擴展名"
S2 = InStr(Code_Name_C, "_") '_符號在"件號_名稱.擴展名"之位置數
Code_ = Left(Code_Name_C, S2 - 1) '取得"件號"
Name_ = Mid(Code_Name_C, S2 + 1, Len(Code_Name_C) - S2 - 7) '取得"名稱"
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

62

帖子

68

金币

天使

Rank: 2Rank: 2

积分
169
QQ
37#
发表于 2015-11-23 16:56:02 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

高人,能否烦请您帮我修改一下梁大的后发一个完整的文件给我?我不知道您这些代码应该加在哪里,我没学过VC VB哈,都只能瞎鼓捣的,只会对已经有了的做很小很小的改动,要做稍微大点的改动我就变成睁眼瞎了。另外,请教一下,因为填属性时,一般都是往零件和装配体里填写,工程图属性一般都是保持空白的,不知道如果是批量处理的话如何过滤掉工程图不往工程图里填属性?谢谢您啦。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

80

帖子

105

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
308
QQ
38#
发表于 2015-11-23 16:56:08 | 只看该作者

   经典案例图书
梁大,能否烦请您赐个完整的文件或者完整的代码?我水平太差,没学过VB VC,这一段一段的代码我不知道应该放哪里去才能达到想要的效果。谢谢梁大帮忙。另外,请教一下,因为填属性时,一般都是往零件和装配体里填写,工程图属性一般都是保持空白的,不知道如何在用批量处理添加属性时如何过滤掉工程图不往工程图里填属性?谢谢。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

68

帖子

84

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
200
QQ
39#
发表于 2015-11-23 16:56:25 | 只看该作者
服務到家啦
是依據本主題格式

Configuration -1.rar (10.3 KB, 下载次数: 101) swp
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

14

主题

115

帖子

97

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
360
QQ
40#
发表于 2015-11-23 16:57:02 | 只看该作者
用批量处理添加属性时如何过滤掉工程图不往工程图里填属性?
應該可以,抓到工程圖之擴展名就不處理的邏輯概念
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2024-6-4 06:53 , Processed in 0.417448 second(s), 30 queries .

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

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

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