Книга «Путь к nanoCAD»
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > C# .net Создание Layout для чертежей, оформленных в модели

C# .net Создание Layout для чертежей, оформленных в модели

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 16.05.2012, 18:09 5 |
C# .net Создание Layout для чертежей, оформленных в модели
bargool
 
Санкт-Петербург
Регистрация: 16.08.2006
Сообщений: 496
Отправить сообщение для bargool с помощью ICQ

bargool вне форума Вставить имя

Назначение программы:
Автоматическое создание листов по рамкам, указанным пользователем в модели (вручную, либо с помощью блоков). Автоматический выбор форматов бумаги и настройка листов.

Запуск / загрузка:
  • Выбираем dll из вложения к данному сообщению, либо самую последнюю версию из сообщения, указанного в конце "шапки"
  • Размещаем dll-ки в любом удобном месте, главное локально, а не в сети.
  • Командой _netload грузим выбранную dll в автокад
  • Автозагрузка рассматривается в #361 и #362

Принцип работы:
  • Программа формирует предварительный список настроек листа, с форматами бумаги
    Список формируется двумя способами
    1. Из DWG to PDF.pc3
      • Выбираются все пользовательские форматы
      • В конец списка добавляются форматы, начинающиеся на "ISO A.."
      • Область печати выставляется "Лист"
      • Единицы измерения - миллиметры
      • Масштаб 1:1
      • Стиль печати - acad.ctb. Позже буду брать из файла конфигурации
      • Имя настройки берётся из имени формата бумаги. Если встречаются символы из ряда "\<>/?"":;*|,=`" - убираются
    2. Из файла шаблона
      • Копируются пользовательские именованные настройки печати (для пространства листа, не для пространства модели), доступные из диалога "Page setup"
      • Повторяю. Пользовательские настройки. Не листы, а именно настройки
      • Ещё раз. В сами листы не заглядываем ВООБЩЕ - заглядываем в именованные настройки печати для пространства листа
      • Соответственно, имя настройки печати не должно начинаться с символа звёздочки "*"
  • - Запрашивает у пользователя "референтный размер".
    Используется для определения масштаба рамки. По-умолчанию это 185 мм. - длина основной надписи
  • - Запрашивает у пользователя противоположные углы рамок
    Слева-направо, сверху-вниз, или наоборот - не важно
    Привязка принудительно выставляется "конточка"
  • - На основе масштаба и списка форматов определяет наиболее подходящий
    При этом используется строго ориентация из "списка". Ориентацию с книжной на альбомную и обратно программа произвольно не меняет. Строго по "списку настроек"
  • - По выбранным форматам бумаги создаёт листы
    В чертёж добавляет подходящие именованные настройки из "списка", настроенные на нужный формат бумаги
    Присваивает созданным листам соответствующие именованные настройки
  • - Создаёт видовой экран, "смотрящий" на рамку, указанную пользователем

Процесс работы:
Указание рамок вручную:
  1. Для вызова программы введите в ком. строку bargLFM
  2. Либо задайте номер первого создаваемого листа, либо используйте опции ком. строки
  3. Укажите "референтный" размер
  4. Указывайте рамки, кликая по противоположным углам рамок.
    Опции ком. строки см. соответствующий раздел
  5. По окончании жмите escape или используйте опцию P
Рамки вставлены блоками:
  1. Для вызова программы введите в ком. строку bargLFBL
  2. Либо задайте номер первого создаваемого листа, либо используйте опции ком. строки
  3. Имя блока должно быть задано в конфигурации
  4. Формат будет определяться по габаритам конкретного вхождения блока. Включая атрибуты и дин. параметры (на данном этапе следите, что бы они не вылезали за пределы геометрии рамки)
    Опции ком. строки см. соответствующий раздел

