|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Вопросы о буфере обмена
Profan
Москва
Регистрация: 27.04.2005
Сообщений: 6,760
|
||
Просмотров: 21634
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Если честно, я бы тоже с удовольствием послушал как работать без буфера - хотя наверно это дело привычки, но все же мне кажеться, что без буфера (а если точнее без буфера с базовой точкой) - гемор.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Уважаемый Олег Вадимович, один меня, один
![]() Я имел в виду именно copy-paste. Для работы внутри одного документа проще использовать обычный _.copy (ну в крайнем случае - создать группу и ее таскать). Для варианта работы между несколькими документами у меня используется либо xref, либо _.wblock. Правда, у меня (ну не у меня, а у пользователей, которых я обслуживаю, а это требует некоторого понимания среды проектирования ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Дорогой Алексей!
Как я понимаю, вставка с базовой точкой практически ничем не отличается от _.wblock ![]() |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Уважаемый Олег Вадимович!
Это точно, не отличается. Есть, правда, некоторые тонкости, связанные именно с разницей систем координат и отображения объектов, но они не критичны сейчас. Я, наверное, получу массу гневных откликов, но: я против использования copy-paste, особенно с базовой точкой и вставкой как блок. Хочу объяснить почему. Это началось как минимум в 2002 каде, в дальнейших версиях, насколько я знаю, этот баг не исправили (вопрос - а можно ли его вообще исправить). Суть в том, что при копировании в буфер объекты объединяются в блок с именем A$C<И_тут_масса_циферок>. Эти "цифирки" теоретически назначаются случайным образом, но бывают ситуации, когда они совпадают. И вот тут начинается "интересное": - если копировалось без базовой точки, и вставка выполнена "не как блок", то все хорошо - блок вставляется и тут же разбивается. По-моему, пока буфер обмена Windows не получит новую порцию данных, описание блока продолжает болтаться в файле на случай повторного использования (но тут плаваю, поскольку изысканий не проводил). - если копировалось с базовой точкой, то независимо от метода вставки описание блока продолжает находиться в файле dwg. А если вставлялось как блок, то блок не разбивается (естественно), что гарантирует его сохранность. А вот теперь представьте себе ситуацию: 01.03.2007 Вы начали работать над файлом, выполнили copy-pasteasblock (к примеру, набор мебели для прихожей), имя блока A$C123456789 (подчеркиваю - описание блока не удалено). Проходит время, Вы продолжаете использовать copy-paste, и, например, 05.04.2007 в совершенно другом файле блок копирования-вставки получает имя A$C123456789. Вы переходите в свой рабочий файл, нажимаете paste, и... Acad ищет переданное имя (A$C123456789) по своей таблице блоков, благополучно его находит и предлагает его вставить. Все, аут. Вместо вставки окна с витражом Вы видите набор мебели для прихожей. Повторное выполнение копирования в буфер помогает далеко не всегда ![]() Вы сможете сходу найти причину? Особенно если A$C123456789 вставлен внутрь другого блока (то есть по _.qselect его не видно)? А блоков у Вас в чертеже (имею в виду, естественно, только описания) штук этак 50. Именно поэтому, получив на нескольких десятках файлов подобные шутки, я стал с опаской относиться к работе acad'a с буфером обмена. --- P.S. Надеюсь, не слишком путано объяснил ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Теоретически должно помогать. Если удастся "выцепить" код, попробую где-нибудь опубликовать для очистки файла от блоков копирования-вставки.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Отличается. В детали вникать не буду, но разница есть. Для AutoCAD работа с буфером обмена - это инородное тело, внесенное относительно недавно (если учитывать всю историю существования AutoCAD). И до сих пор она не вполне корректна. Своих пользователей я постепенно отучил пользоваться этой возможностью, как и ты. И если мне приносят чертеж и я вижу в нем блоки A$XXXXXXXX - приходится применять "административный ресурс". Чтоб не повадно было!
![]() |
||||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
ToolPalettes можно вроде бы и использованием, например, DC, заполнять - ИМХО более верно будет.
Насчет "одинаковых" элементов: кто мешает использовать группу, я не очень понял. ИМХО: буфер обмена - достаточно опасное и узкое место, и постоянно его использовать лично я не рекомендую P.S. Тема плавно ушла в сторону от начального вопроса ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Да, бывает, автокад сгенерирует одинаковое имя. Это похоже на переменную UserХХ, которую программисты критикуют по этой-же причине. Но обычно неправильное действие автокада сразу-же вызывает недоумение, точно также как вставка разных блоков с одинаковыми именами (неправильное действие пользователя). На чертеж это вряд-ли отразится, разве что время потеряется, пока разберутся. Из двух зол всегда выбирают меньшее. Несмотря на редчайший баг с одинаковым сгенерированным именем блока из буфера отказ от него замедляет работу. Буфер ведь на правой кнопке, и дежурит всегда. А wblock? Он неоперативен, если не сделать 2 спец кнопки-положить и взять. Группа здесь не поможет, ибо она в этом контексте то-же,что и Copy, только щелчки сэкономит.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Vova, мне, честно говоря, неудобно спорить, но...
Хорошо если эту "нестыковку" можно обнаружить сразу. А если такой блок вложен? Да еще и в другом файле, который вставляется блоком? Я попробовал нарисовать код, проверьте, у кого есть файлы с блоками A$C*: Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Не знаю, как удается Александру Ривилису применить административный ресурс, но наших оболтусов никакими средствами не заставишь отказаться от использования буфера обмена. Этот инструмент повсеместно используется в Windows, чем же AutoCAD хуже? Будут мучиться с "анонимными" блоками, но от буфера обмена в AutoCAD не откажутся. Я тоже.
![]() |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Ага, получится. Но если это дело хоть как-то можно проконтролировать и заставить использовать в качестве префикса, например, краткое наименование фирмы, то с блоками A$C* такой номер уже не прокатит.
ЯТД, каждый останется при своих, предлагаю ничью ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Еще раз повторю главный козырь. Обмен между файлами этажей при общей базовой точке 0,0. В том числе детали из чертежей смежников. У меня часто открыты черт. мои, архитектурные, пламбинг, HVAC и Strucrural и надо посмотреть, мешает ли мне кто-нибудь или можно-ли здесь пролезть. Например, в буфере проем в перекрытии, и, подозреваю, он разного размера на чертежах. А в проеме у меня трубы с электричеством битком набиты по самую крышу. Вот и бросаю проем то туда, то сюда, пока не обнаружу либо ошибку, либо убеждаюсь, что все верно. Огромный кусок работы связан с буфером, и совсем не обязательно, что этот блок остается в чертеже. Просто с ним (буфером) идет примерка. Так что-же делать, если буфер запрещен? Через wblock такая работа будет замедленной, а это у нас не катит
MS> все-таки, в 13 втокаде буфера не могло быть. Из имеющейся у меня книги по 2000 видно,что там есть Copy to clipboard, Cut to clip board и Paste from clip board, а про базовую точку нет. Видать, она появилась в 2002 |
|||
![]() |
|
||||
слаботочник Регистрация: 31.08.2006
Москва
Сообщений: 128
|
Vova,
Книга по 2000, а в 13-ом не могло быть? Странная логика. Вот у меня есть книга по 14-му и там есть про базовую точку. Надо 13-й откопать, поставить и посмотреть, как оно было.
__________________
С уважением, Михаил. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для MS.
UNIX - это у них там. А у нас я не хочу затрагивать версии, меньшие 10. Как только первые 4 пункта меню в AutoCAD (File, Edit, View, Insert) стали стандартными для Windows приложений - так с этого момента и стал применяться буфер обмена в AutoCAD. А такая структура меню, с трудом вспоминаю я, была принята уже в AutoCAD 12 для Windows. Однако в других программах ситуация с буфером обмена может быть не менее поганой, чем в AutoCAD'е. Пример - CorelDRAW. При вставке в текущий рисунок фрагмента из другого рисунка все объекты фрагмента оказываются на одном слое (текущем) в то время, как в исходном рисунке они были разнесены по разным слоям. Вот и приходится чуть ли не поштучно копировать объекты одноименных слоев. Но ведь там нет команды Wblock... |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Нашел книгу Омуры по 13 автокаду. Там есть команды Copyclip, Cutclip и Pasteclip (три стандартные для всех Win- приложений кнопки, как и сообщил Profan). Команд Copybase и Pasteblock там нет. Интересно,что в 14? По моей памяти они появились в 2000, как и дизайн-центр. В посте 21 я ошибочно сказал, что в 13 не было буфера обмена. Я имел в виду именно копирование с базовой точкой через буфер. Когда эта фитча появилась, жить стало значительно легче, и команда стала применятся в массовом порядке
|
|||
![]() |
|
||||
слаботочник Регистрация: 31.08.2006
Москва
Сообщений: 128
|
Vova,
Цитата:
__________________
С уважением, Михаил. |
|||
![]() |
|
||||
А ведь никто не затронул вопрос о копировании текста (не как объекта, а как текста), прямо из редактора и вставке в другой текст... Это удобно при формировании общих указаний в проекте, когда надо выдрать абзац или два из многострочного текста одного файла и вставить в другой. Ведь это идет тоже через буфер обмена. Как же без этого-то, если буфером обмена в Автокаде не пользоваться?
|
||||
![]() |
|
||||
Товарищи! У меня по буферу такой вопрос. В одном окне Акада я копирую необходимые мне объекты (количество их разное, от 10 до 10000) и по-рабоче-крестьянскому просто командой PASTE вставляю (вернее хочу вставить) их в другой чертёж. Я привык, когда в чертеже много деталей с разных чертежей и удобно по ним делать основной свой чертёж. И тут начинаются приколы. Либо просто высвечивается в коммандной строке _pasteclip *Invalid* либо пишет, что дублируются блоки. Блоки переименовал, всё равно не хочет вставлять. Иногда может просто "вылететь" Акад, без предупреждения или с предупреждениями о ошибках.
Такая проблема появилась в последнее время и с чертежами из АрхиКАда. Что-то можно сделать или переучиваться на другой принцип работы? Невозможно работать ![]() З.Ы. Акад 2006, СПДС 4.0, WinXP SP1
__________________
Time and time again I witness a birth of a new-born star. I climb the highest mountain To find the essence of a new era... |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
ИМХО: переучиваться. Я, откровенно говоря, уже подустал объяснять поведение AutoCAD'a при работе с буфером и все проблемы, с этим связанные (точнее, с блоками вида A$Cxxx). Используй _.wblock, внешние ссылки и т.п.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Пробовал, всё ОК. Ошибок не обнаружено.
Я читал твои рекомендации. Ну вот если взять отвлечённо. Я из чертежа блоки вида A$Cxxx почистил командой _purge. Нажимаю paste -- и тишина. Почему? Спрашивал у товарища своего, проблем у него нет, всё пашет. Правда не с моими чертежами, но в принципе.
__________________
Time and time again I witness a birth of a new-born star. I climb the highest mountain To find the essence of a new era... |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Ни _.purge, ни _.-purge не удаляет и не разбивает вставленные блоки копирования! Это надо делать либо руками, либо лиспом. Если ты читал мои опусы по этому вопросу, то видел, что "ситуация возможна, но не обязательна". То, что "у товарища все работает", пока говорит только о том, что ему повезло, можно сказать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
__________________
Time and time again I witness a birth of a new-born star. I climb the highest mountain To find the essence of a new era... |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Если блок копирования-вставки вложен в другой (а этот второй уже куда-то вставлен), то _.purge первый блок фиг тронет (что, в общем-то, верно).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
При копировании Ctrl+C 5 объектов (полилинии,текст) - Кад думает секунд 40, при 20 примитивах или 1 блоке- виснет беспробудно. Файлы порядка 1,5Мб, но с кучей слоев и блоков. Файлы, созданные мной, работают нормально.
Проц 4-ядерный, 4 Гб RAM, так что видимо дело не в системе. С чем это может быть связано? |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
С содержимым файла. Точнее, с наличием прокси-объектов.
Образец в студию! Если до вечера никто не откликнется, я просмотрю (могу пока только из дома ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Заметил такую особенность: при выходе из команды pasteclip по Escape (до указания точки вставки, разумеется) создается описание блока с именем A$CXXXXXXXXX, содержащего в себе вставляемые примитивы. Интересно, это только у меня в 2011-м так или у всех?
|
|||
![]() |
|
||||
У всех и всегда в любых версиях AutoCAD.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
_PURGE
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Ну это-то понятно. А чтоб по уму, но для обычного рядового пользователя (читать "тётеньки"
![]() |
|||
![]() |
|
||||
Учить его нужно. Можешь ему кнопочку сделать для очистки. Только шаблон для имён блоков (если боишься потерять нужные) сделай "A$*" вместо "*"
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Ах где эта тема! Врезалась мне в память и с тех пор как только лезу в правую кнопку за буфером, вспоминаю Kpblc. Мол, буфер это плохо, и подтверждается плохость тем что случайно можно наткнуться на то-же имя блока. 6 лет прошло, и никак в моей практике такая случайность не наступала, хотя по 100 раз в день копирую. Везунчик я, наверное
![]() |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
На мой взгляд, весьма маловероятно, что два девятизначных набора буквенно-цифровых символов, генерируемых случайным образом, совпадут.
Если такое и случится пару раз за всё время деятельности каждого конкретного пользователя AutoCAD, то это не повод отказываться от буфера обмена. Хотя всё это - дело привычки. И личного выбора. |
|||
![]() |
|
||||
Инженер дорожник Регистрация: 22.10.2007
Израиль
Сообщений: 1,859
|
Тема тут крутится уже восемь лет. То что буфер нужен это однозначно, но вопрос применения это уже второй вопрос. Первое что не делаю это не вставляю из буфера как блок. Если собираюсь какойто элемент использовать много раз то не ленюсь и создаю блок. Но рядом есть мудрецы, Которые копируют болк через буфер и потом вставляют как блок, и не один раз встречал и такое. О базовой точке вообще представления не имеют хоть для буфера хоть просто для болка. Она всегда где то за пределами чертежа. Так что проблема не буфере а в понятиях его использования. А удобство есть и значительное. Работаю со ссылками и иногда просто линии нужно перенести в другой файл и не нцжно здесь ни блоков ни W_блоков. (штриховки выношу в отдельный файл и нужны линии ограничивающие покрытие дорог, троеуаров и т.п.) скопировал в буфер и вставил.
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хочу начать изучать автокад, есть вопросы, помогите | GALANT | AutoCAD | 126 | 16.06.2011 11:01 |
Доступ к объектам скопированным в буфер обмена | МишаVBA | AutoCAD | 6 | 20.05.2006 00:41 |
Проблемы с копирование через буфер обмена. | zenon | AutoCAD | 2 | 22.12.2005 07:20 |
Вопросы самоучки ( Лира ) | Cole | Лира / Лира-САПР | 5 | 02.08.2005 23:32 |