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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Как заменить (redefine) один блок вторым с сохранением выбора (visibility)?

Как заменить (redefine) один блок вторым с сохранением выбора (visibility)?

Ответ
Поиск в этой теме
Непрочитано 23.09.2011, 10:56 #1
Как заменить (redefine) один блок вторым с сохранением выбора (visibility)?
Unfamous
 
Визайнер-дизуализатор в отставке
 
Регистрация: 12.11.2009
Сообщений: 133

Доброго времени суток!

Проблема такова: есть 2d блок (к примеру стол), он расставляется по плану, есть 3d блок одноименный с 2d блоком, который в последствии вставляется с заменой (redefine). Т.е. из двухмерного чертежа несколькими кликами создается 3d. Пытался добавить динамики, но никак не получается. Хотелось бы иметь дин. 2d блок с набором Visibility (стол, стол с тумбой слева, стол с тумбой с права и т.д.) и такой же 3d блок и при вставке с заменой учитывался бы выбор: если в плане вставлен 2d блок стол с тумбой и просто стол, то он бы заменился именно 3d блоком стол с тумбой и просто столом соответственно.

Пытался создать одноименные блоки и делал одинаковые VisibilitySet в обоих блоках, но при вставке 3d блока с Redefine вставляется блок по умолчанию, и никак выбор 2d блока не учитывается (только положение в чертеже).

Это вообще реально? Может это надо не через Visibility реализовывать (block table, lookup...)?

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

Последний раз редактировалось Unfamous, 26.09.2011 в 13:52.
Просмотров: 6616
 
Непрочитано 23.09.2011, 11:39
#2
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Unfamous, это можно попробывать сделать программно, выложи пример чертежа с обоими блоками (желательно в версии не выше ACAD'а 2008)
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 23.09.2011, 12:21
#3
Unfamous

Визайнер-дизуализатор в отставке
 
Регистрация: 12.11.2009
Сообщений: 133


В первом примере как сейчас работает, во втором как хотелось бы.

Первый:
Открываем файл 1_table.dwg, нажимаем insert block, выбираем table.dwg, автокад спросит переназначить, отвечаем да. Заменило блоки блоками с 3d столом - радуемся.

Второй:
Открываем файл 2_table.dwg, в нем уже динамический блок, причем первый вставлен размером 900, второй 1200, нажимаем insert block, выбираем table.dwg (он тоже динамический и у него тоже два режима видимости: 900 и 1200) и... получаем два стола по 900 вместо одного 900 и второго 1200.

Как заставить автокад оставить второй стол размером 1200 при замене "похожим" блоком?

ЗЫ Вряд ли стоит заморачиваться програмно, просто я наверное не до конца понимаю "религию" блоков...
Вложения
Тип файла: rar example1.rar (57.0 Кб, 76 просмотров)
Тип файла: rar example2.rar (83.0 Кб, 71 просмотров)
Unfamous вне форума  
 
Непрочитано 23.09.2011, 12:29
#4
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Цитата:
Сообщение от Unfamous Посмотреть сообщение
ЗЫ Вряд ли стоит заморачиваться програмно, просто я наверное не до конца понимаю "религию" блоков...
Хозяин - барин! Тем более, что мою просьбу выложить файлы в версии не выше ACAD2008 Вы проигнорировали, так что я не могу посмотреть Ваши чертежи и что там за блоки
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 23.09.2011, 12:36
#5
Unfamous

Визайнер-дизуализатор в отставке
 
Регистрация: 12.11.2009
Сообщений: 133


Не проигнорировал, а просто увлекся созданием примера и забыл
Сейчас исправлюсь

---------------------------

Кхмм.... Заработало Начал пересохранять и... Моя не понимать почему до этого не работало? )
Вложения
Тип файла: rar example1.rar (92.9 Кб, 64 просмотров)
Тип файла: rar example2.rar (107.6 Кб, 61 просмотров)

Последний раз редактировалось Unfamous, 23.09.2011 в 12:47.
Unfamous вне форума  
 
