Я пытаюсь создать плагин для Autocad 2018 с Visual Studio 2019, используя .Net. Во-первых, я получаю предупреждение в VS, когда отладка «Любой процессор», ошибка исчезает, когда я переключаюсь на x64. После создания проекта и наличия файла .dll я перехожу в Autocad и загружаю его с помощью команды NETLOAD, когда я пытаюсь загрузить свой метод или «CommandMethod», он не отображается.
- Я попытался изменить .Net Framework на любую имеющуюся у меня версию с 4.7.2 до 4.5.
Пробовал разные коды из других источников, но все равно безрезультатно. Следует ли мне использовать более новую версию AutoCad? или я должен использовать более низкую версию VS, например 2017? В чем может быть проблема? Вот код:
using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices.Core; [assembly: CommandClass(typeof(Testing.Class1))] namespace Testing { public class Class1 { [CommandMethod("MyFirstCommand")] public void my() { Document doc=Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; Editor edt = doc.Editor; using (Transaction trans=db.TransactionManager.StartTransaction()) { try { BlockTable bt; bt = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable; BlockTableRecord btr; btr = trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; // send message to the user edt.WriteMessage("\nDrawing a line objet"); Point3d pt1 = new Point3d(0, 0, 0); Point3d pt2 = new Point3d(100, 0, 0); Line ln = new Line(pt1, pt2); ln.ColorIndex = 1; btr.AppendEntity(ln); trans.AddNewlyCreatedDBObject(ln, true); trans.Commit(); } catch (System.Exception e) { edt.WriteMessage("Error Encountered" + e.Message); trans.Abort(); } } edt.WriteMessage("Script loaded"); } }
}