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

Вернуться   Форум 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
Просмотров: 3733
Размер:	28.7 Кб
ID:	80355  

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


Последний раз редактировалось bargool, 24.11.2022 в 11:45. Причина: добавил ссылки на свежие сборки
Просмотров: 313748
 
Непрочитано 05.12.2012, 20:54
#81
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Я сильно извиняюсь, но может мне кто-нибудь объяснить простым языком - для чего эти все действия и что в итоге получается ? (может самому пригодится).
Перечитал всю тему, но со стороны ничего не понятно.
maratovich вне форума  
 
Автор темы   Непрочитано 05.12.2012, 23:19
#82
bargool


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


Вовочка, zvyagaaa, спасибо, конечно, но пока надо это заставить работать
maratovich, кратко резюмируя заглавный пост и дальнейшие изменения:
Цитата:
программа предназначена для создания листов, настроенных на принтер DWG To PDF.pc3. С автоматическим выбором формата бумаги и настройкой видовых экранов по указанному контуру в модели
__________________
Алексей
bargool вне форума  
 
Непрочитано 05.12.2012, 23:29
#83
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Тогда есть пару вопросов :
1. Зачем создавать листы , можно же напрямую из модели отправлять на принтер DWG To PDF.pc3 ?
2. Почему именно на принтер DWG To PDF.pc3 а на другие ?
3. "Указанный контур в модели" - это что, надо каждый раз в модели на каждый чертеж тыкать чтоб что получилось ?
maratovich вне форума  
 
Автор темы   Непрочитано 06.12.2012, 00:20
#84
bargool


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


Цитата:
Сообщение от maratovich Посмотреть сообщение
1. Зачем создавать листы , можно же напрямую из модели отправлять на принтер DWG To PDF.pc3 ?
2. Почему именно на принтер DWG To PDF.pc3 а на другие ?
3. "Указанный контур в модели" - это что, надо каждый раз в модели на каждый чертеж тыкать чтоб что получилось ?
1. Offtop: Только без разжигания очередного холивара. Частично моя мотивация описана в начале заглавного поста, немного углублюсь. Самый злобный такой случай: приходит левый комплект чертежей сделанный фиг знает как, всё в модели, линиями, в разных масштабах. Я человек ленивый не люблю тупую рутину, и:
  • не хочу отправлять каждый чертёж индивидуально (вся эта процедура с настройками печати, указанием рамки для каждого чертежа)
  • не хочу соображать каждый раз, какой же это формат бумаги должен быть (напомню, масштаб рамки может быть произвольный - см. картинку, приложенную к заглавному посту)
  • не хочу, когда придут через пять минут с просьбой "распечатать второй экземпляр/сделать пдф/чего там ещё", не хочу повторять всю процедуру сначала
  • не хочу, когда проектировщики поменяют какие-нибудь мелочи и через пару дней опять придёт этот комплект чертежей, не хочу повторять всю долгую процедуру сначала, сравнивать, какие чертежи добавлены, какие убраны, а какие перемещены. Мне проще прощёлкать чертежи (см. ответ по п.3)
  • в войнах "модель вс листы" я стою с той стороны, где листы
2. Опять же, мотивация описана в начале заглавного поста, но уточню:
  • DWG To PDF есть у всех, проще запрограммировать универсальный вариант
  • я могу сразу, после работы программы, следующим кликом по публикации перегнать комплект в pdf
  • опять же, потратив минуту-другую на несколько десятков чертежей в публикации, переназначить всё на плоттеры/принтеры и отправить весь комплект на печать
3. В чистом виде, работа с программой заключается в:
  • указании "референтного размера" - длина основной надписи, это 185 мм. Используется для вычисления масштабов
  • последовательном указании чертежей. На каждый чертёж 2 клика - в противоположные углы рамки чертежа
  • после всего этого ждём, пока создадутся вожделенные листы, уже настроенные на распечатку того, что нам нужно
Потом уже начались всякие свистелки, направленные на удобство.. что хорошо и добавляет веселья
А, и да! Я могу дать программу пользователям, и пусть сами пляшут.

Ух, какая простыня получилась
__________________
Алексей
bargool вне форума  
 
