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

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

Хитрый блок

Ответ
Поиск в этой теме
Непрочитано 09.12.2004, 14:17
Хитрый блок
Vova
 
Engineer
 
New-York
Регистрация: 05.09.2003
Сообщений: 10,288

Обыкновенно для ускорения черчения применяются либо специальные самодельные инструменты (лиспы-макросы) либо особые приемы работы (не всем известные возможности автокада вроде Alias или опции выбора Fence). Но есть еще один путь. Например, создать хитрый блок. Ранее мне удалось создать блок, который автоматически разрывает линию под собой. Этот блок описан в книге AutoCAD Язык макрокоманд и создание кнопок. (там, кроме собственно разрыва линии, происходит действие, похожее на съем блоков с Design Center, советую ознакомиться).
Теперь я поставил и, кажется, решил такую задачу: блок не разрывает линию, но закрывает ее своим телом.Больше того, под блоком линия может превратиться, например, в пунктирную, оставаясь при этом сплошной. Такие блоки в разы ускоряют черчение, например, технологических схем, где на линию нанизаны разные блоки. Я отрабатывал эту идею на элекрической схеме 60-этажного здания. Десятки вертикальных линий, а на них Тэги (ярлыки)-блоки с именем этой линии. Десятки горизонтальных линий - разводка по этажам, также с тэгами. Всего около 500 тэгов. Многие линии в процессе разработки схемы надо перемещать, чтобы внедрить вновь появляющиеся связи или более удачно скомпоновать чертеж. Обычно под тэгом линии разрывались. При перемещении тэгов линии разрывались на новом месте и сращивались на старом. Любая хотелка шефа превращалась в непростую работу. Теперь все значительно упростилось. Линии не состоят теперь из кусочков. Тэги перемещаются, скрывая под собой линии на новом месте и открывая их на старом.
Прошу откликнуться, насколько актуальна эта проблема. Есть ли у кого готовое решение и кто согласен поучаствовать в эксперименте, который я задам? Потому что блок не простой, при неправильной технологии он капризничает, требует особого к себе отношения. Потребуется строго соблюдать порядок работы и отчитываться о проделанном.
Просмотров: 94010
 
Непрочитано 10.12.2004, 14:25
#21
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


