OpenLink – открытие связанных файлов – 3Д-Моделей и Чертежа

Автор KrissKross, 13.10.18, 13:16:48

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

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

KrissKross

OpenLink – утилита предназначена для открытия связанных файлов – 3Д-Моделей и Чертежей

Как работает:

Если текущая вкладка – Чертеж:

  • Ищет первую ссылку на 3Д-Модель
  • Открывает 3Д-Модель
  • В 3Д-модели – Создаёт/Обновляет Свойства
    • Прописывает полный путь к Чертежу в свойство – DrawingLink
    • Формат листов чертежа в свойство –
      • Для Компас версии 18 – Форматы листов документа
        (Появилось такое замечательное свойство в крайней версии, которое участвует в создании спецификации – базовыми средствами Компаса)
      • Для Компас версии ниже 18 – DrawingFormat
        (Может кому пригодится, например, при создании Отчета)

Если текущая вкладка – 3Д-Модель (Деталь или Сборка)
  • Ищет свойство – DrawingLink
    • Если находит – открывает файл Чертежа
    • Если нет – появится – Диалог выбора файла чертежа
      • В 3Д-модели – Создаёт/Обновляет Свойство – DrawingLink
      • Примечание:
        Свойство - Форматы листов документа / DrawingFormat – не обновляется, (дабы избежать моргания вкладок, при переключении туда-сюда)
      • Открывает файл Чертежа

В планах – реализовать:
  • В Сборке открывать – Чертежи для всех выделенных компонентов:
  • Утилита/помощник – CreateLinkToFolder
    • Выбираем папку с проектом
    • открываются все Чертежи в выбранной папке
    • для связанных 3Д-Моделей создаются/заполняются свойства – DrawingLink и Форматы листов документа / DrawingFormat

Тестирование:
Компас v.18 и 17 (должно пойти и на более ранних версиях)
.Net Framework 4.6.1

Особенности работы:
•   Всплывающее окно с сообщениями – само закрывается через 3 сек – можно не нажимать Ок
•   Если у Вас вдруг используются в 3Д-Модели Свойства DrawingLink и DrawingFormat – значения будут перезаписаны

Надеюсь,
что возможности OpenLink будут реализованы в базовом функционале Компас-3Д

Уф   :o:– такая простая утилита, а столько текста
+ Благодарностей: 6

Вират Лакх

0) Интересная штукенция. Спасибо. Аскону брать с Вас пример. А теперь буду рвать и плющить :)

ЦитироватьИщет первую ссылку на 3Д-Модель
1) Предлагаю искать не первую, а которая активная / главная в основной надписи.

ЦитироватьОткрывает 3Д-Модель
2) Когда модель уже открыта, "переключается" на нее медленнее, чем вручную на вкладку переключиться.

ЦитироватьВ 3Д-модели – Создаёт/Обновляет Свойства
3) Когда обновляет свойства в модели:
а) если старое значение свойства равно новому, то обновлять не нужно. Иначе из-за этого при закрытии модели компас просит сохранить файл. А чего его сохранять и задавать лишние вопросы, когда ничего не изменилось.
б) если открывает с диска (не переключается на открытую вкладку) модель и создает или всё-таки обновляет, то можно после этого сразу сохранить файл, чтобы компас опять-таки не просил сохранить файл. Работа программы должна быть максимум незаметной.
в) по возвращении в чертеж, компас просит перестроить модель (не всегда), не перечеркивая геометрию. Тоже нужно что-то с этим порешать. Отчасти это уйдет после пункта (а).

ЦитироватьДля Компас версии ниже 18 – DrawingFormat
4) A2@4~3 - так записывает кратные форматы. Может через английский "x" лучше?

5) Для сборок и подсборок может создавать свойство типа SpcFormat? То бишь на чем оформлена спецификация. Для случаев, когда её располагают на листе чертежа, например, формата А3. В 18-й версии "Форматы листов документа" какого документа: чертежа или спецификации?