Непрочитано 06.12.2012, 08:59
#85
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от bargool Посмотреть сообщение
Ух, какая простыня получилась
Спасибо за разъяснения.
Я просто думал что-то новое, а для этих целей у меня уже есть такая прога.
Удачи Вам в изобретении вашего велосипеда, сам знаю - долго и муторно.
maratovich вне форума  
 
Непрочитано 06.12.2012, 09:20
#86
zvyagaaa


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


maratovich
ссылку на прогу существующую пжалуйста. Я если честно не видел, что есть что-то подобное.
UPD
а, нашел на вашем сайте, РЕВЕРС, задумка вроде не плохая, но реализация тоже хромает. Отписался на сайте в разделе вопрос-ответ. На листы не выводит, к сожалению.

Последний раз редактировалось zvyagaaa, 06.12.2012 в 11:27.
zvyagaaa вне форума  
 
Непрочитано 06.12.2012, 12:57
#87
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от zvyagaaa Посмотреть сообщение
Отписался на сайте в разделе вопрос-ответ
Приложите пожалуйста файл с парой рамок (можно пустыми), для проверки и уточнения.

Цитата:
Сообщение от zvyagaaa Посмотреть сообщение
На листы не выводит, к сожалению.
Лишнее звено в цепочке, поэтому удалено.
maratovich вне форума  
 
Непрочитано 06.12.2012, 13:29
#88
zvyagaaa


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


в атаче файл с рамками.
Цитата:
Лишнее звено в цепочке, поэтому удалено.
кому-как. с меня некоторые заказчики требуют оформление в листах.
Вложения
Тип файла: dwg
DWG 2007
test.dwg (136.1 Кб, 4013 просмотров)
zvyagaaa вне форума  
 
Непрочитано 06.12.2012, 14:49
#89
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Программа работает правильно, надо только поставить галочку для вашего случая.
1. Так как Вы чертите в масштабе 1:1 , а рамки увеличиваете в 100 раз, Вам нужно поставить галочку "Учитывать масштабированные форматы".
2. А вот с самими рамками у Вас бардак (извените но правда), рамка (блок) "А3 (мал. штамп)" изначально увеличена в 100 раз, а вот рамка (блок) "format" изначально имеет размер 420х594 и вы её (блок) принудительно масштабированием увеличиваете в 100 раз. Данное действие в корне противоречит системе и автокад воспринимает линии внутри блока только по оригинальному размеру 420х594 и выводит этот размер на печать.
Итого, Вам необходимо - поставить галочку и привести в порядок рамку (блок) "format".
В следующей версии постараюсь добавить создание листов, ну там ещё много чего. Империалисты вообще требуют печать в .plt. Выйдет ориентировочно в марте т.к. сейчас готовлю новую версию "Techbras" (автоматическая спецификация).
maratovich вне форума  
 
Непрочитано 06.12.2012, 15:41
#90
zvyagaaa


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


maratovich,
Цитата:
Данное действие в корне противоречит системе
что значит, что в корне противоречит системе? Если он нормально отображается и нормально печатается. Какой системе? Вашей системе? Или дайте источник, в котором написано, что нельзя масштабировать динамические блоки. Конечно, это проще, чем сделать проверку на масштаб в блоке, а по хорошему, если мы используем блоки для рамок, то можно сделать список в настройках, какие блоки считать форматками, и их отправлять на печать. И иметь в чертеже блок форматки это лучше, чем делать форматки палочками и текстом.
zvyagaaa вне форума  
 
Непрочитано 06.12.2012, 23:29
#91
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Без проблем, я Вас спросил Вы ответили. Кто как чертит это его личное дело.
Цитата:
Сообщение от zvyagaaa Посмотреть сообщение
дайте источник, в котором написано, что нельзя масштабировать динамические блоки.
Просто иногда натыкаешься на грабли там где никогда не ждешь. Хотя сейчас у Вас этого нет но может случится - Справка AutoCAD: Создание аннотативных блоков и атрибутов -> ... ... Не следует вручную масштабировать блоки, содержащие аннотативные объекты. ... ...
Спасибо.
maratovich вне форума  
 
Непрочитано 07.12.2012, 10:44
#92
zvyagaaa


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


Цитата:
... Не следует вручную масштабировать блоки, содержащие аннотативные объекты. ... ...
есть разница между блоками динамическими и аннотативными. Мой блок просто динамический. Аннтотативность на него не распространяется. Если бы масштаб не следовало бы менять, не было бы возможности вводить любой масштаб в любой из трех осей.
zvyagaaa вне форума  
 
