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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

自定义属性

  [复制链接]

92

主题

286

帖子

174

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
460
跳转到指定楼层
楼主
发表于 2011-10-24 14:25:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim value As String
    Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    ' swModel.AddCustomInfo3 "", "MyTest", swCustomInfoText, "This is a test."
    ' ' Retrieve the value of a custom property called MyTest
    ' value = ""
    ' value = swModel.CustomInfo2("", "MyTest")
    ' swApp.SendMsgToUser2 value, 0, 0
    '
    ' ' Change the value of a custom property called MyTest
    ' value = "Test has now changed!"
    ' swModel.CustomInfo2("", "MyTest") = value
    ' swApp.SendMsgToUser2 value, 0, 0
    swModel.AddCustomInfo3 "", "MyProp1", swCustomInfotext, "垫片"
    swModel.AddCustomInfo3 "", "MyProp2", swCustomInfoNumber, "筒体"
    swModel.AddCustomInfo3 "", "MyProp3", swCustomInfoNumber, "3"
    swModel.AddCustomInfo3 "", "MyProp4", swCustomInfoNumber, "4"
    Dim retval() As String
    Dim i As Integer
    retval = swModel.GetCustomInfoNames2("")
    For i = 0 To UBound(retval)
    swApp.SendMsgToUser2 retval(i), 0, 0
    Next
    Dim count As Long
    count = swModel.GetCustomInfoCount2("")
    'swApp.SendMsgToUser2 "You have " & count & " custom properties.", 0, 0
    swApp.SendMsgToUser2 _
    "You have " & count & " custom properties.", 0, 0
    End Sub

复制代码
结果如图所示

**********************
swCustomInfoType_e

swCustomInfoUnknown

swCustomInfoText

swCustomInfoDate

swCustomInfoNumber

swCustomInfoYesOrNo

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

使用道具 举报

16

主题

220

帖子

37

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
261
QQ
沙发
发表于 2011-10-24 14:29:24 | 只看该作者
  
   
    swModel.AddCustomInfo3 "", "MyProp1", swCustomInfoText, "垫片""D1@草图1@零件2.SLDPRT""/ ""D2@草图1@零件2.SLDPRT"""
    swModel.AddCustomInfo3 "", "MyProp2", swCustomInfoText, "筒体""D1@草图1@零件2.SLDPRT""/""D2@草图1@零件2.SLDPRT"""
    swModel.AddCustomInfo3 "", "MyProp3", swCustomInfoNumber, "3"
    swModel.AddCustomInfo3 "", "MyProp4", swCustomInfoNumber, "4"
------------------------------------------------------------------------------------------------
  swModel.AddCustomInfo3 "", "Description", swCustomInfoText, "垫片""D1@草图1@零件1.SLDPRT""/ ""D2@草图1@零件1.SLDPRT"""
  swModel.AddCustomInfo3 "", "Material", swCustomInfoText, """SW-Material@零件1.SLDPRT"""
  swModel.AddCustomInfo3 "", "Weight", swCustomInfoText, """SW-Mass@零件1.SLDPRT"""
新建文件夹.zip (15.48 KB, 下载次数: 212)
新建文件夹1.zip (15.87 KB, 下载次数: 67)


