Onizuka

Библиотека автоматизации в CREO на JSON - CREOSON (OpenSource)

34 posts in this topic

Компания Simplified Logic, Inc. выступила с инициативой создания открытой библиотеки инструментов для автоматизации Creo с помощью языка запросов JSON. Те в Creo можно отправлять запрос в виде JSON данных и получать некий ответ. Таким образом можно запрограммировать какой-нибудь алгоритм обработки полученных данных или управлять Creo, отправляя ему команды через JSON. Теоретически можно использовать любой язык программирования для формирования запросов и обработки полученных ответов от Creo.

 

https://community.ptc.com/t5/Additional-Creo-Questions/CREOSON-v2-0-OpenSource-Automation-Official-Release/m-p/477858

 

http://www.creoson.com/

 

На оф. странице есть видео с небольшой демонстрацией.

Share this post


Link to post
Share on other sites


2 часа назад, Onizuka сказал:

Те в Creo можно отправлять запрос в виде JSON данных и получать некий ответ.

Мне, как пользователю, нифига не понятно.

Share this post


Link to post
Share on other sites

очень инетерсная идея!

вот бы еще ссылочку на документацию по параметрам самих json-запросов...

 

 

 

Share this post


Link to post
Share on other sites
В 25.09.2017 в 09:20, Onizuka сказал:

Те в Creo можно отправлять запрос в виде JSON данных и получать некий ответ.

 

В 25.09.2017 в 11:32, Ветерок сказал:

Мне, как пользователю, нифига не понятно.

Напоминает запуск спутников к "неизведанному" с записью послания для кого-то... А потом, через некоторое время, ловя разные фоны далеких планет, думать, что это и есть некий ответ от тех, для кого когда-то было запущенно к "неизведанному"... Причем абсолютно не понимая, что же это за "шумы"!

Share this post


Link to post
Share on other sites

ID: 5   Posted (edited)

В 26.09.2017 в 03:47, vladimir_ сказал:

очень инетерсная идея!

вот бы еще ссылочку на документацию по параметрам самих json-запросов...

 

 

 

Необходимо скачать дистрибутив CreosonServer-2.0.0-win64.zip. Запустить установку. После установки в окне программы будет активна кнопка "Open Documentation".

 

img-2017-09-27-09-59-28.thumb.png.b7cfcdba9a112fa9fc88b8c5a1f8bf41.png

 

Edited by Onizuka

Share this post


Link to post
Share on other sites

спасибо! 

я смотрел на github исходники проекта -- там есть только один creoson_source_doc.pdf

наверное это и есть та документация, которая "должан быть доступна после установки"

но там по поводу параметров ниче не сказано, в основном как среду настроить

Share this post


Link to post
Share on other sites
В 25.09.2017 в 13:32, Ветерок сказал:

Мне, как пользователю, нифига не понятно.

Записал небольшое видео. Используется демонстрационный пример подключения к Creo через web-страничку. Открытие модели. Поиск параметра модели по имени.

https://cloud.mail.ru/public/CD6d/kAqcGsaWd

 

ps: сразу выяснилось, что кириллицу не понимает (имена параметров, значения параметров). Надо разобраться как об этом сообщить разработчикам....

Share this post


Link to post
Share on other sites
4 часа назад, Onizuka сказал:

Поиск параметра модели по имени.

Опять не понял. Зачем для этого лезть в интернет, когда всё можно найти в самой модели штатными средствами? Зачем эти костыли здоровому? Чтобы собирать информацию для спецслужб?

В 25.09.2017 в 09:20, Onizuka сказал:

можно отправлять запрос в виде JSON данных и получать некий ответ

КОМУ отправлять запрос? КТО будет отвечать на этот запрос?

 

Программисты сами себе придумывают задачи и сами их решают через одно место.

Share this post


Link to post
Share on other sites

@Ветерок  я как то был на конференции у Autodesk, там разработчики в одном из докладов презентовали какую-то новую фичу, и очень долго и подробно о ней рассказывали. Потом кто-то из инженеров пользователей спросил а зачем все таки нам это нужно? Разработчики сказали что не знают:smile:, их задача была показать какой есть функционал, а как вам его использовать придумайте сами. 

В данном случае, насколько я понял,  основная задача это снижение требований к человеку, который пытается решить задачи автоматизации с продуктами Creo, так как через CREOSON можно использовать любой язык программирования, а не только те которые поддерживают продукты Creo.