Непрочитано 12.12.2012, 11:04
#93
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Возникла еще одна идея. Не знаю, возможно ли. Но спросить нужно. Итак - можно ли подавить потоковую регенерацию лист/модели? Плюс - как мне кажется существенная экономия времени.
Вовочка вне форума  
 
Автор темы   Непрочитано 17.12.2012, 23:56
1 | #94
bargool


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


zvyagaaa, Вовочка, протестируйте, пожалуйста, сборки из архива во вложении к этому сообщению, если ожидания оправдаются - обновлю уже и заглавный пост
- отловил глюк с неправильным определением форматов - действительно должен был решаться удалением lfmsettings.xml, а в этой версии уже вообще не должен появляться, независимо от lfmsettings
- также отловил глюк с некрасивым отображением листов, как у zvyagaaa. Нафиг поменял область печати с extents на layout, всё должно быть нормально. Почему не хочет красиво работать с extents - пока так и не понял
- подправил неправильную ориентацию у листов
- нашёл ещё глюк, иногда удаляет вместе с действительно неиспользуемыми листами все остальные. Походу глюк уже самого автокада, все данные говорят за то, что такое не должно происходить. Обратите внимание
Цитата:
Сообщение от Вовочка Посмотреть сообщение
Не знаю, возможно ли. Но спросить нужно. Итак - можно ли подавить потоковую регенерацию лист/модели? Плюс - как мне кажется существенная экономия времени.
Спрашивать всегда нужно, спасибо за мысль. Я посоображаю на этот счёт
__________________
Алексей

Последний раз редактировалось bargool, 22.03.2013 в 16:59.
bargool вне форума  
 
Непрочитано 18.12.2012, 13:28
#95
zvyagaaa


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


bargool
попробовал на одном файле - программка отработала на-отлично! Спасибища!
zvyagaaa вне форума  
 
Непрочитано 21.12.2012, 10:42
#96
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Ищем для своих задач похожую програмку но никак не найдем подходящей.
bargool, можно пожелания для модернизации? Может не только нам пригодится...
Вобщем у нас ситуация такая: Несколько десятков листов. Как правило в 2 ряда и как правило все формата А3 альбомное расположение. Бывает но редко один из листов повернут как книжный.
Нужно 1) каждому листу в ПМ создать лист в ПЛ. 2) печать например в PDF всех листов 3) печать выбранных листов. Хочется все это делать с наименьшими щелчками мышью.
Может модернизировать программу по автоматическому поиску рамок. Т.е. выбираем секущей рамкой или по запуску команды листы в модели, программа ищет отрезки или полилинию (замкнутую или разорванную) стандартной длины 420х297, определяет как повернут лист и создает по заданному шаблону листы.
Ну а на печать автоматизацию я и сам могу сделать... Вобщем хочется чтобы по нажатию на кнопку программа создавала листы, сама их именовала и сама печатала в pdf. Одним нажатием! Для более сложных случаев - хватает того что есть.

Программу из поста #94 потестировал - все хорошо вроде, но был вылет акада с фаталом на пустом месте. Т.е. после того как прога отработала через минуты 2 вылетел акад с фаталом. Спишем пока на случайность.
__________________
Поезд который устал от ржавого здравомыслия рельсов...

Последний раз редактировалось Shoorup, 21.12.2012 в 11:43.
Shoorup вне форума  
 
Непрочитано 21.12.2012, 12:37
#97
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Shoorup, по поводу фатала. У меня было такое и не раз при тесте этой программы. Нашел причину в следующем. Если есть лист с именем "2" и предвидится лист одноименный при запуске программы - фатал обеспечен.
Вовочка вне форума  
 
Непрочитано 21.12.2012, 12:54
#98
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Ну тогда надо сделать проверку на имя листа. Либо добавлять скобки либо выдавать запрос (можно вынести в настройки). Лист 2(2)
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Автор темы   Непрочитано 21.12.2012, 13:20
#99
bargool


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


да, про проверку имени листа я забыл (а все и молчали)
__________________
Алексей
bargool вне форума  
 
Непрочитано 21.12.2012, 14:10
#100
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


всех устраивало и так
Вовочка вне форума  
Ответ
Вернуться   Форум 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