Конфигурация:
  • Файл конфигурации. Имя файла - lfmsettings.xml. Хранится рядом программой
    Содержимое, не используемое диалогом конфигурации:
    • ReferenceDimension (По-умолчанию - 185). Референтный размер. Масштаб рамки будет определяться как отношение указанного пользователем размера к размеру в конфигурации. Если у вас референтный размер другой - можете изменить вручную
    • TemplatePath. Путь к шаблону для формирования списка настроек листов. Устанавливается программой при выборе опции templateSelect
  • Диалог конфигурации:
    • Префикс - Префикс имени создаваемого листа
    • Суффикс - Суффикс имени создаваемого листа
    • Точность определения форматов - Отвечает за точность определения форматов. Суть в том, что форматки иногда бывают примерно по госту. Таким образом, если указываемая форматка больше гостовского размера (уже после скалирования) на указанный размер - будет выбран соответствующий формат бумаги. Значение - целое число. По умолчанию = 10 мм
    • Удалять неинициализированые листы - Удалять ли листы, на которые ни разу не заходил пользователь
    • Оставаться в модели по окончании работы - Возвращать ли пользователя в модель по окончании работы программы

Опции ком. строки:
  • Undo - Отменить выбор последней рамки
  • Newscale - Задать новый масштаб рамки
  • Process - Выполнить создание листов
  • Configuration - Вызвать диалог конфигурации
  • useTemplate - Для создания листов использовать ранее выбранный шаблонный файл
  • templateSelect - Выбрать шаблонный файл. Переменная FILEDIA влияет на вид запроса (можно использовать в макросах)

Известные проблемы:
  • Если настройки листа подразумевают область печати Extents, и стоит галка Fit to paper - возможно неправильное отображение области бумаги в пространстве листа. На печать не влияет
  • Пока больше ничего не вспомнить

В виде mind map

Короткое видео работы одной из последних версий программы
Increase Size Decrease Size LayoutsFromModel. ?’?µ????????, ???°?±???‚?°???‰?°?? ?? ?€?°?±?»?????°????

Мотивация - в старом тексте поста
Лучше бы я тогда сразу начал шевелиться..
Начался у нас проект, где мы чисто на монтаже, т.е. чертежи приходят от заказчика и... оформленные в модели, причём в разных масштабах!! Эта картинка во вложении - пример того, что у меня там было, там меньшая рамка - А2, а остальные А3. Меня начали просить с помощью в распечатке. В общем, сел я писать программку себе в помощь, мощный универсальный комбайн делать не стал, решил, что мне надо получить Layout, настроенный на pdf, а дальше я разберусь с помощью publish. Результатом решил поделиться с любимым dwg.ru, мало ли, кому поможет..

В общем, программа предназначена для создания Layout, настроенного на принтер DWG To PDF.pc3, с автоматическим выбором формата бумаги по ГОСТ 2.301-68 и созданием viewport по указанному контуру в модели, вьюпорт создаётся в текущем слое. Как раз для такого случая, он совпадает с моим. Подразумевается, что у вас в принтере DWG To PDF поля для форматов ISO выставлены в ноль, а также созданы дополнительные форматы из указанного ГОСТа.
вызывается командой
Код:
, или по простому LayoutsFromModel то есть..
Дальше необходимо указать длину основной надписи, т.е. то, что должно быть 185 мм. в длину. Это что бы понять масштаб черчения для дальнейшего определения формата листа. А затем указать две противоположные крайние точки рамки чертежа, указывать рамки можно столько, сколько нужно, после выхода из команды по эскейп или опции Process - начнётся создание Layout'ов. В процессе можно указывать новые масштабы Offtop: (КАК ТАК МОЖНО-ТО?!?! что в головах у людей?), отменять последний чертёж, если неправильно указали рамку, ну там особенно не в чем разбираться-то, главное читать запросы в ком. строке
UPD 25.07.2012: Обновил программу. Добавил возможность задавать префикс и суффикс для именования Layout. Вызывается опцией Configuration, значения сохраняются в xml-файл рядом с dll. На данный момент, для корректной работы должна стоять галка "Create viewport in new layout" в настройках. Объяснение здесь. Вариант для локализованного автокада - см. здесь (спасибо perpetule)
UPD 27.07.2012: Опять обновил. Теперь работа программы не зависит от галки "Create viewport in new layout". Так же поменял название конфигурационного xml-файла
UPD 29.08.2012: Очередное обновление. Нововведения здесь. Самое основное - изменил работу с форматами. Теперь в выборку для поиска формата попадают все пользовательские форматы, определённые в DWG to PDF, а не строго заданный список, как ранее. Также в выборку попадают форматы "ISO A и так далее", они проверяются последними, если ничего не найдено
UPD 08.10.2012: И ещё одно обновление. Маленькое - добавил в конфигурацию галку, которая отвечает за удаление не инициализированных layout (т.е. тех layout, на которые ни разу не кликала рука пользователя, соответственно, они совершенно пусты)
UPD 29.11.2012: Обновил: Подробности - здесь
UPD 25.02.2013: Небольшие исправления. Подробности - здесь

