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

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

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

Ответ
Поиск в этой теме
Непрочитано 21.08.2015, 13:33 9 | 1
LISP. Создание листов и видовых экранов на них
Andrey_13
 
Инженер-проектировщик РЗА, ПА, ВК
 
Екатеринбург
Регистрация: 06.02.2014
Сообщений: 32

Вызов командой "_AL".
Указать слой с рамками чертежей (рамки выполнить в виде прямоугольников либо в виде блоков). Программа создаёт листы с видовыми экранами, совпадающими c рамками листов.
Программа нумерует листы по порядку следования рамок в одну строку или в один столбец (либо слева направо, либо сверху вниз). При расположении рамок матрицей - листы будут созданы, но нумерация вкладок потеряет упорядоченность.
Обновление (от старых к новым):
- предусмотрена установка параметров листов (установка принтера DWG to PDF.pc3, подбор ближайших стандартных форматов (A0,1,2,3,4), таблица стилей печати monochrome);
- убрано слово "Лист" из наименования листов;
- для нестандартных форматов листов устанавливается пустое устройство печати;
- улучшение для размещающих рамки форматов в пространстве модели вертикально;
- вместо ввода имени слоя с рамками определение слоя указанием объекта;
- предусмотрено блокирование создаваемых видовых экранов;
- предусмотрен ввод масштаба;
- исправлено завершение программы при пустом выборе объекта для определения слоя с форматами;
- исправлены мелкие ошибки, предусмотрен ввод номера первого листа при работе с удалением существующих листов;
- предусмотрено зумирование создаваемых листов, команда вызова "_AddLay" в целях ускорения набора сокращена до "_AL".
----------------------------
Выложена дополнительная программа создания группы видовых экранов в пространстве листа AVP.lsp. Выход из программы клавишей Esc.
Обновление:
- расширены пределы указания масштабов видовых экранов;
- показана рамка видового экрана при вставке.
----------------------------
По просьбе участника petro_f привожу ссылку на альтернативную версию программы http://forum.dwg.ru/showpost.php?p=1577494&postcount=92

Вложения
Тип файла: lsp AVP.LSP (2.9 Кб, 4921 просмотров)
Тип файла: lsp AddLay.LSP (12.6 Кб, 5824 просмотров)


Последний раз редактировалось Andrey_13, 28.02.2018 в 21:17. Причина: Добавление ссылки на альтернативную версию программы.
Просмотров: 244633
 
Непрочитано 17.12.2021, 07:01
#361
baksconstructor


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


Цитата:
Сообщение от inane Посмотреть сообщение
Вручную тыкать на каждый следующий в файлах с сотней листов то еще удовольствие.
Ну так есть же другие варианты (лиспы, проги) не проще попробовать все и выбрать то что надо ?
baksconstructor вне форума  
 
Непрочитано 20.12.2021, 11:30
#362
inane

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


petro_f ясно, спасибо. Протыкивание руками лично в моем случае примерно равно скорости ручного загона в ПДФ через виртуальный принтер: вместо одного щелчка по рамке и потом (в конце) ожидания пока на листы встанет, пока пройдет публикация, через тот же pdffactory pro достаточно схемы "пробел (ну для первого раза не пробел, а ctrl+P)-кнопка "рамка"-2 щелчка по рамке (диагональные края)"-кнопка ок-опять пробел--опять кнопка рамка-опять 2 щелчка (уже на след листе) и т.д; пдфы вылетают практически моментально, складываются в 1 файл и листы идут по порядку (по которому выделял рамки).

Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Ну так есть же другие варианты (лиспы, проги) не проще попробовать все и выбрать то что надо ?
предложенная здесь схема показалась самой очевидной - автокад сам умеет собирать общий ПДФ через публикацию листов. И тут самое муторное - ставить эти листы из модели (руками): оно и муторно, и сам автокад всегда тормозит при работе с листами, а уж если их много... И вот есть лисп, который сам на листы из модели засовывает. Показалось самым логичным разобраться с тем, в какой последовательности лисп листы создает (т.к опытным путём не понял алгоритма), а по возможности и понять, как на это повлиять, и все было бы красиво.
Но если приведете примеры других способов, которые есть возможность хотя бы протестировать, буду признателен.
inane вне форума  
 
Непрочитано 21.12.2021, 10:22
#363
baksconstructor


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


