AcDbRegAppTable(9) Invalid Entry

Автор Тема: AcDbRegAppTable(9) Invalid Entry  (Прочитано 7120 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
AcDbRegAppTable(9) Invalid Entry
« : 19-03-2021, 14:47:14 »
Здравствуйте, при проверке файла командой Аудит получаю сообщение AcDbRegAppTable(9) Invalid Entry.  Что в методе добавления свойств у меня не так? xData добавляю при помощи метода:
Код - C# [Выбрать]
  1. public static void AttachXDataToSelectionSetObjects(ref ObjectIdCollection idsCollection, Database acCurDb)
  2.         {
  3.             // Get the current database and start a transaction
  4.  
  5.             Document acDoc = Application.DocumentManager.MdiActiveDocument;
  6.  
  7.             string appName = "GreenSnake";
  8.             string xdataStr = acCurDb.GetBuildingAreaNumber();
  9.  
  10.             using ( Transaction acTrans = acCurDb.TransactionManager.StartTransaction() )
  11.             {
  12.                 // Request objects to be selected in the drawing area
  13.                 // PromptSelectionResult acSSPrompt = acDoc.Editor.GetSelection();
  14.  
  15.                 // If the prompt status is OK, objects were selected
  16.                 if ( idsCollection.Count > 0 )
  17.                 {
  18.                     // Open the Registered Applications table for read
  19.                     RegAppTable acRegAppTbl = acTrans.GetObject(acCurDb.RegAppTableId, OpenMode.ForRead) as RegAppTable;
  20.  
  21.                     // Check to see if the Registered Applications table record for the custom app exists
  22.                     if ( acRegAppTbl.Has(appName) == false )
  23.                     {
  24.                         using ( RegAppTableRecord acRegAppTblRec = new RegAppTableRecord() )
  25.                         {
  26.                             acRegAppTblRec.Name = appName;
  27.  
  28.                             acRegAppTbl.UpgradeOpen();
  29.                             acRegAppTbl.Add(acRegAppTblRec);
  30.                             acTrans.AddNewlyCreatedDBObject(acRegAppTblRec, true);
  31.                         }
  32.                     }
  33.  
  34.                     // Define the Xdata to add to each selected object
  35.                     using ( ResultBuffer rb = new ResultBuffer() )
  36.                     {
  37.                         rb.Add(new TypedValue((int) DxfCode.ExtendedDataRegAppName, appName));
  38.                         rb.Add(new TypedValue((int) DxfCode.ExtendedDataAsciiString, xdataStr));
  39.  
  40.                         // Step through the objects in the selection set
  41.                         foreach ( object acSSObj in idsCollection )
  42.                         {
  43.                             // Open the selected object for write
  44.                             Entity acEnt = acTrans.GetObject((ObjectId) acSSObj, OpenMode.ForWrite, false, true) as Entity;
  45.  
  46.                             // Append the extended data to each object
  47.                             acEnt.XData = rb;
  48.                         }
  49.                     }
  50.                 }
  51.  
  52.                 // Save the new object to the database
  53.                 acTrans.Commit();
  54.  
  55.                 // Dispose of the transaction
  56.             }
  57.         }


Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 805
  • Карма: 166
    • Мои плагины к Автокаду
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #1 : 19-03-2021, 14:50:50 »
Может слишком длинные строки записываете в xData? Хотя вроде бы Audit их обрезает без сообщений об ошибках..

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #2 : 19-03-2021, 14:54:03 »
Atomohod,
Вместо:
Код - C# [Выбрать]
  1. using ( RegAppTableRecord acRegAppTblRec = new RegAppTableRecord() )
оставь:
Код - C# [Выбрать]
  1. RegAppTableRecord acRegAppTblRec = new RegAppTableRecord();
И не увлекайся using если не понимаешь как это работает.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #3 : 19-03-2021, 14:58:39 »
И не увлекайся using если не понимаешь как это работает.
Насколько я понимаю эту конструкцию, using позволяет освободить ресурсы сразу после выхода из него и указывает сборщику мусора что объекты могут быть удалены. Я правильно понимаю?

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #4 : 19-03-2021, 14:59:23 »
Может слишком длинные строки записываете в xData? Хотя вроде бы Audit их обрезает без сообщений об ошибках..
Не длинные, 18 символов.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #5 : 19-03-2021, 15:00:59 »
И не увлекайся using если не понимаешь как это работает.
Насколько я понимаю эту конструкцию, using позволяет освободить ресурсы сразу после выхода из него и указывает сборщику мусора что объекты могут быть удалены. Я правильно понимаю?
Не всегда, но более-менее правильно. И ты удаляешь только что созданную acRegAppTblRec.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #6 : 19-03-2021, 15:05:54 »
без using я хватаю ошибку eHadMultipleReaders

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #7 : 19-03-2021, 15:06:49 »
без using я хватаю ошибку eHadMultipleReaders
Значит ищи ошибку в другом месте. Я так и не понял исправил ли ты всё, что было в предыдущей теме.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 805
  • Карма: 166
    • Мои плагины к Автокаду
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #8 : 19-03-2021, 15:09:44 »
Транзакция для того и создается, чтоб корректно удалить все свои объекты. ну то есть не только для этого, конечно. 
В данном коде объект приписан к транзакции, но тут же удален до вызова commit().
Я бы убрал UpgradeOpen() - он к работе с транзакциями не имеет отношения, а таблицу можно сразу открыть на запись.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #9 : 19-03-2021, 15:13:19 »
Я так и не понял исправил ли ты всё, что было в предыдущей теме.
Если речь об открытии объектов за пределами транзакции то да, я внес выполнение части методов внутрь транзакции чтобы объекты оставались валидными. Между методами передаю ObjectIdCollection вместо самих объектов. После этого eHadMultipleReaders до теперешнего удаления using я не получал.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #10 : 19-03-2021, 15:14:22 »
Я бы убрал UpgradeOpen() - он к работе с транзакциями не имеет отношения, а таблицу можно сразу открыть на запись.
Полностью согласен. Или заменить транзакцию на эмуляцию транзакции.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #11 : 19-03-2021, 15:17:12 »
После этого eHadMultipleReaders до теперешнего удаления using я не получал.
Значит еще что-то осталось. Лучше раздели транзакцию на две - в одной транзакции создай RegAppTableRecord и добавь в базу (к RegAppTable). А в другой добавь расширенные данные к объектам.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #12 : 19-03-2021, 16:59:15 »
Если речь об открытии объектов за пределами транзакции то да, я внес выполнение части методов внутрь транзакции чтобы объекты оставались валидными.
Вообще-то у нас принято ставить точку в созданной теме, а та тема так и осталась незаконченной без отметки о решении....
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #13 : 19-03-2021, 21:49:26 »
, а та тема так и осталась незаконченной без отметки о решении....
Исправился

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #14 : 08-04-2021, 23:10:51 »
Значит еще что-то осталось. Лучше раздели транзакцию на две - в одной транзакции создай RegAppTableRecord и добавь в базу (к RegAppTable). А в другой добавь расширенные данные к объектам.

Я внес правки, но это не сработало, по-прежнему

AcDbRegAppTable(9)                Invalid Entry
AcDbRegAppTable(9)                was not repaired.

Код - C# [Выбрать]
  1.  public static void AttachXDataToSelectionSetObjects(ref ObjectIdCollection idsCollection, Database acCurDb)
  2.         {        
  3.  
  4.             string appName = "GreenSnake";
  5.             string xdataStr = acCurDb.GetBuildingAreaNumber();
  6.  
  7.             Transaction acTrans;
  8.             using ( acTrans = acCurDb.TransactionManager.StartTransaction() )
  9.             {
  10.                            
  11.                 if (idsCollection.Count > 0)
  12.                 {
  13.                     // Open the Registered Applications table for read
  14.                     RegAppTable acRegAppTbl = acTrans.GetObject(acCurDb.RegAppTableId, OpenMode.ForWrite) as RegAppTable;
  15.  
  16.                     // Check to see if the Registered Applications table record for the custom app exists
  17.                     if (acRegAppTbl.Has(appName) == false)
  18.                     {
  19.                         RegAppTableRecord acRegAppTblRec = new RegAppTableRecord();
  20.                         acRegAppTblRec.Name = appName;                      
  21.                         acRegAppTbl.Add(acRegAppTblRec);
  22.                         acTrans.AddNewlyCreatedDBObject(acRegAppTblRec, true);
  23.  
  24.                     }
  25.                 }
  26.                 acTrans.Commit();
  27.             }
  28.  
  29.             Transaction acTrans2;
  30.             using ( acTrans2 = acCurDb.TransactionManager.StartTransaction() )
  31.             {
  32.                 // Define the Xdata to add to each selected object
  33.                 using (ResultBuffer rb = new ResultBuffer())
  34.                 {
  35.                     rb.Add(new TypedValue((int)DxfCode.ExtendedDataRegAppName, appName));
  36.                     rb.Add(new TypedValue((int)DxfCode.ExtendedDataAsciiString, xdataStr));
  37.  
  38.                  
  39.                     foreach (object acSSObj in idsCollection)
  40.                     {
  41.                        
  42.                         Entity acEnt = acTrans2.GetObject((ObjectId)acSSObj, OpenMode.ForWrite, false, true) as Entity;
  43.  
  44.                         // Append the extended data to each object
  45.                         acEnt.XData = rb;
  46.                     }
  47.                 }
  48.                 acTrans2.Commit();
  49.             }
  50.  
  51.  
  52.         }


Что можно еще попробовать для устранения ошибки?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #15 : 09-04-2021, 00:51:26 »
Для начала попробуй при помощи Editor.GetSelection выбрать примитивы в чертеже и передать их в эту функцию. Затем посмотри будет ли чертеж испорчен. Если нет - значит ищи ошибки у себя в другой части программы.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #16 : 11-04-2021, 00:54:16 »
Затем посмотри будет ли чертеж испорчен
Проверил двумя способами, как при помощи Editor.GetSelection так и просто исключением вызова моего проблемного метода в коде. Результат такой: при помощи Editor.GetSelection раз через раз приводит к появлению ошибки AcDbRegAppTable(9) Invalid Entry, во втором случае все нормально - вызов метода исключен из кода, ошибок не возникает. Значит мой код вызывает ошибку при присвоении xdata, но как понять где?
Где еще можно покопаться?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #17 : 11-04-2021, 01:10:53 »
Результат такой: при помощи Editor.GetSelection раз через раз приводит к появлению ошибки AcDbRegAppTable(9) Invalid Entry
Что такое "раз через раз"? Точнее пожалуйста.
И что делает acCurDb.GetBuildingAreaNumber(); ???
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #18 : 11-04-2021, 10:46:13 »
Раз через раз - делаю серию запусков своего кода из 10 запусков после 2-3 при проверке через Audit получаю ошибку AcDbRegAppTable(9) Invalid Entry.

И что делает acCurDb.GetBuildingAreaNumber();
Запрашивает номер строительного района из свойств чертежа.
Код - C# [Выбрать]
  1. public static string GetBuildingAreaNumber(this Database db)
  2.         {
  3.             DatabaseSummaryInfoBuilder sumInfo = new DatabaseSummaryInfoBuilder(db.SummaryInfo);
  4.             var areaNumber = sumInfo.Subject;
  5.             if (areaNumber.Length > 0)
  6.             {
  7.                 return areaNumber;
  8.             }
  9.             else
  10.             {
  11.                 throw new NullReferenceException("Set construction area number in source drawing by Drawing properties => subject");
  12.             }
  13.         }

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #19 : 11-04-2021, 17:12:35 »
Я проверял такой код:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices;
  2. using Autodesk.AutoCAD.DatabaseServices;
  3. using Autodesk.AutoCAD.EditorInput;
  4. using Autodesk.AutoCAD.Runtime;
  5.  
  6. // This line is not mandatory, but improves loading performances
  7. [assembly: CommandClass(typeof(TestXdata.MyCommands))]
  8.  
  9. namespace TestXdata
  10. {
  11.   public class MyCommands
  12.   {
  13.     [CommandMethod("TestXdata")]
  14.     public void TestXdataHandler()
  15.     {
  16.       Document doc = Application.DocumentManager.MdiActiveDocument;
  17.       if (doc == null) return;
  18.       Editor ed = doc.Editor;
  19.       PromptSelectionResult rs = ed.GetSelection();
  20.       while (rs.Status == PromptStatus.OK && rs.Value.Count > 0)
  21.       {
  22.         ObjectIdCollection ids = new ObjectIdCollection(rs.Value.GetObjectIds());
  23.         AttachXDataToSelectionSetObjects(ref ids, doc.Database);
  24.         rs = ed.GetSelection();
  25.       }
  26.     }
  27.     public static void AttachXDataToSelectionSetObjects(ref ObjectIdCollection ids, Database db)
  28.     {
  29.       string appName = "GreenSnake";
  30.       string xdataStr = db.SummaryInfo.Subject;
  31.       if (ids.Count > 0)
  32.       {
  33.         using (Transaction tr = db.TransactionManager.StartTransaction())
  34.         {
  35.           RegAppTable regTab = tr.GetObject(db.RegAppTableId, OpenMode.ForWrite) as RegAppTable;
  36.           if (!regTab.Has(appName))
  37.           {
  38.             RegAppTableRecord regTabRec = new RegAppTableRecord();
  39.             regTabRec.Name = appName;
  40.             regTab.Add(regTabRec);
  41.             tr.AddNewlyCreatedDBObject(regTabRec, true);
  42.           }
  43.           tr.Commit();
  44.         }
  45.         using (Transaction tr = db.TransactionManager.StartTransaction())
  46.         {
  47.           using (ResultBuffer rb = new ResultBuffer())
  48.           {
  49.             rb.Add(new TypedValue((int)DxfCode.ExtendedDataRegAppName, appName));
  50.             rb.Add(new TypedValue((int)DxfCode.ExtendedDataAsciiString, xdataStr));
  51.  
  52.             foreach (ObjectId id in ids)
  53.             {
  54.               Entity ent = tr.GetObject(id, OpenMode.ForWrite) as Entity;
  55.               if (ent != null) ent.XData = rb;
  56.             }
  57.           }
  58.           tr.Commit();
  59.         }
  60.       }
  61.     }
  62.   }
  63. }
Наверное раз 50 запустил. Потом _AUDIT - никаких ошибок нет. Так что ищи у себя дальше ошибки.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #20 : 11-04-2021, 17:20:27 »
Я внес правки, но это не сработало, по-прежнему

AcDbRegAppTable(9)                Invalid Entry
AcDbRegAppTable(9)                was not repaired.
Я думаю что там еще должны были быть ошибки. Давай полный лог.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #21 : 11-04-2021, 18:06:33 »
Давай полный лог.

Command: _netload
Command: SYNCDRAWINGS
Regenerating model.

Dimension disassociated.
Dimension disassociated.
Command: '_zoom
Specify corner of window, enter a scale factor (nX or nXP), or
[All/Center/Dynamic/Extents/Previous/Scale/Window/Object] <real time>: _e Regenerating model.

Command: AUDIT

Fix any errors detected? [Yes/No] <N>:



Auditing Header


Auditing Tables


Auditing Entities Pass 1

Pass 1 26600   objects audited
Auditing Entities Pass 2

AcDbRegAppTable(9)                Invalid Entry
AcDbRegAppTable(9)                was not repaired.
Pass 2 26600   objects audited
Auditing Blocks


 161     Blocks audited



Auditing AcDsRecords


Total errors found 1 fixed 0

Erased 0 objects


Automatic save to C:\Users\Paragon\appdata\local\temp\Drawing1_1_1_1179.sv$ ...

Command:
« Последнее редактирование: 11-04-2021, 18:10:45 от Александр Ривилис »

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #22 : 11-04-2021, 18:14:41 »
Так что ищи у себя дальше ошибки.
В каком направлении искать? Объекты я больше не передаю-пользуюсь ObjectIdCollection, транзакции разделил на две раздельные. Что еще можно исключить?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #23 : 11-04-2021, 18:24:10 »
Atomohod,
Мой код у тебя тоже вызывает ошибки в файле?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #24 : 11-04-2021, 18:27:20 »
Что еще можно исключить?
Ну например мне не нравится throw у тебя в GetBuildingAreaNumber. В данном случае вроде бы ничего, но если бы ты вызывал этот код внутри транзакции и throw вызвалось, то транзакция была бы незавершенной.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #25 : 11-04-2021, 18:57:09 »
Мой код у тебя тоже вызывает ошибки в файле?

В моем случае он не отрабатывает
Command: TESTXDATA

Select objects: Specify opposite corner: 56895 found

Select objects:
; error: bad argument type: lentityp nil

Select objects:

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #26 : 11-04-2021, 19:14:54 »
Atomohod,
Такое впечатление, что у тебя работает не мой код.
Такая ошибка возникает в VisualLisp:
; error: bad argument type: lentityp nil
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #27 : 11-04-2021, 19:58:19 »
у тебя работает не мой код
Код Ваш на C#, мой тоже полностью на нем. VisualLisp точно у меня нигде не применяется я его не знаю. Откуда он вызывается я теряюсь в догадках - никакие аргументы я никуда не передаю.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #28 : 11-04-2021, 19:59:04 »
Вот видео работы кода у меня

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcDbRegAppTable(9) Invalid Entry
« Ответ #29 : 11-04-2021, 20:10:24 »
Atomohod,
1. Измени имя команды.
2. Как записывать видео для нашего форума у меня в подписи. На твоём видео кроме того, что ты показал в конце сообщение об ошибке я ничего разглядеть не смог.
3. Похоже у тебя в AutoCAD загружены еще какие-то приложения, возможно на VisualLisp, использующие реакторы.
Дальше я пас. Я проверил работоспособность кода и убедился, что он не портит чертеж. Идей, что именно у тебя может портить  чертеж, у меня не осталось. Надеюсь, что у тебя в проекте CopyLocal установлено в False и ссылки идут на библиотеки именно той версии и разрядности, что и у AutoCAD, который ты используешь, что на этот AutoCAD установлены все обновления, что он совместим с той Windows, которая у тебя установлена, и т.д. и т.п.
« Последнее редактирование: 11-04-2021, 20:43:53 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение