Jump to content

Не копируется значение атрибута блока в буфер обмена.


Recommended Posts

Бодрого дня.

Блок с текстовым (не многострочным) атрибутом.

Захожу в атрибут, жму Ctrl+С, Ctrl+V. Значение атрибута вставляется (как и ожидалось).

Закрываю окно редактирования атрибута. Жму  Ctrl+V вставляется предыдущий буфер обмена.

Но проблема плавающая вылезает пару раз в день. 

Никаких программ управления буфером обмена нет.

Link to comment
Share on other sites

1 час назад, gizmo_zx сказал:

жму Ctrl+С, Ctrl+V

Вообще-то, между этими действиями есть еще что-то.

Например, переключение в другой элемент или файл или еще чего-нить...

Если только прямо в атрибуте не размножается один и тот же фрагмент.

 

И, само собой, каждый CTRL+V вставляет предыдущий буфер обмена, пока не нажат другой CTRL+C или при какой-то хитрой вставке не очищается буфер (такое тоже бывает).

 

Естественно, важен контент, т.е. что именно копировалось (текст, форматированный текст, объект ит.д.) и среда, в которой производится вставка. Например, в открытый элемент редактирования текста можно вставить текст, но не получится вставить отрезок.

А если активно просто среда NC, то после запроса точки вставки текст вставится как объект Text, другим объектам подберутся самые подходящие эквиваленты. Из вашего описания не совсем понятно, что, куда и в какой момент копировалось-вставлялось

Edited by EdwardSt
Link to comment
Share on other sites

31 минуту назад, EdwardSt сказал:

между этими действиями есть еще что-то.

Нет. Выделил текст (значение атрибута) и тут же продублировал его, т.е. текст скопировался в буфер обмена и вставился из него. Все это не выходя из редактирования атрибута. Как только закрываю, редактирование атрибута. Буфер обмена возвращается к предыдущему значению.

Текст простой, не поле. 

Link to comment
Share on other sites

Только что, gizmo_zx сказал:

Все это не выходя из редактирования атрибута

С этого места поподробнее..

Редактировать содержимое атрибута можно несколькими способами..

добавлено через 1 минуту

Лучше конечно по шагам расписать, что и как.. вот прям для дилетанта, шоб даже тупой смог повторить

  • Like 2
Link to comment
Share on other sites

15 часов назад, gizmo_zx сказал:

... Как только закрываю, редактирование атрибута.  ...

Все равно ничего непонятно.


Но попробую воспроизвести

Спойлер

image.png.6578657a6d9d09fc8dc04f4c9636c9d2.png

 

Спойлер

image.png.f82f2d344677a32321c88c75e9f1db50.png

 

Спойлер

image.png.7e24339856053465508c620e69dfe328.png

Текст вставился, заменив предыдущий. Выделение текста снялось

Спойлер

image.png.6578657a6d9d09fc8dc04f4c9636c9d2.png

Визуально не изменился, т.к. поменяли шило на мыло шило.

 

Кстати, что сейчас хранится в буфере, сие мне неизвестно.

 

  • В текстовый редактор вставляется как  строка "qqq".

 

  • Просто в поле чертежа среды NC
Спойлер

image.png.422ffa0af55174b5a4b3ab73f497e8aa.png

 

  • В поле чертежа аналога
Спойлер

image.png.056583c2a8ef2bc00be35b897d28f4b8.png

 

Link to comment
Share on other sites

3 часа назад, EdwardSt сказал:

Но попробую воспроизвести

Да все верно. Моя цель скопировать значение атрибута в буфер обмена.

Но в какой-то момент перестает копироваться. Внутри редактора вставляется, а как выхожу из редактора вставляется предыдущий буфер обмена (как будь то я ничего не копировал)

Link to comment
Share on other sites

Чудеса какие-то. Повторилось - не меняется буфер, при этом вставляется прекрасно в пределах окна. Начал записывать видос - заработал буфер нормально :look: Вообще, буфер винды - очень навороченная штука, иногда такие чудеса происходят, что диву даёшься. Но повторить у меня не получается больше...

  • Like 2
