Не копируются примитивы в буфер обмена

Автор Тема: Не копируются примитивы в буфер обмена  (Прочитано 29607 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Пользователь в Autocad 2015 не может выполнить копирование примитивов через буфер
ни внутри чертежа не между чертежами.
Примитивы "обычные" ни каких прокси нет.
В чем причина может нужно загрузить дополнительно приложение ARX
Если только в этом вопрос, то какое приложение подгрузить?
Или причина еще может быть в чем-то другом?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
1. Причем здесь раздел ObjectARX?
2. К программированию это прямого отношения не имеет.
3. Проблема возникает в конкретном чертеже или во всех чертежах?
4. Если проблема конкретного чертежа, то где чертеж? Иначе это гадание на кофейной гуще.
5. Если такое происходит со всеми чертежами, то какие приложения загружены? Это могут быть проблемы приложений (например, незакрытые транзакции).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Это к программированию прямого отношения не имеет, только если программист не будет использовать
через командную строку (..._copyclip...)
Я спешил и не нашел подходящего раздела
А раздел ARX выбрал, т.к. видел видео http://vimeo.com/28495254
где говорили про загрузку arx-приложения.
Проблема возникает у пользователя на компьютере на любых фалах.
При чем у другого пользователя сидящего рядом все OK!
 

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Попробуй удалить профиль AutoCAD. Иногда помогает (причину не знаю).
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Профиль удалить попробую, спасибо за совет.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Это к программированию прямого отношения не имеет, только если программист не будет использовать
через командную строку (..._copyclip...)
Об этом разговора не было. В противном случае был бы приложен код...  ;)
Я спешил и не нашел подходящего раздела
Зря. Спешка тут не поможет.
Проблема возникает у пользователя на компьютере на любых фалах.
При чем у другого пользователя сидящего рядом все OK!
Значит остаются две возможности:
1) на этом PC установлено еще какое-то приложение, которое мешает копированию
2) плохо установился AutoCAD или что-то произошло с его файлами во время работы.
В первом случае проанализировать чем отличаются AutoCAD'ы и приложения на них у этих двух пользователей.
Во втором - переставить AutoCAD. Сначала попробовать режим исправления ошибок. Если не поможет, то полная деинсталляция (с чисткой оставшихся файлов и реестра), а затем повторная установка.
P.S.: Кстати я нигде не увидел сообщения об ошибке при копировании. Или это ошибка при вставке из буфера обмена? 
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Скоро я навещу этого пользователя и если ошибка все еще будет попробую сделать скрины
и подробнее опишу ситуацию. Приложения у него дополнительные есть, но у другого человека эти приложения есть тоже и все копируется хорошо.


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Скоро я навещу этого пользователя и если ошибка все еще будет попробую сделать скрины
и подробнее опишу ситуацию.
Вот с этого и нужно начинать!  :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Спешка тут не поможет
А в какой раздел поместить этот вопрос?

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Вот с этого и нужно начинать!
У пользователя явных сообщение не было, но что писалось в динамической подсказке.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Цитата: Александр Ривилис от 30-07-2014, 19:50:43

    Спешка тут не поможет

А в какой раздел поместить этот вопрос?
Пока пусть побудет здесь. По поводу спешки я имел в виду, что в вопросе очень желательно указать сразу всю информацию. Пусть её даже будет больше, чем окажется необходимым для решения вопроса.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Прикрепляю файл в котором не получается скопировать примитивы в буфер обмена
Я уточнил, что у пользователя не все подряд файлы не копируются, а только те которые
формируются на основе шаблона с помощью моего алгоритма.
Алгоритм сам по себе большой.
Вот ключевые позиции алгоритма:

1) открываем базу шаблона db.ReadDwgFile(NameTemplate, IO.FileShare.ReadWrite, False, Nothing)
2) Формируем массив Entity()
3) Добавляем в базу примитивы из массива Entity()
4) Делаем в цикле Ent(i).Dispose()
5) Сохраняем файл db.SaveAs(FullFileName, Autodesk.AutoCAD.DatabaseServices.DwgVersion.AC1015)
6) db.CloseInput(True)
7) db.Dispose()

У меня на машине под AutoCAD 2012 все нормально проблем нет.
А у пользователя под AutoCAD 2015 не копируются в буфер примитивы результирующего файла.