Цитата:
Сообщение от inane Посмотреть сообщение
Но если приведете примеры других способов, которые есть возможность хотя бы протестировать, буду признателен.
Автоматическое создание листов и видовых экранов - АвтоВьюпорт, всё автоматом, в любом направлении, хоть по криволинейной траектории.

Автоматическая пакетная печать множества рамок (форматов) из пространства модели и листов - Реверс , это вообще универсальное, там и печать и создание листов и разделение по листам и другое.
baksconstructor вне форума  
 
Непрочитано 22.12.2021, 00:13
#364
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от inane Посмотреть сообщение
petro_f ясно, спасибо. Протыкивание руками лично в моем случае примерно равно скорости ручного загона в ПДФ через виртуальный принтер: вместо одного щелчка по рамке и потом (в конце) ожидания пока на листы встанет, пока пройдет публикация, через тот же pdffactory pro достаточно схемы "пробел (ну для первого раза не пробел, а ctrl+P)-кнопка "рамка"-2 щелчка по рамке (диагональные края)"-кнопка ок-опять пробел--опять кнопка рамка-опять 2 щелчка (уже на след листе) и т.д; пдфы вылетают практически моментально, складываются в 1 файл и листы идут по порядку (по которому выделял рамки).
Ну так то да. Только это при применении на один раз. При следующей печати всё придётся повторить сначала.
А у меня настроено так, что я хоть в пдф, хоть на физ плоттер/принтер одним щелчком выгоняю столько раз, сколько мне понадобиться. Прога умеет заменять назначенные принтеры а уже готовых листах.

P.S. У каждого свой подход к работе.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 29.12.2021, 13:34
#365
inane

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


baksconstructor, спасибо! Как-то выделю время и обязательно опробую эти проги.

Цитата:
Сообщение от petro_f Посмотреть сообщение
Ну так то да. Только это при применении на один раз. При следующей печати всё придётся повторить сначала.
согласен. На перспективу поставленное на листы через видовые экраны лучше, если ожидается внесение изменений в проект с последующими переПДФливаниями и перепечатками. Просто в целом у нас в конторе для подобных задач есть специальные люди, а до меня задачи с выдачей ПДФ докатываются, если по всем фронтам и у всех завал, а "сегодня нужно кровь из носу 1000 томов до конца дня...", и там речи о перспективах не идёт, в конкретном моменте быстрее "отстреляться" и ладно.
inane вне форума  
 
Непрочитано 09.07.2022, 23:06
#366
Monkey


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


