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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

装配体或零件与同名工程图关联,运行故障,求解大神

  [复制链接]

2

主题

193

帖子

76

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1121

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

跳转到指定楼层
楼主
 楼主| 发表于 2023-12-27 13:11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
装配体或零件关联并打开同名工程图,chatgpt写的,但是报错,希望大神解决一下
Sub LinkDrawingToModel()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swDrawing As SldWorks.DrawingDoc
    Dim swModelName As String
    Dim swDrawingName As String
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
   
    ' 检查当前文档是否为零件或装配体
    If Not swModel.GetType = swDocumentTypes_e.swDocPART And Not swModel.GetType = swDocumentTypes_e.swDocASSEMBLY Then
        MsgBox "请先打开一个零件或装配体"
        Exit Sub
    End If
   
    ' 获取模型的文件名
    swModelName = swModel.GetPathName
   
    ' 检查是否已保存模型
    If swModelName = "" Then
        MsgBox "请先保存模型"
        Exit Sub
    End If
   
     检查是否已打开同名的工程图
    swDrawingName = Replace(swModelName, ".sldprt", ".slddrw")
    swDrawingName = Replace(swDrawingName, ".sldasm", ".slddrw")
   
    If Not swApp.IsOpened(swDrawingName) Then
        MsgBox "请先打开同名的工程图"
       Exit Sub
    End If
   
     关联工程图与模型
    Set swDrawing = swApp.ActivateDoc3(swDrawingName, False, swRebuildOnActivation_e.swDontRebuildActiveDoc, Empty)
    swDrawing.ReloadModel swModelName
   
    MsgBox "工程图已成功关联到模型"
End Sub



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

使用道具 举报

3

主题

1212

帖子

236

金币

传奇

Rank: 8Rank: 8

积分
4127

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

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

使用道具 举报

2

主题

193

帖子

76

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1121

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

板凳
 楼主| 发表于 2023-12-27 16:34:19 | 只看该作者
这个也是有问题
Sub AssociateDrawingWithPart()
            Dim swApp As SldWorks.SldWorks
            Dim swModel As SldWorks.ModelDoc2
            Dim swDrawing As SldWorks.DrawingDoc
            Dim swModelView As SldWorks.ModelView
            Dim bIsFound As Boolean
            Dim strDrawingName As String
            Dim strPartName As String
            Dim strDrawingPath As String
            Dim strPartPath As String
            Dim strAssociateName As String
       
            Set swApp = Application.SldWorks
            Set swModel = swApp.ActiveDoc
            Set swDrawing = swApp.GetDrawing2(swModel.FileName)
            Set swModelView = swDrawing.GetModelView2(swModel.FileName)
       
            strDrawingName = Left(swDrawing.FileName, Len(swDrawing.FileName) - 5) ' Remove extension '.slddrw'
            strPartName = Left(swModel.FileName, Len(swModel.FileName) - 5) ' Remove extension '.sldprt'
            strDrawingPath = swDrawing.GetPathName
            strPartPath = swModel.GetPathName
            strAssociateName = "Assembly" ' This can be any name you want to use to represent the assembly in the drawing view.
       
            ' Check if drawing and part have the same name (ignoring extension)
            If strDrawingName = strPartName Then
                bIsFound = True
                swModelView.ClearAllAssociativeRelations
                swModelView.AddAssociativeRelation2 swModel, , , , , , , , , strAssociateName, , , , , , , , True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False
            End If
        End Sub
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

193

帖子

76

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1121

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

地板
 楼主| 发表于 2023-12-27 16:35:09 | 只看该作者
Sub AssociateDrawingWithPart()
            Dim swApp As SldWorks.SldWorks
            Dim swModel As SldWorks.ModelDoc2
            Dim swDrawing As SldWorks.DrawingDoc
            Dim swModelView As SldWorks.ModelView
            Dim bIsFound As Boolean
            Dim strDrawingName As String
            Dim strPartName As String
            Dim strDrawingPath As String
            Dim strPartPath As String
            Dim strAssociateName As String
       
            Set swApp = Application.SldWorks
            Set swModel = swApp.ActiveDoc
            Set swDrawing = swApp.GetDrawing2(swModel.FileName)
            Set swModelView = swDrawing.GetModelView2(swModel.FileName)
       
            strDrawingName = Left(swDrawing.FileName, Len(swDrawing.FileName) - 5) ' Remove extension '.slddrw'
            strPartName = Left(swModel.FileName, Len(swModel.FileName) - 5) ' Remove extension '.sldprt'
            strDrawingPath = swDrawing.GetPathName
            strPartPath = swModel.GetPathName
            strAssociateName = "Assembly" ' This can be any name you want to use to represent the assembly in the drawing view.
       
            ' Check if drawing and part have the same name (ignoring extension)
            If strDrawingName = strPartName Then
                bIsFound = True
                swModelView.ClearAllAssociativeRelations
                swModelView.AddAssociativeRelation2 swModel, , , , , , , , , strAssociateName, , , , , , , , True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False
            End If
        End Sub
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

47

帖子

55

金币

天使

Rank: 2Rank: 2

积分
160
QQ
5#
发表于 2023-12-28 12:25:21 | 只看该作者

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

使用道具 举报

2

主题

75

帖子

235

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1263

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

6#
发表于 2023-12-28 17:01:55 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

131

帖子

96

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1968

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

7#
发表于 2023-12-28 20:40:25 | 只看该作者

   经典案例图书
工程Jay_chen 发表于 2023-12-28 17:01
顶一下,坐等高手!

对圣诞星这首歌怎么看?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

530

帖子

1246

金币

传奇

Rank: 8Rank: 8

积分
4237

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

8#
发表于 2023-12-29 07:28:46 | 只看该作者
SolidWorks机械工程师网,顶一下。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

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

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

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

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

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