| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

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

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

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

Программа ищет новых хозяев.

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

Запуск / загрузка:
  • Выбираем 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 - возможно неправильное отображение области бумаги в пространстве листа. На печать не влияет
  • Пока больше ничего не вспомнить


Короткое видео работы одной из последних версий программы
Increase Size Decrease Size LayoutsFromModel. ?’?µ????????, ???°?±???‚?°???‰?°?? ?? ?€?°?±?»?????°????
http://www.youtube.com/watch?v=TqaUcqZZCbA
Исходники на github. Репозиторий

Upd 20.12.2018: Спасибо Boxa, сборки для автокадов: 2017 и 2019
Upd 24.11.2022: Спасибо doctorraz, сборки для автокадов 2021 и 2022 и 2023

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

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


Последний раз редактировалось bargool, 24.11.2022 в 11:45. Причина: добавил ссылки на свежие сборки
Просмотров: 314936
 
Непрочитано 14.11.2022, 21:01
#561
ГОСТ&ОПОКА


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


doctorraz, спасибо большое! Прекрасно работает!
ГОСТ&ОПОКА вне форума  
 
Непрочитано 15.11.2022, 16:19
#562
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


мож кому еще пригодится, пока разбираюсь, как это работает))
собрал , но проверять не на чем
Вложения
Тип файла: zip LayoutsFromModel2022.dll.zip (20.8 Кб, 128 просмотров)
Тип файла: zip LayoutsFromModel2023.dll.zip (20.8 Кб, 139 просмотров)
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 04.03.2023, 03:59
#563
Alex Hex


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


Просто чудо штука какая-то! Кто-то еще работает над развитием? Может можно прикрутить создание листа из шаблона? Или может кто-то подскажет, как поставить по дефолту создание листа из шаблона (как с созданием нового файла, допустим). Что-то почитал, что для слоев это не работает...
Alex Hex вне форума  
 
Автор темы   Непрочитано 04.03.2023, 17:01
#564
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Цитата:
Сообщение от Alex Hex Посмотреть сообщение
Может можно прикрутить создание листа из шаблона? Или может кто-то подскажет, как поставить по дефолту создание листа из шаблона (как с созданием нового файла, допустим).
Работа с шаблоном была реализована. Вот раскопал старое сообщение в этой теме с описанием https://forum.dwg.ru/showpost.php?p=...&postcount=164
Возможно, придётся почитать тему вокруг того сообщения
__________________
Алексей
bargool вне форума  
 
Непрочитано 04.03.2023, 17:27
#565
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Alex Hex Посмотреть сообщение
Кто-то еще работает над развитием?
Да конечно, но развитие пошло по своему пути.. зачем выделять рамки руками если это может сделать программа
Ну и дальнейшее развитие идеи.. если конечная цель комфортная печать на любом ПК, зачем настраивать листы на конкретные принтеры, если любые чертежи можно распечатать в два клика без шаманства из любого пространства..
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 04.03.2023, 17:29
#566
Alex Hex


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


Цитата:
Сообщение от bargool Посмотреть сообщение
Работа с шаблоном была реализована. Вот раскопал старое сообщение в этой теме с описанием https://forum.dwg.ru/showpost.php?p=...&postcount=164
Возможно, придётся почитать тему вокруг того сообщения
Спасибо за ответ, неправильно выразился, скорее всего. Речь идет о создании листа (Layouts from Template), на этапе создания самого листа. При таком подходе, я могу использовать лист, который сразу идет со всеми блоками и видовыми листами, как предустановка к листу. Формат и стили печати работают идеально, спасибо.
Alex Hex вне форума  
 
Непрочитано 04.03.2023, 17:32
#567
Alex Hex


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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
Да конечно, но развитие пошло по своему пути.. зачем выделять рамки руками если это может сделать программа
Ну и дальнейшее развитие идеи.. если конечная цель комфортная печать на любом ПК, зачем настраивать листы на конкретные принтеры, если любые чертежи можно распечатать в два клика без шаманства из любого пространства..
Тоже думал над этим, много автоматизации из пространства модели, но все еще вижу удобство в листах (создал шаблон листа с рамкой, вьюпортами на определенную точку - сразу получаешь все то, что необходимо для печати, причем не надо каждый раз формировать лист). Поэтому именно этот принцип очень хорошо подходит под принцип работы.
Alex Hex вне форума  
 
Непрочитано 04.03.2023, 19:29
#568
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Alex Hex Посмотреть сообщение
Формат и стили печати работают идеально, спасибо.
Спасибо автору кода, он реально крут!!!

Цитата:
Сообщение от Alex Hex Посмотреть сообщение
но все еще вижу удобство в листах
Удобство листов заканчивается, когда отдаешь файл тому у кого нет принтеров на которые настроены листы, я всего лишь об этом...
Есть другая концепция отличная от той что сложилась...
В этой концепции печать файла на любой машине не отличается от печати документа Word, никто ж не парится, что печать настроена на определенный принтер и надо перенастраивать, просто указываешь куда печатать, а дальше все само происходит, странно что автодеск придумал листы, но так и не придумал как их по человечески печатать, по аналогии с тем жэж Word или Excel
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 05.03.2023, 16:51
#569
Dflbv87


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


