C# .net Создание Layout для чертежей, оформленных в модели - Страница 33
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

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

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

Ответ
Поиск в этой теме
Непрочитано 16.05.2012, 18:09 8 |
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
Просмотров: 3894
Размер:	28.7 Кб
ID:	80355  

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


Последний раз редактировалось bargool, 24.11.2022 в 11:45. Причина: добавил ссылки на свежие сборки
Просмотров: 336879
 
Непрочитано 08.11.2023, 16:44
#641
Archeo

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
этот флаг должен в коде команды сопровождаться вызовом метода SelectImplied() акадовского класса Editor
Offtop: С каждым словом всё глубже погружаюсь в пучину своего невежества)
Archeo вне форума  
 
Непрочитано 08.11.2023, 18:49
#642
doctorraz

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


Стимул двигаться дальше
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 08.11.2023, 21:18
#643
Archeo

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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
Стимул двигаться дальше
Стимул-то да, но освоить C# или ещё что... По-моему, у меня мозг под это не заточен(
В любом случае, всем спасибо за помощь!
Archeo вне форума  
 
Непрочитано 08.11.2023, 21:34
#644
Сергей812


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


Offtop:
Цитата:
Сообщение от Archeo Посмотреть сообщение
По-моему, у меня мозг под это не заточен(
ерунда.. проектировщик с работающей головой может освоить любой язык программирования на начальном уровне. Вопрос в том, нужно ли потратить энное количество человекочасов - чтобы в итоге исправлять чужую рукожопость и лень. Ведь научиться пользоваться сразу листами и шаблонами по факту чисто административный вопрос - кто не хочет, того заставить работать в одном стиле со всеми.
Сергей812 вне форума  
 
Непрочитано 08.11.2023, 21:54
#645
doctorraz

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
научиться пользоваться сразу листами и шаблонами по факту чисто административный вопрос
Offtop: Листы не спасут если надо вывести на другой машине где этих плотеров нет(((
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 09.11.2023, 00:43
#646
Archeo

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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
вывести на другой машине
Offtop: Подшивки? Ну или в тот же ПДФ, а потом куда угодно...

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
заставить работать в одном стиле со всеми
Offtop: Могут ведь и наоборот - заставить отказаться от листов, потому что нечего быть умнее других)
Archeo вне форума  
 
Непрочитано 17.11.2023, 13:01
#647
[igrik]

Инженер-конструктор
 
Регистрация: 04.06.2014
Крым
Сообщений: 15


Цитата:
Сообщение от Archeo Посмотреть сообщение
Спасибо! Не гарантирую, что сегодня успею, но на днях - точно.
А в чём отличие от версии 2013? Кроме собственно версии) То есть я как пользователь замечу что-то или нет?

Если бы кто-нибудь объяснил доступным языком, как это сделать... Ну вижу я страницу с исходниками - и чо? Мне сразу плакать хочется)))
А так бы я, конечно, попробовал разобраться, куда подевался запрос на указание вхождения блока рамки.
Попробуйте плагин (мной чуть доработанный и модифицированный) на версию 2019 Автокада. (ссылка на данный пост в этой теме)
Возможно этой проблемы в нём нет. Там же и добавлено название блока-рамки, а так же сделано автоматическое нахождение и сортировка всех блоков по тегу в блоке.
Для ознакомления есть видеоинструкция, и весь исходный код на гите, который компилируется под версии 2016 и/или 2019 автокада. Возможно и под другие компилируется, но я не проверял.

В дополнение, в версиях 2015 и 2016 есть одна проблема при создании набора листов. Проблема в самом автокаде. В версиях ниже 2015 и выше 2016 такой проблемы нет.
https://github.com/igrikRS/AutoCAD-P...Creator.cs#L67





Раз уж я вернулся к данной теме...
doctorraz, у меня к вам вопрос. Подскажите пожалуйста как мне сделать выборку из форматок СПДС GraphiCS:
1) получить список всех форматок
2) достучаться до номера листа в каждой из форматок.
Я давно хотел сделать алгоритм, который у меня реализован в блоках, т.е. автоматически найти все форматки, отсортировать их в порядке возрастания по номеру листа и создать из этого набора листы

Последний раз редактировалось [igrik], 17.11.2023 в 21:01.
[igrik] вне форума  
 
Непрочитано 17.11.2023, 13:37
#648
doctorraz

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


Цитата:
Сообщение от [igrik] Посмотреть сообщение
получить список всех форматок
в общем случае проходишь в цикле по всем пространствам и проверяешь на соответствие

Код:
[Выделить все]
 
 if (ObjectId brId.ObjectClass.Name == "mcsDbObjectFormat")
{
//если это форматка по objID получаешь ID мультикад
            McObjectId mcsId = Multicad.McObjectId.FromOldIdPtr(objID.OldIdPtr);
//!формат
            McFormat _mcFormat = mcsId.GetObject()?.Cast<McFormat>();
            
            McPropertySource mcPropertySource = mcsId.GetObject()?.Cast<McPropertySource>();
 //!коллекция свойств
            McProperties _mcProperties = mcPropertySource.ObjectProperties;
            
           sDrawingName_ = (string)_mcProperties.GetValueEx("DrawingName", "");
//-------------------------
           int iSheet = _mcFormat.Sheet;
           string sSheet =_mcFormat.SheetEx
} 
 
