|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Змена блока на другой блок
Москва
Регистрация: 20.01.2004
Сообщений: 154
|
||
Просмотров: 18416
|
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
|
|||
![]() |
|
||||
архитектор Регистрация: 21.08.2003
Москва
Сообщений: 3,587
|
Пожалуйста, создавайте темы соответственно разделам на форуме. Я понимаю, что это требует сложных умственных усилий, а польза возможно сомнительна, но в данном случае, ответ был очевиден - раздел Программирование.
Коллегу Смирнова, тоже прошу переносить такие темы. |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Perezz!!
Ok. В запарке даже не обратил внимание где она была. Если тема в "моих" разделах то конечно буду перекидывать. В отстальных правов на телепортацию нету. Так что не обезсудь. >X-Devil Истина где то рядом... |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Код:
|
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Экспрессовская команда Blockreplace, по-видимому, предназначена для того, чтобы блоку с атрибутами поменять сам блок, а старые атрибуты переходят как-бы под новую оболочку. Таким образом, поменять блок с атрибутами на другой блок с атрибутами по-простому не получается. Вот-бы сделать альтернативу Blockreplace чтобы блоки менялись с потрохами. По-умолчанию новый блок должен встать на место старого своей базовой точкой, а по желанию, если это возможно, базовой точкой нового блока в указанную точку старого. И все должно заменятся либо глобально, либо только в указанных местах, one by one или в указанной рамкой области
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Лентяй
Брателло, зачем ты в моей "покалеченной" функции вынес локальный *ERROR* из тела основной функции?! Он ведь теперь глобальный и будет срабатывать на ошибки других прог. Цитата:
|
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Теперь работает! Выставляю на всеобщее осмеяние.
Код:
Цитата:
Цитата:
|
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Лентяй
Цитата:
У тебя же теперь любая ошибка будет обрабатываться именно функцией *ERROR* которую ты вынес за пределы основной функции и геммороя необерёшся. И вообще интересно как одна функция работает с локальными переменными другой функции :?: А идея модернизации у тебя хорошая, правильная. |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Лентяй
Цитата:
Сам подумай *ERROR* - встроенная функция AutoCAD отвечающая за восстановление среды и выдачу сообщений об ошибках. А мы её раз и меняем на свою которая чёрти что может делать. Самый простой способ включать внутрь основной функции и писать *ERROR* в списке локальных переменных. Либо в начале программы сохранять метку на старый *ERROR* в переменной, а потом восстанавливать. Извиняй, расфилосовствовался... Но по такому поводу стоило сказать. |
|||
![]() |
|
||||
а нельзя ли приделать к эти чтучкам чтоб блок заменял выбранный примитив или группу примитивов, вставляясь аккуратно в центре выбраннаго. навеяло "Вращение множества объектов вокруг локальнного центра". мне к примеру архи присылают на плане техоборудование отмеченное окружностью с заливкой
![]() |
||||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
Код:
|
|||
![]() |
|
||||
2fatty:
слегка обкатал, а к примеру чтоб эта штучка объекты мгла выделять рамкой или поочерёдно в набор и вставляемый блок указывать на экране возможно? брошу пиво, сяду за учебники ![]() p.s. мутно понимаю что сей код заточен под конкретное условие ![]() |
||||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
но неt времени попозже vернусь Fatty |
|||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
Код:
|
|||
![]() |
|
||||
ок, в целом чего хочеться:
модификацию кода FRTO ( by Smirnoff & drugi) тема-"Змена блока блоками" + кусок кода выбора группы заменяемых объектов как одно целое MROTATE CENTRER от krbIs(СПб)&drugi , тема - "Вращение множества объектов вокруг локальных центров". А как-нибудь потом найти способ выявления фрагментов документа тождественных выбранному. А как-нибудь до этого толковый словарь LISPa и ещё на чем пишут письма ACADу ![]() |
||||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
|
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Fatty,
Всем бы ваш прога была хороша, если бы не три "НО" - одно маленькое и, соот-но, вва больших. Маленькое состоит втом, чро мидп определено уж больно коряво. Первое большое "НО" - забор ваш уж больно велик, и нет гарантии, что вместе ц нужной окружностью он не подцепит какую-нить другую ненужную. Второе большое "НО" - замена штриховок на наборы/блоки у вас производится по принципу "одна штриховка - один набор/блок". А ежели штриховок много, и всех их надо заменить одним и тем же набором/блоком? Неужто несчастному оператору мучиться, многожды повторяя одну и ту же замену? Негуманно это! Поетопму ниже предлагается вариант "набор штриховок - один набор/блок". Кроме того, поиск окружности производится не вылезая за границы ББ, и введена возможнось замены штриховок на блок, изначально отсутствующий в чертеже. Выставляю творение свое на всеобщее осмеяние. Код:
|
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Код:
Цитата:
![]() Цитата:
|
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Цитата:
![]() |
|||
![]() |
|
||||
ну команду я вообще-то не прерывал, понимаю так что она вылетала в непредусмотренной ситуации. в этой точке попытка UNDO и вешала кад до рестарта. и похоже я плохо донёс суть нужнаго
![]() в файлике из жизни блоки стоят напротив "значков" которые надо заменить по принципу - выделяется "значок", указывается на экране блок, стирается "значок" и на его место ложится блок. Будь эти значки на отдельном слое я б не парился накопировать поверх своих блоков и "значки" разом стереть, дык они то в "0" то в "стенах" то "ещё где" ![]() [ATTACH]1134139076.dwg[/ATTACH] |
||||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
|
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Лентяй, я так думаю эта тема была достойна отдельной ветки и суть её в следующем:
1) нередко приходят документы в целях защиты, а скорее из вредности прошедшие команду explode, после чего работать в густом чертеже весьма неудобно 2) Хорошие люди топографы делают подоснову в Микростейшн (в моём случае), после чего присылают в dwg тоже взорванное ( даже полилинии, они не в счёт) 3) Хорошие люди тётки делают свою графическую часть работы как умеют, и винить их за это не хочется, так как саму их работу временами хочется распевать. В следствии этих примеров оч хочется кнопку быстрой замены блоком группы из любых выделенных простых элементов чертежа на экране. Я так думаю сия чтучка порадует не одного юзера вроде меня и вполне достойна находится в тулбаре. И создателя ея не слышным а дружным за него, благоделателем, выпитого ![]() |
||||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
![]() Цитата:
Если идти немножко дальше, то можно автоматизировать поиск блока-прототипа. Но одно безусловно - блок прототип, безвременно погибший в ходе террористической атаки, должен быть известен. |
|||
![]() |
|
||||
Если идти немножко дальше, то можно автоматизировать поиск блока-прототипа. Но одно безусловно - блок прототип, безвременно погибший в ходе террористической атаки, должен быть известен. однако если документ пришел через пятые руки сей способ весьма сомнителен. в моем понимание в описанной мной ситуацие проще выделенный фрагмент чертежа всёж заменить известным блоком, скажем точкой вставки в "центр массы" фрагмента.
я так думаю.. |
||||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Только что поставил русскую раскладку, терперь наслаждаюсь.
![]() Цитата:
![]() |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Да, попробовал было создать анонимный блок в 2005-м. Ни фига! Требует, собака, указывать имя, а инче грит - никак :twisted: |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
> Лентяй : Позволю себе не согласиться. Анонимные блоки обладают всеми свойствами обычного блока, в том числе и именем - вида *Uxxx. Просто по быстрому выбору этот блок фиг найдешь, да и по filter он кажись не вызывается...
Насчет создания анонимного блока попробовать можно нечто такое: Код:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
анонимные блоки отлично делает утиль от Лоскутова, причём с минимумом движенийю, http://www.uniip.ru/lib/download/download.html. поисковый механизм работает в коде FRTO by Smirnoff в этой же ветке. а бедный я потому как учусь ещё только и целины этой у меня столько непаханной..
|
||||
![]() |