petro_f, Доброго времени суток) Я пишу вам и всем остальным с довольно смешным вопросом, который меня ввёл в какой-то ступор. Через какую программу вы писали свой плагин?? Я просто думаю начать хоть как-то понимать что находится внутри (сама начинка). Мне нужно для написания курсовой поэтому буду рад любой помощи, так как в вузе её нет смысла искать на данный момент(
Monkey вне форума  
 
Непрочитано 09.07.2022, 23:51
#367
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от Monkey Посмотреть сообщение
petro_f, Доброго времени суток) Я пишу вам и всем остальным с довольно смешным вопросом, который меня ввёл в какой-то ступор. Через какую программу вы писали свой плагин?? Я просто думаю начать хоть как-то понимать что находится внутри (сама начинка). Мне нужно для написания курсовой поэтому буду рад любой помощи, так как в вузе её нет смысла искать на данный момент(
Здравствуйте.
Пишу плагины в PSPAD но он больше для синтаксиса.
Прогон плагина либо на живую, пошагово, в автокад, либо во встроенном редакторе vlide в автокаде же.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 10.07.2022, 13:01
| 1 #368
skkkk


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


petro_f, а можете, пожалуйста, подробнее рассказать: как он с лиспом, какие плюшки? Автозавершение, закрытие и проверка скобок, запуск фрагмента кода в КАД прям из редактора, возможность уникальной подсветки своих команд, снипеты, сравнение документов - это всё, чем я пользуюсь в Notepad++ для лиспа. Чаще отладку всё же делаю во Vlide, но писать код удобнее в NPP. Может, в PSPAD поинтереснее? Удивительно, что я не слышал о таком. В свое время выбирал между NPP и Sublime.
skkkk вне форума  
 
Непрочитано 11.07.2022, 22:55
2 | #369
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от skkkk Посмотреть сообщение
petro_f, а можете, пожалуйста, подробнее рассказать: как он с лиспом, какие плюшки? Автозавершение, закрытие и проверка скобок, запуск фрагмента кода в КАД прям из редактора, возможность уникальной подсветки своих команд, снипеты, сравнение документов - это всё, чем я пользуюсь в Notepad++ для лиспа. Чаще отладку всё же делаю во Vlide, но писать код удобнее в NPP. Может, в PSPAD поинтереснее? Удивительно, что я не слышал о таком. В свое время выбирал между NPP и Sublime.
Нет, многого из перечисленного там нет. Просто так исторически сложилось, что я этот редактор узнал раньше нотепада и привык им пользоваться. А с нотепадом у меня не сложилось... слишком он о себе много думает
Так в пспаде есть:
Автозавершение - вроде есть, но я не пользуюсь;
Закрытие скобок - есть. Отключаю, так как не люблю когда машина о себе много думает
Проверка скобок - есть и это удобно.
Запуск фрагмента кода в КАД прям из редактора - ХЗ. Я руками обычно копирую нужный кусок для проверки.
Возможность уникальной подсветки своих команд - ХЗ зачем это нужно.
Снипеты - ХЗ что это в Вашем контексте.
Сравнение документов - есть и пользуюсь.
Навигация по функциям - очень удобно.
Проверка синтаксиса и выделение команд лиспа - есть и это тоже удобно.

Проверку я обычно делаю в командной строке автокада. VLIDE использую в основном только для проверка диалоговых окон и иногда для поиска ошибки в лиспе.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 11.07.2022, 23:56
#370
skkkk


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


Offtop:
Цитата:
Сообщение от petro_f Посмотреть сообщение
Запуск фрагмента кода в КАД прям из редактора - ХЗ. Я руками обычно копирую нужный кусок для проверки.
В редакторе я форматирую код "лесенкой". А таким образом закрывающая скобка сложной функции никак не будет на той же строке (а без "лесенки" строка просто не влезет в экран). В итоге скопировать в командную строку и запустить такой фрагмент - не выйдет. А в NPP я выбираю фрамгент (причём просто кликая с зажатым Ctrl на открывающей скобке), и выделяется всё до её закрытия, затем F6 - и этот фрагмент кода исполняется прямо в КАДе. Создается временный файл с расширением lsp, содержащий этот фрагмент и запускается в КАД.


----- добавлено через ~11 мин. -----
Offtop: petro_f, наш форумчанин mmax в своё время написал плагин для Notepad++, который позволяет такое исполнять, за что я ему безмерно благодарен.
Вот эта тема: Notepad++ как альтернатива VLIDE (NPPVLIDE)
Пойду скажу ему спасибо)
.
skkkk вне форума  
 
Непрочитано 12.07.2022, 11:15
#371
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от skkkk Посмотреть сообщение
А таким образом закрывающая скобка сложной функции никак не будет на той же строке
А зачем это? Копируете сколь угодно длинную функцию, главное начальную и закрывающую скобку не забыть. И просто вставляете в консоль када. Если функций больше одной, то progn в помощь )))
Код:
[Выделить все]
 (and 
        (setq RWSPFPD_union_data_list (RWSPFPD-open-and-read-acad-table RWSPFPD_name_read_table)) ; вызываем функцию прочтения таблицы)
        (= (type RWSPFPD_union_data_list) 'LIST) ; проверяем что список
        (setq RWSPFPD_data_list (nth 0 RWSPFPD_union_data_list)) ; получаем список        
        (setq RWSPFPD_handle_select_sheet (RWSPFPD-open-or-close-xls-application "WRITE")) ; открываем файл для записи и получаем хендл листа        
      )
вот такой вариант вообще вставляю просто CTRL-C и потом CTRL-V