6) Для любителей спецификацию ставить в cdw можно научиться их друг от друга отделять, чтобы в свойствах было правильно. А то в обоих свойствах будут перечислены все форматы. У меня есть кое-какой опыт в этом, можем, если есть желание дописать это. Можно варианты работы программы вместо настроек сделать как параметры при запуске.

7) Форматы он по-простому перечисляет, т.е. два раза может написать А4. Может стоит обработку ввести с сортировкой по ГОСТ? Тоже есть алгоритм.

ЦитироватьЕсли нет – появится – Диалог выбора файла чертежа
8) Про выбор чертежа:
а) долго открывает окно выбора файла.
б) у появившегося окна в задвигалке надо бы написать не "Чертежи Компас-3Д" (к тому же с русской Д), а как у компаса "КОМПАС-Чертежи (*.cdw)"

9) Если в DrawingLink неправильный путь указан, то можно тоже вызывать окно для указания правильного пути.

Уф! Такая простая утилита, а столько замечаний :)
+ Благодарностей: 3

Вират Лакх

#2
10) Ахтунг! При добавлении этой программы в утилиты компаса v16.1 и на пользовательскую панель инструментов при последующем запуске он падает! Помогает только замена KOMPAS.dsk на резервную копию или сброс настроек.
Ложная тревога :shu:
+ Благодарностей: 1

ТрындецЪ

Цитата: Вират Лакх от 15.10.18, 05:55:45
10) Ахтунг! При добавлении этой программы в утилиты компаса v16.1 и на пользовательскую панель инструментов при последующем запуске он падает! Помогает только замена KOMPAS.dsk на резервную копию или сброс настроек.
Не думаю, что это в программе дело. Я вот тоже накакой макрос десятой утилитой не могу добавить. Компас вылетает. Попробуй на стандартном профиле добавить для чистоты эксперимента.

Вират Лакх

У меня сейчас калькулятор, комплектовщик, которые были изначально, + 8 макросов. Итого 10, больше он не разрешил. Работает. Интересное ограничение, конечно. Может это зависит от exe или pyw, а может и не зависит... Будем считать, что дело не в программе, а в компасе.
+ Благодарностей: 1

KrissKross

И так есть рабочая версия, теперь будем улучшать с учетом замечаний/предложений.
Цитировать1) Предлагаю искать не первую, а которая активная / главная в основной надписи.
Проверил – Компас таки берет значения из первого вставленного источника
Цитировать2) Когда модель уже открыта, "переключается" на нее медленнее, чем вручную на вкладку переключиться.
Введу проверку на наличие на вкладках, затем открыть с диска
Цитироватьесли старое значение свойства равно новому, то обновлять не нужно. Иначе из-за этого при закрытии модели компас просит сохранить файл. А чего его сохранять и задавать лишние вопросы, когда ничего не изменилось.
Верное предложение – добавлю проверку
Цитироватьесли открывает с диска (не переключается на открытую вкладку) модель и создает или всё-таки обновляет, то можно после этого сразу сохранить файл, чтобы компас опять-таки не просил сохранить файл. Работа программы должна быть максимум незаметной.
Тут думал, но пришел к выводу,что пользователь сам решает сохранять или нет
Цитировать4) A2@4~3 - так записывает кратные форматы. Может через английский "x" лучше?
Согласен – для DrawingFormat  введу обозначение в читаем форме, но русскую – х
Цитировать5) Для сборок и подсборок может создавать свойство типа SpcFormat? То бишь на чем оформлена спецификация. Для случаев, когда её располагают на листе чертежа, например, формата А3.
SpcFormat – введу
Алгоритм следующий:
Если ссылается на *.a3d (3Д-Сборка)
Проверяем спецификацию на листе, если
Да   SpcFormat = формат первого листа чертежа
Нет SpcFormat = А4,
и тут неопределенность – если Сборочный чертеж многолистовой со спецификацией на листе – какой формат писать в SpcFormat
ЦитироватьВ 18-й версии "Форматы листов документа" какого документа: чертежа или спецификации?
Документации нет, но скорее всего – чертежа
Цитировать6) Для любителей спецификацию ставить в cdw можно научиться их друг от друга отделять, чтобы в свойствах было правильно. А то в обоих свойствах будут перечислены все форматы. У меня есть кое-какой опыт в этом, можем, если есть желание дописать это. Можно варианты работы программы вместо настроек сделать как параметры при запуске.
Тут не совсем понятно, если Спецификация – оформлена в формате cdw, значит она не имеет ссылок на 3Д-модель, поэтому и открывать нечего
Цитировать7) Форматы он по-простому перечисляет, т.е. два раза может написать А4. Может стоит обработку ввести с сортировкой по ГОСТ? Тоже есть алгоритм.
Интересно посмотреть, но только в отдельной теме – там все обсудим
Цитировать8) Про выбор чертежа:
а) долго открывает окно выбора файла.
Подумаю, как ускорить – может создавать Диалог в фоне – затем показывать
Цитироватьб) у появившегося окна в задвигалке надо бы написать не "Чертежи Компас-3Д" (к тому же с русской Д), а как у компаса "КОМПАС-Чертежи (*.cdw)"
:)
Цитировать9) Если в DrawingLink неправильный путь указан, то можно тоже вызывать окно для указания правильного пути.
Да, добавлю проверку, на существование файла

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