复制代码
    ‘List Custom Properties Example (VB)
    ‘This example shows how to list the custom properties for a configuration.
    '-------------------------------------
    '
    ' Preconditions: SolidWorks document is open to which custom properties have been assigned.
    '
    ' Postconditions: None
    '-------------------------------------
    Option Explicit
    Public Enum swCustomInfoType_e
    swCustomInfoUnknown = 0
    swCustomInfoText = 30 ' VT_LPSTR
    swCustomInfoDate = 64 ' VT_FILETIME
    swCustomInfoNumber = 3 ' VT_I4
    swCustomInfoYesOrNo = 11 ' VT_BOOL
    End Enum
    Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim vConfigNameArr As Variant
    Dim vConfigName As Variant
    Dim vCustInfoNameArr As Variant
    Dim vCustInfoName As Variant
    Dim bRet As Boolean
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Debug.Print "File = " & swModel.GetPathName
    vConfigNameArr = swModel.GetConfigurationNames
    ' Is empty if a drawing becasue configurations not supported on drawings
    If IsEmpty(vConfigNameArr) Then
    ReDim vConfigNameArr(0)
    vConfigNameArr(0) = ""
    Else
    ' Add a blank string for the nonconfiguration-specific custom properties
    ReDim Preserve vConfigNameArr(UBound(vConfigNameArr) + 1)
    End If
    For Each vConfigName In vConfigNameArr
    Debug.Print " " & vConfigName
    vCustInfoNameArr = swModel.GetCustomInfoNames2(vConfigName)
    If Not IsEmpty(vCustInfoNameArr) Then
    For Each vCustInfoName In vCustInfoNameArr
    Debug.Print " " & vCustInfoName
    Debug.Print " Type = " & swModel.GetCustomInfoType3(vConfigName, vCustInfoName)
    Debug.Print " Value = " & swModel.GetCustomInfoValue(vConfigName, vCustInfoName)
    Debug.Print " Text = " & swModel.CustomInfo2(vConfigName, vCustInfoName)
    Next
    End If
    Debug.Print " ---------------------------"
    Next
    End Sub

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

使用道具 举报

11

主题

237

帖子

39

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
285
QQ
板凳
发表于 2011-10-24 14:32:12 | 只看该作者
好东东,能有输入窗口和界面就更好了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

14

主题

229

帖子

34

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
270
QQ
地板
发表于 2011-10-24 14:32:44 | 只看该作者

高手请你也来点实货,API参与的人太少.
如果有可能解决一个问题吗.
草图中任意画一条直线,如何获得这条直线的名称.
例如这条直线的名称是"直线1",用什么语句得到.谢谢.
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

231

帖子