Непрочитано 23.09.2011, 12:57
#6
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Цитата:
Сообщение от Unfamous Посмотреть сообщение
Кхмм.... Заработало Начал пересохранять и... Моя не понимать почему до этого не работало? )
Значит вопрос снят
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 23.09.2011, 13:02
1 | #7
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686


Альтернативный вариант решения задачи на VBA (правда, работать будет только для 32битных систем при установленном модуле VBA). В архиве видео - как работает, ну и непосредственно dvb.. Позволяет менять вхождения блоков в файле с сохранением значений динпараметров (если конечно имена их совпадают). Ну, и имена блоков само собой должны отличаться.
Вложения
Тип файла: dvb _repl_dyn_bl.dvb (46.0 Кб, 82 просмотров)
Тип файла: zip заменаблоков.zip (606.5 Кб, 98 просмотров)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 26.09.2011, 13:49
#8
Unfamous

Визайнер-дизуализатор в отставке
 
Регистрация: 12.11.2009
Сообщений: 133


Чем дальше в лес, тем толще партизаны...

Есть три свойства стола: длина, высота, тип поверхности. В зависимости от этих параметров будет определенный артикул. Мне для одной позиции придется создать 60 видимостей в зависимости от параметров - не совсем красиво.

Есть какое нибудь более изящное решение, не забывая про то, что по 2d блоку будет вставляться 3d?

Хотелось бы три грипса с выбором этих параметров, ну и в итоге по этим трем параметрам выдавался бы артикул, который считывался бы DataExtractionом.

ЗЫ Курю форум, но никак не накурюсь...
ЗЗЫ Интуитивно догадываюсь про Lookupы, но как их правильно прикрутить не понимаю...
Unfamous вне форума  
 
Непрочитано 26.09.2011, 15:02
1 | #9
VVA

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


