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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

SolidWorks二次开发VB多多互动

  [复制链接]

27

主题

1348

帖子

3163

金币

传奇

Rank: 8Rank: 8

积分
10451

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

跳转到指定楼层
楼主
发表于 2017-4-20 09:22:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你们还在用SolidWorksVBA写程序吗?(真心不方便)我已改用Visual Studio 2012写法!
有问题可多多互动,请发文本!
补充内容 (2017-4-21 09:27):
    Dim swModel As ModelDoc2
    Dim swFeat As Feature
    Dim FeatType As String '宣告特征类型
    Dim RefPlaneName(2) As String
    Dim OriginPointName As String3
    '在不同的模板,获取参考基准...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

1

主题

29

帖子

81

金币

天使

Rank: 2Rank: 2

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

使用道具 举报

0

主题

14

帖子

157

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
405

最佳新人宣传达人

板凳
发表于 2017-4-20 21:53:34 | 只看该作者
可以发些例 子,大家一起学习学习..
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

27

主题

1348

帖子

3163

金币

传奇

Rank: 8Rank: 8

积分
10451

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

地板
 楼主| 发表于 2017-4-21 09:28:28 | 只看该作者
    Dim swModel As ModelDoc2
    Dim swFeat As Feature
    Dim FeatType As String '宣告特征类型
    Dim RefPlaneName(2) As String
    Dim OriginPointName As String3
    '在不同的模板,获取参考基准面和原点名
    Public Sub GetRefPlaneName()
        swModel = swApp.ActiveDoc       '返回当前活动的文件
        swFeat = swModel.FirstFeature       '获得特征管理器的第一个特征
        Do  '循环
            FeatType = swFeat.GetTypeName               '获得特征类型
            If FeatType = "RefPlane" Then               '如果特征类型是参考面的话
                RefPlaneName(0) = swFeat.Name           '获得前视特征名
                swFeat = swFeat.GetNextFeature          '到下一个特征
                RefPlaneName(1) = swFeat.Name           '获得上视特征名
                swFeat = swFeat.GetNextFeature          '到下一个特征
                RefPlaneName(2) = swFeat.Name           '获得右视特征名
                swFeat = swFeat.GetNextFeature          '到下一个特征
                OriginPointName = swFeat.Name       '获得原点名,用作分析是英文还是简体中文系统
                Exit Do
            End If
            swFeat = swFeat.GetNextFeature      '到下一个特征
        Loop
    End Sub
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

575

帖子

1365

金币

传奇

Rank: 8Rank: 8

积分
6791

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

5#
发表于 2017-4-21 10:02:06 | 只看该作者

   经典案例图书
看看怎么样
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

27

主题

1348

帖子

3163

金币

传奇

Rank: 8Rank: 8

积分
10451

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

