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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вставка блока с палитры из внешнего файла, если путь к файлу вычисляется

Вставка блока с палитры из внешнего файла, если путь к файлу вычисляется

Ответ
Поиск в этой теме
Непрочитано 17.01.2017, 07:54 #1
Вставка блока с палитры из внешнего файла, если путь к файлу вычисляется
mkung
 
RUSSIA
Регистрация: 05.09.2007
Сообщений: 166

Блок должен вставляться из файла-библиотеки блоков, находящегося на сетевом диске, буква которого определена переменной окружения.

Палитра хранится в XML файле. Путь к файлу хранится в виде <SourceFile>C:\Drawings\Drawing.dwg</SourceFile>
Можно ли заставить XML понять вычисляемый путь? Что-то типа <SourceFile>%VARIABLE%\Drawings\Drawing.dwg</SourceFile>
Пока все мои попытки безуспешны...

Если попробовать вставлять через команду.
Подскажите, можно ли при помощи КОМАНД AutoCAD (например "-ВСТАВИТЬ") вставить блок "Block1" из файла "C:\Drawings\Drawing.dwg"?
Что-то тоже не получается...

Заранее благодарен.

Последний раз редактировалось mkung, 17.01.2017 в 11:18.
Просмотров: 4861
 
Непрочитано 17.01.2017, 08:38
#2
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


С помощью лиспа все можно.
Создай свою команду на лиспе и вычисляй что хочешь.
Пользуйся поиском
Посмотри, например, здесь
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Автор темы   Непрочитано 17.01.2017, 08:56
#3
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


Меня интересует не лисп, а те вопросы, которые я задал.
И вставка меня интересует именно блока из файла, который является библиотекой блоков.
А в "-ВСТАВКА" вижу только вставку файла как блока.
mkung вне форума  
 
Непрочитано 17.01.2017, 09:59
1 | #4
Владимир_М


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


Цитата:
Сообщение от mkung Посмотреть сообщение
Если попробовать вставлять через команду.
Подскажите, можно ли при помощи КОМАНД AutoCAD (например "-ВСТАВИТЬ") вставить блок "Block1" из файла "C:\Drawings\Drawing.dwg"?
Возможно Вас не интересует, заранее извиняюсь, но для такой задачи существует кнопка Центр управления. Команда: ЦУВКЛ
Владимир_М вне форума  
 
Непрочитано 17.01.2017, 10:25
#5
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Цитата:
Сообщение от mkung Посмотреть сообщение
А в "-ВСТАВКА" вижу только вставку файла как блока.
Плохо смотришь, вот цитата из справки:
Цитата:
Изменение пути к блоку. При вводе имени блока без указания пути команда ВСТАВИТЬ выполняет поиск существующего определения блока с этим именем в данных текущего чертежа. Существующее определение блока можно заменить на внешний файл, если ввести имя блока = имя файла.
А эту ссылку я тебе уже давал
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Автор темы   Непрочитано 17.01.2017, 10:38
#6
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
Возможно Вас не интересует, заранее извиняюсь, но для такой задачи существует кнопка Центр управления. Команда: ЦУВКЛ
Спасибо, через центр управления понятно как сделать, но меня действительно этот вариант не интересует.

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от pan Посмотреть сообщение
Существующее определение блока можно заменить на внешний файл
Еще раз повторяю - меня не интересует вставка ФАЙЛА как блока, меня интересует вставка 1 БЛОКА из ФАЙЛА, СОДЕРЖАЩЕГО БИБЛИОТЕКУ БЛОКОВ!
mkung вне форума  
 
Непрочитано 17.01.2017, 10:44
1 | #7
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Вот макрос для вставки блока из нужной папки на нужный слой. Рабочий.
^C^C_-layer New LIVNEVKA;^C^C_-layer Color 170 LIVNEVKA;^C^C_-layer Set LIVNEVKA; -insert D:/AutoDesk_14/BLOKI_D/KOLODEC \1 1
Valery Brelovsky вне форума  
 
Непрочитано 17.01.2017, 10:47
#8
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от mkung Посмотреть сообщение
Блок должен вставляться из файла, находящегося на сетевом диске, буква которого определена переменной окружения.
См. функции getenv / setenv - возможно, все есть там. Тогда и макрос на вставку блока можно будет переделывать
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.01.2017, 11:03
1 | #9
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Цитата:
Сообщение от mkung Посмотреть сообщение
Еще раз повторяю - меня не интересует вставка ФАЙЛА как блока, меня интересует вставка 1 БЛОКА из ФАЙЛА, СОДЕРЖАЩЕГО БИБЛИОТЕКУ БЛОКОВ!
(Слезая с бронепоезда)
Тогда нужно вставлять блок за 2 шага:
1) -ВСТАВИТЬ *C:\Drawings\Drawing.dwg - появится запрос точки вставки - нужно прервать команду. Зато в чертеже появились все определения блоков из файла C:\Drawings\Drawing.dwg. Потом не забудь очистить чертеж. Звездочка расчленяет C:\Drawings\Drawing.dwg
2) -ВСТАВИТЬ Block1
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Непрочитано 17.01.2017, 11:10
1 | #10
baksconstructor


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


