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:– такая простая утилита, а столько текста
+ Благодарностей: 7

Вират Лакх

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Д модель или Чертеж по выделенной позиции в спецификации - слева в панели свойств/параметров

sishon

#14
Цитата: KrissKross от 05.12.22, 17:06:53Странно - только что проверил
связь 3Д модель - Чертеж = работает в обе стороны

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

по Спецификации
вроде уже в 18 версии Компаса и появилась возможность открывать 3Д модель или Чертеж по выделенной позиции в спецификации - слева в панели свойств/параметров
А без создания свойства, по чтению свойств модели нельзя первый раз открывать чертеж?
И еще косяк, если я копирую макросом деталь и ее чертеж, то это свойство копируется на старую модель, но это скорее косяк макроса копирования, но всё же, нельзя использовать не стандартную привязку компаса? видимо ваш мод создавался очень давно

sishon

Как удалить связь между неправильной привязкой чертежа к модели? Методом тыка, нужно открыть правильный чертеж/модель и от туда запустить openlink