28

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
285
QQ
5#
发表于 2011-10-24 14:37:48 | 只看该作者

   经典案例图书
  
    Sub ls()
      Dim swApp As SldWorks.SldWorks, swPart As SldWorks.ModelDoc2
      Dim swFeat As SldWorks.Feature, oSwFeat As SldWorks.Feature
      Set swApp = Application.SldWorks
      Set swPart = swApp.ActiveDoc
      Dim Str, Str1 As String, Str2 As String
      Dim boolstatus As Boolean
      With swPart
        nn = .FeatureManager.GetFeatureCount(True)
        Set swFeat = .FirstFeature
       
        For ii = 1 To nn - 1
          Set swFeat = swFeat.GetNextFeature
          Str = swFeat.Name '
          If Str Like "拉伸*" Then
            Str1 = swFeat.Name
            Debug.Print swFeat.GetTypeName, swFeat.Name
          End If
          If Str Like "草图*" Then
            Debug.Print swFeat.GetTypeName, swFeat.Name
              Str2 = swFeat.Name
          End If
        Next ii
        boolstatus = .Extension.SelectByID2(Str1, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
        .EditDelete
        boolstatus = .Extension.SelectByID2(Str2, "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
        .EditDelete
      End With
    End Sub

复制代码


复制代码
    'List Custom Properties Example (VB)
    'This example shows how to list the custom properties for a configuration.
    '-------------------------------------
    '
    ' Preconditions: SolidWorks document is open to which custom properties have been assigned.
    '
    ' Postconditions: None
    '-------------------------------------
    Option Explicit
    Public Enum swCustomInfoType_e
    swCustomInfoUnknown = 0
    swCustomInfoText = 30 ' VT_LPSTR
    swCustomInfoDate = 64 ' VT_FILETIME
    swCustomInfoNumber = 3 ' VT_I4
    swCustomInfoYesOrNo = 11 ' VT_BOOL
    End Enum
    Sub main2()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim vConfigNameArr As Variant
    Dim vConfigName As Variant
    Dim vCustInfoNameArr As Variant
    Dim vCustInfoName As Variant
    Dim bRet As Boolean
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Debug.Print "File = " & swModel.GetPathName
    vConfigNameArr = swModel.GetConfigurationNames
    ' Is empty if a drawing becasue configurations not supported on drawings
    If IsEmpty(vConfigNameArr) Then
    ReDim vConfigNameArr(0)
    vConfigNameArr(0) = ""
    Else
    ' Add a blank string for the nonconfiguration-specific custom properties
    ReDim Preserve vConfigNameArr(UBound(vConfigNameArr) + 1)
    End If
    For Each vConfigName In vConfigNameArr
    Debug.Print " " & vConfigName
    vCustInfoNameArr = swModel.GetCustomInfoNames2(vConfigName)
    If Not IsEmpty(vCustInfoNameArr) Then
    For Each vCustInfoName In vCustInfoNameArr
    Debug.Print " " & vCustInfoName
    Debug.Print " Type = " & swModel.GetCustomInfoType3(vConfigName, vCustInfoName)
    Debug.Print " Value = " & swModel.GetCustomInfoValue(vConfigName, vCustInfoName)
    Debug.Print " Text = " & swModel.CustomInfo2(vConfigName, vCustInfoName)
    bRet = swModel.DeleteCustomInfo2(vConfigName, vCustInfoName)
    Next
    End If
    Debug.Print " ---------------------------"
    Next
    End Sub

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

使用道具 举报

11

主题

239

帖子

32

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
300
QQ
6#
发表于 2011-10-24 14:37:50 | 只看该作者

这个很抱歉,我已经十年没搞过开发了,学的东西都还给老师了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

200

帖子

20

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
238
QQ
7#
发表于 2011-10-24 14:50:54 | 只看该作者

   经典案例图书
  
终于找到前辈您了,求助于您.先行谢过!在下想实现一功能:
***1.我的每个零件都已自定义了3个属性名,分别是1,2,3
***2.在装配图档下,执行,将装配体下"显示状态"(排除隐藏的零件)的零件 的这三个"属性名"和对应的"评估的值" 输出到excel文件,并自动打开该excel文档,每个零件单独一行,属性名一列,评估的值一列.
由于自己没有VBA方面的基础,无法写出该程序,不知该程序难道高低,先冒昧求助于您,不知您QQ多少,我想请您帮忙,适当的酬劳是应该的,因为我本人也是写lisp程序的,深知写程序的不易,耗时耗脑.望相助!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

71

主题

275

帖子

140

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
429
QQ
8#
发表于 2011-10-24 14:52:24 | 只看该作者
  
终于找到前辈您了,求助于您.先行谢过!在下想实现一功能:
***1.我的每个零件都已自定义了3个属性名,分别是1,2,3
***2.在装配图档下,执行,将装配体下"显示状态"(排除隐藏的零件)的零件 的这三个"属性名"和对应的"评估的值" 输出到excel文件,并自动打开该excel文档,每个零件单独一行,属性名一列,评估的值一列.
由于自己没有VBA方面的基础,无法写出该程序,不知该程序难道高低,先冒昧求助于您,不知您QQ多少,我想请您帮忙,适当的酬劳是应该的,因为我本人也是写lisp程序的,深知写程序的不易,耗时耗脑.望相助!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

437

帖子

918

金币

传奇

Rank: 8Rank: 8

积分
4785

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

9#
发表于 2017-8-12 17:06:05 | 只看该作者
进来学习
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

437

帖子

918

金币

传奇

Rank: 8Rank: 8

积分
4785

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

10#
发表于 2017-9-3 22:51:53 | 只看该作者
进来学习
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

365

帖子

53

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1308

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

11#
发表于 2021-10-14 18:24:05 | 只看该作者
楼主太有才了,膜拜中……
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

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

手机版|小黑屋| GMT+8, 2024-6-14 07:46 , Processed in 0.225001 second(s), 41 queries .

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

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

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