Покури эти блоки
http://forum.dwg.ru/showthread.php?p=471335#post471335
и эту тему
Вложения
Тип файла: dwg
DWG 2004
Supermax Truba_PPU_DU_159.dwg (259.4 Кб, 1755 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.09.2011, 15:11
#10
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686


Цитата:
Сообщение от Unfamous Посмотреть сообщение
...Есть какое нибудь более изящное решение, не забывая про то, что по 2d блоку будет вставляться 3d?
Хотелось бы три грипса с выбором этих параметров, ну и в итоге по этим трем параметрам выдавался бы артикул, который считывался бы DataExtractionом.

ЗЫ Курю форум, но никак не накурюсь...
ЗЗЫ Интуитивно догадываюсь про Lookupы, но как их правильно прикрутить не понимаю...
В 2d - без проблем, покури еще немного форума, и поймешь.. Вместо параметров видимости - параметры растяжения.. Но вот 3d тела не растягиваются, увы..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 27.09.2011, 11:04
#11
Unfamous

Визайнер-дизуализатор в отставке
 
Регистрация: 12.11.2009
Сообщений: 133


Цитата:
Сообщение от VVA Посмотреть сообщение
Спасибо за ссылки, нарыл то, что нужно.
http://forum.dwg.ru/showpost.php?p=3...postcount=1019

Не могу никак расковырять как это работает. Как добавляется Lookup properties? (см. скрин) У меня в add properties пусто, хотя лукапов несколько. Что с ними, окаянными, надо вытворить, чтобы вставлять друг в друга?

Цитата:
Сообщение от AlexV Посмотреть сообщение
В 2d - без проблем, покури еще немного форума, и поймешь.. Вместо параметров видимости - параметры растяжения.. Но вот 3d тела не растягиваются, увы..
3d тянуть и не надо, будет просто раскидано по Visibilyty States нужные тридешки и все, которые будут подставляться в нужный 2d-шный Visibilyty State (как в примере выше).

ЗЫ А не знал, что в дин. блоке меш можно тянуть...
Миниатюры
Нажмите на изображение для увеличения
Название: LookupTable_.jpg
Просмотров: 90
Размер:	83.6 Кб
ID:	66794  
Unfamous вне форума  
 
Непрочитано 27.09.2011, 11:59
1 | #12
VVA

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


Цитата:
Сообщение от Unfamous Посмотреть сообщение
Как добавляется Lookup properties? (см. скрин) У меня в add properties пусто, хотя лукапов несколько
Ответ выше


Цитата:
Сообщение от AlexV Посмотреть сообщение
Вместо параметров видимости - параметры растяжения
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.09.2011, 12:21
1 | #13
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686


Цитата:
Сообщение от Unfamous Посмотреть сообщение
..ЗЫ А не знал, что в дин. блоке меш можно тянуть...
На тебе еще пример..

Цитата:
3d тянуть и не надо, будет просто раскидано по Visibilyty States нужные тридешки и все, которые будут подставляться в нужный 2d-шный Visibilyty State (как в примере выше).
Ну, тогда на каждый параметр придется создавать отдельное состояние видимости. А используя параметры растяжения - хватит всего трех (длина, ширина, высота). И с помощью этих самых лукапов можно привязать к конкретной марке нужные значения параметров..
Кстати, ежели у тебя каждому Visibilyty States 2d блока соответствует аналогичное для 3d, то зачем тебе вообще менять блоки? Создавай в одном блоке два состояния видимости - 2d и 3d. Потом просто для выбранных блоков будешь его менять в свойствах..
Вложения
Тип файла: dwg
DWG 2007
Панели1.dwg (1.17 Мб, 1740 просмотров)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 27.09.2011, 13:25
#14
Unfamous

Визайнер-дизуализатор в отставке
 
Регистрация: 12.11.2009
Сообщений: 133


Цитата:
Сообщение от VVA Посмотреть сообщение
Цитата:
Сообщение от AlexV Посмотреть сообщение
Вместо параметров видимости - параметры растяжения
Если под рястяжением подразумевается Stretch, то вроде так и делаю... Есть линейные параметры (ширина стола, высота стола) привязаны пока к произвольным линиям, они с легкостью добавляются в lookup через input properties, а add properties пусто =(


Цитата:
Сообщение от AlexV Посмотреть сообщение
На тебе еще пример..

Ну, тогда на каждый параметр придется создавать отдельное состояние видимости. А используя параметры растяжения - хватит всего трех (длина, ширина, высота). И с помощью этих самых лукапов можно привязать к конкретной марке нужные значения параметров..
Да, придется на каждый артикул создать свой слой видимости, но выводить грипс с 60-ю артикулами простите "не кошерно" и выбирать легче по трем параметрам (нагляднее), чем угадывать по артикулу, что же мы вставили. Артикул пусть выводиться как дополнительная информация.

Цитата:
Сообщение от AlexV Посмотреть сообщение
На тебе еще пример..
Кстати, ежели у тебя каждому Visibilyty States 2d блока соответствует аналогичное для 3d, то зачем тебе вообще менять блоки? Создавай в одном блоке два состояния видимости - 2d и 3d. Потом просто для выбранных блоков будешь его менять в свойствах..
Панели просто суперовые, но я как понимаю работают за счет 3d face-ов, либо Mesh, а у меня уже созданная база "столов" солидами, и достаточно большая, чтобы переделывать на меши и тридефейсы...
Вложения
Тип файла: dwg
DWG 2007
test.dwg (176.5 Кб, 1789 просмотров)
Unfamous вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Как заменить (redefine) один блок вторым с сохранением выбора (visibility)?

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание дополнительных параметров Visibility Set в динамических блоках. Supermax Программирование 708 12.04.2021 14:54
Как заменить один блок другим? ilka_t Динамические блоки 34 21.09.2018 00:43
Как заменить один блок другим с помощью лиспа МИХАИЛCAD LISP 10 09.08.2011 15:58
Как правильнее заменить дин. блок в готовом чертеже. Juss_00 Динамические блоки 7 13.04.2011 09:01
Как заменить один блок на другой? (не все) Абдулнасир Динамические блоки 2 21.05.2009 11:38