Цитата:
Сообщение от Vova
Насчет рамки. Как вычислил Mikhail надо рамку Off, так у Startrek. Но почему я об этом не сказал сразу? Потому что есть команда Tframes, которая показывает рамку для, например, текста, если ему сделать Mask. То же для имеджей. Так же рамка вылезет и у Startrek. А у нас рамка совпадает с контуром блока и ничего не испортится, если включить/выключить Tframes.
Но при этом рамка отключается у всех блоков такого типа, хорошо ли это?
(Блок, контур которого можно использовать как рамка wipeout'а, придется дополнительно обводить)
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Непрочитано 10.12.2004, 15:03 Re: Хитрый блок
#22
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,116


Цитата:
Сообщение от Vova
Больше того, под блоком линия может превратиться, например, в пунктирную, оставаясь при этом сплошной. работу.
а можно второй урок? Данная возможность тоже очень интересна.
Ждем-с.
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 11.12.2004, 10:41
#23
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Цитата:
а можно второй урок? Данная возможность тоже очень интересна.
Ну дак Wipoutы внутри блока "клеточкой" или "полосочками" вот и пунктир.

>Vova
Вещь конечно замечательная, однако скорей всего применяться может внутри одной канторы. Пересылать чертежи с такими блоками нежелательно... А вообще огромное спасибо! Меня всегда поражала ваша возможность из ничего сделать все.
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 11.12.2004, 16:10
#24
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Fantomas> Видимо, имеются в виду макросы? Ну они не совсем уж "Ничего". В конце этого постинга будет один макрос, помогающий Хитрым блокам. То, что такие блоки скорее индивидуального пользования, чем коллективного, так, видимо, оно и есть. Но, ведь в автокаде есть команда Техт Маsк, и после ее применения разве вы не замечали, что вдруг текст пропадал? Там такой-же Wipeout вдруг вылезает наверх и все скрывает. Наш блок хотя-бы не оставляет белых пятен, потому что внутри блока wipeout как будто стабилен. В худшем случае наверх вылезет линия, на которую блок поставлен, и надо делать регенерацию.
Здесь нет отзывов от еще "непродвинутых" Не так просто понять, как все это работает, попробую объяснить популярно.
Берем лист бумаги и рисуем шариком красную линию. Она легла в уровне листа. Меняем ручку на синюю и проводим линию поперек. В месте пересечения синие молекулы перекрывают красные, но все пересечение, если не смотреть в микроскоп, лежит в уровне листа бумаги.В автокаде также, но там есть возможность поменять линии местами-команда Draworder. Далее. из другой бумаги вырезаем заплатку и наклеиваем ее на одну из линий. Опять же, не учитывая толщины листа, весь пакет лежит в одном уровне-бумаги. В автокаде это Wipeout. Wipe - протирать. Оut- .. Ну это известное слово, например, в футболе когда мяч выкатился из поля, его в поле нет. И в Автокаде это означает, что нет там, под Wipeout-ом ничего (видимого). А вообще-то - все осталось, но оно скрыто. Далее рисуем по нашей заплатке картиночку нашего блока и все это блоком и делаем. В качестве элемента картиночки может быть и пунктирная линия, и она ляжет вдоль сплошной, на которрую поставлен блок и перекроет ее.
Работая с чертежом, часто приходится делать регенерацию. Здесь кнопка, которая одновременно поднимает наши блоки (то есть все, что лежит в слое объекта) наверх
^C^C_Getsel;\;_draworder;p;;f
Надо кликнуть на любой блок, и все. Ведь, как мы договорились, они все лежат в одном слое-SB.
Программисты, подумайте, можно ли в конце работы с чертежом превратить хитрые блоки в обычные и вырезать все под ними автоматом.
Vova вне форума  
 
Непрочитано 12.12.2004, 09:19
#25
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


Порядок слоёв на экране может меняться при внесении данного файла XREFом в другой файл.
__________________
С уважением,
Влад Гринзайд.
Grinzaid вне форума  
 
Непрочитано 12.12.2004, 12:53
#26
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


>Vova
Вырезать в принципе можно. Довольно просто добиться хороших результатов если границы блока прямоугольные и параллельны осям. Если же форма более сложная придеться немного помучаться. Где то на autocad.ru обсуждалась подобная тема. На досуге можно заняться.
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 12.12.2004, 16:37
#27
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Grinzaid
Порядок слоёв на экране может меняться при внесении данного файла XREFом в другой файл.
Ну вот, нашелся еще один недостаток. Здесь можно починить этот xref на месте (In-place) воспользовавшись вышеприведенным макросом. Попробуй, please
Vova вне форума  
 
Непрочитано 13.12.2004, 09:09
#28
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


Цитата:
Здесь можно починить этот xref на месте (In-place) воспользовавшись вышеприведенным макросом.
Ещё до обсуждения этой темы я столкнулся с этой проблемой при заливке стен сплошным светлым цветом при чёрных границах. Ничего кроме определений плоттера HP соответствующим образом не помогло - контур стен наполовину закрывался светлой заливкой. Но не всегда, а рандомально - как Бог на душу положит.

По-моему такое поведение объектов в XREFе связано с очерёдностью их создания в присоединяемом файле и уникальными именами примитивов (Handle).
__________________
С уважением,
Влад Гринзайд.
Grinzaid вне форума  
 
Непрочитано 14.12.2004, 13:27
#29
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,116


Цитата:
Сообщение от Fantomas
Вещь конечно замечательная, однако скорей всего применяться может внутри одной канторы. Пересылать чертежи с такими блоками нежелательно...
А почему не желательно? Какие проблеммы могут возникнуть? Блоки перестанут перекрывать то что под собой, из-за того что слои могут перемешатся?
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 14.12.2004, 13:43
#30
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


Цитата:
Сообщение от Mikhail
Цитата:
Сообщение от Fantomas
Вещь конечно замечательная, однако скорей всего применяться может внутри одной канторы. Пересылать чертежи с такими блоками нежелательно...
А почему не желательно? Какие проблеммы могут возникнуть? Блоки перестанут перекрывать то что под собой, из-за того что слои могут перемешатся?
Если слои будут перемещать. А если присланный чертеж брать "как есть", то , думаю, проблем не будет, хотя.... разные есть пользователи.

Кстати таким же способом можно просто закрыть часть чего то, не делая блок
И еще мелочь одна
предлагаю изменить имя слоя с SB на SHB, BS, Vova_SB, например , а то больно созвучно СБ (сборочный чертеж) и путать может
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Автор темы   Непрочитано 14.12.2004, 15:45
#31
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Не пора ли переейти от проб к практической обкатке блока в реальном чертеже? Вчера мы отправили мой очень большой чертеж, первый с 2-мя такими блоками (количество вставок - около 500). Только из практики станет окончательно ясно, насколько его капризность перекрывается его необычными качествами
Vova вне форума  
 
Непрочитано 14.12.2004, 16:53
#32
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Между прочим вот сдесь http://new.cadalyst.com/code/ за лучший Tip месяца выплачивают 1000$. Только статейку написать надо с подробными объяснениями и картинками. А Vova любит у нас писать...

Все хором! Vova!! Vova!!! [sm2506] [sm2506] [sm2506] [sm2506]


А за лучший ЛИСП всего по 50$ [sm2304]
{Smirnoff} вне форума  
 
Непрочитано 15.12.2004, 17:32
#33
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,116


А вот такая проблемка... делаю файл с wipeout-ом (в блок не превращал) потом вставляю файл как блок. Он все нормально скрыл под собой... а вот потом если по нему что то нарисовать, то это уже не закрывается. хотя при перетаскивании блока эти линии скрываются, но при регенерации появляются.
Может я как то не совсем так блок сделал. Я в нем сами линии блока делал не цветные, а ByBlock. В общем вот так)
Или это тот недостаток описанный Grinzaid-ом только в роли блока?
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 16.12.2004, 08:12
#34
Кулик Алексей aka kpblc
Moderator

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