Link to comment
Share on other sites

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

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

Если послушать, что ветер нашептал (фотографии-то нет!) - то, скорее всего, происходит примерно следующее : выделяется атрибут (и уходит на редактирование).
дальше мы что-то там колбасим в этом атрибуте... а потом копируем в буфер.
если повезет - то в буфер копируется *выделенный кусок текста* (этим ведает редактор атрибутов). а если не повезет - то редактор атрибутов пролетает мимо, и в бувер копируется атрибут в виде объекта чертежа...
ну и дальше, ясное дело, этот объект чертежа (а атрибут - штука непростая!) в виде текста вставиться не может. думаю, оно как-то так...

  • Like 1
Link to comment
Share on other sites

1 час назад, Lion007 сказал:

вот чтобы не было никому обидно - пример в студию. и, желательно с описанием - тыкнул мыжжкой туда, нажал кнопки такие-то...

про каверзы от буфера обмена - все понятно, что слишком сложно, запутанно и ненадежно.

 

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

Вопрос, который меня гложет, возник попутно и , возможно, не имеет отношения к изначальной теме ветки.

А именно, почему  одно и то же содержимое буфера обмена, сформированного нанокадом, по-разному интерпретируется в NC и AC?

Причем, интерпретация строки  для вставки в поле чертежа в виде  OLE-объекта (NanoCAD) выглядит нелепо.

Link to comment
Share on other sites

24 минуты назад, EdwardSt сказал:

А именно, почему  одно и то же содержимое буфера обмена, сформированного нанокадом, по-разному интерпретируется в NC и AC?

вставляется мтекстом (6069)

upd раз текстом раз мтекстом, пока не понял от чего зависит)))

какой у тебя нана?

Edited by doctorraz
Link to comment
Share on other sites

кстати в чистом нано (6069) удалось повторить

Спойлер

image.png.cc91b82603278fe27e8d2c83d743a526.png

по ctrl+ЛКМ копируется нормально (редактирование на чертеже)

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

в нано СПДС и так и так копируется нормально

UPD такки нет, та жэж трабла(((

Edited by doctorraz
  • Like 1
Link to comment
Share on other sites

кстати не зависит как копировать из редактора, по ctrl+c или через контекстное меню, текст в буфере живет ровно до выхода из редактора

добавлено через 0 минут

ЗЫ в нано 6122 проверю вечером (если винду не доломаю)))

Edited by doctorraz
  • Like 1
Link to comment
Share on other sites

1 час назад, EdwardSt сказал:

про каверзы от буфера обмена - все понятно, что слишком сложно, запутанно и ненадежно.

 

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

Вопрос, который меня гложет, возник попутно и , возможно, не имеет отношения к изначальной теме ветки.

А именно, почему  одно и то же содержимое буфера обмена, сформированного нанокадом, по-разному интерпретируется в NC и AC?

Причем, интерпретация строки  для вставки в поле чертежа в виде  OLE-объекта (NanoCAD) выглядит нелепо.

честно - хрен его знает. пример в студию - и будем смотреть.
многоствольный копипаст - штука неверная, так что накосячить тут проще простого.
типичная фигня - разные приоритеты тех или иных представлений. собственно, скорее всего именно поэтому NC и AC ведут себя по-разному.

опять же, отрихтовать не фокус... но нам (порграммерам) нужно "как надо". "как в АС" - это непродуктивно :)
 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Упс...

Извиняюсь, что ввел вас в заблуждение на счет вставки в виде OLE-объекта.

На самом деле проблема кроется в другом, а именно в замысловатом способе взаимодействия NC с буфером обмена.

Итак, эксперимент:

1. Обычными ножницами виндовса сделал снимок фрагмента экрана и скопировал в буфер 

Спойлер

image.png.a1dbbba61475be760cd67b3a8c5aa04b.png

 

2. Тестируем вставку из буфера в поле чертежа

Спойлер