Вират Лакх

1) да, берет. Но надо брать то, что главное в штампе.
3б) может измените решение? ) Попробуйте так и сяк. Кажется, лучше сохранять. Это не напрягает комп вроде.
3в) проверим после второго релиза.
5) кажись, по ЕСКД надо сп располагать на первом листе (это же спецификация в первую очередь). Поэтому можно считать, что все равно первого листа.
6) имеет ссылки. Это натуральная Спецификация с привязанными моделями. Та же сп на листе, только в рамке на отдельном листе.
8) в фоне - это крайняя мера. На питоне даже вроде не тормозит, а у вас как-то не то...
+ Благодарностей: 1

KrissKross

OpenLink-v.2
Что изменилось:
1.   При открытии файла, документ сначала ищется во вкладках, если не находит, открывается с диска.
2.   При присвоении значения свойства, введена проверка на изменение значения.
Если значение свойства не изменилось – значение не перезаписывается.
3.   Значение свойства DrawingFormat – записывается через «х», если кратность формата больше 1, например – А4х3.
4.   Для Сборочных чертежей (признак – наличие ссылки на 3Д-Сборку (расширение файла *.a3d)) – в 3Д-Сборке создается свойство SpcFormat
     a.   Значение (по умолчанию) = А4
     b.   При наличии Спецификации на листе = Формат первого листа чертежа
+ Благодарностей: 5

Вират Лакх