Michail: надо менять порядок расположения: блок с wipeout - на самый верх. Или слой с ним.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.12.2004, 09:53
#35
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,116


Цитата:
Сообщение от kpblc
Michail: надо менять порядок расположения: блок с wipeout - на самый верх. Или слой с ним.
т.е. только дополнительно выполнить команду cdorder? Так получается. Ну раз только так, то ладненько. буду эти блоки в самом конце вствлять.
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Автор темы   Непрочитано 16.12.2004, 14:29
#36
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


MIkhail> 1. Если элементы блока имеют цвет byblock, значит они могут в принципе менять цвет, то есть команда cdorder здесь не будет работать. (C от слова Color, то есть цвет)
2. блоки надо вставлять не в конце, а по ходу работы. То есть, если надо затем поверх блока что-то нарисовать, то сразу-же применяй Draworder, поднимая блок наверх. A дальше простая регенерация все поставит на место. Опиши свой блок и куда он вставляется
Vova вне форума  
 
Непрочитано 16.12.2004, 15:52
#37
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,116


Цитата:
Сообщение от Vova
То есть, если надо затем поверх блока что-то нарисовать, то сразу-же применяй Draworder, поднимая блок наверх. A дальше простая регенерация все поставит на место. Опиши свой блок и куда он вставляется
Да все получается нормально... спасибо. а никакой разницы нет поднимать блок наверх или опускать линии вниз? с виду и так и так одинаковый результат.
А блок я арматуру сейчас занимаюсь обвожу, чтобы вставлять в разводку трубопроводов и не trim-ить трубы потом. А ByBlock вроде нормально работает, цвет меняется и на слой переводится.
Еще раз спасибо)
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 04.02.2005, 09:30
#38
Кулик Алексей aka kpblc
Moderator

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


Спасибо товарищу Вове за нашу счастливую старость!
Это не прикол и не издевательство, это действительно так. Попробовал, все зашибись работает (проверено на 2002 и 2002LT).
Несколько дополнений: на машине обязательно должны быть установлены Express Tools либо (для лайта) wipeout object enabler (на 2005 лайте не проверял, но, скорее всего, и там такое же). И то, и другое свободно распространяется. Макрос для "поднятия" слоя у меня такой:
Код:
[Выделить все]
^C^C_-Layer;_set;0;Freeze;*;^C^C_-Layer;_Thaw;ИмяПоднимаемогоСлоя;;^C^C_Draworder;_All;;_Front;_-Layer;_Thaw;*;;
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.02.2005, 13:42 (:
#39
Sferiukas

Ingener
 
Регистрация: 05.01.2005
Lithuania
Сообщений: 11
<phrase 1=


И так:
я недолго работаю на АКАДЕ потому тока могу улавить суть дела которыи тут обсуждается.

но у меня такаои варос:
нелзя ли сделать такои хитрыи блок, которого вставлиая он сам перерывал бы линию и как тут говорилось ставал бы членом тои линий.
например:
линия означающая + (-) полюс и в неё ставится "хитрый блок" лампочка, или другои предмет и он становится членом линийи означающей этот полюс.

это толко вопрос,
но мне интересно как ето сделано в АУТОКАД Електик 2005.
Sferiukas вне форума  
 
Непрочитано 04.02.2005, 13:51
#40
Кулик Алексей aka kpblc
Moderator

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


Ну насчет электрики я слабО, но тут суть другая (по крайней мере, я так понял): провода (трубопроводы, стены, неважно - главное, линейные объекты) располагаются на своем слое (своих слоях), а дополнительные блоки (типа ламп, розеток, выключателей, сантехарматуры и т.п.) - на своем. В принципе, используя лисп, можно получить слой линии и на нее кидать блок, только при таком варианте у этой технологии имхо мало достаточно преимуществ.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Хитрый блок

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

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