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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
楼主: xlh0

宏提取文件名字符为何不成功

  [复制链接]

16

主题

236

帖子

35

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
303
QQ
发表于 2013-6-22 09:04:11 | 显示全部楼层
練習6#的悶招
用到 ""-"方程式"-"連接屬性",應是較深級的應用,但對管控圖紙的尺寸統一性一致性,是很好的一種選擇方式.
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

8

主题

227

帖子

23

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
266
QQ
发表于 2013-6-22 09:04:29 | 显示全部楼层
唉,看这些高深的应用,像看天书一样呀。这段时间要研究这个,要好好看看了
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

15

主题

237

帖子

30

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
294
QQ
发表于 2013-6-22 09:04:41 | 显示全部楼层
不用研究了,請細看35#樓悶人怎麼回覆吧。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

20

主题

240

帖子

53

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
307
QQ
发表于 2013-6-22 09:05:09 | 显示全部楼层
呵呵,你的2013版不能用这个了吗?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

227

帖子

18

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
274
QQ
发表于 2013-6-22 09:05:39 | 显示全部楼层

   经典案例图书
不知道!悶人沒有2013版本。
有情細心閱讀各人的每一帖子。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

14

主题

251

帖子

40

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
305
QQ
发表于 2013-6-22 09:06:00 | 显示全部楼层
没试过不下结论。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

237

帖子

19

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
265
QQ
发表于 2013-6-22 09:06:17 | 显示全部楼层

   经典案例图书
請再細心看帖,沒人下結論。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8

主题

235

帖子

25

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
284
QQ
发表于 2013-6-22 09:06:40 | 显示全部楼层
哦哦,这样的呀。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

231

帖子