#8
1) Вы со мной не согласны на счет основной надписи? Не пойму ваше мнение. Если что, можно сделать варианты работы программы через указание параметра при запуске как в программе PDF-конвертере в соседней ветке.
2) получше переключение стало, но до оригинала не дотягивает. Скорее всего тут уходит время на запуск программы, подключение к компасу и так далее. Вряд ли можно улучшить. Спасибо. Это реализовано как для пути чертеж -> модель, так и в обратном направлении?
3) а) реализовано. спасибо.
б) если не согласны, то тоже предлагаю как параметр указывать.
в) что бы такого сделать, чтобы при изменении свойства в модели чертеж не просил перестраиваться? по ходу никак, кроме отключения у компаса запросов... заманал. надо будет как-нибудь раскрыть тему отключения ненужных запросов.
4) спасибо.
5) сделано. благодарю.
6) отдельная тема, потом как-нибудь.
7) не забудем сделать.
8) Как это можно делать в фоне, если программа запускается и сразу выполняет это действие?
9) сделано, спасибо.
10) См. картинки.
11) На кнопке можно попробовать сделать обратный отчет до закрытия в секундах.
12) Если чертеж не сохранен, то предлагаю не просто ругаться, а вызвать окно сохранения (по принципу "критикуешь - предлагай"). Если есть ссылка на модель, программа же может его открыть. С открытием модели можно выдать запрос на сохранение чертежа (код тоже есть, если надо). Если сохранит юзер, то прописать в свойство модели. Если нет, то "на нет и суда нет". Надо посмотреть, что быстрее: переключиться и спросить или спросить, а потом переключаться.
13) Предлагаю отдельный раздел нового функционала - это работа со спецификацией и объектами спецификации. Если мы находимся на СП, то открывать его ссылки, а не текущего документа (можно на выбор пользователя). В 16 версии зря сделали, что после открытия модели компас возвращает нас обратно в сп + дойти до кнопки далеко. В новых версиях это переделали по-моему. Там опять же, какая ссылка первая стоит.
14) Более мощная реализация - это создание библиотеки, которая запускается с компасом и подписывается на события. Например, можно в таком случае обновлять формат чертежа в модели при сохранении чертежа. И много еще чего.
upd.
15) Во! Идея! Можно еще хлеще программу сделать. Если геометрия не выделена, то работаем как сейчас. А если есть выделенное, то пытаемся выйти на модель и открываем её (для сборочных чертежей).
5') Может еще технологические сборки учитывать?
+ Благодарностей: 1

KrissKross

Добрый день!
Благодарю за полезные предложения
Мое мнение не перегружать существующую версию, дабы соблюсти грамотный баланс  - простоты/легкости и функционала
С одной стороны: простоты использования и «легкости» запуска
С другой: реализация базового функционала, как говорится 20/80

А для расширения функционала – создать отдельную тему
Где начнем с ТЗ, для структурированного описания необходимых потребностей
И выработаем не противоречащие друг другу требования
Как говорится,
правильно поставленный вопрос (ТЗ) - уже половина ответа
+ Благодарностей: 1

Vin

Цитата: KrissKross от 16.10.18, 09:03:09
Добрый день!
Благодарю за полезные предложения
Мое мнение не перегружать существующую версию, дабы соблюсти грамотный баланс  - простоты/легкости и функционала
С одной стороны: простоты использования и «легкости» запуска
С другой: реализация базового функционала, как говорится 20/80

А для расширения функционала – создать отдельную тему
Где начнем с ТЗ, для структурированного описания необходимых потребностей
И выработаем не противоречащие друг другу требования
Как говорится,
правильно поставленный вопрос (ТЗ) - уже половина ответа

Написание ТЗ коллективом форума приведёт к рождению шедевра, похлеще письма дяди Фёдора.
Тут или пишет один, или автор программы на своё усмотрение принимает решение о принятии того или иного предложения.
+ Благодарностей: 1

Falcon555

#11
А можно как-то иконку программы вытащить в окно Компаса? А еще лучше горячую кнопку на нее назначить.

evgs

У меня в v18.1 открывается только модель по сборочному чертежу. Хотелось бы видеть такую реализацию: открывается по любому из трех документов (модель, сборочный чертеж, спецификация) все недостающие.

KrissKross

Странно - только что проверил
связь 3Д модель - Чертеж = работает в обе стороны

для того чтобы заработала связь
от 3Д модель до -> Чертежа
необходимо сначала открыть Чертеж - на нем запустить утилиту OpenLink
произойдет следующее
откроется 3Д модель и в первый раз будет создано свойство DrawingLink, в котором будет содержится ссылка на Чертеж
в дальнейшем это свойство создаваться не будет и будет использования для чтения и открытия файла Чертежа

по Спецификации
вроде уже в 18 версии Компаса и появилась возможность открывать 3Д модель или Чертеж по выделенной позиции в спецификации - слева в панели свойств/параметров