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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Создание листов и видовых экранов по заданой рамке.

LISP. Создание листов и видовых экранов по заданой рамке.

Ответ
Поиск в этой теме
Непрочитано 02.06.2025, 14:54 #1
LISP. Создание листов и видовых экранов по заданой рамке.
nosok_gvardii
 
Регистрация: 01.04.2021
Сообщений: 10

За основу скрипта взят скрипт по ссылке на форуме:
https://forum.dwg.ru/showthread.php?t=124456&page=6

Скрипт по сути повторяет все что было на том скрипте, но с малыми изменениями.
Краткие изменения и описание:
Скрипт работает с принтером "DWG To PDF" и исключительно с пользовательскими форматами, в занавании которых есть UserDefinedMetric .
Вы можете свои форматы называть хоть "кака", но в системе они будут "UserDefinedMetric (297.00 x 840.00мм)"
Скрипт подбирает формат с погрешностью до 30мм (условный прямогольник может от формата отличаться на 1мм, у того же спдс стандартные форматы кратные, часто могут на 1мм отличаться от того что вы вручную получить можете)
В целом, если упрощенно, то задался писать скрипт с целью быстро вывести все на печать, если чертишь исключительно в пространстве модели. Писал на питоне изначально, но не смог прикрутить туда создание видовых экранов (есть рабочая версия которая создает листы по прямоугольникам, задает им формат в принтере двж ту пдф, причем скрипт сам всегда при запуске получает доступные форматы у этого принтера (не надо как в этом лиспе заранее их вводить)

Для того что бы у вас читались все форматы, в скрипте можете найти строчки по типу:
" (210.0 297.0 "UserDefinedMetric (210.00 x 297.00мм)")
(297.0 420.0 "UserDefinedMetric (297.00 x 420.00мм)")
(420.0 594.0 "UserDefinedMetric (420.00 x 594.00мм)")"
и заменить их под свои форматы (если у вас к примеру нет какого то формата из перечисленого)"

Прикладываю файл скрипта измененного и краткую инструкцию.

В планах в ближайшие дние прикрутить к нему скрипт на питоне ехе файлом (что бы старички не парились с установкой всех библиотек питона), который автоматом будет редачить ваш файл лисп под существующие у вас форматы с названием UserDefinedMetric и заменять те что я уже добавил туда. Если меня тряпками не погонят отсюда (малоли, не туда написал тему, нарушил какие то правила) , и будет спрос, то обновлю версию которая сама будет подтягивать форматы и изменять файл лисп.

Вложения
Тип файла: lsp AddLay.LSP (13.4 Кб, 105 просмотров)
Тип файла: docx Инструкция.docx (13.3 Кб, 99 просмотров)

Просмотров: 1094
 
Непрочитано 02.06.2025, 22:42
#2
Ingpro


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


Выглядит привлекательно, но что-то не так...
Видовые экраны создаются, но листы не совпадают с ними.
Оригинальный код AddLay.LSP создает совпадающие с листом видовые экраны, как на 3-м изображении.
Миниатюры
Нажмите на изображение для увеличения
Название: Image 4.png
Просмотров: 122
Размер:	5.5 Кб
ID:	268385  Нажмите на изображение для увеличения
Название: Image 5.png
Просмотров: 106
Размер:	6.4 Кб
ID:	268386  Нажмите на изображение для увеличения
Название: Image 7.png
Просмотров: 96
Размер:	5.8 Кб
ID:	268387  
Ingpro вне форума  
 
Автор темы   Непрочитано 02.06.2025, 23:40
#3
nosok_gvardii


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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
Выглядит привлекательно, но что-то не так...
Видовые экраны создаются, но листы не совпадают с ними.
Оригинальный код AddLay.LSP создает совпадающие с листом видовые экраны, как на 3-м изображении.
Могу предположить что дело в масштабах фаших. В моем случае я черчу в масштабе измерений всегда 1к1 (1000 мм в живую =1000 мм в модели) и меняю только масштаб сиимволов (текст 3мм на напечатаном чертеже в моделе 1:100 и тд.; размеры рамки, таблиц и штампов) В вашем случае, скорее наоборот. Генплан к примеру вообще в метрах все делает. Скорее всего подвох тут. Но этот блок от родного не правил.
Оригинал был нацелен на подбор подходящего форма под видовой экран, там был заложен большой диапазон площади видового экрана к формату. (предположу что это был скрипт больше для разбития всяких трас, профилей и тд.) . Проще говоря - нужно что б видовой экран всписывался в границы листа и не залазил на поля.

Моя ж версия, нацелена прям в притык на создания листов с видовым экраном по границам листа. (начертил в модели, там же накинул рамку и обвел ее прямоугольником, запустил скрипт. за пару минут получил все листы, запустил пакетную печать и пошел дальше в носу ковырять.

В переработаной версии скрипт уже ориентируется на ширу и длину формата, подбирая ее с погрешностью до 30мм. Проще говоря, если у тебя забит в моделе рамка 29700х42000 и ты ему говоришь что это масштаб 1:100 - то он подберет формат 297х420 (просто поделив размеры прямоугольника в модели на заданую цифру )

По этому поиграйте с цифрой масштаба или давайте файл, глянем
nosok_gvardii вне форума  
 
Непрочитано 03.06.2025, 08:37
#4
Ingpro


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


Цитата:
Сообщение от nosok_gvardii Посмотреть сообщение
По этому поиграйте с цифрой масштаба или давайте файл, глянем
Пробую с разными масштабами (и с блоками и с рамками), но не получается...
Иногда выдает ошибку:
Команда: Ошибка Automation. Неверный ввод
Хотелось бы сохранить универсальность исходного кода AddLay, он работает с различными масштабами.
Вложения
Тип файла: dwg
DWG 2013
AddLayFrame.dwg (73.8 Кб, 69 просмотров)

Последний раз редактировалось Ingpro, 03.06.2025 в 09:12.
Ingpro вне форума  
 
Автор темы   Непрочитано 03.06.2025, 09:44
#5
nosok_gvardii


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


ННа скорую руку проверил на 100, 50, 25, 10,5 масштабах - полет нормальный.

Да и ваш файл работает. Просто вам нужно было обвести прямоугольником вашу рамку, и дать этому прямоугольнику отдельный слой (слой один для всех таких прямоугольников). Те 3 чертежа с лева - 100 масштаб у вас. С права масштаб 1. На скрине тот что с масштабом 1.

Еще раз инструкция - закинули лисп.
Создали отдельный слой.
Обвели прямоугольниками интересующие чертежи и присвоили им созданый слой.
Дальше запустили скрипт командой "AL".
Выбрали 1 из прямоугольников в созданом слое
Выбрали все прямоугольники и ткнули энтер.
Ввели масшаб
Подтвердили удаление сущ.листов
Выставили с какой цифры нажать нумерацию.
- получили готовый результат.

Для проверки еще, после создания, перейдите на созданый лист - ткните по нему правой кнопкой и вызовите "Диспечер параметра листов" и в нем на этом листе (именно на этом) ткните с права "редактировать" и убедитесь что скрипт выставил ему принтер двж ту пдф формат нужный. Если не выставил - то наверное у вас нет такого формата. и его нужно создать или подредачить под себя скрипт. (мб у вас размер этого формата чуток другой.

В целом, я старался допилить скрипт что бы им мог пользоваться более обширный пул людей, так как перечня из 4х форматов как в оригинале для инженера маловато.
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 97
Размер:	47.9 Кб
ID:	268391  
nosok_gvardii вне форума  
 
Непрочитано 03.06.2025, 12:45
#6
lenivec

проектирование
 
Регистрация: 16.09.2005
KZ
Сообщений: 141


Цитата:
Сообщение от nosok_gvardii Посмотреть сообщение
За основу скрипта взят скрипт по ссылке на форуме:
https://forum.dwg.ru/showthread.php?t=124456&page=6
Ваш скрипт сбивается на первом же листе - создает с неправильным форматом листа и всё. Остальные листы не создает.
lenivec вне форума  
 
Автор темы   Непрочитано 03.06.2025, 12:49
#7
nosok_gvardii


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


я честно говоря не знаю в чем у вас проблема. Предыдущему коментатору ответ написал по его файлу, но сообщение еще не прошло модерацию. Скорее всего вы что то не то делаете.
nosok_gvardii вне форума  
 
Непрочитано 03.06.2025, 12:57
#8
Ingpro


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


Цитата:
Сообщение от nosok_gvardii Посмотреть сообщение
я честно говоря не знаю в чем у вас проблема. Предыдущему коментатору ответ написал по его файлу, но сообщение еще не прошло модерацию. Скорее всего вы что то не то делаете.
Оригинальный AddLay.lsp отлично работает (за исключением нестандартных форматов).
Почему не работает изменённый код?

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от lenivec Посмотреть сообщение
Ваш скрипт сбивается на первом же листе - создает с неправильным форматом листа и всё. Остальные листы не создает.
Иногда создает видовые экраны для нескольких листов, но размеры листов сильно маленькие...
Ingpro вне форума  
 
Автор темы   Непрочитано 03.06.2025, 13:15
#9
nosok_gvardii


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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
Оригинальный AddLay.lsp отлично работает (за исключением нестандартных форматов).
Почему не работает изменённый код?

----- добавлено через ~2 мин. -----

Иногда создает видовые экраны для нескольких листов, но размеры листов сильно маленькие...
У прошлого человека в файле все работает. Он видимо просто не делал прямоугольник по контуру и не задавал ему отдельный слой.
Напишите мне алгоритм своих действий,чо бы я понимал что вы делаете

Цитата:
Сообщение от Ingpro Посмотреть сообщение
Оригинальный AddLay.lsp отлично работает (за исключением нестандартных форматов).
Почему не работает изменённый код?

----- добавлено через ~2 мин. -----

Иногда создает видовые экраны для нескольких листов, но размеры листов сильно маленькие...
напиши алгоритм своих действий, что бы я понималчто вы вообще делаете

Последний раз редактировалось Кулик Алексей aka kpblc, 03.06.2025 в 13:52.
nosok_gvardii вне форума  
 
Непрочитано 03.06.2025, 16:40
#10
Ingpro


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


Цитата:
Сообщение от nosok_gvardii Посмотреть сообщение
напиши алгоритм своих действий, что бы я понималчто вы вообще делаете
Алгоритм задает сама программа:
Укажите объект для определения слоя с рамками
Выберите объекты (выбираю блоки или рамки, они находятся на одном слое)
Масштаб
Удалить существующие листы?
Начальный номер листа
Ingpro вне форума  
 
Автор темы   Непрочитано 03.06.2025, 17:17
#11
nosok_gvardii


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


у меня с вашим файлом все вышло. Модерация почему то сообщение с скрином так и не пропустила (я новичек на форуме)

Создали слой.
Выбрали слой
Обвели прямоугольником рамки чертежей
Запустили скрипт
Выбрали 1 из рамок для задания рамки с слоем
Выбрали все рамки
Выбрали масштаб
Подтвердили удаление сущ.лисов
Задали нумерацию
И все готово.

Может вы не проверили свои форматы и не добавили в принтер DWG To PDF нужные ? Если вам он действительно нужен, можете написать мне в телеграм для связи max_psiha

Просто в вашем файле у меня все вышло как с лева с рамками в 100 масштабе, так и с права с рамками в 1 масштабе.
nosok_gvardii вне форума  
 
Непрочитано 03.06.2025, 17:45
#12
Ingpro


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


Цитата:
Сообщение от nosok_gvardii Посмотреть сообщение
Просто в вашем файле у меня все вышло как с лева с рамками в 100 масштабе, так и с права с рамками в 1 масштабе.
Оригинальный код ведь работает, хочется и вашу версию заставить работать...
Ingpro вне форума  
 
Автор темы   Непрочитано 03.06.2025, 21:31
#13
nosok_gvardii


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


напишите мне в телеграмм. Заведем

----- добавлено через 47 сек. -----
Цитата:
Сообщение от Ingpro Посмотреть сообщение
Оригинальный код ведь работает, хочется и вашу версию заставить работать...
выше почвмлось мое сообщение с скриномна вашем файле)
nosok_gvardii вне форума  
 
Непрочитано 03.06.2025, 22:02
#14
Ingpro


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


Цитата:
Сообщение от nosok_gvardii Посмотреть сообщение
выше почвмлось мое сообщение с скриномна вашем файле)
Всё делаю правильно, но возможно несоответствие размеров в коде и принтере DWG to PDF
запись в ком. строке:
Внимание:Не найден подходящий формат для размера 63000x29700мм_Zoom
Внимание: Не найден подходящий формат для размера 89100x42000мм_Zoom
Внимание: Не найден подходящий формат для размера 59400x42000мм_Zoom
хотя эти форматы у меня прописаны в принтере...
В диспетчере параметров листа формат не отображается...
Миниатюры
Нажмите на изображение для увеличения
Название: DWG to PDF.png
Просмотров: 75
Размер:	21.8 Кб
ID:	268399  Нажмите на изображение для увеличения
Название: дисп. парам. листа.png
Просмотров: 86
Размер:	52.9 Кб
ID:	268400  

Последний раз редактировалось Ingpro, 03.06.2025 в 22:07.
Ingpro вне форума  
 
Автор темы   Непрочитано 03.06.2025, 22:13
#15
nosok_gvardii


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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
Всё делаю правильно, но возможно несоответствие размеров в коде и принтере DWG to PDF
запись в ком. строке:
Внимание:Не найден подходящий формат для размера 63000x29700мм_Zoom
Внимание: Не найден подходящий формат для размера 89100x42000мм_Zoom
Внимание: Не найден подходящий формат для размера 59400x42000мм_Zoom
хотя эти форматы у меня прописаны в принтере...
В диспетчере параметров листа формат не отображается...
открой свойства принтера двг ту пдф. Перейди в вкладку «нестандартные форматы листа» и именно там добавь форматы с размерами(для теста лучше как в лисп файле размеры)и полетит. Бо у вас судя по всему не в той части забиты форматы. (делаю вывод из скрина, не у компьютера сейчас что бы проверить)
nosok_gvardii вне форума  
 
Непрочитано 04.06.2025, 10:23
#16
Ingpro


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


Цитата:
Сообщение от nosok_gvardii Посмотреть сообщение
Бо у вас судя по всему не в той части забиты форматы. (делаю вывод из скрина, не у компьютера сейчас что бы проверить)
Покажите скрин, как у вас записаны нестандартные форматы
Миниатюры
Нажмите на изображение для увеличения
Название: нестанд. форматы.png
Просмотров: 76
Размер:	27.1 Кб
ID:	268403  
Ingpro вне форума  
 
Автор темы   Непрочитано 04.06.2025, 11:08
1 | #17
nosok_gvardii


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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
Покажите скрин, как у вас записаны нестандартные форматы
Вот. На втором скрине - то как они записаны в скрипте. Именно там где я сказал их вносить, они имеют такие названия.
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок 2.JPG
Просмотров: 87
Размер:	117.6 Кб
ID:	268404  Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 84
Размер:	70.3 Кб
ID:	268405  
nosok_gvardii вне форума  
 
Непрочитано 04.06.2025, 14:53
#18
Ingpro


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


nosok_gvardii
У меня получилось!
Нужно в нестандартные форматы дописать и стандартные? Глядя на ваш скрин...
Цитата:
Сообщение от nosok_gvardii Посмотреть сообщение
В целом, я старался допилить скрипт что бы им мог пользоваться более обширный пул людей, так как перечня из 4х форматов как в оригинале для инженера маловато.
Спасибо большое, это классный код. Удачи!
Ingpro вне форума  
 
Автор темы   Непрочитано 04.06.2025, 15:05
1 | #19
nosok_gvardii


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


Цитата:
Сообщение от Ingpro Посмотреть сообщение
nosok_gvardii
У меня получилось!
Нужно в нестандартные форматы дописать и стандартные? Глядя на ваш скрин...

Спасибо большое, это классный код. Удачи!
Спасибо за отзыв.
Да,нужно именно в нестандартные написать. Руки дойдут, поправлю инсрукцию и может все таки прикручу к нему ехе файл на питоне, который будет выводить перечень таких форматов на экран и изменять лисп файл.... больно геморная тема с этими лиспами... эх жалко что я забросил код на питоне, который сам бы это все делал по нажатию всего то двойного клика
nosok_gvardii вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Создание листов и видовых экранов по заданой рамке.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lisp вставки листов из файла-шаблона и размещения видового экрана на них shmulka Поиск исполнителей 0 03.10.2023 13:45
Автоматическое создание видовых экранов в пространстве модели Yur.OK_SPb AutoCAD 8 02.06.2023 13:40
Копирование видовых экранов из одного файла в другой файл с сохранением выключенных слоев natural_gl AutoCAD 8 05.05.2023 10:27
LISP Можно ли получить список выделенных листов (Layuot)? Krieger LISP 1 01.06.2018 09:45
Как "развернуть и вытянуть" чертеж с помощью видовых экранов swkx Программирование 18 08.09.2012 07:41