dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Мгновенное создание листов на основе шаблона

Мгновенное создание листов на основе шаблона

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 04.10.2017, 19:30 #1
Мгновенное создание листов на основе шаблона
BithSachs
 
Регистрация: 26.08.2017
Сообщений: 43

BithSachs вне форума Вставить имя

Нужен лисп, или макрос, или ещё что-нибудь, что позволяло бы мгновенно создавать лист на основе шаблона: набираешь команду и создается лист на основе шаблона минуя все диалоговые окна.
(Ну или хотя бы мгновенное открытие диалогового окна "Вставка листов" определенного шаблона)
Просмотров: 5120
 
Непрочитано 04.10.2017, 20:35
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 1,831


А чем не устраивает штатные средства создания листов по шаблону?
__________________
_бложиг
Boxa вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 04.10.2017, 21:20
#3
BithSachs


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


Относительно долго. Особенно, когда нужно создавать много разных листов.
А так набрал на клаве, допустим, "А2", и получаешь сразу лист А2
BithSachs вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.10.2017, 21:55
#4
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 616


Такое впечатление, что BithSachs не умеет сам создавать Листы и настраивать их. Смутное представление имеет.
Setvar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.10.2017, 22:02
#5
Сергей812


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


Цитата:
Сообщение от BithSachs Посмотреть сообщение
А так набрал на клаве, допустим, "А2", и получаешь сразу лист А2
Код:
[Выделить все]
 (defun c:A2(/)
  (command .... )
)
как то так) Насколько помню - у команды создания слоев листов есть консольная версия, не помню только - как в английской версии будет <Лист по шаблону>. А так даже с диалогом делал в свое время.

Последний раз редактировалось Сергей812, 04.10.2017 в 23:01.
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.10.2017, 22:56
1 | #6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,716
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А так набрал на клаве, допустим, "А2", и получаешь сразу лист А2
Код:
[Выделить все]
(defun C:A2 ()(from_dwt "A2"))
(defun from_dwt ( format / pat dwt)
(setq pat "МойШаблон.dwt")
(if (setq dwt (findfile pat))
  (if command-s
      (command-s "_.LAYOUT"
	       "_T"
	       dwt
	       format ;_ Имя листа в шаблоне
      ) ;_ end of command
  (command "_.LAYOUT"
	       "_T"
	       dwt
	       format ;_ Имя листа в шаблоне
      ) ;_ end of command
    )
  (alert
    (strcat "Шаблон " pat "\nне найден")
    )
)
(princ)
)
1. Файл "МойШаблон.dwt" должен находится в путях поиска
2. В файле шаблона "МойШаблон.dwt" должен быть лист с именем "А2"
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 05.10.2017 в 08:13. Причина: Добавил команду A2
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 05.10.2017, 00:42
#7
BithSachs


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


VVA, сделал все как Вы написали - не получается. Я так понимаю, лисп вызывается командой "А2"?
BithSachs вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.10.2017, 00:59
#8
Сергей812


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


объедините посты №5 и №6) Где у меня строка 2, там код от VVA. Не лишним будет и локальные переменные (/ pat dwt) объявить в первой строке.
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.10.2017, 08:12
#9
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,716
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


BithSachs, Обновил #6
Клепай по аналогии с A2 другие команды. Только не забывай добавлять в шаблон листы
Код:
[Выделить все]
(defun C:A2x3 ()(from_dwt "A2x3"))
PS Писал на коленке, вроде нигде не накосячил
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 05.10.2017, 21:23
#10
BithSachs


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


VVA, Спасибо
После сообщения Сергея, понял, что было бы целесообразнее сделать это через диалог, чтобы потом просто при изменении файла шаблона или наименования листа клепать макрокоманды.
Навскидку - это сложно было бы сделать?
BithSachs вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.10.2017, 01:34
#11
Сергей812


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