UPD:
Выложил свой неуклюжий код на github. Репозиторий
Там же есть feature/bug трекер.


Upd 15.10.2015: Обновил архив в шапке. "Бета" версия из #311 теперь уже считайте стабильная Добавил так же сборки для 2015 и 2016 автокадов
Upd 16.10.2015: Обновил архив в шапке. Исправлена ошибка, в 2015 и 2016 автокадах

Миниатюры
Нажмите на изображение для увеличения
Название: scheisse.PNG
Просмотров: 2163
Размер:	28.7 Кб
ID:	80355  

Вложения
Тип файла: zip LayoutsFromModel.zip (196.8 Кб, 677 просмотров)


Последний раз редактировалось bargool, 16.10.2015 в 17:03. Причина: Обновил сборки
Просмотров: 126790
 
Непрочитано 20.04.2017, 23:42 Help!
#521
bulldozer


 
Регистрация: 13.02.2011
Сообщений: 7


Уважаемый bargool ваша программа очень полезна!
Могли бы вы записать видио каким образом создавать сборки под новые Autocadi.
Тогда я или кто-то еще могли бы продолжить ваше дело!
К сожалению сам я в программировании ничего не понимаю.
bulldozer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 21.04.2017, 11:25
#522
freese

ingénieur
 
Регистрация: 21.07.2008
Сообщений: 682


bulldozer, на GIT у него выложен код, но нет сторонних бибилиотек который он использовал. Все ни как не может выложить все))
Цитата:
Сообщение от bargool Посмотреть сообщение
сли в репе на гитхабе чего-то не хватает для сборки (где-то было сообщение на эту тему) - выложу.
не хватает, выкладывай все
freese вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 21.04.2017, 13:55
#523
Boxa

ПГС
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 1,260


угу, как минимум не хватает:
\Bargool.Acad.Library\Bargool.Acad.Library\AcadSystemVariableSwitcher.cs
\Bargool.Acad.Library\Bargool.Acad.Library\View.cs
а, нет, нашел их...

Тестовая сборка во вложении, сам протестировать не могу, так что как она будет работать не знаю.
Вложения
Тип файла: zip LayoutsFromModel2017.zip (20.5 Кб, 2 просмотров)

Последний раз редактировалось Boxa, 21.04.2017 в 14:51.
Boxa вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 21.04.2017, 15:14
#524
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 496
Отправить сообщение для bargool с помощью ICQ


Boxa, спасибо, да. Я же помню, что я включил нужные классы в исходники..
__________________
Алексей
bargool вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 21.04.2017, 15:16
#525
Boxa

ПГС
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 1,260


Цитата:
Сообщение от bargool Посмотреть сообщение
Я же помню, что я включил нужные классы в исходники..
Нет, их в репозитории нет, я их дебагером из сборки забрал.
Boxa вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 21.04.2017, 15:18
#526
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 496
Отправить сообщение для bargool с помощью ICQ


Цитата:
Сообщение от Boxa Посмотреть сообщение
Нет, их в репозитории нет, я их дебагером из сборки забрал
Хмм.. Тогда выложу, как доберусь до кода, да найду
__________________
Алексей
bargool вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > C# .net Создание Layout для чертежей, оформленных в модели

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести в layout только часть модели? temoha2006 AutoCAD 12 18.08.2008 17:19
Помогите завершить создание 3М модели!? Jerald AutoCAD 8 27.04.2008 23:09
Автоматической создание Layout serg01 AutoCAD 3 16.08.2007 14:09
как начертить в масштабе не деля на калькуляторе? djon AutoCAD 168 29.05.2007 10:13
Подготовка рабочих чертежей по 3D модели constructorl AutoCAD 21 07.02.2007 19:50

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы