Autocad 2018 NETLOAD не показывает мой метод команды

Я пытаюсь создать плагин для 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");
    
        }
    
    }
    

    }


person Waseememe    schedule 18.02.2020    source источник


Ответы (3)


Проверьте свои ссылки. У меня были проблемы с этим в прошлом, когда у меня была сломанная или неправильная ссылка.

Отличаются ли какие-либо настройки для справок AutoCAD от настроек на изображении ниже?

Окно свойств справочника AutoCAD

person DjJazzyJeffTN    schedule 18.02.2020
comment
У вас загружаются какие-либо другие приложения AutoCAD .NET? Есть ли вероятность, что у вас может быть другая команда с тем же именем, которая вызывает ошибку? - person DjJazzyJeffTN; 18.02.2020
comment
Кроме того, может ли использование my() в качестве имени вызвать проблему? - person DjJazzyJeffTN; 18.02.2020
comment
Я проверил ссылки, и у меня есть те же данные, что и на вашей картинке. Однако моя версия явно немного устарела, чем ваша. У меня 18.1.0.1. Также я не думаю, что проблема в названии функции, я менял его в разное время, но проблема осталась прежней. - person Waseememe; 19.02.2020
comment
РЕШЕНИЕ путем добавления файлов dll из папки ObjecrARX под названием inc. У меня были более старые версии файлов dll, которые не были совместимы с AutoCad 2018, спасибо! - person Waseememe; 19.02.2020
comment
Рад, что смог помочь. - person DjJazzyJeffTN; 19.02.2020

Васемеме писал:

РЕШЕНИЕ путем добавления файлов dll из папки ObjecrARX под названием inc. У меня были более старые версии файлов dll, которые не были совместимы с AutoCad 2018, спасибо! - Waseememe 18 февраля в 22:38

Поскольку я не могу добавлять комментарии, я добавлю это в качестве ответа.

Вам действительно следует добавлять свои ссылки с помощью функций пакетов NuGet, встроенных в Visual Studio. Это решит любые проблемы, связанные с этим в будущем.

Как? - → https://docs.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio tldr: щелкните свой проект правой кнопкой мыши, щелкните "Управление пакетами NuGet", щелкните значок Вкладка «Обзор» и поиск пакетов AutoCAD API, установка их с помощью пользовательского интерфейса справа.

управлять пакетами nuget  Пользовательский интерфейс справа

Где в сети находится AutoCAD NuGet? - → https://www.nuget.org/packages/AutoCAD.NET/23.1.0/

person generic-user    schedule 10.07.2020

класс, в котором вы определяете [CommandMethod("Command_Name")], должен быть public

person CAD Developer    schedule 18.02.2020