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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1715|回复: 15
打印 上一主题 下一主题

如何遍历零件→草图→尺寸.

  [复制链接]

9

主题

217

帖子

19

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
254
QQ
跳转到指定楼层
楼主
发表于 2011-8-11 13:24:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

   经典图书
Api论坛人气不够,在这里看是否能解决问题?
Sokidowrks API 二次开发的书中,给出的是遍历特征树的示例.
Set swFeat = swPart.FirstFeature
Do While Not swFeat Is Nothing
FeatTypeName = swFeat.GetTypeName
Debug.Print FeatTypeName
......
Loop
零件什么都没画时其结果是
DetailCabinet
CommentsFolder
DocsFolder
SurfaceBodyFolder
SolidBodyFolder
MaterialFolder
EnvFolder
RefPlane
RefPlane
RefPlane
OriginProfileFeature
----------------------
添加了两个蓝图后.增加了两项
ProfileFeature
ProfileFeature
----------------------------------------------
由此可以判断
Set swFeat = swPart.FirstFeature→如何改就能遍历草图的内容.
谢谢.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞1239 拍砖拍砖855
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

12

主题

236

帖子

29

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
281
QQ
沙发
发表于 2011-8-11 13:26:37 | 只看该作者
这是SW帮助文件中的一个草图示例
草图→Set swSketch = swModel.GetActiveSketch2
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swSketch As SldWorks.Sketch
    Dim swFeat                  As SldWorks.Feature
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    ' Get the open sketch
    Set swSketch = swModel.GetActiveSketch2
    Set swFeat = swSketch
    ' Change the name of the open sketch to CircleSketch
    swFeat.Name = "CircleSketch"
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

10

主题

230

帖子

27

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
282
QQ
板凳
发表于 2011-8-11 13:27:29 | 只看该作者

   经典图书
  
帮助文件又一例
Public Enum swLineTypes_e
    swLF_VISIBLE = 0
    swLF_HIDDEN = 1
    swLF_SKETCH = 2
    swLF_DETAIL = 3
    swLF_SECTION = 4
    swLF_DIMENSION = 5
    swLF_CENTER = 6
    swLF_HATCH = 7
    swLF_TANGENT = 8
End Enum
Sub main()
    Dim swApp                   As SldWorks.SldWorks
    Dim swModel                 As SldWorks.ModelDoc2
    Dim swPart                  As SldWorks.PartDoc
    Dim swSelMgr                As SldWorks.SelectionMgr
    Dim swFeat                  As SldWorks.Feature
    Dim swSketch                As SldWorks.Sketch
    Dim NumArcs                 As Long
    Dim vArcs                   As Variant
    Dim i                       As Variant
    Dim bRet                    As Boolean
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swPart = swModel
    Set swSelMgr = swModel.SelectionManager
    Set swFeat = swSelMgr.GetSelectedObject5(1)
    Set swSketch = swFeat.GetSpecificFeature
    NumArcs = swSketch.GetArcCount
    Debug.Print "Feature = " & swFeat.GetTypeName
    Debug.Print "  NumArcs = " & NumArcs
    Debug.Print ""
    vArcs = swSketch.GetArcs2
    If IsEmpty(vArcs) Then Exit Sub
    Debug.Assert UBound(vArcs) + 1 = 16 * NumArcs
    For i = 0 To NumArcs - 1
        Debug.Print "    Arc(" & i & ")"
        Debug.Print "      colour         = " & vArcs(16 * i + 0)
        Debug.Print "      type           = " & vArcs(16 * i + 1)
        Debug.Print "      font           = " & vArcs(16 * i + 2)
        Debug.Print "      width          = " & vArcs(16 * i + 3)
        Debug.Print "      layerID        = " & vArcs(16 * i + 4)
        Debug.Print "      layer override = " & vArcs(16 * i + 5)
        Debug.Print "      start          = (" & _
            vArcs(16 * i + 6) * 1000# & ", " & _
            vArcs(16 * i + 7) * 1000# & ", " & _
            vArcs(16 * i + 8) * 1000# & ") mm"
        Debug.Print "      end            = (" & _
            vArcs(16 * i + 9) * 1000# & ", " & _
            vArcs(16 * i + 10) * 1000# & ", " & _
            vArcs(16 * i + 11) * 1000# & ") mm"
        Debug.Print "      ctr            = (" & _
            vArcs(16 * i + 12) * 1000# & ", " & _
            vArcs(16 * i + 13) * 1000# & ", " & _
            vArcs(16 * i + 14) * 1000# & ") mm"
        Debug.Print "      RotDir         = " & _
            vArcs(16 * i + 15)
    Next i
