• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Ячейки таблицы в буфере обмена

Автор Wargin39, 27.05.24, 13:07:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Wargin39

Как поместить в буфер обмена данные, для структурного добавления их в таблицу методом "CTRL+V"
- к примеру, что нужно поместить в буфер обмена и как это сделать, что_бы в таблицу структурно занеслись данные и заполнили несколько строк и столбцов в нужном месте таблицы (в месте, в которое ты поставил курсов)

Toptotal

я так делаю, для файлов вывел значения нужные и
cm_CopyFileDetailsToClip
и вставляю в шаблон.

p3452

Цитата: Wargin39 от 27.05.24, 13:07:10Как поместить в буфер обмена данные, для структурного добавления их в таблицу методом "CTRL+V"
- к примеру, что нужно поместить в буфер обмена и как это сделать, что_бы в таблицу структурно занеслись данные и заполнили несколько строк и столбцов в нужном месте таблицы (в месте, в которое ты поставил курсов)
"Буфер обмена" это программируемый ОБЪЕКТ (библиотека, класс, структура - в зависимости от языка).
Вам нужно вызвать СПЕЦИАЛИЗИРОВАННЫЙ ИНСТРУМЕНТ (библиотеку, класс, функцию - в зависимости от языка), который умеет работать с этим ОБЪЕКТОМ (Буфером обмена).
Через этот "инструмент" Вы получите доступ к данным Буфером обмена - можете анализировать, редактировать, добавлять, удалять...

Wargin39

суть в том, что я могу скопировать в буфер обмена таблицу, отрезок, группу отрезков и много других объектов. Однако, добавить в буфер обмена именно ячейки таблицы (только часть таблицы) я не знаю как.  Чем именно является ячейка таблицы? какой это объект?
Мне бы узнать что именно положить в буфер обмена!
функции которые я применяю для добавления в буфер (Puthon):

id_объекта=модуль7.IKompasAPIObject(ОБЪЕКТ).Reference      #узнаем id объекта
группа=api5.ActiveDocument2D().ksNewGroup(0)               #создать группу
api5.ActiveDocument2D().ksEndGroup                         #закрыть группу (можно не закрывать) (можно совсем без этой строки)
api5.ActiveDocument2D().ksAddObjGroup(группа,id_объекта)   #добавить в эту группу объект
api5.ActiveDocument2D().ksWriteGroupToClip(группа, 1)      #копировать в буфер