такой кусок через progn:
Код:
[Выделить все]
 (progn ; если открылся файл                    
      
      (setq RWSPFPD_handle_range (vlax-get-property RWSPFPD_handle_select_sheet 'Range "A1")) ; запоминаем имя объекта Range
      (setq RWSPFPD_decimal_separator (vlax-get-property (vlax-get-property RWSPFPD_handle_select_sheet 'Application)'DecimalSeparator)) ; узнаём тип разделителя числа 
      
      (vlax-put-property (vlax-get-property RWSPFPD_handle_select_sheet 'Application) 'DisplayAlerts :vlax-false) ; отключаем алерты
      
      ; переводим внешний вид в разметку страницы
      (vlax-put-property (vlax-get-property (vlax-get-property RWSPFPD_handle_select_sheet 'application) 'ActiveWindow)'View 3)
      
      ; пишем в консоль када успокоительную надпись                    
      (setvar 'MODEMACRO "Книга для записи данных в файл, подготовлена.") ; Пишем ободряющий текст ))
      
      ; начинаем выставлять размеры столбцов
      (setq RWSPFPD_temp_count 0 ; инициализируем переменные
        RWSPFPD_handle_select_cell RWSPFPD_handle_range
      ) ; end setq
      (repeat (vlax-get-property RWSPFPD_name_read_table 'Columns)
        (vlax-put-property   ; задаём ширину столбцам
           RWSPFPD_handle_select_cell   
          'ColumnWidth 
          (RWSPFPD-checking-actual-size-column (vlax-invoke-method RWSPFPD_name_read_table 'GetColumnWidth RWSPFPD_temp_count))                    
        ) ; end vlax-put-property           
        (setq RWSPFPD_temp_count (1+ RWSPFPD_temp_count)) ; увеличиваем счётчик
        (setq RWSPFPD_handle_select_cell (vlax-Variant-Value(vlax-get-property RWSPFPD_handle_range 'Item 1 (1+ RWSPFPD_temp_count)))) ; получаем значение имени следующей ячейки (и столбца)
      ) ; end repeat

      ; переводим внешний вид в стандартное отображение
      (vlax-put-property (vlax-get-property (vlax-get-property RWSPFPD_handle_select_sheet 'application) 'ActiveWindow)'View 1)
    
      (vlax-put-property (vlax-get-property RWSPFPD_handle_select_sheet 'Application) 'DisplayAlerts :vlax-true)  ; включаем алерты
      
      ; начинаем заполнять табличку                                             
      (setq RWSPFPD_temp_count 1) ; инициализируем переменную
      (foreach RWSPFPD_temp_item RWSPFPD_data_list
        (setq RWSPFPD_temp_count_two 1) ; инициализируем переменную
        (foreach RWSPFPD_temp_item_two RWSPFPD_temp_item          
          (setq RWSPFPD_handle_select_cell (vlax-Variant-Value(vlax-get-property RWSPFPD_handle_range 'Item RWSPFPD_temp_count RWSPFPD_temp_count_two))) ; выбираем ячейку для вставки
          
          ; разбираем что есть в упаковке типа вариант       
          (cond

            ((= (vlax-variant-type RWSPFPD_temp_item_two) 8) ; если строка
              (vlax-put-property RWSPFPD_handle_select_cell 'NUMBERFORMAT "@")  ; задаём ячейке текстовый формат
              (setq RWSPFPD_temp_item_two (RWSPFPD-clearing-mtext-formatting (vlax-Variant-Value RWSPFPD_temp_item_two))) ; распаковываем вариант с очисткой от форматирования  
            ) ; end (= (vlax-variant-type RWSPFPD_temp_item_two) 8)
            
            ((or
                (= (vlax-variant-type RWSPFPD_temp_item_two) 2) ; если короткое целое число
                (= (vlax-variant-type RWSPFPD_temp_item_two) 3) ; если длинное целое число
             ) ; end or
              (vlax-put-property RWSPFPD_handle_select_cell 'NUMBERFORMAT "0")  ; задаём ячейке цифровой формат без разделителей
              (setq RWSPFPD_temp_item_two (vlax-Variant-Value RWSPFPD_temp_item_two)) ; распаковываем вариант  
            ) ; end (or 2 или 3)
            
            ((or
                (= (vlax-variant-type RWSPFPD_temp_item_two) 4) ; если вещественное число
                (= (vlax-variant-type RWSPFPD_temp_item_two) 5) ; если вещественное число с двойной точностью
             ) ; end or
              (vlax-put-property RWSPFPD_handle_select_cell 'NUMBERFORMAT "")  ; задаём ячейке общий цифровой формат                
              (if (= (vlax-variant-type RWSPFPD_temp_item_two) 4) ; если одинарная точность
                (progn
                  (setq RWSPFPD_temp_item_two (rtos (vlax-Variant-Value RWSPFPD_temp_item_two) 2 10)) ; с одинарной точностью
                ) ; end progn
                (progn
                  (setq RWSPFPD_temp_item_two (rtos (vlax-Variant-Value RWSPFPD_temp_item_two) 2 20)) ; с двойной точностью
                ) ; end progn                     
              ) ; end if
              (if (/= RWSPFPD_decimal_separator ".") ; если разделитель не точка, то переделываем текущую точку на разделитель
                (progn
                  (setq RWSPFPD_temp_item_two (vl-string-subst RWSPFPD_decimal_separator "." RWSPFPD_temp_item_two)) ; заменяем разделитель                  
                ) ; end progn                
              ) ; end if  
                          
            ) ; end (or 4 или 5)
            
            ( T    ; всё остальное
              (vlax-put-property RWSPFPD_handle_select_cell 'NUMBERFORMAT "@")  ; задаём ячейке текстовый формат
              (setq RWSPFPD_temp_item_two "") ; присваиваем значение пустышки    
            ) ; end T                                  
                
          ) ; end cond
          ;;;заполняем ячейку
          (vlax-put-property RWSPFPD_handle_select_cell 'Value2 RWSPFPD_temp_item_two)  ; заполняем ячейку значениями                     
                    
          ; задаём выравнивание по значению
          (cond
            
            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 1)
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4160)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4131) 
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 1) 

            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 2)
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4160)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4108)              
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 2)
            
            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 3)
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4160)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4152)                          
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 3)
              
            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 4)
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4108)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4131)               
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 4) 

            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 5)
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4108)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4108)              
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 5)
            
            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 6)           
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4108)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4152)              
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 6)
            
            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 7)            
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4107)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4131)              
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 7)          
            
            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 8)           
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4107)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4108)              
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 8)
            
            ((= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 9)            
              (vlax-put-property RWSPFPD_handle_select_cell 'VerticalAlignment -4107)  
              (vlax-put-property RWSPFPD_handle_select_cell 'HorizontalAlignment -4152)              
            ) ; end (= (vlax-invoke-method RWSPFPD_name_read_table 'GetCellAlignment (1- RWSPFPD_temp_count) (1- RWSPFPD_temp_count_two)) 9)    
                                                            
          ) ; end cond
      
          (setq RWSPFPD_temp_count_two (1+ RWSPFPD_temp_count_two)) ; увеличиваем значение переменной
        ) ; end foreach
)

а вот это
Цитата:
Сообщение от skkkk Посмотреть сообщение
Создается временный файл с расширением lsp, содержащий этот фрагмент и запускается в КАД.
уже изврат какой то ))) Может кому то и удобно, но мне проще копировать/вставить 10 раз при отладке, чем потом кучу безымянных лиспов убивать ))
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 13.07.2022, 13:43
#372
shmulka

