Если я правильно понял вопрос, то речь идет о различиях между VB6 и VB.NET применительно к AutoCAD. В частности, как добавить новый примитив на экран.
В VB6 мы привыкли использовать встроенную высокоуровневую функцию в виде метода ModelSpace.Add... и не интересовались, что там происходит внутри.
В VB.NET в таком случае используется технология обращения к базе данных рисунка чем-то напоминающая подход ObjectARX.
Для иллюстрации я попытался прокомментировать пример из ObjectARX2006, Samples and labs\dotNet\Ents:
Public Function CreateLine() As ObjectId
Dim startpt As New Point3d(4.0, 2.0, 0.0)
Dim endpt As New Point3d(10.0, 7.0, 0.0)
Dim pLine As New Line(startpt, endpt)
Dim lineid As ObjectId 'publick Structure
'получение доступа к базе данных чертежа(рисунка):
Dim db As Database = Application.DocumentManager.MdiActiveDocument.Database
'подготовка к транзакции:
Dim tm As DBTransMan = db.TransactionManager
Dim ta As Transaction = tm.StartTransaction()
Try
'получение доступа к таблице блоков
Dim bt As BlockTable = tm.GetObject(db.BlockTableId, OpenMode.ForRead, False)
'открываем "строчку" таблицы - BlockTableRecord - для записи:
Dim btr As BlockTableRecord = tm.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite, False)
'записываем туда наш объект pLine:
lineid = btr.AppendEntity(pLine)
'готовим транзакцию по созданию нового объекта:
tm.AddNewlyCreatedDBObject(pLine, True)
'запускаем эту транзакцию на выполнение:
ta.Commit()
Finally
ta.Dispose()
End Try
Return lineid
End Function
И метода эта не зависит от того, пишешь ты код под автономное приложение или под .dll.
Или проблема не в этом? Что скажет автор ветки?