|
经典图书
以下代码为API VBA源码,在下部倒数第二个参数是钣金输出选项,参见API帮助。以下代码略加修改可以做成批量处理工具。我用VB.NET写的代码给你应该没什么用如下图。
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim sModelName As String
Dim sPathName As String
Dim varAlignment As Variant
Dim dataAlignment(11) As Double
Dim varViews As Variant
Dim dataViews(1) As String
Dim options As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
sModelName = swModel.GetPathName
sPathName = swModel.GetPathName
sPathName = Left(sPathName, Len(sPathName) - 6)
sPathName = sPathName + "dwg"
Set swPart = swModel
dataAlignment(0) = 0#
dataAlignment(1) = 0#
dataAlignment(2) = 0#
dataAlignment(3) = 1#
dataAlignment(4) = 0#
dataAlignment(5) = 0#
dataAlignment(6) = 0#
dataAlignment(7) = 1#
dataAlignment(8) = 0#
dataAlignment(9) = 0#
dataAlignment(10) = 0#
dataAlignment(11) = 1#
varAlignment = dataAlignment
dataViews(0) = "*Current"
dataViews(1) = "*Front"
varViews = dataViews
'Export each annotation view to a separate drawing file
swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
'Export sheet metal to a single drawing file
options = 1 'include flat-pattern geometry
swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportSheetMetal, True, varAlignment, False, False, options, Null
End Sub
可以,判断厚度,最好是钣金零件,
Value = Part.ExportFlatPatternView(MyFileNameDXF, swExportFlatPatternOption_None) '保留折弯线
value = Part.ExportFlatPatternView(FilePath, swExportFlatPatternOption_RemoveBends)'去掉折弯线
Option Explicit
Sub thiness0()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim i As Long
Dim swFeatMgr As FeatureManager
Dim swFeat As Feature
Dim swSheetMetalFol As SheetMetalFolder
Dim swSheetFeatData As SheetMetalFeatureData
Dim swBaseFlangeFeatData As BaseFlangeFeatureData
Dim vSheetMetalFeat As Variant
Dim ThicknessM As String
Dim Path As String
Dim sModelName As String
Dim sPathName As String
Dim varAlignment As Variant
Dim dataAlignment(11) As Double
Dim options As Long
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swFeatMgr = swModel.FeatureManager
Set swSheetMetalFol = swFeatMgr.GetSheetMetalFolder
If Not swSheetMetalFol Is Nothing Then
vSheetMetalFeat = swSheetMetalFol.GetSheetMetals
For i = 0 To UBound(vSheetMetalFeat)
Set swFeat = vSheetMetalFeat(i)
If swFeat.GetTypeName2 = "SheetMetal" Then
Set swSheetFeatData = swFeat.GetDefinition
Exit For
End If
Next i
Else
Set swFeat = swModel.FirstFeature
Do While Not swFeat Is Nothing
If swFeat.GetTypeName2 = "SMBaseFlange" Then
Set swBaseFlangeFeatData = swFeat.GetDefinition
Exit Do
ElseIf swFeat.GetTypeName2 = "SheetMetal" Then
Set swSheetFeatData = swFeat.GetDefinition
Exit Do
End If
Set swFeat = swFeat.GetNextFeature
Loop
End If
ThicknessM = swSheetFeatData.Thickness * 1000
C = ThicknessM
C = "(T=" & C & "mm)"
msgbox c
End Sub
我运行此楼代码 提示编译错误变量未定义,能否上传 .swp附件 谢谢
只需要在最上面加上
DIM C
我这个c的公共变量在其它模块已经定义
Macro11.zip
(9.56 KB, 下载次数: 81)
只需要在最上面加上
DIM C
你看一下引那里有没有丢失的
零件要求是钣金件
|
|