HILTI вебинары для проектировщиков
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
Просмотров: 2209
Размер:	28.7 Кб
ID:	80355  

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


Последний раз редактировалось bargool, 16.10.2015 в 17:03. Причина: Обновил сборки
Просмотров: 132437
 
Непрочитано 25.04.2016, 08:49
#481
bitnik666

ведущий инженер, автоматизация
 
Регистрация: 22.04.2016
Самара
Сообщений: 4


Ладно, решил сам пошариться по коду. При компиляции кода выдает ошибку: отсутствуют файлы из библиотеки \Bargool.Acad.Library\Bargool.Acad.Library\View.cs и \Bargool.Acad.Library\Bargool.Acad.Library\AcadSystemVariableSwitcher.cs. На github к сожалению эти самые файлы не выложены. Прошу выложить. Спасибо.
bitnik666 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.04.2016, 09:36
#482
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 788
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Цитата:
Для каждого формата установлен масштаб 1:100
, если для набора параметров листа в шаблоне, то сие неверно.
Для вкладки листа ВСЕГДА 1:1, для модели есть запрос 185 или 18500 мм ширина штампа (1:1 и 1:100 соответственно).

P.S. 1:4 => ширина штампа (в модели) будет 740, на листе всегда 185.
__________________
tc71
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.04.2016, 10:18
#483
bitnik666

ведущий инженер, автоматизация
 
Регистрация: 22.04.2016
Самара
Сообщений: 4


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

Ага!! Выставил в шаблоне единичный масштаб, как посоветовал perpetule. В рабочем чертеже отредактировал блок рамки - сделал размеры рамки в единичном масштабе - в модели выставил масштабы рамок - 100. И вуаля! Все операции делает правильно. Осталось назначить переменную PSLTSCALE 0 для всех листов, чтобы типы линий рисовались на листах в масштабе модели, и можно будет использовать любые шизанутые масштабы не боясь потерять правильное отображение типов линий...
bitnik666 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.04.2016, 16:45
1 | #484
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,030


bitnik666, Как поменять переменную PSLTSCALE на всех layout'ах файла одновременно?
skkkk на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.04.2016, 17:53
#485
bitnik666

ведущий инженер, автоматизация
 
Регистрация: 22.04.2016
Самара
Сообщений: 4


Обычно поступаю проще. Перед тем, как компоновать листы меняю значение переменной в модели в на единственном листе (пока). Или ручками, путем ввода команды, или в свойствах типов линий убираю галочку. Ну а потом компоную листы. Во вновь создаваемых листах переменная принимает значение 0, как в модели и на первом листе.
Но спасибо за ссылку на форуме!

----- добавлено через ~4 мин. -----
Еще пытаюсь сделать vba макрос, который будет вставлять в каждый лист блок с полями номера страницы и названием страницы. А потом из диспетчера подшивок назначать атрибуты.
bitnik666 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.04.2016, 08:57
#486
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 788
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Цитата:
Еще пытаюсь сделать vba макрос, который будет вставлять в каждый лист блок с полями номера страницы и названием страницы. А потом из диспетчера подшивок назначать атрибуты
Если название листа брать из описания листа подшивки, исчезают ограничения на спецсимволы и длину строки, но страдает наглядность в подшивке. VBA как таковой не зря убрали из стандартной поставки Автогада, слегка подтормаживает относительно без такового.
__________________
tc71
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.04.2016, 10:14
#487
Rocker88


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


Подскажите, у вас сохраняются настройки (выбранного шаблона и др.) в файле lfmsettings.xml после закрытия автокада?
Rocker88 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.04.2016, 11:27
#488
Сергей812


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


Цитата:
Сообщение от perpetule Посмотреть сообщение
Если название листа брать из описания листа подшивки, исчезают ограничения на спецсимволы и длину строки, но страдает наглядность в подшивке.
Уже много лет многострочный атрибут для названия листа, а сами листы называть кратко - чтобы было понятно, что на нем. Наглядность не страдает. Но это дело вкуса)
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.04.2016, 12:32 Сергей812
#489
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 788
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Цитата:
Но это дело вкуса)
И специфики, иногда часть названия приходит из смежного раздела, и над ним мы не властны, увы. Многострочный атрибут хорош, но не для новичка.

Произвольное смещение многострочных атрибутов в блоке
http://forum.dwg.ru/showthread.php?t=28359&page=3
__________________
tc71
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.04.2016, 13:31
#490
Сергей812


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


Цитата:
Сообщение от perpetule Посмотреть сообщение
Произвольное смещение многострочных атрибутов в блоке
есть такое дело - но это стало проявляться буквально последний год, до этого, с 12 года, как сделал такой вариант шаблона в фирме, ничего не убегало. Но сейчас приходят файлы, которые сами по себе глючные - чисти их, не чисти. Возможно, кто-то в клонах акада работает, а потом пересохраняет а акаде- так надписи-предупреждения не появляется при открытии.
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 11.05.2016, 13:34
#491
Jmix


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


