如何用solidworks内置VBA宏写一段代码,将2D工程图尺寸遍历后导出到EXCEL中?
单位出工程后需要提取图纸里面的尺寸,做一份尺寸清单,到目前位置都是用的手工抄录的方法,又慢还容易错,希望哪个高人给点小建议,最好给出示例代码(不接受无脑的AI生成代码,试过很多,都用不了),万分感谢了!
如何用solidworks内置VBA宏写一段代码,将2D工程图尺寸遍历后导出到EXCEL中
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注本答案参考 多次询问 ChatGPT-3.5 后选择的最佳回答,若是满意,还请采纳,谢谢
- 准备工作
- 在SolidWorks中打开要处理的2D工程图。
- 启用宏功能:在SolidWorks中,通过“工具”->“宏”->“新建”来创建一个新的VBA宏。
- 代码实现思路
- 连接到Excel应用程序并创建一个新的工作簿。
- 遍历工程图中的尺寸,获取尺寸的相关属性(如尺寸值、标注文本等)。
- 将这些尺寸属性写入到Excel工作表中。
- 示例代码如下:
' 引用SolidWorks类型库 Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim swAnno As SldWorks.Annotation Dim excelApp As Object Dim excelBook As Object Dim excelSheet As Object Dim i As Long, j As Long Sub ExportDimensionsToExcel() ' 连接到SolidWorks Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc If swModel Is Nothing Then MsgBox "请先打开一个工程图文件" Exit Sub End If Set swDraw = swModel ' 创建Excel应用程序对象 Set excelApp = CreateObject("Excel.Application") excelApp.Visible = True ' 创建新的工作簿 Set excelBook = excelApp.Workbooks.Add Set excelSheet = excelBook.Worksheets(1) j = 1 ' 遍历工程图中的每个图纸 For Each swSheet In swDraw.Sheets ' 遍历图纸中的每个注释(包括尺寸) For i = 0 To swSheet.GetAnnotationsCount2(- 1) Set swAnno = swSheet.GetAnnotation(i) If swAnno.GetType = swAnnotationType_e.swDimension Then ' 将尺寸值和标注文本写入Excel excelSheet.Cells(j, 1).Value = swAnno.Text excelSheet.Cells(j, 2).Value = swAnno.GetValue j = j + 1 End If Next i Next swSheet End Sub- 代码解释
- 首先,代码通过
Set swApp = Application.SldWorks获取SolidWorks应用程序对象,并检查是否有打开的工程图文件。 - 然后,使用
CreateObject("Excel.Application")创建Excel应用程序对象,并使其可见(excelApp.Visible = True),接着创建一个新的工作簿并获取第一个工作表。 - 接下来,通过两个嵌套的循环遍历工程图中的每个图纸(
For Each swSheet In swDraw.Sheets)和每个注释(For i = 0 To swSheet.GetAnnotationsCount2(- 1))。当注释类型为尺寸(swAnno.GetType = swAnnotationType_e.swDimension)时,将尺寸的标注文本(swAnno.Text)和尺寸值(swAnno.GetValue)分别写入Excel工作表的两列中。
- 首先,代码通过
请注意:
- 上述代码在不同版本的SolidWorks和Excel中可能需要根据实际情况进行调整。
- 在运行宏之前,请确保已经正确设置了SolidWorks和Excel的相关环境和权限。
解决 无用评论 打赏 举报- 准备工作