Цитата:
Сообщение от mkung Посмотреть сообщение
Еще раз повторяю - меня не интересует вставка ФАЙЛА как блока, меня интересует вставка 1 БЛОКА из ФАЙЛА, СОДЕРЖАЩЕГО БИБЛИОТЕКУ БЛОКОВ!
Сразу проще нельзя было сказать ?
Перевод на русский:
Цитата:
Имеется файл с кучей блоков.
Хочу при нажатии на кнопку чтобы из этого файла брался один из блоков и вставлялся в новый чертеж.
Файл с кучей блоков открывать нельзя.
Решение :
Нет.
baksconstructor вне форума  
 
Автор темы   Непрочитано 17.01.2017, 11:16
#11
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


Цитата:
Сообщение от Valery Brelovsky Посмотреть сообщение
Вот макрос для вставки блока из нужной папки на нужный слой. Рабочий.
^C^C_-layer New LIVNEVKA;^C^C_-layer Color 170 LIVNEVKA;^C^C_-layer Set LIVNEVKA; -insert D:/AutoDesk_14/BLOKI_D/KOLODEC \1 1
Вставится файл, а мне нужно вставить 1 блок из файла-библиотеки блоков.
mkung вне форума  
 
Непрочитано 17.01.2017, 11:23
#12
Кулик Алексей aka kpblc
Moderator

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


#9 не вариант?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 17.01.2017, 11:25
#13
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
См. функции getenv / setenv - возможно, все есть там. Тогда и макрос на вставку блока можно будет переделывать
В этой ветке я проверяю возможность сделать без программирования.
Алексей, ты ведь занимался XML. Может быть можно как-то подсунуть в описание палитры вычисляемое значение для <SourceFile>?

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
#9 не вариант?
Вариант, но лучше уж тогда программно вставлять, как ты и предлагаешь, через vla-copyobject.
Я надеялся, что что-то упустил в AutoCAD и это все-таки можно сделать одной командой...
mkung вне форума  
 
Непрочитано 17.01.2017, 11:29
#14
Кулик Алексей aka kpblc
Moderator

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


Занимался, но не в этом ключе. И опять же - программирование.
P.S. Кто мешает (по крайней мере попробовать) такой вариант:
Код:
[Выделить все]
<SourceFile>$(strcat,$(getenv,"NetDriveName"),\Drawings\Drawing.dwg</SourceFile>
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 17.01.2017, 12:07
#15
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Кто мешает (по крайней мере попробовать) такой вариант:
Воспринимает как текстовую строку...
Пробовал разные варианты - всегда берет как текст. Только когда пытался ввести %VARIABLE%, он %V на число меняет.
mkung вне форума  
 
Непрочитано 20.01.2017, 05:15
#16
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
такой вариант:
Код:
[Выделить все]<SourceFile>$(strcat,$(getenv,"NetDriveName"),\Drawings\Drawing.dwg</SourceFile>
Пардон за дилетантские вопросы. Но открывающих скобок "(" две, а закрывающих ")" одна.
И как для XML (имеются в виду именно XTP, ATC палитр?) дать понять, что такое "NetDriveName", и как он его может реализовать?
Вот где лисп-выражения могли бы сработать - это в макросах в XTP, ATC, наверное. Если для вставки блоков использовать макросы.
Еще бы проверить, не будет ли написанное в <SourceFile>...</SourceFile> конфликтовать с написанным в <Macro>...</Macro>?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 20.01.2017, 18:01
#17
VitalyAF


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


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

Последний раз редактировалось VitalyAF, 21.01.2017 в 08:27.
VitalyAF вне форума  
 
Непрочитано 21.01.2017, 11:25
#18
Кулик Алексей aka kpblc
Moderator

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


VitalyAF, по-моему, ты путаешь обычные палитры (которые есть в ACAD'e) и синхронизируемые через ContentBrowser (который есть только в вертикальных приложениях).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.01.2017, 20:49
#19
VitalyAF


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
по-моему, ты путаешь обычные палитры (которые есть в ACAD'e) и синхронизируемые через ContentBrowser (который есть только в вертикальных приложениях).
Разница только в маленькой кнопочке см. рис.

Нажмите на изображение для увеличения
Название: 2017-01-21_21-38-14.gif
Просмотров: 40
Размер:	12.6 Кб
ID:	182384

... и в опции авто обновления, т.е. в акаде надо вручную выбрать все инструменты и указать в свойствах другой путь,
а в вертикалке сначала отключить авто обновление, потом выбрать инструменты, указать другой путь...
то на то и выходит.
Впрочем автора темы это навряд ли интересует...
VitalyAF вне форума  
 
Непрочитано 21.01.2017, 21:05
#20
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от VitalyAF Посмотреть сообщение
Разница только в маленькой кнопочке
... которой нет и не было в чистом ACAD.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.01.2017, 17:38
#21
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


...вот прямо сейчас налетел на палитру Штриховки и заливки (Hatch and Fill), в которой:
Цитата:
<SourceFile>%ProgramName%.pat</SourceFile>
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вставка блока с палитры из внешнего файла, если путь к файлу вычисляется



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
VBA. Задание имени блока в Blocks.Add и InsertBlock fasadel Программирование 4 13.11.2013 07:47
добавление скрипта к вставке блока с палитры. TheBuTeK Программирование 13 17.10.2007 21:29
Вставка динамического блока с определёнными параметрами. Shade Динамические блоки 2 25.09.2007 15:20
Вставка таблицы внутри анонимного блока Кулик Алексей aka kpblc Программирование 7 21.06.2006 15:05