Цитата:
Сообщение от bitnik666 Посмотреть сообщение
Еще пытаюсь сделать vba макрос, который будет вставлять в каждый лист блок с полями номера страницы и названием страницы. А потом из диспетчера подшивок назначать атрибуты.
Добрый день.

Макрос готов. В макрос встроена автозагрузка dll от bargool, вставка блока с полями подшивки (имя листа и номер листа) с изменением значения переменной plscale для каждого листа, вставка блока сквозной нумерации стадии П и создание переменной num в свойствах чертежа, возможность автонумерации листов в подшивке (макрос autonumbering Сергея Богатова), возможность вставки названий листов проекта из файла names.txt в каталоге проекта. Файл шаблона (template.dwg) с необходимыми блоками прилагаю.
Все данные мероприятия позволяют значительно ускорить оформление документации независимо от количества страниц. Большое спасибо разработчикам ПО за возможность использования ваших трудов.
Вложения
Тип файла: rar 00_GAM.rar (181.5 Кб, 58 просмотров)
Jmix вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.08.2016, 17:02
#492
bybs


 
Регистрация: 30.04.2010
Луцк
Сообщений: 30


Будет ли для AutoCAD2017 ?
bybs вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 15.08.2016, 14:22
#493
bargool


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


Цитата:
Сообщение от bybs Посмотреть сообщение
Будет ли для AutoCAD2017 ?
Ммммм... Проверить не могу - версия для 2016 работает (должна)?
__________________
Алексей
bargool вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 20.08.2016, 23:20
#494
freese

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


Цитата:
Сообщение от bybs Посмотреть сообщение
Будет ли для AutoCAD2017 ?
проверил Autocad 2017 x64 версия для 2016 работает нормально
freese вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.09.2016, 10:32
#495
Shturman121


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


Блин, спасибо автору программы. Это просто супер. Экономится куча времени.
Shturman121 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.11.2016, 13:53
#496
Konst085

Инженер
 
Регистрация: 15.10.2015
СПБ
Сообщений: 66


Спасибо автору, задумка полезная.
Но остались вопросы...
Какой принтер используется? у меня в настройках штатного принтера "dwg to pdf" все форматы отключены и руками занесены форматы по ГОСТ, как стандартные, так и не стандартные. При распознавании формата с применением данной программы форматы НЕ стандартные распознаются корректно почти все, а А0, А1-А4 распознаются, но область печати сдвигается относительно видового экрана (или наоборот).
В какую сторону копать?
Konst085 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.11.2016, 13:59
#497
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 2,138


Цитата:
Сообщение от Konst085 Посмотреть сообщение
Какой принтер используется? у меня в настройках штатного принтера "dwg to pdf" все форматы отключены и руками занесены форматы по ГОСТ, как стандартные, так и не стандартные. При распознавании формата с применением данной программы форматы НЕ стандартные распознаются корректно почти все, а А0, А1-А4 распознаются, но область печати сдвигается относительно видового экрана (или наоборот).
Да... такая же проблема (писал где-то выше....) // что интересно область печати "встает на масто" просто при открытии и применении изменений в редакторе печати.
v.psk вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.11.2016, 14:03
#498
baksconstructor


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


Цитата:
Сообщение от Konst085 Посмотреть сообщение
В какую сторону копать?
приложите образец вашего файла.
baksconstructor вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.11.2016, 14:13
#499
Konst085

Инженер
 
Регистрация: 15.10.2015
СПБ
Сообщений: 66


Форматы типа А4х3 и А4х4 тоже не распознаны, но зато в тех же координатах, что и область печати. Не стандартные форматы от А3 и выше распознаются корректно (проверял не все).
Вложения
Тип файла: dwg
DWG 2010
layout.dwg (149.1 Кб, 5 просмотров)
Konst085 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.11.2016, 14:33
1 | #500
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,030


Цитата:
Сообщение от Konst085 Посмотреть сообщение
При распознавании формата с применением данной программы форматы НЕ стандартные распознаются корректно почти все, а А0, А1-А4 распознаются, но область печати сдвигается относительно видового экрана (или наоборот)
Из старого варианта первого поста:
Цитата:
Сообщение от bargool Посмотреть сообщение
Подразумевается, что у вас в принтере DWG To PDF поля для форматов ISO выставлены в ноль, а также созданы дополнительные форматы из указанного ГОСТа
Цитата:
Сообщение от bargool Посмотреть сообщение
форматы, начинающиеся на "ISO A.."
То есть, вручную надо выставить поля в ноль в настройках принтера стандартным форматам (ISO A3 и т.д. - не "расширенным", не "без полей", а именно таким).
skkkk на форуме вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум 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 || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


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