Расстановка атрибутов

Автор Тема: Расстановка атрибутов  (Прочитано 6535 раз)

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

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

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Расстановка атрибутов
« Ответ #15 : 15-05-2018, 21:30:40 »
Там объяснена эта ошибка
Прошу пояснить в чем была ошибка. В порядке следования записей? Я в тупике. Код переписал по образцу.
Код - C# [Выбрать]
  1. using (AttributeDefinition developer = new AttributeDefinition())
  2.                     {
  3.                         developer.SetDatabaseDefaults(acBlkTbl.Database);
  4.                         developer.Verifiable = true;
  5.                         developer.Prompt = "Developer";
  6.                         developer.Tag = "Developer";
  7.                         developer.TextString = "Гусаров";
  8.                         developer.WidthFactor = 0.7;
  9.                         developer.Height = 3.5;
  10.                         developer.Justify = AttachmentPoint.MiddleCenter;
  11.                         developer.Position = new Point3d(-170, 0, 0);
  12.                         developer.AlignmentPoint = new Point3d(-170, 0, 0);
  13.                         developer.AdjustAlignment(acBlkTbl.Database);
  14.                         developer.Layer = "0";
  15.  
  16.                         acBlkTblRec.AppendEntity(developer);
  17.                         acBlkTbl.UpgradeOpen();
  18.                         acBlkTbl.Add(acBlkTblRec);
  19.                         acTrans.AddNewlyCreatedDBObject(acBlkTblRec, true);
  20.                     }
У меня код по прежнему не срабатывает. Изменилась ошибка:

************** Exception Text **************
Autodesk.AutoCAD.Runtime.Exception: eDuplicateRecordName
   at Autodesk.AutoCAD.DatabaseServices.SymbolTable.Add(SymbolTableRecord value)
   at ITAT_Autocad.FormatsHandler.DrawMainTitle() in C:\Users\PARAGON\source\repos\ITAT_Autocad\ITAT_Autocad\FormatsHandler.cs:line 265
   at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction)
   at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction)
   at Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction)
   at Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()



Отмечено как Решение Atomohod 16-05-2018, 20:48:39

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расстановка атрибутов
« Ответ #16 : 15-05-2018, 21:35:09 »
Прошу пояснить в чем была ошибка. В порядке следования записей?
Да.
У меня код по прежнему не срабатывает. Изменилась ошибка:
Ошибка же изменилась! Ты бездумно копируешь код. Ошибка из-за этой строки:
Код - C# [Выбрать]
  1.  acBlkTbl.Add(acBlkTblRec);
Ты повторно пытаешься добавить BlockTableRecord с тем же именем, которое уже есть в базе. О чем и говорит код ошибки: eDuplicateRecordName
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение