带有折线的Solidworks dwg,如何合并这两个代码?

问题描述 投票:0回答:1

我有这两个代码(在互联网上收集的),它们分别表现得很好。但我需要他们合而为一。 我的主要目标是仅生成一个文件,而不是两个文件,因为此代码正在检索;和我的部分一样。

这个效果很好,实际上两者都是,但是这是创建两个 dxf 文件,我只需要其中一个。此外,它使用“视图名称”创建,我宁愿将其作为文件名。

https://www.codestack.net/solidworks-api/document/drawing/export-sheet-metal-views/

下一个无法正常工作,但它使用文件名来命名新文件。 将 Solidworks 零件导出为 dxf 的宏

vba solidworks dxf dwg
1个回答
0
投票

基于此代码的解决方案:

https://www.codestack.net/solidworks-api/document/drawing/export-sheet-metal-views/

使用已保存的一张绘图和仅一个平面图案视图进行测试。

要解决保存两个文件的问题,请替换以下代码:

Sub ExportFlatPatternViews(draw As SldWorks.DrawingDoc, sheet As SldWorks.sheet)
    
    Dim vViews As Variant
    
    vViews = sheet.GetViews()
    
    If Not IsEmpty(vViews) Then
        
        Dim i As Integer
        
        For i = 0 To UBound(vViews)
            Dim swView As SldWorks.view
            Set swView = vViews(i)
            
            If swView.IsFlatPatternView() Then
                ExportFlatPatternView draw, swView
            End If
        Next
        
    End If    
End Sub

有了这个:

    Sub ExportFlatPatternViews(draw As SldWorks.DrawingDoc, sheet As SldWorks.sheet)
    
    Dim swView As SldWorks.view
    
    Set swView = draw.GetFirstView
    
    Set swView = swView.GetNextView
    
    While Not swView Is Nothing
    
        If swView.IsFlatPatternView Then
        
            ExportFlatPatternView draw, swView
            
         End If
         
         Set swView = swView.GetNextView
         
     Wend
     
End Sub

由于某种原因,原始代码两次获得相同的视图,但名称不同。需要更多时间来检查原因。

要使用文件名保存,请更改分配

filename
的代码。

'fileName = view.Name & OUT_EXT

Dim saveDir As String
saveDir = model.GetPathName()

If saveDir = "" Then
    Err.Raise vbError, "", "Only saved drawings are supported"
End If

fileName = model.GetTitle & OUT_EXT

由于

ModelDoc2
是绘图文件,因此
ModelDoc2.GetTitle
将返回文件名和图纸名称。

编辑以添加从文件名中删除工作表名称的代码

使用已保存的一张绘图和仅一个平面图案视图进行测试。

以下代码将获取包含视图的工作表名称

    Dim viewName As String
    viewName = view.sheet.GetName

现在我们可以将工作表名称替换为

fileName

中的空字符串

需要考虑到

GetTitle
将文件名和工作表名称与
-
连接起来,因此我们将其替换为。

    fileName = Replace(fileName, " - " & sheetName, "")

因此,要使其工作,请在分配

fileName
后添加代码:

    fileName = model.GetTitle & OUT_EXT
    
    'Code to add
    Dim sheetName As String
    sheetName = view.sheet.GetName
    fileName = Replace(fileName, " - " & sheetName, "")
© www.soinside.com 2019 - 2024. All rights reserved.