@Onizuka а обратного эффекта можно добиться? тоесть изменить параметр в Creo из стороннего приложения?

Share this post


Link to post
Share on other sites
42 минуты назад, kcin сказал:

из стороннего приложения

Из потустороннего...

Share this post


Link to post
Share on other sites
1 час назад, kcin сказал:

 

@Onizuka а обратного эффекта можно добиться? то есть изменить параметр в Creo из стороннего приложения?

Да, такая функция есть. Также можно скопировать, удалить параметр.

img-2017-09-27-15-54-31.thumb.png.17997d98de4fe431035417cc8c066a0f.png

Share this post


Link to post
Share on other sites
16 минут назад, Onizuka сказал:

Также можно скопировать, удалить параметр.

Это всё только для работы с параметрами?

Не забываем про ModelCheck.

Share this post


Link to post
Share on other sites
23 часа назад, Ветерок сказал:

Это всё только для работы с параметрами?

Не забываем про ModelCheck.

Не только. Это только малая часть функций.

 

По поводу ModelCheck... Вот один из вариантов применения библиотеки: прочитать из модели параметр ОБОЗНАЧЕНИЕ. Проверить по шаблону/алгоритму правильность заполнения. Например, отсутствие кириллицы, соответствие шаблону ДТ-XXX.XXX.XX. Если значение параметра ОБОЗНАЧЕНИЕ не соответствует заданным требованиям, то выводить сообщение и/или запретить Сдачу на хранение такой модели.

 

Не уверен что ModelCheсk имеет возможность так глубоко анализировать значение параметра. Кроме как проверить наличие параметра, не равен ли он пустой строке или равен конкретному значению - сложнее проверить ничего не получится.

Share this post


Link to post
Share on other sites

@Onizuka

а можете поподробнее видео записать? Управлять параметрами сразу всех моделей в сборке можно?

проверка пусто ли значение параметра вроде не сложно - простое условие, разве не так?

Share this post


Link to post
Share on other sites
В 28.09.2017 в 16:44, Onizuka сказал:

Проверить по шаблону/алгоритму правильность заполнения. Например, отсутствие кириллицы, соответствие шаблону ДТ-XXX.XXX.XX. Если значение параметра ОБОЗНАЧЕНИЕ не соответствует заданным требованиям, то выводить сообщение и/или запретить Сдачу на хранение такой модели.

 

В типах и атрибутах Windchill есть возможность ограничения параметра по регулярному выражению.

Share this post


Link to post
Share on other sites

@alex_red  а в Excel можно графики строить

Share this post


Link to post
Share on other sites

ID: 17   Posted (edited)

В 28.09.2017 в 21:06, Angels.Lexx сказал:

@Onizuka

а можете поподробнее видео записать? Управлять параметрами сразу всех моделей в сборке можно?

проверка пусто ли значение параметра вроде не сложно - простое условие, разве не так?

Управлять параметрами всех моделей возможно. Так как это библиотека программирования, то чтобы показать какой-то более подробный пример, нужно писать программу. Пока на это нет времени.

Задача сводится к тому, что необходимо получить список всех моделей, входящих в сборку и проверить у каждой параметры.

 

PS: ошибку с не понимаем кириллицы в параметрах разработчики исправили.

Edited by Onizuka

Share this post


Link to post
Share on other sites

Нашел функцию для получения списка (иерархию) компонентов, которые входят в сборку

bom : get_paths

Пример запроса

{
  "sessionId": "~sessionId~",
  "command": "bom",
  "function": "get_paths",
  "data": {
    "file": "plate_assy.asm"
  }
}

Ответ от Creo

{
  "status": {
    "error": false
  },
  "data": {
    "file": "plate_assy.asm",
    "generic": "base_assy",
    "children": {
      "file": "plate_assy.asm",
      "seq_path": "root",
      "children": [
        {
          "file": "bracket.prt",
          "seq_path": "root.1"
        },
        {
          "file": "bracket-2.prt",
          "seq_path": "root.2"
        },
        {
          "file": "plate_sub.asm",
          "seq_path": "root.3",
          "children": [
            {
              "file": "bracket.prt",
              "seq_path": "root.3.1"
            },
            {
              "file": "nut.prt",
              "seq_path": "root.3.2"
            }
          ]
        },
        {
          "file": "no_solid.prt",
          "seq_path": "root.4"
        },
        {
          "file": "short<screw>.prt",
          "seq_path": "root.5"
        }
      ]
    }
  }
}