в отладчике посмотришь, какие свойства доступны
ну и советую скачать nanoCAD SDK, по мультикад там кое что есть в справке, да и классы многие описаны.
PS мультикад так потому и называется, что работает с разными кадами))
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 17.11.2023 в 13:43.
doctorraz вне форума  
 
Непрочитано 17.11.2023, 15:15
#649
[igrik]

Инженер-конструктор
 
Регистрация: 04.06.2014
Крым
Сообщений: 15


doctorraz, спасибо за инфу. Будем пробовать
[igrik] вне форума  
 
Непрочитано 18.11.2023, 23:13
#650
Archeo

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


Цитата:
Сообщение от [igrik] Посмотреть сообщение
в доступе есть 2016 и 2019 версии автокада
Спасибо... а у меня - нет и не предвидится)))
Цитата:
Сообщение от [igrik] Посмотреть сообщение
- после того как плагин найдёт все вхождения блоков, он сортирует их по номеру листа (атрибуту)
- потом этот номер назначается как "имя листа"
Это интересно. А предварительный выбор есть? В модели-то у большинства пользователей чего только нет... Нужна возможность выбора любого участка пространства модели.
Цитата:
Сообщение от [igrik] Посмотреть сообщение
- в окне настроек указываем название блока
Неудобно, я уже писал об этом. В чужих файлах постоянно встречается солянка из однотипных блоков с разными именами. Никто не станет заморачиваться и писать эти имена вручную. Нужен выбор мышкой.
Цитата:
Сообщение от [igrik] Посмотреть сообщение
сортировка всех блоков по тегу в блоке
То же самое. Названия тегов могут быть какими угодно.
Цитата:
Сообщение от [igrik] Посмотреть сообщение
Масштаб берётся автоматически из объекта
Цитата:
Сообщение от [igrik] Посмотреть сообщение
если у вас форматы имеют разный масштаб
То есть если один блок был создан в миллиметрах и увеличен в 100 раз, а другой изначально был создан увеличенным в те же 100 раз, результат будет одинаковым? См. моё сообщение #634.
Archeo вне форума  
 
Непрочитано 10.01.2025, 20:18
#651
Teess


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


Добрый день! Подскажите человеку, который мало чего понимает в автокаде, как победить это недоразумение со сдвигом ВЭ от рамки? Скриншот прилагаю, уже все настройки печати поменял, не знаю. Ткните носом, пожалуйста.
Миниатюры
Нажмите на изображение для увеличения
Название: 123.png
Просмотров: 46
Размер:	37.1 Кб
ID:	266239  
Teess вне форума  
 
Непрочитано 10.01.2025, 20:24
#652
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,382


И какое отношение этот вопрос имеет к топику?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.01.2025, 20:51
#653
Teess


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
И какое отношение этот вопрос имеет к топику?
Отношение такое, что я использую программу из данного топика, чтобы делать ВЭ из модели. И задал вопрос единомышленник, который непосредственно касается работы данной программы

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
И какое отношение этот вопрос имеет к топику?
Потому что данный вопрос непосредственно относится к работе программки для создания видовых экранов, обсуждаемой в этом топике

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
И какое отношение этот вопрос имеет к топику?
Прямое, так как ВЭ делаю с помощью программы из этого топика.
Teess вне форума  
 
Непрочитано 10.01.2025, 21:05
#654
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,382


Цитата из ReadMe на гитхабе:
Цитата:
Известные проблемы: - Если настройки листа подразумевают область печати Extents, и стоит галка Fit to paper - возможно неправильное отображение области бумаги в пространстве листа. На печать не влияет - Пока больше ничего не вспомнить
У тебя случайно не этот случай?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.01.2025, 21:08
#655
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,893


Цитата:
Сообщение от Teess Посмотреть сообщение
недоразумение со сдвигом ВЭ от рамки
Видимо, лист должен быть безрамочным (рамки=0).
engngr вне форума  
 
Непрочитано 13.01.2025, 09:59
#656
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 909


Цитата:
Сообщение от Teess Посмотреть сообщение
недоразумение со сдвигом ВЭ от рамки
Бывает, что помогает такой способ:
в командной строке набираем "двид" и дальше выбираем "точки" - Enter - 0,0,0 - Enter - 0,0,1
kacugu вне форума  
 
Непрочитано 07.03.2025, 21:46
#657
mil_lana1102

инженер-проектировщик по автоматизации
 
Регистрация: 07.03.2025
Москва
Сообщений: 1


Цитата:
Сообщение от doctorraz Посмотреть сообщение
Ты ж ее после скачивания разблокиррвал?
но м
Добрый вечер! Сегодня попробовала использовать программу для создания листов из модели для Автокада 2022, появляется сообщение о загрузке (как я понимаю), а при запросе в командной строке после этого команды LFM уже выдает ошибку - LFM - неизвестная команда, из чего я делаю вывод, что файл *.dll не подгрузился как нужно. Как написано здесь - я поставила галочку разблокировать в свойствах файла *.dll, но при команде LFM снова выдается такая же ошибка, подскажите, пожалуйста, что я делаю не так? Очень буду Вам благодарна

Последний раз редактировалось mil_lana1102, 07.03.2025 в 22:05.
mil_lana1102 вне форума  
Ответ
Вернуться   Форум 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