最近在重新看之前写的Autodesk inventor内置插件,打算添加一些功能,完善一下然后免费开放给所有人使用。
由于之前部分功能是在内网环境下,所以需要稍微调整才能发布(内网上基于django的BOM表服务需要移植到云服务器上)。然后最近刚好有一个快速出钣金下料图的需求。就是在钣金零件环境下,点击一个按钮可以自动生成可以直接使用的激光下料图。这个功能其实已经用上了。不过我这里主要说一下怎么自动生成钣金工程图,因为这个是第一步,后面调用程序内置模块来导出dwg就容易了。
在 Autodesk Inventor 中使用 VB.NET 来自动化创建钣金零件的工程图涉及到多个步骤。这包括初始化 Inventor 应用程序、打开钣金零件文件、创建一个新的工程图,并将展开模式添加到这个新的工程图中。
以下是一个简单的示例代码:
vb.net
Imports Inventor
Public Sub CreateSheetMetalDrawing()
' 初始化 Inventor 应用程序对象
Dim invApp As Inventor.Application
invApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application")
' 打开钣金零件文件
Dim oDoc As PartDocument
oDoc = invApp.Documents.Open("C:\path\to\SheetMetalPart.ipt")
' 创建一个新的工程图文件
Dim oDrawingDoc As DrawingDocument
oDrawingDoc = invApp.Documents.Add(DocumentTypeEnum.kDrawingDocumentObject, invApp.FileManager.GetTemplateFile(DocumentTypeEnum.kDrawingDocumentObject))
' 获取钣金展开模式
Dim oFlatPattern As FlatPattern
oFlatPattern = oDoc.ComponentDefinition.FlatPattern
' 确保展开模式已经生成
If oFlatPattern Is Nothing Then
MsgBox("该零件没有展开模式。")
Exit Sub
End If
' 在新的工程图中添加一个工程图板
Dim oSheet As Sheet
oSheet = oDrawingDoc.Sheets.Add()
Dim oTG As TransientGeometry
oTG = invApp.TransientGeometry
Dim oPoint As Point2d
oPoint = oTG.CreatePoint2d(oSheet.Width / 2, oSheet.Height / 2)
' 在工程图板上放置钣金展开模式视图
Dim oBaseView As DrawingView
oBaseView = oSheet.DrawingViews.AddBaseView(oDoc,
oPoint,
1, ViewOrientationTypeEnum.kDefaultViewOrientation,
DrawingViewStyleEnum.kHiddenLineDrawingViewStyle,
"")
' 保存工程图文件
oDrawingDoc.SaveAs("C:\path\to\SheetMetalDrawing.idw", False)
End Sub
请注意,在这里,我假设你已经有一个钣金零件,它具有一个展开模式。如果你的钣金零件没有展开模式,你需要首先生成它。
此代码仅用于说明目的,并且可能需要根据你的具体需要进行调整。还请确保提供正确的文件路径和其他相关信息。
如果你需要已经做好的插件,可以到 www.lnv.cn 去下载