Доброго времени суток! Помогите! Долгое время пользовался этой штуковиной на 2019 версии, а сегодня столкнулся с тем, что после подтягивания .dll не выполняется команда на запуск, сообщая, что команда неизвестна, такая же проблема и на 2021 версии, делал на разных кампах.
Dflbv87 вне форума  
 
Непрочитано 05.03.2023, 17:51
#570
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Dflbv87 Посмотреть сообщение
dll
Ты ж ее после скачивания разблокиррвал?
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 05.03.2023, 17:55
#571
Dflbv87


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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
Ты ж ее после скачивания разблокиррвал?
до этого я этого никогда не делал. Как разблокировать?
Dflbv87 вне форума  
 
Непрочитано 05.03.2023, 18:11
1 | #572
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Dflbv87 Посмотреть сообщение
Как разблокировать?
Пкм на скачанном файле
Свойства
, будет кнопка или чекбокс.. разблокировать
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 05.03.2023, 18:23
#573
Dflbv87


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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
Пкм на скачанном файле
Свойства
, будет кнопка или чекбокс.. разблокировать
спасибо на 2021 заработало, завтра на 2019 попробую
Dflbv87 вне форума  
 
Непрочитано 19.09.2023, 16:27
#574
Archeo

архитектор
 
Регистрация: 02.04.2006
Беларусь
Сообщений: 348


Здравствуйте! Огромное спасибо разработчикам программы! Отличная вещь! Для себя не использую, т. к. основные надписи у меня уже в листах; пара базовых листов уже сидит в шаблоне, остальные создаю в процессе проектирования, по мере необходимости. Хочу "подсадить" на листы коллег, которые ими пока не пользуются и чертят только в пространстве модели. Возникли некоторые вопросы.
1) В каком порядке программа (команда LFBL) считывает блоки основных надписей - сверху вниз и слева направо? Сначала всю верхнюю строку, потом следующую и т. д.? Или ещё как-то?
2) Win7x64 и Win10x64, AutoCAD 2014 ENG SP1 (это у меня; у коллег - другие версии АвтоКАДа, пока не проверял) - файл конфигурации перезаписывается при каждом перезапуске АвтоКАДа. А сохранить его нет возможности?
3) Видовые экраны создаются в текущем слое. Есть ли возможность выбрать/назначить для них слой "Видовые_экраны"? Может, на кнопку как-то повесить (с возвратом к предыдущему слою после создания листов).
4) Есть ли принципиальная разница между автозагрузкой библиотеки (ЛИСПом) или загрузкой её же каждый раз при нажатии соответствующей кнопки? Макрос на кнопке типа ^C^C(command "_netload" "d:/CAD/ACAD_DLL/LayoutsFromModel/LayoutsFromModel2013.dll");bargLFBL;c;s;"z:/Install/CAD/Шаблон_РБ.dwt";
5) Допустим, файл готов, в нём определённое количество чертежей. Пользователь сформировал листы. Потом в процессе дальнейшей работы или прохождения экспертизы добавились ещё чертежи - 1, 5, 10 штук... Для вновь добавленных чертежей листы формировать уже командой LFM? Т. е. указывать ручками? Можно, конечно, удалить все ранее созданные листы и создать все заново. А вдруг пользователь часть информации таки внёс в пространстве листа? Она будет утеряна.
Спасибо. Может, потом ещё что-то вспомню.
Archeo вне форума  
 
Непрочитано 19.09.2023, 17:54
2 | #575
freese

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


Цитата:
Сообщение от Archeo Посмотреть сообщение
Сначала всю верхнюю строку, потом следующую и т. д.? Или ещё как-то?
Да, слева направо, потом смотрит ниже
Цитата:
Сообщение от Archeo Посмотреть сообщение
2) Win7x64 и Win10x64, AutoCAD 2014 ENG SP1 (это у меня; у коллег - другие версии АвтоКАДа, пока не проверял) - файл конфигурации перезаписывается при каждом перезапуске АвтоКАДа. А сохранить его нет возможности?
конфигурации использовал другие, но файл конфигурации никогда не перезаписывался. Как вариант, поставьте ему атрибут "для чтения". Такое поведение еще возможно, если файл конфигурации не создается.

Цитата:
Сообщение от Archeo Посмотреть сообщение
Видовые экраны создаются в текущем слое. Есть ли возможность выбрать/назначить для них слой "Видовые_экраны"? Может, на кнопку как-то повесить (с возвратом к предыдущему слою после создания листов).
разработчик отстранился от проекта, если только энтузиасты найдутся добавить эту возможность

Цитата:
Сообщение от Archeo Посмотреть сообщение
4) Есть ли принципиальная разница между автозагрузкой библиотеки (ЛИСПом) или загрузкой её же каждый раз при нажатии соответствующей кнопки? Макрос на кнопке типа ^C^C(command "_netload" "d:/CAD/ACAD_DLL/LayoutsFromModel/LayoutsFromModel2013.dll");bargLFBL;c;s;"z:/Install/CAD/Шаблон_РБ.dwt";
принципиально нет разницы

