关于.NET与VBA技术的问题
<p>用.net技术后,AutoCAD还支持原来的VBA(VB)程序吗?</p><p>在2010里,如果要开发独立于AutoCAD的exe程序来控制AutoCAD进行工作,用VB.NET能实现吗?如果能实现,与现在用VB6实现的方法有什么区别吗?</p><p>以上问题还请高手赐教,多谢了</p> <p>开发独立于AutoCAD的exe程序用VB.NET能实现,和VB没有什么区别</p><p>用.net技术后,AutoCAD还支持原来的VBA(VB)程序吗?</p><p>Com接口还是支持的,VB程序没问题</p><p>2010版没有默认安装VBA编辑器,但是可以在官网下载</p><p>但是没有默认安装,大多数用户是不会装的</p> <div class="codeBlock"><pre class="codeLine">多谢版主<br/>在.NET国用类似下面的代码作一个.dll(包含窗体界面的,这部分没有上传),在AutoCAD的命令行中执行AddLine命令,<br/>在AutoCAD中调用时窗体是模态窗口,当需要观察图形结果时而双不想退出程序时不能实现(此时不能调整AutoCAD的窗口)。<br/>所以,当需要根据图形结果再用程序进行结果调整时,用独立于AutoCAD的EXE形式的程序会方便些。<br/>我曾试过在.NET中用AutoCAD ActiveX 控制AutoCAD2007一样好有效,但不知道在一般功能范围内,这种方法与.NET开发接口有什么不同.</pre><pre class="codeLine">Imports Autodesk.AutoCAD.Runtime<br/>Imports Autodesk.AutoCAD.ApplicationServices<br/>Imports Autodesk.AutoCAD.DatabaseServices<br/>Imports Autodesk.AutoCAD.Geometry <br/><CommandMethod("AddLine")> _<br/>Public Sub AddLine() <br/> Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument<br/> Dim acCurDb As Database = acDoc.Database <br/> Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() <br/> Dim acBlkTbl As BlockTable<br/> acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) <br/> Dim acBlkTblRec As BlockTableRecord<br/> acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _<br/> OpenMode.ForWrite) <br/> Dim acLine As Line = New Line(New Point3d(5, 5, 0), _<br/> New Point3d(12, 3, 0)) <br/> acLine.SetDatabaseDefaults() <br/> acBlkTblRec.AppendEntity(acLine)<br/> acTrans.AddNewlyCreatedDBObject(acLine, True) <br/> acTrans.Commit()<br/> End Using<br/>End Sub</pre></div>
页:
[1]