Инженер-электрик
 
Регистрация: 08.08.2013
Нижний Новгород
Сообщений: 131


Добрый день. Работаю в подшивке, листы создаются командой ^C^C^RРЛИСТ Ш ФОРМАТЫ_ЛИСТОВ.dwt из настроеного шаблона (там уже набор листов разных форматов настроенных, со штампами). Можно ли адаптировать данную программу под определение листа с помощью блока-рамки (как это уже реализовано), созданию нового листа необходимого формата из шаблона и вставке видового экрана на лист (нижний левый угол ВЭ находится в координатах 20,5 мм). Сейчас для вставки использую лисп быстрой вставки видового экрана. Может кто подскажет, где копать в коде (если автор разрешит)? Я сам в LISP почти никак. Либо готов заплатить некую сумму за разработку.
P.S> Вообще шикарно, если бы получилось называть листы по значению атрибута блока-рамки.
shmulka вне форума  
 
Непрочитано 13.07.2022, 18:05
1 | #373
baksconstructor


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


Цитата:
Сообщение от shmulka Посмотреть сообщение
Я сам в LISP почти никак. Либо готов заплатить некую сумму за разработку.
P.S> Вообще шикарно, если бы получилось называть листы по значению атрибута блока-рамки.
Дык есть решение под ваши параметры, ищите в инете программу АвтоВьюпорт.
baksconstructor вне форума  
 
Непрочитано 13.07.2022, 20:48
#374
shmulka

Инженер-электрик
 
Регистрация: 08.08.2013
Нижний Новгород
Сообщений: 131


Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Дык есть решение под ваши параметры, ищите в инете программу АвтоВьюпорт.
Благодарю. Попробую. Правда есть нюанс, на работе у нас полностью запрещены файлы exe сторонние. Потестирую дома

----- добавлено через ~12 ч. -----
Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Дык есть решение под ваши параметры, ищите в инете программу АвтоВьюпорт.
В общем, покрутил даную программу. Не то, что нужно. Оень много лишего. Но самая большая проблема - это то, что она устанавливается. НА работе запрещены все установочные файлы, а продавить разрешение - нереально, фсбшники доблестные те ещё параноики, сообенно сейчас. Так что моя просьба остаётся в силе)
shmulka вне форума  
 