image.png.3299a3154057eabe1216b9e0476e3264.pngimage.png.70d5f682da4832c2df2f800a0a1fdf87.png

и после выбора точки вставки появляется OLE-объект в обеих системах

Все вполне ожидаемо , логично и одинаково в обеих системах.

Особенно отмечу, что последним скопированным в буфер обмена фрагментом является окошко из вставки в АС (то, что справа), это важно!

 

3. Вызываем диалог с атрибутом в NC из прилагаемого примера. Попадаем в режим редактирования атрибута (выделен синим фоном). Ничего не  тыкая мышкой сходу нажимаем комбинацию CTRL+C и выходим из диалога.

Вопрос: что сейчас находится в буфере обмена?

Спойлер

image.png.50331ff1d089b63de3b90d59a9b15b7f.png

Предлагается вставка OLE-объекта, а именно предыдущего скопированного из ножниц фрагмента экрана из АС (см. п.2)

т.е., можно сделать ошибочный вывод, что нанокад просто ничего в буфер не записал и в данный момент в буфере есть только картинка, полученная на предыдущем шаге. А ошибочным вывод делает (ля демонстрации вставки в АС пришлось немного верннуться на шаг назад к редактированию атрибута, чтоб снова в буфер попал текст):

Спойлер

запрос точки

image.png.7cd67f733df4fad4f729d3025a4e83c1.png

 

 и результат

image.png.ec5e65c244627141ed81dffb5c67a159.png

 

Т.е., все-таки в буфер текст копируется. 

Эксперимент показывает, что текст, скопированный в буфер обмена из диалога редактирования атрибутов в NC, другими приложениями интерпретируется именно как текст, а самим нанокадом просто игнорируется и берется в обработку предыдущее значение буфера обмена. 

 

4. Если повторить  манипуляции п.3 в среде АС, то скопированный из диалога текст далее в среде АС интерпретируется и вставляется, как Mext, а в среде NC - как Text. Вот тут , действительно, на любителя. Привычный MText на самом деле не совсем логичен, т.к. копируется фрагмент неформатированного текста (голая строка) и его преобразование в более сложный объект можно считать излишеством. Объекта типа TEXT вполне достаточно, т.е. тут поведение NC вполне себе оправдано.

 

1 час назад, Lion007 сказал:

опять же, отрихтовать не фокус... но нам (порграммерам) нужно "как надо".

Из данного примера кроме "как надо" уместно замечание "хоть как-нибудь", ибо NC игнорирует самим собой скопированный элемент.

Блок для ленивых.dwg

Edited by EdwardSt
Link to comment
Share on other sites

4 часа назад, Lion007 сказал:

а если не повезет - то редактор атрибутов пролетает мимо, и в бувер копируется атрибут в виде объекта чертежа...

У меня точно было не это, т.к. в буфере показывало именно последний скопированный текст (не атрибут), а был бы какой объект (кртинка, часть чертежа и т.п.), то я бы его увидел как объект. Но его не было. Сейчас запишу, что я делал, но вряд ли повторится.

Короче... Повторилось, но продемонстрировать от счастья я не смог нормально ,придётся поверить на слово :D Начиная с 1:00 я ввожу новое значение атрибута "Новый", копирую его из редактора значений атрибута, но в буфер оно не попадает (в списке буфера верхней строкой осталось старое значение), хотя в поле атрибута вставляется нормально. Не додумался сразу вставить из буфера в другое окно для демонстрации. Блок простейший - окружность с атрибутом.

Спойлер

Повторить не получается :) Надо ждать следующего Пн...

Link to comment
Share on other sites

пример в студию...

не факт, что поправим - но пока не видел - фиг поправим... ну вот правда - не со зла. но пока (условно) я баг не воспроизведу - это вы сами накосячили...

  • Like 2
Link to comment
Share on other sites

О, даже в Вс сработало что-то. Не много, но успех есть.

Спойлер

Думал уже, что всё нормально, как стали появляться странные юникод символы в скопированном из поля значения атрибута тексте:

