|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Из какого макроса? Какой путь? Что-то не припоминаю, если честно...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
В качестве идеи.
Любой блок или внешняя ссылка (далее - блок владелец) в своем составе может содержать примитивы INSERT, являющиеся вставками некоторого служебного блока, не имеющего в своем составе видимых примитивов, но имеющего невидимый атрибут с именем реального DWG файла-заместителя. После выбора вставки блока владельца и подачи команды "показать подробнее" все вставки вложенных служебных блоков первого уровня замещается вставкой указанных в их атрибутах файлов с соблюдением масштабов и углов поворота. Точно так же командой "скрыть подробности" можно произвести обратную замену на служебные блоки с занесением в их атрибуты имен реальных файлов. Ну и все это, при желании, может иметь сколь угодно вложенную иерархию.
__________________
...в шее моей жилы железные, и лоб мой - медный... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Вот еще бы понять, что хотели сказать - и было бы вообще замечательно. То, что внешняя ссылка, являясь примитивом типа INSERT, сама по себе хранит путь к dwg-файлу, из рассмотрения исключается?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
А зачем это всё? ИМХО конечно красиво и глобально
>> К примеру модель целого города с точностью до фасок на гайках. но практически - ненужно. это сродни ZUI (zoom user interface - заядлым автокадчикам понравится) - прикольно, но только побаловаться и потратить время и нервы на разработку. +думаю при реальном использовании в сложных моделях будут серъезные тормоза и напряги с памятью, если перевод на меньшую детализацию отодвмнутых\невидимых элементов не делать динамически. автокад для этого не предназначен Последний раз редактировалось zamtmn, 22.07.2009 в 00:08. |
|||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Цитата:
Речь идет о том, что в нужный момент вставка служебного блока заменяется на вставку реального файла с теми же параметрами.
__________________
...в шее моей жилы железные, и лоб мой - медный... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ага, а параметр Visibility для внешней ссылки не поменять, что ли?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Цитата:
Для этого внешняя ссылка должна быть уже загружена, и следуя логике, так же рекурсивно загружены все вложенные в неё ссылки до последнего колена. Игры с unload/reload, overlay и Visibility мне представляются более трудоемкими, чем предложенный способ, если вообще могут обеспечить желаемое поведение. Кроме того, предложенным способом можно замещать вставки слжебного блока не только вставками внешних ссылок но и вставками блоков (в т.ч. генерируемыми "на лету" программно), что добавляет гибкости конечному продукту.
__________________
...в шее моей жилы железные, и лоб мой - медный... |
|||
![]() |
|
||||
Цитата:
http://forum.dwg.ru/showpost.php?p=197058&postcount=24 Суть такова: Надо на каждую ссылку свой ini и без пути к этой ссылке! Там, где лежит ini ищется и ссылка. По сути, путь к ссылке определяется прочтением пути к ini. Файлы ini должны иметь то же имя, что и файлы ссылок. По имени файла ini производится идентификация имени файла ссылки. Если в ссылку вложена другая ссылка, то надо создать еще и одноименную папку, куда разместить все вложенные ссылки. Если и в тех ссылках тоже есть вложенные, то и там надо создавать папки и в них размещать вложенные ссылки. Таким образом, создается дерево вложенности из простых папок содержащих dwg файлы и ini к ним. Но НИКАКИХ ПУТЕЙ! Помимо ссылок есть еще и интегрируемые данные. Ведь можно не ссылкой файл подключать к модели, а интегрировать его содержимое. В ini файле должен быть признак внедрение\ссылка Если я хочу в такой файл сохранить часть элементов модели, то я выбираю элементы, затем нужный файл и внедряю с учетом данных поворота, разворота из ini к нему. Также в ini должны хранится настройки блоков, входящих во внедряемые данные. Но это все потом. Сейчас ссылки надо добить, а там проблема с выбором файлов была. Pastor , да, согласен, надо в ini также вставлять либо имя файла с заместителем объекта вставки и далее его только как ссылку вставлять, либо программый код упрощенной графики давать. Всегда сначала вставляется заместитель, а уж потом он заменяется на оригинал. Я попытаюсь описать процесс погружения и выныривания из глобальной модели. Вот представьте себе, что у вас есть файл Москва.dwg, содержащий карту москвы, файл Москва.ini и папка "москва" в которой лежат файлы dwg с названиями районов, папки с названиями районов и ini файлы с названиями районов. В каждом районе есть кварталы, а в них дома, сооружения и подземные и надземные сети. Карта москвы просто растровая картинка, районы - растровая картинка с графическими 3D кубиками домов, как в Google Earth, кварталы то же самое, что и районы, а вот дома - уже имеют псевдографику. Когда тыкаешь в квартал, и указываешь на его замену более подробно, то есть выполняешь Zoom, то вместо квартала из ini файлов домов и объектов, входящих в папку этого квартала, появляется псевдографика всех его состаных частей. Когда тыкаешь в какой-нибудь элемент этой псевдографики, да, это скорее всего программно созданный блок, то по имени этого блока (а оно такое же как и имя файла с этим домом) узнаем какой ini надо выполнить в части загрузки ссылки или внедрения графики. Дом делится на этажи, этажи на помещения, а помещения уже не делятся, они наполнены "виртуальными изделиями". Вместо "виртуальных изделий" тоже сначала псевдографика, а потом уж они самые. Выныривание идет путем вызова дерева папок и тыканием в ini файла, скажем, район Левобережный.ini. Вся модель перечерчивается до данного уровня. Если в глобальной модели есть повторяющиеся элементы, то можно создать базу таких элемнтов и в ini указать имя файла из этой базы, а не искать одноименный файл в той же директории. Таким образом файл с гайкой будет один на всю Москву. Вот я вставляю динамический блок с каким-нибудь теплообменником, но таких теплообменником тысячи в Москве, значит лучше хранить их в базе как шаблон, а не держать в дереве. Вот, где-то приблезительно так. Последний раз редактировалось Supermax, 23.07.2009 в 19:59. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Supermax, я ж вроде там ниже говорил, почему с путями необходимо. И потом, насчет интегрируемых данных... Навскидку команду не помню - то ли xclip, то ли clipit - что-то подобное в голове вертится, а конкретизироваться не хочет...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
kpblc, а я тебе говорю - не нужны пути. Более того, категорически не нужны, вся концепция работать не будет с ними.
Вот давай простой пример разберем: Есть открытое пространство модели и в него надо вставить внешнюю ссылку, опираясь на данные ini файла. Что мы делаем в первую очередь? - Мы запускаем диалог выбора файла (очень нужен именно множественный выбор), настроенный на показ только ini файлов. Выбираем один или несколько ini файлов и прога получает их в виде строк с путями к ним, так? - так! Берем эти пути и меняем в них расширение ini на расширение dwg и это пути к dwg файлам. Не лежат dwg файлы с сылками в других папках, только в этой же папке!!! Далее: Если нам надо библиотечный файл вставить, то в ini файле надо указать только имя файла в этой библиотеке, а путь к библиотеке должен быть записан в настройках Автокада, тогда его там будет прога искать. И тут, как видишь, тоже пути не нужны. Если в ini файлах записывать пути, то с компа на комп не перенесешь модель. Нет на других компах такой же конфигурации, как на твоем и моем. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Код не тестировал. Совсем.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
tester Регистрация: 23.08.2008
Сообщений: 1,006
|
Цитата:
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос объектов во внешнюю ссылку | Supermax | AutoCAD | 3 | 09.12.2007 21:44 |
Не явный путь задания внешней ссылки | Елена | AutoCAD | 2 | 05.11.2004 00:21 |