Непрочитано 15.07.2022, 10:03
#375
Meowricio


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


Добрый день, прошу помощи.
LISP классный, но у меня отрабатывает через раз.
Почему-то в каких программа неверно определяет границы рамок.
При этом в новых файлах, с теми же рамками, на том же слое, всё корректно отрабатывает.
Пример неверной отработки прилагаю в скриншоте и рамки в файле.
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_1.png
Просмотров: 97
Размер:	6.6 Кб
ID:	248684  
Вложения
Тип файла: dwg
DWG 2018
Чертеж1.dwg (61.7 Кб, 31 просмотров)
Meowricio вне форума  
 
Непрочитано 17.07.2022, 01:08
#376
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от Meowricio Посмотреть сообщение
Добрый день, прошу помощи.
LISP классный, но у меня отрабатывает через раз.
Почему-то в каких программа неверно определяет границы рамок.
При этом в новых файлах, с теми же рамками, на том же слое, всё корректно отрабатывает.
Пример неверной отработки прилагаю в скриншоте и рамки в файле.
Ну в приложенном файле у меня без проблем создался лист.
Так что нужен уточняющий вопрос - к какой версии и варианту плагина относится эта просьба.

P.S. Судя по скриншоту не корректно выставлен масштаб блока.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 10.02.2023, 18:25
#377
AlexZh


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


Спасибо за программу! А можно использовать свои блоки штампов? и чтобы штампы эти в листы копировались?
__________________
Проекты СС
AlexZh вне форума  
 
Непрочитано 12.02.2023, 20:45
#378
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от AlexZh Посмотреть сообщение
Спасибо за программу! А можно использовать свои блоки штампов? и чтобы штампы эти в листы копировались?
Используйте любые штампы и рамки
Можно вместо рамок просто сделать прямоугольник (объект). Программа ловит границы объекта, а что уже внутри будет - это Ваш выбор.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 03.03.2023, 10:46
#379
Regenerat


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


Не удалось запустить на Autocad 2013 Eng X64 (ОС Win10 x64) Sbugo_addlay_insert_v5.08.0 Разрешение монитора 1920х1200. При запуске Autocad ругается, что разрешение экрана мало для диалогового окна. Попробовал запустить Sbugo_addlay_insert_v5.04.1. Диалоговое окно запускается, но вместо букв кракозябры. Кто-то сталкивался с такой проблемой и смог ее решить?
Миниатюры
Нажмите на изображение для увеличения
Название: 146.JPG
Просмотров: 35
Размер:	51.6 Кб
ID:	253843  Нажмите на изображение для увеличения
Название: 147.JPG
Просмотров: 36
Размер:	128.2 Кб
ID:	253845  
Regenerat вне форума  
 
Непрочитано 03.03.2023, 12:39
#380
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от Regenerat Посмотреть сообщение
Не удалось запустить на Autocad 2013 Eng X64 (ОС Win10 x64) Sbugo_addlay_insert_v5.08.0 Разрешение монитора 1920х1200. При запуске Autocad ругается, что разрешение экрана мало для диалогового окна. Попробовал запустить Sbugo_addlay_insert_v5.04.1. Диалоговое окно запускается, но вместо букв кракозябры. Кто-то сталкивался с такой проблемой и смог ее решить?
Это проблема не версии плагина, а в том, что установлена скорее всего не русифицированная винда или стоит по умолчанию не русский региональный параметр...
Уже где то это проходили.

Так как у нас РФ то и язык ПО и регион винды русский. Если есть желание поправить под себя, то откройте lisp файл и сохраните его в другой кодировке. Вроде кодировка UTF-16 помогает.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Создание листов и видовых экранов на них

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сбиваются масштабы аннотаций и видовых экранов (из-за размерности юнита ?) Tyhig AutoCAD 9 15.09.2015 15:53
Автоматическое создание Листов (layot) с встроенной рамкой. Ассистент содания Листов. Что я делаю не так? Couleurs du Sud AutoCAD 14 16.06.2015 20:17
Проекции видовых экранов листов в модели (= отображение viewport на layout в model) I.Van AutoCAD 6 02.08.2012 15:31
Содержимое видовых экранов (в ПЛ) плавает при кручении колеса мыши JokerrSergh AutoCAD 29 29.12.2008 13:16