Изменение размеров на чертеже средствами .NET API

Автор Тема: Изменение размеров на чертеже средствами .NET API  (Прочитано 6636 раз)

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

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

  • ADN OPEN
  • Сообщений: 3
  • Карма: 1
Есть чертеж, сделанный в Autodesk Autocad 2018 для какого-то проекта. Чтобы сделать аналогичный чертеж для другого проекта, конструктор открывает его, меняет некоторые размеры и сохраняет под другим именем. Какие размеры и на какие менять, он берет из таблицы, имя файла для сохранения тоже. То есть выполняет механическую работу. Задача - этот процесс автоматизировать.

Фрагменты чертежа до и после изменения, стрелкой показан измененный размер:


Сами чертежи, фрагменты которых приведены выше, во вложении.

Какие размеры могут быть изменены в чертеже, заранее известно. Их нужно сделать узнаваемыми для программы (именованными), или заменить на что-то еще, то есть сделать образец чертежа. То есть нужно подготовить чертеж (первая часть работы) для программной модификации и сформулировать требования к образцу, чтобы конструкторы могли в дальнейшем делать аналогичные образцы.

Далее нужно разработать код на C# (вторая часть работы), в котором средствами .NET API открывается образец, именованные размеры изменяются в соответствии с набором параметров, подгоняется масштаб, и чертеж сохраняется в форматах DWG и PDF. Откуда читаются параметры не важно, в итоге, будут читаться из БД, которой пока нет, можно сделать свою БД, прочитать из файла, ввести из UI или сгенерить случайные значения из заданного диапазона.

Следующая, опциональная и заключительная часть работы - оформить код в виде библиотек DLL. Всего планируется три библиотеки:
.NET DLL, в которой реализован функционал из второй части.
ComVisible DLL, в которой методы .NET DLL сделаны доступными (обернуты) в COM-объекте.
Подключаемый к Автокаду плагин, в котором методы .NET DLL можно вызывать из UI, то есть под визуальным контролем.

Результат - компилируемый код, желательно C# .NET 4.X

Почему два варианта реализации? Мы не уверены, что преобразовывать чертежи можно будет автоматически, поэтому предусматриваем возможность такого преобразования под контролем пользователя.

com-visible потому, что планируем вызывать из 1С.

Тема актуальна, пока явно не закрыта.
Пока тема актуальна (исполнитель не найден) можно писать в личку или почту, но лучше общаться в теме, ее буду просматривать не только я, но и наши конструкторы (я не конструктор и не на все вопросы отвечу).

Размер, порядок, сроки и форма оплаты обсуждаются
« Последнее редактирование: 14-10-2020, 17:32:45 от oradim »

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Вроде нет такого продукта - Autocad pro 18. Или это что-то не-Autodesk?

Оффлайн Павел55

  • ADN OPEN
  • ***
  • Сообщений: 106
  • Карма: 3
Что за com - visible? И для AutoCAD 2018 net framework 4.6 должен быть. Очень размытое описание, что за параметры и какими размерами они управляют? Где находятся размеры: в слое, на листе или модели? Еще лучше выложить пример dwg как было и как должно быть. Желательно описать связи с 1C, возможно не нужна никакая оберетка и все решается подключением к БД 1С и парой библиотек.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 609
  • Карма: 155
    • ПГСу Бложик
думаю автор имел ввиду что-то типа этого: https://adn-cis.org/forum/index.php?topic=7053.0

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

  • ADN OPEN
  • Сообщений: 3
  • Карма: 1
Спасибо всем откликнувшимся за критические замечания! ТЗ полностью переработано в рамках моих способностей.

Вроде нет такого продукта - Autocad pro 18. Или это что-то не-Autodesk?
Да, без "pro" и не 18, а 2018 (Autodesk Autocad 2018), поправил в первому посте.

для AutoCAD 2018 net framework 4.6 должен быть
Не вопрос, net framework 4.6, если бы я знал API, не писал бы бы.

Где находятся размеры: в слое, на листе или модели?
Где разработчик программы скажет, там и будут размеры, конструкторы будут делать чертежи по образцу, который даст разработчик.
   
Еще лучше выложить пример dwg как было и как должно быть.
Сделал пример: во вложении к первому посту чертеж до модификации и после, добавил картинки.

Желательно описать связи с 1C, возможно не нужна никакая оберетка и все решается подключением к БД 1С и парой библиотек.
Если Вы имели в виду БД на SQL-Сервере, то это не положено по уставу и лицензия не предусматривает такого подключения, у нас с этим строго.
Про связи с 1С будем обсуждать с тем, кто возьмется за работу, разбираться с 1С разработчику точно не нужно.

думаю автор имел ввиду что-то типа этого: https://adn-cis.org/forum/index.php?topic=7053.0
Нет, автор имел в виду то, что сказал: По англицки тут, По русски тут, программа будет запускаться на локальном компьютере и использовать ресурсы только этого компьютера, WCF не нужен.
« Последнее редактирование: 14-10-2020, 18:26:19 от oradim »

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 526
  • Карма: 116
Чтобы сделать аналогичный чертеж для другого проекта, конструктор открывает его, меняет некоторые размеры и сохраняет под другим именем. Какие размеры и на какие менять, он берет из таблицы, имя файла для сохранения тоже. То есть выполняет механическую работу. Задача - этот процесс автоматизировать.

С виду основную часть работы, по изменяемому эскизу, можно сделать, не прибегая к созданию плагинов
1. сделать динамический блок с изменяемыми параметрами
2. параметры привязать к свойствам чертежа, (не пробовал, но наверное можно).
3. обращаться по COM, менять свойства чертежа и т.д., не прибегая к созданию ComVisible DLL.

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

  • ADN OPEN
  • Сообщений: 3
  • Карма: 1
С виду основную часть работы, по изменяемому эскизу, можно сделать, не прибегая к созданию плагинов
1. сделать динамический блок с изменяемыми параметрами
2. параметры привязать к свойствам чертежа, (не пробовал, но наверное можно).
3. обращаться по COM, менять свойства чертежа и т.д., не прибегая к созданию ComVisible DLL.
Спасибо, идея с привязкой к атрибутам чертежа может быть весьма полезна разработчику, которого я ищу, особенно если Автодеск предлагает отдельное приложение для редактирования атрибутов без загрузки самого чертежа. Если Вы готовы взяться, то по поводу п. 2 должен возразить: не хотелось бы обращаться к Автокаду по COM непосредственно из клиентского приложения. Во-первых, приложение или приложения еще на этапе разработки, во-вторых, таких приложений может быть несколько, в-третьих, если клиент 1С, то я не возьмусь отлаживать взаимодействие с Автокадом через COM в конфигураторе 1С, в-четвертых, если понадобится модифицировать чертеж в отдельном потоке, 1С отдыхает, в-пятых, мне нравится C#.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Вам бы сперва найти не исполнителя, а опытного консультанта по взаимодействию с AutoCAD через его API. Обсудить с ним задачу, рассказать про все пожелания и выяснить, что можно будет сделать, а что нельзя (нецелесообразно). И потом, уже с более полным пониманием технической стороны задачи, с более точным ТЗ уже искать исполнителя. Сейчас это выглядит чем-то на уровне идеи, с которой непонятно - получится или нет. Есть большой риск, что ничего не получится, то есть, вероятность потерять много времени и не получить результата высока. Это, на мой взгляд, отталкивает потенциальных исполнителей.