23

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
262
QQ
发表于 2013-6-22 09:07:18 | 显示全部楼层
大神,你好!根据你的提示我自己做了一些修改,主要是提取代号_名称这样组合的文件,我在我电脑win8.1运行很好,发给win7的时候说找不到工程或库。能帮我看下吗?
151010aisl99tpevssmmwv.png
' **************************************************
'提取代号_名称命名的零件,程序以_进行分界
' **************************************************
Sub main()
Dim swApp       As SldWorks.SldWorks
Dim swModel     As SldWorks.ModelDoc2
Dim retval      As String
Set swApp = Application.SldWorks
Set swModel = swApp.GetFirstDocument
path_name = swModel.GetPathName '取出当前文档的路径及名称
name_ = swModel.GetTitle '取出当前文档的名称
L1 = InStrRev(name_, "_", , 0) '取出当前文档“_”之前代号的长度
L2 = InStrRev(name_, ".", , 0) '取出“.”之前的长度
name_front = Left(name_, L1 - 1) '取出当前文档“_”之前的文本
name_back = Mid(name_, L1 + 1, L2 - L1 - 1) '取出当前文档“_”和“.”之间的的文本
retval = swModel.DeleteCustomInfo("代号&quot '删除之前的代号
retval = swModel.AddCustomInfo3("", "代号", swCustomInfoText, name_front) '将代号值写入自定义属性
retval = swModel.DeleteCustomInfo("名称&quot '删除之前的名称
retval = swModel.AddCustomInfo3("", "名称", swCustomInfoText, name_back) '将名称值写入自定义属性
End Sub
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

238

帖子

23

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
280
QQ
发表于 2013-6-22 09:07:24 | 显示全部楼层
自己给自己顶一个……
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

231

帖子

15

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
263
QQ
发表于 2013-6-22 09:09:16 | 显示全部楼层
試試如下:win7 64位元
編碼原則為   代號_名稱.solidworks副檔名(如 123456_軸承.SLDPRT)
功能:應用抓出零件編碼的"代號"及"名稱",放置到屬性欄.
' 2013/12/17 2012-sp4版 test
'   data
' ---> 屬性
Dim swApp As Object
Sub main()
Dim retval                  As Boolean
Dim name_front         As String
Dim swModel              As SldWorks.ModelDoc2
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swModel = swApp.GetFirstDocument
path_name = swModel.GetPathName
name_ = swModel.GetTitle
L1 = InStrRev(name_, "_", , 0)
L2 = InStrRev(name_, ".", , 0)
name_front = Left(name_, L1 - 1)
name_back = Mid(name_, L1 + 1, L2 - L1 - 1)
retval = swModel.DeleteCustomInfo("代號")
retval = swModel.AddCustomInfo3("", "代號", swCustomInfoText, name_front)
retval = swModel.DeleteCustomInfo("名稱")
retval = swModel.AddCustomInfo3("", "名稱", swCustomInfoText, name_back)
End Sub
test121217.rar (6.95 KB, 下载次数: 173)
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

16

主题

249

帖子

41

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
314
QQ
发表于 2013-6-22 09:11:12 | 显示全部楼层
嗯,谢谢大神。已解决,赞一个
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

215

帖子

26

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
266
QQ
发表于 2013-6-22 09:11:36 | 显示全部楼层
大侠,我在更改以前的零件属性时,插入方程式的步骤比较多,想一键完成,遇到如下问题,要怎么解决哦
Dim swEquationMgr As Object
Dim Part As Object
Sub main()
Set swApp =  Application.SldWorks
Set Part = swApp.ActiveDoc
Set swEquationMgr = Part.GetEquationMgr()
swEquationMgr.Add -1, "执行" & Chr(34) & "=" & """嵌合"""   '这里出了问题,“嵌合”这位置只能是数字,字母汉字都无法插入,求解
End Sub
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

208

帖子

27

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
249
QQ
发表于 2013-6-22 09:11:44 | 显示全部楼层
建議使用“回复”及“添加代码文字”。
試下改為:
    swEquationMgr.Add2 -1, """执行""" & "=" & """嵌合""", False

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

使用道具 举报

9

主题

234

帖子

23

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
263
QQ
发表于 2013-6-22 09:11:48 | 显示全部楼层
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入


多谢大侠,成功了!用方程式关联后,不用担心改名后代号和名称失去关联了,一键重写完美实现
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

14

主题

205

帖子

32

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
244
QQ
发表于 2013-6-22 09:12:44 | 显示全部楼层

   经典案例图书
大侠大师,我能在论坛了看到将solidworks的图号、名称分离并与零件属性关链的技法很是荣幸,感谢大师。我现在用的是2010版的,32位XP系统,非常想实现这一功能,希望能得到您的指导。我的qq:1494515986。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

233

帖子

10

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
263
QQ
发表于 2013-6-22 09:13:24 | 显示全部楼层
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

试了一下 2012可以  可是升级了一下2014 怎么不行了呢?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

231

帖子

22

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
276
QQ
发表于 2013-6-22 09:13:34 | 显示全部楼层

   经典案例图书
今天我试了下,我是在2010版时把这些什么的东西都添加到了模板文件里了,今天升级到了2013,用2010版的已经添加了和方程表达式的模板新建了文件,最终试验结果是这些代码还是能用的,只不过在“方程式”的列表里的表达式,总面会一直显示一个X号,就像26楼的第二张图片一样。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

238

帖子

28

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
294
QQ
发表于 2013-6-22 09:13:48 | 显示全部楼层
在零件中可实现提取,但是在装配体中不行,是否语法上有不同?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

231

帖子

15

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
270
QQ
发表于 2013-6-22 09:14:43 | 显示全部楼层
麻煩多了 ,最主要是要抓取組件上全部的零件名稱.
另執行組件有組件的通關密語.
參考 SolidWorks机械工程师论坛
有工程师及吉大精彩文章
220438xyz1q117nw32g8gc.jpg
' ******************************************************************************
'  macro recorded on 03/27/14 by lsc
'
'  組合件之零件自訂屬性 [ 編號_名稱 ],編號名稱是以" _ "符號分隔.
'
' ******************************************************************************
Dim TopDocPathOnly As String
Dim swModel As SldWorks.ModelDoc2
Dim swApp As SldWorks.SldWorks
Sub main()
Set swApp = Application.SldWorks
Set TopDoc = swApp.ActiveDoc '總裝對象
If TopDoc.GetType <> 2 Then Exit Sub '不是裝配=退出
TopDocPathSplit = Split(TopDoc.GetPathName, &quot;&quot '分割
TopDocName = TopDocPathSplit(UBound(TopDocPathSplit)) '總裝文件名稱
TopDocName = Left(TopDocName, Len(TopDocName) - 7) '總裝文件名稱(排除.SLDASM)
TopDocPathOnly = TopDocPathSplit(UBound(TopDocPathSplit) - 1) '總裝目錄名稱
TopConfString = TopDoc.GetActiveConfiguration.Name '總裝配置名稱
SubAsm TopDoc, TopConfString '遍歷
End Sub
Function SubAsm(AsmDoc, ConfString)
Set swModel = swApp.ActiveDoc
Set Configuration = AsmDoc.GetConfigurationByName(ConfString)
Set RootComponent = Configuration.GetRootComponent
Components = RootComponent.GetChildren
For Each Child In Components '總裝抓全部零件名稱
    Set ChildModel = Child.GetModelDoc
    ChildPathSplit = Split(Child.GetPathName, &quot;&quot '分割
    ChildName = ChildPathSplit(UBound(ChildPathSplit)) '零件文件名稱
    L1 = InStrRev(ChildName, &quot;_&quot;, , 0)
    L2 = InStrRev(ChildName, &quot;.&quot;, , 0)
    code_ = Left(ChildName, L1 - 1) ' 編號
    name_ = Mid(ChildName, L1 + 1, L2 - L1 - 1) '名稱
    swModel.DeleteCustomInfo2 &quot;&quot;, code_
    swModel.AddCustomInfo2 code_, swCustomInfoText, name_
Next
End Function
組件零件之編號名稱屬性.rar (120.59 KB, 下载次数: 25)
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-4-18 19:34 , Processed in 0.240490 second(s), 29 queries .

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

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

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