Вопрос в том, что именно добавлять в буфер обмена, чтоб от туда можно было вставить в таблицу данные СТРУКТУРНО.
Я проверял, это не текст и не таблица((((. это что-то другое.
Буду рад если подскажите как это сделать на любом языке. нужен пример:) 

p3452

Toptotal, "сбил с толку"!
Пост №2 содержит рецепт для использования НАСТОЯЩЕГО "Буфера обмена" (буфер обмена операционной системы) используемого для обмена данными между программами!

Что касается Вашего кода, то:
- нигде не просматривается работа с Таблицей,
- нигде не просматривается работа с ячейкой Таблицы,
- и зачем Вам, при работе ВНУТРИ Компас, понадобился "Буфер обмена"?

Ну, да - "хозяин - барин"...
Есть интерфейсы:
- IDrawingTable
- ITable
- ITableCell
- ICellForma
- ICellBoundaries.

Можно, еще и от ВЫДЕЛЕННЫХ ячеек "плясать"...





UU

Цитата: Wargin39 от 27.05.24, 15:40:24суть в том, что я могу скопировать в буфер обмена таблицу, отрезок, группу отрезков и много других объектов. Однако, добавить в буфер обмена именно ячейки таблицы (только часть таблицы) я не знаю как.  Чем именно является ячейка таблицы? какой это объект?
Мне бы узнать что именно положить в буфер обмена!
функции которые я применяю для добавления в буфер (Puthon):

id_объекта=модуль7.IKompasAPIObject(ОБЪЕКТ).Reference      #узнаем id объекта
группа=api5.ActiveDocument2D().ksNewGroup(0)               #создать группу
api5.ActiveDocument2D().ksEndGroup                         #закрыть группу (можно не закрывать) (можно совсем без этой строки)
api5.ActiveDocument2D().ksAddObjGroup(группа,id_объекта)   #добавить в эту группу объект
api5.ActiveDocument2D().ksWriteGroupToClip(группа, 1)      #копировать в буфер

Вопрос в том, что именно добавлять в буфер обмена, чтоб от туда можно было вставить в таблицу данные СТРУКТУРНО.
Я проверял, это не текст и не таблица((((. это что-то другое.
Буду рад если подскажите как это сделать на любом языке. нужен пример:) 
WIN API, Вам поможет.

Wargin39

как вы сюда вставляете картинку?

Wargin39

#7
Цитата: p3452 от 27.05.24, 17:14:02Toptotal, "сбил с толку"!
Пост №2 содержит рецепт для использования НАСТОЯЩЕГО "Буфера обмена" (буфер обмена операционной системы) используемого для обмена данными между программами!

Что касается Вашего кода, то:
- нигде не просматривается работа с Таблицей,
- нигде не просматривается работа с ячейкой Таблицы,
- и зачем Вам, при работе ВНУТРИ Компас, понадобился "Буфер обмена"?

Ну, да - "хозяин - барин"...
Есть интерфейсы:
- IDrawingTable
- ITable
- ITableCell
- ICellForma
- ICellBoundaries.

Можно, еще и от ВЫДЕЛЕННЫХ ячеек "плясать"...





https://i.yapx.ru/XeyJZ.png

Вот для чего мне это нужно. (Пока я просто создаю таблицу в компасе и выгружаю все имеющиеся у меня данные а затем открываю ее для редактирования, и копирую то что мне нужно. Это неудобно согласитесь. Для этого мне нужна данная функция)
Обращу внимание всех присутствующих, что копирование "ячеек" таблицы происходит в режиме редактирования. (В связи с этим мне трудно понять что именно добавляется в буфер обмена. Однако путем экспериментов мне удалось выяснить что данный набор данных несет в себе: текст, формат текста и что-то еще что отвечает за структуру этих элементов в таблице. Это звучит "топорно", но это что-то структурное, либо это массив, либо комбинированный объект)
https://i.yapx.ru/XeyMH.png

что касается использования WIN (буфера обмена системы) он используется только для копирования текстовой строки (имею в виду как тип данных) но вот копировать объект компас вам не получится с помощью него! проверить это очень просто. Зайдите в режим редактирования таблицы и выделите несколько строк этой таблицы, а затем идите в программу Ворд или любую другую и нажмите вставить. В результате вы увидите что ничего не вставилось.

UU

+ Благодарностей: 1

p3452

Для Wargin39:
1. Странная у Вас "Спецификация"...
2. Много "букв" и мало полезной информации...
3. Ваша программа "Доска", по отношению к Компас, внешняя или это "приложение" Компас (если "приложение", то AddIn или Controler)?
4. Компас умеет "загружать" и "выгружать" Таблицы...
5. Если "работаете" с отдельными ячейками Таблицы - см. пост №4.
6. Через Буфер обмена операционной системы (Win API или .NET) можно копировать ЛЮБЫЕ данные (в том числе и графические), если Вы программно обрабатываете этот процесс (см. пост №2).

Wargin39

#10
Цитата: p3452 от 28.05.24, 10:09:33Для Wargin39:
1. Странная у Вас "Спецификация"...    -это пример таблицы-
2. Много "букв" и мало полезной информации...  -без комментариев-
3. Ваша программа "Доска", по отношению к Компас, внешняя или это "приложение" Компас (если "приложение", то AddIn или Controler)?  написана на Pythoh c Компас API
4. Компас умеет "загружать" и "выгружать" Таблицы...    я могу сам ее создать заполненную всю, но как скопировать несколько ячеек?
5. Если "работаете" с отдельными ячейками Таблицы - см. пост №4.  это мне не нужно, мне нужно копирование нескольких ячеек
6. Через Буфер обмена операционной системы (Win API или .NET) можно копировать ЛЮБЫЕ данные (в том числе и графические), если Вы программно обрабатываете этот процесс (см. пост №2).  как это сделать, код плиз!

я могу все с таблицей сделать, МНЕ ЗНАКОМО ЭТО ВСЕ! Мне нужно копирование ячеек, зачем вы мне все остальное говорите. я знаю эти интерфейсы! вы работаете в компас API?


я не знаю как это сделать! приведите код примера взаимодействия буфера обмена и  объектов Компас-3д. Язык программирования не важен.
Упрощу вопрос: Как получить скопированный отрезок в программе Компас-3д в буфер обмена с помощью Win? КАК ПОЛУЧИТЬ ЭТИ ДАННЫЕ?
Я не спорю что что-то копируется в буфер обмена, но как прочесть эти данные и вывести в консоль я не знаю(((((. (Не пишите в ответ на данное сообщение очередной текст о том как в теории это легко сделать, я пробую, у меня не выходит. Если у вас есть рабочий код который даёт эту возможность, буду благодарен, если вы им поделитесь.)
Неверный ID вложения.

p3452

Есть известная сентенция - "Каждому нужен СВОЙ учитель!" - Вы, явно, не мой "ученик"!!!

p/s: С учетом информации из Вашего крайнего поста, можно утверждать, что для для решения Вашей задачи достаточно внутренних (Компас) интерфейсов - см. пост №4 (любая ячейка имеет СОДЕРЖИМОЕ, тип этого содержимого Вы можете определить...)
p/s, p/s: На сим диалог прекращаю, дабы не докучать Вам! 
+ Благодарностей: 1

Wargin39

#12
Спасибо! Вы все правильно поняли. (У вас и нечему учиться, теории мне достаточно!)

Wargin39

Цитата: UU от 27.05.24, 21:46:10WIN API, Вам поможет.
Хотелось бы увидеть код)

UU