End Sub
-------------------------
    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
    Sub main()
    Set swApp = Application.SldWorks
    Dim SwSketch As SldWorks.Sketch
    Set Part = swApp.ActiveDoc
    Set SelMgr = Part.SelectionManager
    boolstatus = Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
    'boolstatus = Part.Extension.SelectByID2("草图2", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
    'boolstatus = Part.Extension.SelectByID2("草图3", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
    Set swFeat = SelMgr.GetSelectedObject5(1)
        Set SwSketch = swFeat.GetSpecificFeature
        'NumArcs = SwSketch.GetArcCount
        With SwSketch
          'nn = .GetArcCount
          nn = .GetLineCount
          nn = .GetUserPointsCount
          Debug.Print "Feature = " & swFeat.GetTypeName
    vArcs = SwSketch.GetUserPoints2
        End With
    End Sub

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

使用道具 举报

14

主题

233

帖子

33

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
276
QQ
地板
发表于 2011-8-11 13:30:39 | 只看该作者
强力不懂!!!不过今后貌似要用到……
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8

主题

234

帖子

17

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
280
QQ
5#
发表于 2011-8-11 13:30:39 | 只看该作者

   经典案例图书
高手
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

213

帖子

37

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
270
QQ
6#
发表于 2011-8-11 13:31:23 | 只看该作者
支持一下
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

221

帖子

23

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
266
QQ
7#
发表于 2011-8-11 13:31:42 | 只看该作者

   经典案例图书
估计这要学数据结构呢不然谁会啊!树这这种结构就比图简单点1
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

223

帖子

18

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
255
QQ
8#
发表于 2011-8-11 13:32:43 | 只看该作者
强势围观
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

229

帖子

12

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
255
QQ
9#
发表于 2011-8-11 13:34:27 | 只看该作者
直接秒杀我等普通用户,你是何居心啊。。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

231

帖子

28

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
285
QQ
10#
发表于 2011-8-11 13:41:24 | 只看该作者

   经典图书
的运用。。看的头晕。。。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

80

主题

270

帖子

155

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
428
11#
发表于 2011-8-11 13:46:02 | 只看该作者
严重不懂·····································································
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

241

帖子

19

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
279
QQ
12#
发表于 2011-8-11 13:48:41 | 只看该作者
晕了,彻底的晕了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

14

主题

215

帖子

35

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
265
QQ
13#
发表于 2011-8-11 13:51:06 | 只看该作者
就是这个需求,需要继续消化理解。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

89

主题

312

帖子

175

金币

堂主

Rank: 4

积分
507
QQ
14#
发表于 2011-8-11 13:53:30 | 只看该作者
高级货....
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

4238

帖子

4

金币

传奇

Rank: 8Rank: 8

积分
8671

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

15#
发表于 2019-7-31 09:23:15 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

楼主太有才了,膜拜中……
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

4119

帖子

3

金币

传奇

Rank: 8Rank: 8

积分
8452

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

16#
发表于 2019-7-31 10:29:19 | 只看该作者

   经典案例图书
SolidWorks机械工程师网,顶一下。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

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

手机版|小黑屋| GMT+8, 2025-5-23 20:02 , Processed in 0.202697 second(s), 23 queries , Memcache On.

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

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

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