6#
 楼主| 发表于 2017-4-22 08:48:03 | 只看该作者

   '去掉后缀名
    Public Sub ParseAssemblyName()
        Dim AssemblyTitle As String
        Dim CopyToPath As String
        Dim StrName As String()
        Dim AsseBlyName As String = ""
        AsseBlyName = swModel.GetTitle
        AssemblyTitle = AsseBlyName
        '如果没有后缀名就接后缀名.SLDASM(这个情况是在我的电脑/工具/文件夹选项/查看/勾住隐藏已知文件类型扩展名
        If AsseBlyName.EndsWith(".SLDASM", True, culture) Then
            StrName = AsseBlyName.Split(".SLDASM, .sldasm")
            AssemblyTitle = StrName(0) '获得没有后缀名的名字
        End If
        '
        StrName = Split(swModel.GetPathName, AssemblyTitle & ".SLDASM")
        'StrName = Split(swModel.GetPathName, AsseBlyName)
        CopyToPath = StrName(0)
        '取得当前的图号
        StrName = AssemblyTitle.Split("-"c)
        'MoNOJSQ = StrName(0) & "-"
        If CopyToPath = "" Then
            MessageBox.Show("请先存档才可运行!", "提醒", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
        End If
    End Sub
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

27

主题

1348

帖子

3163

金币

传奇

Rank: 8Rank: 8

积分
10451

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

7#
 楼主| 发表于 2017-4-22 10:48:57 | 只看该作者

   经典案例图书
开料,绘制3D草图线框
'----------------------------------------------
Option Explicit
Sub main()
    Dim swApp                       As SldWorks.SldWorks
    Dim swModel                     As SldWorks.ModelDoc2
    Dim swSelMgr                    As SldWorks.SelectionMgr
    Dim swFeat                      As SldWorks.Feature
    Dim vBox                        As Variant
    Dim swSketchPt(8)               As SldWorks.SketchPoint
    Dim swSketchSeg(12)             As SldWorks.SketchSegment
    Dim bRet                        As Boolean
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swFeat = swSelMgr.GetSelectedObject5(1)
   
    Debug.Print "Feature = " & swFeat.Name
    bRet = swFeat.GetBox(vBox): Debug.Assert bRet
    Debug.Print "  Pt1 = " & "(" & vBox(0) * 1000# & ", " & vBox(1) * 1000# & ", " & vBox(2) * 1000# & ") mm"
    Debug.Print "  Pt2 = " & "(" & vBox(3) * 1000# & ", " & vBox(4) * 1000# & ", " & vBox(5) * 1000# & ") mm"
    swModel.Insert3DSketch2 True
    swModel.SetAddToDB True
    swModel.SetDisplayWhenAdded False
   
    ' Draw points at each corner of bounding box
    Set swSketchPt(0) = swModel.CreatePoint2(vBox(3), vBox(1), vBox(5))
    Set swSketchPt(1) = swModel.CreatePoint2(vBox(0), vBox(1), vBox(5))
    Set swSketchPt(2) = swModel.CreatePoint2(vBox(0), vBox(1), vBox(2))
    Set swSketchPt(3) = swModel.CreatePoint2(vBox(3), vBox(1), vBox(2))
    Set swSketchPt(4) = swModel.CreatePoint2(vBox(3), vBox(4), vBox(5))
    Set swSketchPt(5) = swModel.CreatePoint2(vBox(0), vBox(4), vBox(5))
    Set swSketchPt(6) = swModel.CreatePoint2(vBox(0), vBox(4), vBox(2))
    Set swSketchPt(7) = swModel.CreatePoint2(vBox(3), vBox(4), vBox(2))
   
    ' Now draw bounding box
    Set swSketchSeg(0) = swModel.CreateLine2(swSketchPt(0).X, swSketchPt(0).Y, swSketchPt(0).Z, swSketchPt(1).X, swSketchPt(1).Y, swSketchPt(1).Z)
    Set swSketchSeg(1) = swModel.CreateLine2(swSketchPt(1).X, swSketchPt(1).Y, swSketchPt(1).Z, swSketchPt(2).X, swSketchPt(2).Y, swSketchPt(2).Z)
    Set swSketchSeg(2) = swModel.CreateLine2(swSketchPt(2).X, swSketchPt(2).Y, swSketchPt(2).Z, swSketchPt(3).X, swSketchPt(3).Y, swSketchPt(3).Z)
    Set swSketchSeg(3) = swModel.CreateLine2(swSketchPt(3).X, swSketchPt(3).Y, swSketchPt(3).Z, swSketchPt(0).X, swSketchPt(0).Y, swSketchPt(0).Z)
   
    Set swSketchSeg(4) = swModel.CreateLine2(swSketchPt(0).X, swSketchPt(0).Y, swSketchPt(0).Z, swSketchPt(4).X, swSketchPt(4).Y, swSketchPt(4).Z)
    Set swSketchSeg(5) = swModel.CreateLine2(swSketchPt(1).X, swSketchPt(1).Y, swSketchPt(1).Z, swSketchPt(5).X, swSketchPt(5).Y, swSketchPt(5).Z)
    Set swSketchSeg(6) = swModel.CreateLine2(swSketchPt(2).X, swSketchPt(2).Y, swSketchPt(2).Z, swSketchPt(6).X, swSketchPt(6).Y, swSketchPt(6).Z)
    Set swSketchSeg(7) = swModel.CreateLine2(swSketchPt(3).X, swSketchPt(3).Y, swSketchPt(3).Z, swSketchPt(7).X, swSketchPt(7).Y, swSketchPt(7).Z)
   
    Set swSketchSeg(8) = swModel.CreateLine2(swSketchPt(4).X, swSketchPt(4).Y, swSketchPt(4).Z, swSketchPt(5).X, swSketchPt(5).Y, swSketchPt(5).Z)
    Set swSketchSeg(9) = swModel.CreateLine2(swSketchPt(5).X, swSketchPt(5).Y, swSketchPt(5).Z, swSketchPt(6).X, swSketchPt(6).Y, swSketchPt(6).Z)
    Set swSketchSeg(10) = swModel.CreateLine2(swSketchPt(6).X, swSketchPt(6).Y, swSketchPt(6).Z, swSketchPt(7).X, swSketchPt(7).Y, swSketchPt(7).Z)
    Set swSketchSeg(11) = swModel.CreateLine2(swSketchPt(7).X, swSketchPt(7).Y, swSketchPt(7).Z, swSketchPt(4).X, swSketchPt(4).Y, swSketchPt(4).Z)
   
    swModel.SetDisplayWhenAdded True
    swModel.SetAddToDB False
    swModel.Insert3DSketch2 True
End Sub
'----------------------------------------------
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

27

主题

1348

帖子

3163

金币

传奇

Rank: 8Rank: 8

积分
10451

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

8#
 楼主| 发表于 2017-7-13 15:10:52 | 只看该作者
好好学习,天天向上!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8

主题

527

帖子

152

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1652

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

9#
发表于 2021-4-17 21:43:03 | 只看该作者
好好学习,天天向上!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

40

帖子

28

金币

天使

Rank: 2Rank: 2

积分
129

最佳新人活跃会员宣传达人

10#
发表于 2021-10-10 17:44:13 | 只看该作者
好多 资料啊 ,谢谢!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

119

帖子

477

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2360

最佳新人活跃会员热心会员宣传达人

11#
发表于 2021-11-30 15:23:40 | 只看该作者
点赞支持一下,
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

15

主题

398

帖子

74

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1794

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

12#
发表于 2022-3-11 13:49:40 | 只看该作者
好好学习,天天向上!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-5-17 03:27 , Processed in 0.187410 second(s), 34 queries .

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

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

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