2036417424_.png.79178f05be0cc03e674c06f14b3ee528.png

И тут всё сложилось. Вероятно, что-то левое попадает в буфер при копировании из поля значения атрибута, и это что-то мешает винде нормально это значение буфера интерпретировать, поэтому винда просто игнорирует его, а NC ест спокойно свою же кракозябру :D

Текст атрибута.txt Блок с атрибутом.dwg

  • Like 2
Link to comment
Share on other sites

  • 1 month later...
В 22.07.2022 в 16:55, gizmo_zx сказал:

Внутри редактора вставляется, а как выхожу из редактора вставляется предыдущий буфер обмена (как будь то я ничего не копировал)

Вы, случайно, не экспериментировали с этим функционалом? 

В 11.06.2021 в 14:23, MCAD сказал:

С маркером можно, но если там одинаковый набор "зависимых" атрибутов.

Мало информации от @gizmo_zx

Разные блоки, разные исполнения, какой набор атрибутов? 

Тем  более, что нужно в платформе. Значит придётся возится с палитрой инструментов

Набросал маленький тест с маркером. Документ под роликом на YouTube

  • Like 1
Link to comment
Share on other sites

В 07.09.2022 в 09:03, MCAD сказал:

Вы, случайно, не экспериментировали с этим функционалом? 

Не понял про какой именно функционал. 

Вон "Kreator" целое кино запилил, Спасибо за это. Я не могу отловить этот момент. 

Был в отпуске, а тут целая дискуссия выросла.:blink:

 

 

Link to comment
Share on other sites

В 10.09.2022 в 15:17, gizmo_zx сказал:

Не понял про какой именно функционал

В нанокад можно управлять поведением объектов, например видимостью блока или значением его атрибутов.

При этом штатный редактор атрибутов блоков будет показывать, что вы ввели значение, но после его закрытия появятся значение определённые или вычисленные в таблице на основании вашего алгоритма.

Более простой пример

 

Пример управления атрибутами.dwg

  • Like 2
Link to comment
Share on other sites

В 11.09.2022 в 09:12, MCAD сказал:

В нанокад можно управлять поведением объектов...

Нет. Блок самый простой из примитивов и атрибут однострочный текст (без полей и др.). Блок не динамический, без видимостей и зависимостей.

  • Like 1
Link to comment
Share on other sites

В 31.07.2022 в 02:23, Lion007 сказал:

не факт, что поправим - но пока не видел - фиг поправим...

Выше приводил пример 

Но, видимо, слишком ветвисто пытался описать непонятки, что сил ни у кого вчитаться не было.

Попробую максимально упростить пример (прилагаю).

1. Двойным ЛКМ на тексте входим в его редактирование, нажимаем CTRL+C и завершаем редактирование текста

2. Двойным ЛКМ на атрибуте блока входим в его редактирование, нажимаем CTRL+C и завершаем диалог.

3. При курсоре на поле чертежа нажимаем CTRL+V и наблюдаем попытку вставки текста , скопированного на шаге 1 вместо текста с шага 2. :angel:

4. При курсоре на командной строке нажимаем CTRL+V и наблюдаем попытку вставки текста , скопированного на шаге 2.

 

Т.е., на шаге 2 значение копируется, но на шаге 3 почему-то игнорируется и в обработку берется предыдущее значение, скопированное ранее.

Но и это еще не все!

 

5. Двойным ЛКМ на атрибуте блока входим в его редактирование, изменяем содержимое, нажимаем CTRL+C и завершаем диалог.

6. При курсоре на поле чертежа нажимаем CTRL+V и снова наблюдаем попытку вставки текста , скопированного на шаге 1 вместо текста с шага 5 (или хотя бы с шага 2). :angel:.  

7. При этом попытка вставки в любое текстовое поле (командная строка, текст, Word) приводят к ожидаемой вставке именно последнего скопированного элемента.

 

 

 

Блок и текст для CTRL+С.dwg

Edited by EdwardSt
  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...