Цитата:
Сообщение от BithSachs Посмотреть сообщение
просто при изменении файла шаблона или наименования листа клепать макрокоманды.
Тогда уж делаете один файл шаблона - один лист, и имя файла шаблона совпадает с именем листа в нем. Затем vl-directory-files собирается список этих файлов шаблонов, отсекается расширение и заполняется выпадающий список DCL диалога. При этом лисп вообще не придется трогать при правке шаблонов.
Сергей812 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.10.2017, 09:45
#12
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,716
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Есть хорошая программа от Lee Mac'a Steal from Drawing
Можно взять готовые функции и склепать свою команду (в файле - MySteal)
В переменной tmp задай шаблон. Остальное через диалог
Цитата:
(defun c:MySteal ( / pth tmp dbdoc lst)
(setq tmp "Форматы МИП 2006.dwt") ;_Задать шаблон
;_ Шаблон должен находится в путях поддержки
(if (setq pth (findfile tmp))
(progn
(setq lst nil dbdoc (steal:getdocumentobject pth))
(vlax-for item (vla-get-layouts dbdoc)
(setq lst (cons (vla-get-name item) lst))
)
(setq lst (vl-remove "Model" lst))
(if (and (= 'vla-object (type dbdoc)) (not (vlax-object-released-p dbdoc)))
(vlax-release-object dbdoc)
)
(if (setq item (steal:listbox "Выберите лист для импорта" lst))
(Steal pth (list(list "Layouts" item)))
)
(vla-regen (vla-get-activedocument (vlax-get-acad-object)) acallviewports)
)
(alert
(strcat "Шаблон " tmp "\nне найден")
)
)
(princ)
)
Вложения
Тип файла: zip StealV1-8_VVA.zip (11.7 Кб, 17 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 06.10.2017, 13:21
#13
BithSachs


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


Спасибо за помощь! Обязательно попробую.
BithSachs вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.10.2017, 13:47
#14
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 617


LISP Steal from Drawing очень хорош и я им давно пользуюсь для вставки новых настроек и шаблонов в текущий файл. Но есть маленькое но.
Если слой с таким именем уже существует, то его уже не вставить. Придется только копировать.
AlexCondor вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 02.03.2018, 16:18
#15
rino_black


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


а не подскажите,как сразу несколько листов загрузить?(чертеж с шаблонами 1, а листов 10) и нужно все загрузить
rino_black вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 02.03.2018, 16:39
#16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,716
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


На вкладке листа щелчек правой кнопкой мыши -> По шаблону
Видео в этой теме Как перенести сформированные листы из одного файла в другой ?
Миниатюры
Нажмите на изображение для увеличения
Название: 123.png
Просмотров: 46
Размер:	43.1 Кб
ID:	199800  
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.03.2018 в 15:29.
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 02.03.2018, 16:44
#17
rino_black


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


это я знаю, хотелось бы скопом,пытался вот так ^C^C_layout;_template;"C:/K/temp/1.dwg"; а дальше только по одному листу
rino_black вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2018, 08:43
#18
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,716
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от rino_black Посмотреть сообщение
а дальше только по одному листу
В диалоге можно выделять несколько листов. Нажми клавиши Shift или Ctrl и пощелкай в диалоге по листам
Может это устроит
Для кнопки что-то типа
Код:
[Выделить все]
^C^C(command "_.LAYOUT" "_T" (findfile "C:/K/temp/1.dwg") "*")
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.03.2018 в 15:30.
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2018, 09:04
#19
rino_black


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


Спасибо большое,кнопка помогла, вот если бы еще в порядке возрастания листов,(а то получается Л1,Л10,Л11,Л2)
rino_black вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.03.2018, 13:13
#20
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,716
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от rino_black Посмотреть сообщение
вот если бы еще в порядке возрастания листов,(а то получается Л1,Л10,Л11,Л2)
LISP. Копирование, сортировка, переименование листов (layout)
Цитата:
LTSORTN - Сортировка листов в порядке возрастания цифры как числа (L1 L2 L3 L22) [Layout sort as numeric (L1 L2 L3 L22)]
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Мгновенное создание листов на основе шаблона

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочивание вкладок (листов) Малюк AutoCAD 15 18.11.2015 17:03
Автоматическое создание Листов (layot) с встроенной рамкой. Ассистент содания Листов. Что я делаю не так? Couleurs du Sud AutoCAD 14 16.06.2015 20:17
Проблема с печатью настроенных листов (одного шаблона) с разных компов на один сетевой плоттер Таньга AutoCAD 40 21.02.2015 21:31
создание чертежа на основе твердотельной модели Avershinin AutoCAD 20 16.11.2010 13:14
Создание 3D поверхности на основе оцифрованного растрового изображения Ubivec81 AutoCAD 7 13.04.2010 08:56

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||