Скорее в алгоритме где-то косяк в позициях 2), 3), 4) может Dispose делать не нужно?

Думаю, что нужно теперь эту тему разместить в раздел AutoCAD API .NET, т.к. она связана на прямую с моим кодом

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
1. В чертеже ошибки, которые запросто могут препятствовать копированию в буфер обмена:
Command: _AUDIT
Fix any errors detected? [Yes/No] <N>: y
Auditing Header
Auditing Tables
AcDbDictionary(C)   ACAD_MATERIAL eDuplicateIndex       Delete Entry
Auditing Entities Pass 1
Pass 1 1700    objects audited
Auditing Entities Pass 2
Pass 2 1700    objects audited
Auditing Blocks
 18      Blocks audited
Auditing AcDsRecords
Total errors found 1 fixed 1
Erased 0 objects
2. При копировании в буфер обмена появляются сообщения:
Command: _copyclip 188 found
 *Warning* Multiply owned object, handle "D"
 *Warning* Multiply owned object, handle "57"
3. Пункты 2) 3) 4) я совсем не понял:
  a) Как формируется массив Entity ???
  b) Куда, а главное как добавляются примитивы в базу ???
  с) Если добавил в базу примитивы то незачем делать им Dispose
Это для начала. Ну и сам шаблон сначала проверь командой _AUDIT. Может быть ошибка в нем и ты её таскаешь по файлам.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Кстати, а если запустить этому файлу _RECOVER, то ошибок становится намного больше, они все исправляются и копирование/вставка происходит совершенно нормально:
Drawing recovery.
Drawing recovery log.
Validating objects in the handle table.
Valid objects 1816   Invalid objects 0
Validating objects completed.
AcDbDictionary(C)   ACAD_MATERIAL eDuplicateIndex       Delete Entry
Recover: error 120 opening Named Objects Dictionary.
Created new NOD.
Setting NOD ACAD_MLINESTYLE dict id.
Setting NOD ACAD_GROUP dict id.
Setting NOD ACAD_LAYOUT dict id.
Setting NOD ACAD_PLOTSTYLENAME dict id.
Setting NOD ACAD_PLOTSETTINGS dict id.
Setting NOD ACAD_MATERIAL dict id.
Setting NOD ACAD_VISUALSTYLE dict id.
Creating new ACAD_COLOR dictionary
    Salvaged database from drawing.
Auditing Header
Auditing Tables
Auditing Entities Pass 1
Pass 1 1700    objects audited
Auditing Entities Pass 2
AcDbDimStyleTableRecord: "ISO-25"
                                  Not in Table          Added
AcDbDictionary(6A)     Imperial24 eNotThatKindOfClass   Delete Entry
AcDbDictionary(6A)       Metric50 eNotThatKindOfClass   Delete Entry
Pass 2 1700    objects auditedAcDbDictionary(D)        Owner Id != Dictionary Id      Fix it
AcDbDictionary(D)
               Dictionary Reactor Missing               Attach it
AcDbDictionary(1A)       Owner Id != Dictionary Id      Fix it
AcDbDictionary(1A)
               Dictionary Reactor Missing               Attach it
AcDbDictionary(6A)       Owner Id != Dictionary Id      Fix it
AcDbDictionary(6A)
               Dictionary Reactor Missing               Attach it
AcDbDictionary(17)       Owner Id != Dictionary Id      Fix it
AcDbDictionary(17)
               Dictionary Reactor Missing               Attach it
AcDbDictionary(19)       Owner Id != Dictionary Id      Fix it
AcDbDictionary(19)
               Dictionary Reactor Missing               Attach it
AcDbDictionaryWithDefault(E)
                         Owner Id != Dictionary Id      Fix it
AcDbDictionaryWithDefault(E)
               Dictionary Reactor Missing               Attach it
AcDbDictionary(11D)      Owner Id != Dictionary Id      Fix it
AcDbDictionary(11D)
               Dictionary Reactor Missing               Attach it
Auditing Blocks
 18      Blocks audited
Auditing AcDsRecords
Total errors found 26 fixed 26
Erased 0 objects
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Переношу тему в раздел .NET, так как ошибка похоже связана именно с твоим кодом.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение