我有这两个代码(在互联网上收集的),它们分别表现得很好。但我需要他们合而为一。 我的主要目标是仅生成一个文件,而不是两个文件,因为此代码正在检索;和我的部分一样。
这个效果很好,实际上两者都是,但是这是创建两个 dxf 文件,我只需要其中一个。此外,它使用“视图名称”创建,我宁愿将其作为文件名。
https://www.codestack.net/solidworks-api/document/drawing/export-sheet-metal-views/
下一个无法正常工作,但它使用文件名来命名新文件。 将 Solidworks 零件导出为 dxf 的宏
基于此代码的解决方案:
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, "")