找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

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

[求助] 自定义属性下图号名称分离不能激活存盘

[复制链接]
跳转到指定楼层
1
发表于 2018-7-9 17:36:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
图号名称分离宏给工作带来了快捷与方便,配置特定下焖大已经解决了激活存盘的问题,但是自定义属性下还是不能激活存盘,我直接把焖大的激活三底草图复制到自定义里面不能运行,求论坛内高手给已解决,谢谢了。
  1. ChildModel.SketchManager.Insert3DSketch True '插入三低草图,从而激活零件的“需存盘标签”
  2.                 ChildModel.SketchManager.Insert3DSketch True '离开三低草图
复制代码
这个代码复制到自定义属性里面不能运行,不知道是什么原因?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
推荐
发表于 2020-1-10 20:42:47 | 只看该作者
可以使用Part.SetSaveFlag 来设置保存标记,告诉sw文件需要保存,但是并不执行保存操作,在文件关闭时跳出提示保存时可以选择不保存变更,有“反悔”的机会。
直接保存就是 Part.Save,可能就没有“反悔”的机会了。
2
发表于 2018-7-10 08:44:36 | 只看该作者
樓主這般提問,解難者猶如瞎子摸象。
3
发表于 2018-7-10 12:49:06 | 只看该作者
Francis 发表于 2018-7-10 08:44
樓主這般提問,解難者猶如瞎子摸象。

是自定义属性内宏修改了图号和名称,但是不能存盘保存,很多时候再次打开发现图号名称都没有了。
  1. '定义solidwork
  2. Dim swApp As Object
  3. Dim Part As Object
  4. Dim SelMgr As Object
  5. Dim boolstatus As Boolean
  6. Dim longstatus As Long, longwarnings As Long
  7. Dim Feature As Object
  8. Dim a As Integer
  9. Dim b As String
  10. Dim m As String
  11. Dim e As String
  12. Dim k As String
  13. Dim t As String
  14. Dim c As String
  15. Dim j As Integer
  16. Dim strmat As String
  17. Dim tempvalue As String
  18. Sub main()
  19. 'link solidworks
  20. Set swApp = Application.SldWorks
  21. Set Part = swApp.ActiveDoc
  22. Set SelMgr = Part.SelectionManager
  23. swApp.ActiveDoc.ActiveView.FrameState = 1
  24. '设定变量
  25. c = swApp.ActiveDoc.GetTitle() '零件名
  26. strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
  27. blnretval = Part.DeleteCustomInfo2("", "代号")
  28. blnretval = Part.DeleteCustomInfo2("", "名称")
  29. 'blnretval = Part.DeleteCustomInfo2("", "材料")
  30. a = InStr(c, " ") - 1     '重点:分隔标识符,这里是一个空格
  31. If a > 0 Then
  32.    k = Left(c, a)
  33.    t = Left(LTrim(e), 3)
  34.    If t = "GBT" Then
  35.        e = "GB/T" + Mid(k, 4)
  36.    Else
  37.         e = k
  38.    End If
  39.    b = Mid(c, a + 2)
  40.    t = Right(c, 7)
  41.    If t = ".SLDPRT" Or t = ".SLDASM" Then
  42.         j = Len(b) - 7
  43.    Else
  44.         j = Len(b)
  45.    End If
  46.    m = Left(b, j)
  47. End If
  48. blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e) '代号
  49. blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m) '名称
  50. blnretval = Part.AddCustomInfo3("", "表面处理", swCustomInfoText, " ")
  51. End Sub
复制代码


4
发表于 2018-7-10 12:52:15 | 只看该作者
写入属性后,加入存盘代码
Part.save
5
发表于 2018-7-10 14:01:33 | 只看该作者
qiminger 发表于 2018-7-10 12:52
写入属性后,加入存盘代码
Part.save

谢谢

,我使用这个图号分离很就了,常常出现分离后关闭软件,下次再打开发现图号名称没有了,谢谢你的帮助
6
发表于 2020-1-4 23:43:08 | 只看该作者
End If
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e)  '代号
blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m)  '名称
Model.EditRebuild3 '刷新
Model.Save

End Sub
只要加上后面的两句就可以了,刷新后存盘,下次打开还在的,你可以试一下完整的如下:
'定义solidwork
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Dim a As Integer
Dim b As String
Dim m As String
Dim e As String
Dim k As String
Dim t As String
Dim c As String
Dim j As Integer
Dim strmat As String
Dim tempvalue As String
Dim Model As ModelDoc2
Sub main()
'link solidworks
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
Set Model = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameState = 1
'设定变量
c = swApp.ActiveDoc.GetTitle() '零件名
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
blnretval = Part.DeleteCustomInfo2("", "代号")
blnretval = Part.DeleteCustomInfo2("", "名称")
blnretval = Part.DeleteCustomInfo2("", "材料")
a = InStr(c, " ") - 1      '重点:分隔标识符,这里是一个空格
If a > 0 Then
k = Left(c, a)
t = Left(LTrim(e), 3)
If t = "GBT" Then
e = "GB/T" + Mid(k, 4)
Else
e = k
End If
    b = Mid(c, a + 2)
    t = Right(c, 7)
    If t = ".SLDPRT" Or t = ".SLDASM" Then
        j = Len(b) - 7
    Else
        j = Len(b)
    End If
    m = Left(b, j)
End If
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e)  '代号
blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m)  '名称
Model.EditRebuild3
Model.Save
End Sub



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

本版积分规则

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

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

GMT+8, 2025-1-29 13:48 , Processed in 0.022755 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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