Ну а дальше, зная имена входящих моделей извлекать из них параметры с помощью функции

parameter : list

1 person likes this

Share this post


Link to post
Share on other sites
2 часа назад, Onizuka сказал:

Нашел функцию для получения списка (иерархию) компонентов, которые входят в сборку

 

Ну а дальше, зная имена входящих моделей извлекать из них параметры с помощью функции

parameter : list

спасибо огромное, пойду установлю инструмент, буду экспериментировать

Share this post


Link to post
Share on other sites

для экспериментаторов:

очень похоже, что перечень всех констант (названий функций) описан тут https://github.com/SimplifiedLogic/creoson/tree/master/creoson-json-const/src/com/simplifiedlogic/nitro/jshell/json/request

 

например, функция bom:get_paths объявлена в https://github.com/SimplifiedLogic/creoson/blob/master/creoson-json-const/src/com/simplifiedlogic/nitro/jshell/json/request/JLBomRequestParams.java

 

 

 

1 person likes this

Share this post


Link to post
Share on other sites

ID: 21   Posted (edited)

Дык полный путь к детали он так и не выдаёт, так себе игрушка, не сильнее  моделчека имхо. Для конструктора бесполезна, может только нужна для оптимизации и передачи дальше в виндчил. А так пока не понимаю вкусностей для конструктора.

Edited by Naz

Share this post


Link to post
Share on other sites

Я подобное предлагал ДАССО сделать в Катии на телеконференции с их СЕО. Но они больше интересовались, как работают мои разработки.

 

Смысл идеи был в том, чтобы расширить скриптовые языки, добавив Pithon и/ли Matlab, расширить набор параметров и функций, доступных через API (сейчас, вроде, объекты ICEM недоступны) и иметь возможность запустить сценарий на простом языке как внутри, так и извне, чтобы заставить катию работать автономно, без участия человека.

 

Пример. Вам известно, как проектируется (к примеру) гидроцилиндр. Вы создаете библиотеки компонентов к нему в виде параметрических шаблонов и классов. Добавляете каталоги уплотнений. Потом пишите сценарий VB (или иной язык) прямо в сборке катии типа:

 

1. SET ГЦ-80х40х200х11ШС30 extract ГЦ.parameters (Рабочий ход 200, диаметр штока 40, диаметр ГС=80) get крышка.уплотнения.каталог... Расчетная длина крышки.compute.

2. Configure поршень.2SNX+2HPW, Расчетная длина поршня.compute...

3. GET ШС50.проушина GET ШС50.дно

4. SET межцентровое=350, find solution on ГЦ-80х40х200х11ШС30

5. on error "вылет недопустимый" optimize (крышка;поршень)

6. write "отчет оптимизации" D:\.....

7. Update product.

8. Update drawings.

 

Для подобного вы могли бы создавать свои параметры, классы, процедуры (кстати, это и сейчас в некотором роде возможно) и коротким макросом на понятном языке получать модели и чертежи на уже готовый продукт, а также оптимизировать его и искать возможные решения.

 

Сейчас я могу создать такую процедуру полностью в виде сценария VB, но слишком много гемора с созданием шаблонов, которые я не могу классифицировать как хотел бы и создавать ПРОСТЫЕ макросы по созданию конечного продукта.

 

Creo с помощью языка запросов JSON можно будет программировать на исполнение нужных вам задач, если, конечно, его набор функций будет достаточен для этого. Правда, не знаю, насколько прост этот язык запросов будет для юзера.

 

Вот возможная суть того, что хотят автоматизировать. Аналогично можно будет создавать макросы анализа и поиска решений через оптимизацию по заданным критериям.

 

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

 

Будет эдакий язык конфигураторов на человеческом языке (я надеюсь)...

1 person likes this

Share this post


Link to post
Share on other sites

ID: 25   Posted (edited)

On 10/4/2017 at 10:37 PM, Ветерок said:

Очередной перл бездумной демагогии в картинках.

On 9/1/2017 at 0:34 AM, Ветерок said:

Это что? Секс по телефону?

On 8/25/2017 at 6:45 PM, Ветерок said:

Вы можете сформулировать конечную цель всей этой начерталки, а не ваши телодвижения?

On 8/25/2017 at 5:40 PM, Ветерок said:

Что имеется в виду? Как-то слишком витиевато.

 

Всё. Сломал мозг, пытаясь представить.

Edited by piden
2 people like this

Share this post


Link to post
Share on other sites

@vladimir_ спасибо

 

@Naz хочу запрос чтобы позиции компонентам назначал сам, а то ручками все делаю, а покупать готовое руководство не собирается

Share this post


Link to post
Share on other sites
1 час назад, Angels.Lexx сказал:

чтобы позиции компонентам назначал сам

Кто "сам"? Крео сам или ты сам? Крео и так сам всё делает штатными средствами.

Share this post


Link to post
Share on other sites

@Ветерок штатными - это моими ручками?

 

алгоритм - получить список компонентов сборки, загрузить указанные параметры, отсортировать, создать параметры всех компонентов в сборке

какие штатные средства Крео позволяют это автоматизировать?

 

Share this post


Link to post
Share on other sites
1 час назад, Angels.Lexx сказал:

какие штатные средства Крео позволяют это автоматизировать?

Таблицы и гибкие области данных.

Share this post


Link to post
Share on other sites
Только что, Ветерок сказал:

Таблицы и гибкие области данных.

один минус - на rpt.index нельзя сослаться в тт, остаются параметры, которые приходиться вбивать ручками

еще идеи?

Share this post


Link to post
Share on other sites

Навскидку - создать обычный параметр, в который будет писаться номер позиции. Ссылаться на этот параметр. Думаю, возможно. Как конкретно сделать сходу не скажу.

Share this post


Link to post
Share on other sites

собственно сейчас так и организовано

Только что, Ветерок сказал:

Ссылаться на этот параметр. Думаю, возможно. Как конкретно сделать сходу не скажу.

как конкретно уже много раз описывалось в известной теме

 

вопрос остается открытым

10 часов назад, Angels.Lexx сказал:

хочу запрос чтобы позиции компонентам назначал сам, а то ручками все делаю, а покупать готовое руководство не собирается

 

Share this post


Link to post
Share on other sites

ID: 33   Posted (edited)

Что-то все равно непонятно, зачем нужен JSON, если все равно надо потом данные обрабатывать на языке программирования.

Тогда уж можно сразу на c++ или на чем-нибудь другом писать, не ограничиваясь набором функций.

Edited by Sergey___1978

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • zerganalizer
      Вот же скопище садистов...
    • AJloNsO
      Бабышки разные, можно ли сразу на все мохануть? Или всетаки в каждую тыкать? Если можнокак то, объясните поподробней пожалуйста))  Ах да, обычная фаска по кромке, заусенцы снять
    • Ветерок
      Обязательно столкнетесь. Но смысл этой Вашей фразы так же малопонятен и может быть истолкован двояко, как и многие Ваши высказывания.
    • Kursor
      Нет, я в России. Т.е. это либо самому писать в посте, либо найти файл постпроцессора
    • rusl3
      Сетка дефолтная. Всё из пальца. Всё адекватно бултыхается, на первый взгляд. Бак2.SLDPRT
    • kosstello
      Добрый день! Начал изучать компас V16. Подскажите пожалуйста можно ли создать сечение на уже имеющемся проекционном виде с показом стрелок на основном виде?
    • Bully
    • vasillevich68
      так я Вас не критиковал, я же подчеркнул     
    • Vladveza
      Мы сейчас задумались о приобретении PLM-APPIUS и просто перестраховываемся, ввиду того что боимся столкнуться с множеством вопросов которые на данный момент у нас не реализованы. Есть ли люди которые работали с данной PLM. Нормальные PDM это хорошо. Мы сейчас работаем с PDM 1С:Предприятие 8.1 (8.1.13.41). Насколько она нормальна и функциональна поймет только тот кто пользовался и другими базами. PDM это только база хранения производственных спецификаций. К ней еще нужны производственно-диспетчерские модули, связь с бухгалтерией и прочее. Это сейчас у нас реализовано, но нужно понять куда двигаться и что считать нормальным. За эти дни многое почитал. Но чтение-увы,  это не работа в базе.  
    • Ветерок
      Вы сейчас ставите частный вопрос для решения какой-то частной задачи. Но только один из вопросов только для одной из задач. Потом возникнут другие задачи и другие вопросы. Может, всё-таки, посмотреть в сторону нормальных PDM, где многие задачи уже решены?