утилита для переопределения блоков

Автор Тема: утилита для переопределения блоков  (Прочитано 15145 раз)

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

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

Оффлайн I_stivАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 2
Добрый день.

может кто нибудь скомпилировать это под AutoCAD 2015 x64?
https://sites.google.com/site/bushmansnetlaboratory/sendbox/stati/multipleattsync

Задача в целом такая: AutoCAD 2015. есть дин.блоки которые часто используются (в т.ч. форматки) в них многострочные атрибуты полями.
которые по неведомым причинам (перечетал и перепробовал кучу способов) иногда переодически слетают. Т.е. атрибуты меняют свое место положение относительно блока.
Сейчас правим руками , используя Design Center, переопределяя блок . Однако, это конечно долго и не продуктивно.
Прочитал описание, однако не факт что эта разработка поможет в этом случае.
может кто поделиться опытом как бороться с проблемой выше (кроме , обновить AutoCAD...) или поможет перекомпилить утилиту. Спасибо за любой совет по теме.


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

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

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Доброго времени суток.

К сожалению, я ничем не смогу вам помочь, т.к. уже несколько лет не пишу код ни под AutoCAD, ни под Revit (они у меня даже не установлены). На обозначенной странице присутствует ссылка на файлы исходного кода. Если этот код сможет быть кому-то полезен - я буду этому только рад. Вы можете совершенно спокойно скачивать эти исходники и редактировать их по своему усмотрению.

С уважением, Андрей.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Сейчас правим руками , используя Design Center, переопределяя блок . Однако, это конечно долго и не продуктивно.
Прочитал описание, однако не факт что эта разработка поможет в этом случае.
Утилита должна помочь, но нужно иметь AutoCAD2015 чтобы ее собрать и проверить.

Если блоков не много и случаи с атрибутами редки, можешь попробовать варианты без данной утилиты:
Помимо Design Center блоки можно разместить в инструментальной палитре и по правой клавише нажать переопределить. Получится немного быстрее и удобнее, чем через Design Center, но по прежнему по одному блоку.
Есть еще команда _attsync которая иногда помогает.
Еще можно вызвать диспетчер атрибутов блока _battman и попробовать кнопку "Обновить"


Оффлайн I_stivАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 2
AutoCAD 2015 у меня есть. вот skills все это пересобрать нет. там какие то COM библиотеки, плюс Stimulsoft либы для интерфейса(они же вроде платные)... Вообщем автор , не против (см.выше), так что просьба в силе.

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

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

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

Оффлайн I_stivАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 2
Я пересобрал, но абсолютно не тестировал. Если не запустится - ничем помочь не смогу...
спасибо большое. утилита грузится , интерфейс работоспособен, но не работает основная функция. Ошибка "eFileSharingViolation" - при выполнении основной функции.
Вероятно какие то изменения в API. Некие сведения об этой ошибке гуглятся https://forums.autodesk.com/t5/net/database-save-quot-efilesharingviolation-quot/td-p/3386171.
Не могли бы Вы выложить проект пересобранный?  я попробую починить используя отладку. 

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

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

Оффлайн I_stivАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 2
данное приложение решило мою проблему рассинхронизации атрибутов (т.е. изменения положения многострочных атрибутов в ACAD 2015).

Однако пришлось немного "допилить".
https://adndevblog.typepad.com/autocad/2012/04/batch-process-in-memory-1.html- суть проблемы.
сделал так как в ссылке (т.е. SaveAs в Tmp , а затем копирование с заменой) - и скрипт заработал :)

Код - C# [Выбрать]
  1. string tempFileName = Path.GetTempFileName();// временное имя
  2. targetDb.SaveAs(tempFileName, DwgVersion.Current);// это строка в конец  транзакции записи
  3. // заменяем файлы после закрытия транзакции
  4. File.Copy(tempFileName, item.FullName, true);
  5. File.Delete(tempFileName);
  6.  

Спасибо автору  Андрей Бушман приложения и Александр Ривилис за пересборку.
Вопрос закрыт.

Оффлайн Alexsandr_13

  • ADN OPEN
  • Сообщений: 7
  • Карма: 0
Здравствуйте. А эту программу можно скомпилировать под AutoCAD 2018 x64. Пробовал запускать из архива BlockSync.zip. Запускается, но после выбора параметров и запуска на исполнение выдает ошибку...


Отмечено как Решение Александр Ривилис 20-09-2019, 12:09:29

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Alexsandr_13,
Попробуй этот вариант. Я его не тестировал. Только внёс правки, которые подсказал I_stiv и перекомпилировал для AutoCAD 2018 x64.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Alexsandr_13

  • ADN OPEN
  • Сообщений: 7
  • Карма: 0
Александр Ривилис спасибо большое. Работает замечательно.