Цитата:
Сообщение от Archeo Посмотреть сообщение
Для вновь добавленных чертежей листы формировать уже командой LFM? Т. е. указывать ручками? Можно, конечно, удалить все ранее созданные листы и создать все заново. А вдруг пользователь часть информации таки внёс в пространстве листа? Она будет утеряна
это уже вам решать, как организовывать работу
freese вне форума  
 
Непрочитано 19.09.2023, 23:24
#576
Archeo

архитектор
 
Регистрация: 02.04.2006
Беларусь
Сообщений: 348


Спасибо!
Цитата:
Сообщение от freese Посмотреть сообщение
принципиально нет разницы
А вот в ЛИСПе, например, есть вот это:
;;;Исключаю возможность перезаписи метода S::STARTUP...
(setq S::STARTUP (append S::STARTUP bxStartup))
Что оно даёт? Плюс игры с переменными filedia и cmdecho...
Archeo вне форума  
 
Непрочитано 19.09.2023, 23:51
1 | #577
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


Цитата:
Сообщение от Archeo Посмотреть сообщение
(setq S::STARTUP (append S::STARTUP bxStartup))
ну ваш лисп не единственный, кто может иметь автоисполняемый код при загрузке.. поэтому в общую очередь ему (лиспу) надо встать.
Цитата:
Сообщение от Archeo Посмотреть сообщение
Плюс игры с переменными filedia и cmdecho...
печальное наследие командных методов работы в лиспе - временное переключение с диалогов на ввод в ком.строке, скрытие этого позора от пользователя)

Последний раз редактировалось Сергей812, 20.09.2023 в 00:03.
Сергей812 вне форума  
 
Непрочитано 19.09.2023, 23:56
#578
Archeo

архитектор
 
Регистрация: 02.04.2006
Беларусь
Сообщений: 348


Спасибо!

----- добавлено через ~14 мин. -----
Цитата:
Сообщение от freese Посмотреть сообщение
Как вариант, поставьте ему атрибут "для чтения"
Попробовал. АвтоКАД выдаёт ругательное сообщение, смысл которого сводится к тому, что доступ к файлу конфигурации запрещён. Команда, естественно, не выполняется. Причём даже если я не использую опцию "configuration". Он, видимо, сам к ней обращается.
Archeo вне форума  
 
Непрочитано 20.09.2023, 01:38
#579
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,036


Цитата:
Сообщение от Archeo Посмотреть сообщение
АвтоКАД выдаёт ругательное сообщение, смысл которого сводится к тому, что доступ к файлу конфигурации запрещён. Команда, естественно, не выполняется. Причём даже если я не использую опцию "configuration". Он, видимо, сам к ней обращается.
судя по коду, сохранение настроек происходит при запросе пользователя для выбора файла шаблона. Если подтверждается выбор файла шаблона - сохраняет в файл конфигурации сразу. Можно, было, конечно проверять значение и если не изменилось - не обновлять файл. Ну это решение автора программы и на функциональность не влияет.
Сергей812 вне форума  
 
Автор темы   Непрочитано 20.09.2023, 10:49
1 | #580
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Цитата:
Сообщение от Archeo Посмотреть сообщение
файл конфигурации перезаписывается при каждом перезапуске АвтоКАДа
Что имеется в виду под "перезаписывается"? Сбрасываются настройки? Как это проявляется? За все годы существования программы впервые вижу такую проблему.

Цитата:
Сообщение от Archeo Посмотреть сообщение
Допустим, файл готов, в нём определённое количество чертежей. Пользователь сформировал листы. Потом в процессе дальнейшей работы или прохождения экспертизы добавились ещё чертежи - 1, 5, 10 штук... Для вновь добавленных чертежей листы формировать уже командой LFM? Т. е. указывать ручками? Можно, конечно, удалить все ранее созданные листы и создать все заново. А вдруг пользователь часть информации таки внёс в пространстве листа? Она будет утеряна
Проверил по коду, я реализовал предвыбор. Т.е. перед запуском команды выберите нужные блоки, тогда листы будут созданы только для них. Можно не отфильтровывать только блоки рамок (просто выделить область чертежа с нужными листами). Программа сама фильтранёт блоки в соответствии с конфигурацией.

Цитата:
Сообщение от Archeo Посмотреть сообщение
Видовые экраны создаются в текущем слое. Есть ли возможность выбрать/назначить для них слой "Видовые_экраны"? Может, на кнопку как-то повесить (с возвратом к предыдущему слою после создания листов).
Идеология была такова, что если что-то можно решить макросом, либо лиспом, то оставить это на макрос / лисп (эдакий linux-way). Насколько помню, вроде была возможность в макросе переключиться на определённый слой для выполнения команды.
__________________
Алексей

Последний раз редактировалось bargool, 20.09.2023 в 11:09.
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