Последние сообщения

Последние сообщения

Страницы: [1] 2 3 ... 10
1
AutoCAD .NET API / Re: Атрибут блока, входящего в мультивыноску
« Последний ответ от nolte 27-01-2026, 13:04:55 »
Спасибо. GetBlockAttribute - это то что искалось но не находилось в автокаде 2026 буду попробывать сообщу.
2
AutoCAD .NET API / Re: Атрибут блока, входящего в мультивыноску
« Последний ответ от avc 27-01-2026, 12:37:22 »
Для изменяемых атрибутов у выноски есть метод GetBlockAttribute. Для константных - просто редактируем btr блока.

Код - C# [Выбрать]
  1.     /// <summary>
  2.     /// Записать в выноску с блоком заданное значение заданного атрибута.
  3.     /// если имя атрибута пустое - атрибут должен быть единственный в блоке
  4.     /// </summary>
  5.     public static bool
  6.     SetBlockAttribute(this MLeader ml, string attTag, string value, Transaction tr, bool add = false, string separator = "")
  7.     {
  8.       if (ml is null || ml.IsErased || ml.ContentType != ContentType.BlockContent || ml.BlockContentId.IsNull)
  9.         return false;
  10.       BlockTableRecord btr = tr.GetObject(ml.BlockContentId, OpenMode.ForRead) as BlockTableRecord;
  11.       if (btr is null) return false;
  12.       ObjectId singleAtt = ObjectId.Null;
  13.       foreach (ObjectId attDefId in btr)
  14.       {
  15.         if (attDefId.IsNull || attDefId.IsErased || attDefId.ObjectClass != dbAttDef) continue;
  16.  
  17.         if (IsNullOrEmpty(attTag)) // должен быть единственный атрибут
  18.           if (singleAtt.IsNull) { singleAtt = attDefId; continue; } // запомним первый и продолжим поиски
  19.           else { singleAtt = ObjectId.Null; break; } // нашелся второй атрибут
  20.  
  21.         using AttributeReference attRef = ml.GetBlockAttribute(attDefId);
  22.         if (attRef is null) continue;
  23.         if (attTag == attRef.Tag)
  24.         {
  25.           SetText(attRef, value, add, separator);
  26.           ml.SetBlockAttribute(attDefId, attRef);
  27.           return true;
  28.         }
  29.       } // foreach
  30.  
  31.       if (IsNullOrEmpty(attTag))
  32.         if (singleAtt.IsNull) return false;
  33.         else
  34.         {
  35.           using AttributeReference attRef = ml.GetBlockAttribute(singleAtt);
  36.           SetText(attRef, value, add, separator);
  37.           ml.SetBlockAttribute(singleAtt, attRef);
  38.           return true;
  39.         }
  40.       return false;
  41.     }
  42.  
  43.  
  44.     public static void
  45.     SetText(this AttributeReference attr, string contents, bool add = false, string separator = "")
  46.     {
  47.       if (attr is null || attr.IsErased) return;
  48.       contents = Concat(add, attr.GetTextWithFieldCodes(), separator, contents);
  49.       if (contents.Contains("%<\\")) // это поле
  50.       {
  51.         Field f = new(contents, true);
  52.         f.Evaluate();
  53.         attr.SetField(f);
  54.       }
  55.       else
  56.         attr.TextString = contents;
  57.     }
  58.  
  59.  
3
AutoCAD .NET API / Атрибут блока, входящего в мультивыноску
« Последний ответ от nolte 27-01-2026, 09:52:52 »
День добрый всем. Автокад 2026 кто знает как добраться до атрибута блока.
4
В этом видео показал каким можно еще путем пойти для чтения основной таблицы и многое другое:
5
Работа для программистов / Ищем разработчика C# .Net
« Последний ответ от Павел55 16-01-2026, 12:56:04 »
Вакансия - C#/.NET-разработчик

Ищем специалиста на позицию - C#/.NET-разработчик в нашу команду.

