找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 5465|回复: 20
打印 上一主题 下一主题

[已解决] solidworks零件批量导出CAD展开图宏文件

[复制链接]
跳转到指定楼层
1
发表于 2020-2-24 16:30:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 735057167 于 2020-2-29 23:26 编辑

求可以直接通过零件转为CAD的展开图宏,
不需要转为工程图

最好可以标识厚度
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 赞一下!赞一下!
推荐
发表于 2020-2-26 21:46:50 | 只看该作者
735057167 发表于 2020-2-26 17:06
判断厚度的代码我有了,就差零件自动转为cad的代码

以下代码为API VBA源码,在下部倒数第二个参数是钣金输出选项,参见API帮助。以下代码略加修改可以做成批量处理工具。我用VB.NET写的代码给你应该没什么用如下图。


VBA代码:
  1. Option Explicit

  2. Dim swApp As SldWorks.SldWorks
  3. Dim swModel As SldWorks.ModelDoc2
  4. Dim swPart As SldWorks.PartDoc
  5. Dim sModelName As String
  6. Dim sPathName As String
  7. Dim varAlignment As Variant
  8. Dim dataAlignment(11) As Double
  9. Dim varViews As Variant
  10. Dim dataViews(1) As String
  11. Dim options As Long

  12. Sub main()
  13.     Set swApp = Application.SldWorks
  14.     Set swModel = swApp.ActiveDoc   
  15.     sModelName = swModel.GetPathName
  16.     sPathName = swModel.GetPathName
  17.     sPathName = Left(sPathName, Len(sPathName) - 6)
  18.     sPathName = sPathName + "dwg"   

  19.     Set swPart = swModel   

  20.     dataAlignment(0) = 0#
  21.     dataAlignment(1) = 0#
  22.     dataAlignment(2) = 0#
  23.     dataAlignment(3) = 1#
  24.     dataAlignment(4) = 0#
  25.     dataAlignment(5) = 0#
  26.     dataAlignment(6) = 0#
  27.     dataAlignment(7) = 1#
  28.     dataAlignment(8) = 0#
  29.     dataAlignment(9) = 0#
  30.     dataAlignment(10) = 0#
  31.     dataAlignment(11) = 1#   

  32.     varAlignment = dataAlignment   

  33.     dataViews(0) = "*Current"
  34.     dataViews(1) = "*Front"   

  35.     varViews = dataViews   

  36.     'Export each annotation view to a separate drawing file
  37.     swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
  38.    
  39.     'Export sheet metal to a single drawing file
  40.     options = 1   'include flat-pattern geometry
  41.     swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportSheetMetal, True, varAlignment, False, False, options, Null

  42. End Sub
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2
发表于 2020-2-26 10:54:15 | 只看该作者
可以,判断厚度,最好是钣金零件,
Value = Part.ExportFlatPatternView(MyFileNameDXF, swExportFlatPatternOption_None) '保留折弯线
value = Part.ExportFlatPatternView(FilePath, swExportFlatPatternOption_RemoveBends)'去掉折弯线
3
发表于 2020-2-26 17:05:21 | 只看该作者
本帖最后由 735057167 于 2020-2-26 17:07 编辑

有转cad代码就够了
4
发表于 2020-2-26 17:06:31 | 只看该作者
yx1991 发表于 2020-2-26 10:54
可以,判断厚度,最好是钣金零件,
Value = Part.ExportFlatPatternView(MyFileNameDXF, swExportFlatPatt ...

判断厚度的代码我有了,就差零件自动转为cad的代码
6
发表于 2020-2-26 23:06:54 | 只看该作者
wenmk 发表于 2020-2-26 21:46
以下代码为API VBA源码,在下部倒数第二个参数是钣金输出选项,参见API帮助。以下代码略加修改可以做成批 ...

这个可以,谢谢
7
发表于 2020-2-27 11:47:04 | 只看该作者
yx1991 发表于 2020-2-26 10:54
可以,判断厚度,最好是钣金零件,
Value = Part.ExportFlatPatternView(MyFileNameDXF, swExportFlatPatt ...

这个代码知道怎么用,直接加上会出错
8
发表于 2020-2-27 13:27:18 | 只看该作者
735057167 发表于 2020-2-27 11:47
这个代码知道怎么用,直接加上会出错

哪里出错,可以说出来我们讨论下,楼上发的那个代码适合选择面然后输出CAD格式那样会好点
9
发表于 2020-2-29 23:26:08 | 只看该作者
yx1991 发表于 2020-2-27 13:27
哪里出错,可以说出来我们讨论下,楼上发的那个代码适合选择面然后输出CAD格式那样会好点

已经解决了取得厚度代码附
  1. Option Explicit
  2. Sub thiness0()
  3.     Dim swApp As SldWorks.SldWorks
  4.     Dim swModel As SldWorks.ModelDoc2
  5.     Dim swPart As SldWorks.PartDoc
  6.     Dim i As Long
  7.     Dim swFeatMgr As FeatureManager
  8.     Dim swFeat As Feature
  9.     Dim swSheetMetalFol As SheetMetalFolder
  10.     Dim swSheetFeatData As SheetMetalFeatureData
  11.     Dim swBaseFlangeFeatData As BaseFlangeFeatureData
  12.     Dim vSheetMetalFeat As Variant
  13.     Dim ThicknessM As String
  14.     Dim Path As String
  15.     Dim sModelName As String
  16.     Dim sPathName As String
  17.     Dim varAlignment As Variant
  18.     Dim dataAlignment(11) As Double
  19.     Dim options As Long
  20.   
  21.     Set swApp = Application.SldWorks
  22.     Set swModel = swApp.ActiveDoc
  23.     Set swFeatMgr = swModel.FeatureManager
  24.     Set swSheetMetalFol = swFeatMgr.GetSheetMetalFolder
  25.   
  26.     If Not swSheetMetalFol Is Nothing Then
  27.         vSheetMetalFeat = swSheetMetalFol.GetSheetMetals
  28.         For i = 0 To UBound(vSheetMetalFeat)
  29.             Set swFeat = vSheetMetalFeat(i)
  30.             If swFeat.GetTypeName2 = "SheetMetal" Then
  31.                 Set swSheetFeatData = swFeat.GetDefinition
  32.               Exit For
  33.             End If
  34.         Next i
  35.     Else
  36.         Set swFeat = swModel.FirstFeature
  37.         Do While Not swFeat Is Nothing
  38.             If swFeat.GetTypeName2 = "SMBaseFlange" Then
  39.                 Set swBaseFlangeFeatData = swFeat.GetDefinition
  40.                 Exit Do
  41.             ElseIf swFeat.GetTypeName2 = "SheetMetal" Then
  42.                 Set swSheetFeatData = swFeat.GetDefinition
  43.                 Exit Do
  44.             End If
  45.             Set swFeat = swFeat.GetNextFeature
  46.         Loop
  47.     End If
  48.     ThicknessM = swSheetFeatData.Thickness * 1000
  49.    C = ThicknessM
  50.   C = "(T=" & C & "mm)"
  51. msgbox c
  52. End Sub
复制代码

10
发表于 2020-3-2 13:07:52 | 只看该作者
735057167 发表于 2020-2-29 23:26
已经解决了取得厚度代码附

我运行此楼代码    提示编译错误变量未定义,能否上传  .swp附件  谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-25 09:13 , Processed in 0.029727 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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