Направления:
• Разработка плагинов для платформы nanoCAD и вертикальных решений Нанософт
• Разработка плагинов для Model Studio CS
• Разработка программ для внутренних нужд компании (чат боты, парсеры и т.д)

О компании:
Компания «Центр Программных Решений» - российская аккредитованная IT-компания, занимающаяся внедрением и сервисным обслуживанием систем автоматизации предприятий (CRM, телекоммуникации, САПР).

Мы рады пригласить в команду профессионалов, готовых развиваться вместе с нами.

Что мы ждем от кандидата:
•  Опыт работы с API nanoCAD/AutoCAD.
•  Опыт разработки прикладных программ под САПР.
•  Опыт разработки приложений на C#/C++
•  Опыт работы с WPF
•  Понимание простых геометрических функций и алгоритмов, системное мышление.

Будет плюсом:
•  Опыт работы с САПР nanoCAD, AutoCAD на уровне квалифицированного пользователя.
•  Опыт работы с другими САПР.
•  Опыт работы в команде.
•  Опыт разработки ТЗ.

Основные задачи:

✔️Разработка ТЗ и уточнение требований клиента.
✔️ Разработка интерфейсов на WPF.
✔️ Создание логики с использованием алгоритмов различной степени сложности.
✔️ Изучение API САПР.
✔️ Разработка собственных решений, упрощающих написание кода.

Мы предлагаем:

•  Работа в аккредитованной ИТ-компании.

•  Трудоустройство по ТК РФ с первого рабочего дня, белая зарплата + 4 дополнительные дня к отпуску ежегодно.

•  Компенсация: уровень заработной платы обсуждается с каждым кандидатом на собеседовании. В компании есть премии, повышения и профессиональный рост.

•  График работы: 5/2, гибкое начало дня (можно распределять время в течение дня на своё усмотрение, если это не мешает работе команды).
Формат работы: офис/гибрид

•  Офис: Омск, БЦ "На Гагарина" (ул. Гагарина, 14)

•  Заботимся о сотрудниках: проводим выездные корпоративы и вечеринки в офисе, дарим подарки на праздники, запускаем спортивные программы, отмечаем дни рождения, дарим мерч и многое другое.

•  Возможность принимать решения, настраивать процессы и предлагать идеи, которые будут услышаны и реализованы.

Ссылка на вакансию:https://omsk.hh.ru/vacancy/129414429?query=%D0%A1%23+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA&hhtmFrom=vacancy_search_list
6
Осталось немного поразобраться в этих словарях и можно будет попробовать программно создать динамический блок)

А по теме, сталкивался с чем-то похожим при вставке блока с полями в атрибутах, стандартный вариант терял поля, помогло дублирование строки при создании атрибута, видимо пока не добавлено в базу подвязать что-то нельзя, но и без первоначальной установки до добавления в базу тоже не работало, может быть тут что-то похожее.

Код - C# [Выбрать]
  1.  //создаем вхождение атрибута
  2.  AttributeReference attrRef = new AttributeReference();
  3.  
  4.  //добавляем вхождение атрибута в вхождение блока
  5.  attrRef.SetAttributeFromBlock(attr, br.BlockTransform);
  6.  br.AttributeCollection.AppendAttribute(attrRef);
  7.  tr.AddNewlyCreatedDBObject(attrRef, true);
  8.  //дублируем после добавления что бы нормально отрабатывали вставки полей
  9.  attrRef.SetAttributeFromBlock(attr, br.BlockTransform);
7
AutoLisp / VisualLISP и DCL / Re: размер текста в ком. строке
« Последний ответ от altver 29-12-2025, 11:29:12 »
Отлично!!
Спасибо большое!!!
9
AutoLisp / VisualLISP и DCL / размер текста в ком. строке
« Последний ответ от altver 28-12-2025, 16:28:12 »
Добрый день господа!
Возможно ли лиспом изменить размер текста в ком. строке?
Это то что мы делаем вручную: Options-Display-Font-Size
Может есть переменная?
че-то не нахожу...
10
Да, код работает в чертеже, загруженном в редактор. Очень вам благодарен
Страницы: [1] 2 3 ... 10