Jump to content

Creopyson


Max999

Recommended Posts

Creopyson - модуль для Python, позволяющий программе, написанной на Python, взаимодействовать с Creo. На мой взгляд, его преимущества для тех, кто "программист не настоящий", следующие:
1. Простая установка, не требующая админских прав на машине. В комплекте с portable версией Python - самое то. Опять же, не требуется регистрация в самом Creo, как при использовании Toolkit.

2. Наличие готовых модулей Python чуть ли не на все случаи жизни. Это расширяет возможности взаимодействия с Creo.

3. Поскольку Python - интерпретатор, разработка быстрых решений про конкретную задачу ("Тяп-ляп, и в продакшн!") значительно упрощается.

Данный модуль - реализация на Python проекта CREOSON

На форуме я нашел следующую информацию:
Установка Creopyson на компьютер.
Примеры скриптов: тут, тут (смотри обсуждение ниже и на следующей странице) и тут.

  • Нравится 1
Link to post
Share on other sites


UnPinned posts
maxx2000

Вот и первое заданье

В Три пятнадцать, возле бани остановится такси

Надо...

Картинка для примера

5.jpg

 

Пусть это будет импортированная многотельная модель в STEP(В CREO обычно импортируется как сборка) или многотельная деталь изначально построенная в CREO. 

 

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

"Этих команд я не знаю и никогда не юзал."@Dimetil Gidrozin (С)

"Солид это не геометрия и не тригонометрия и не алгебра это программа объёмного моделирования. возьми свою геометрию и дай мне 3-D модель развертки для станка.@Dimetil Gidrozin(С)

"Я децилион лет работаю в солиде но ни разу не читал стандартной чуши про настройки)) вообще не шарю в настройках)) короче это бред))" @Dimetil Gidrozin Dnepr (С)

"Много волшебных крутилок-перделок как в Power mill. Именно в этом и заключается комфорт работы и предупреждение ошибок в УП." @vik300001 (C)

"В случае одной координаты достаточно одного пальца - среднего@Ветерок (С)

"Пробовал померить силу показывает какие-то ньютоны." @Engineering(С)

"Это только в интернетах некоторые персонажи все умеют и знают, а на деле у них тупняк и нытье начинается." @lem_on(С)

Link to post
Share on other sites
maxx2000

@davidovka Задание да, но не задача :pardon:

  • Нравится 1

"Этих команд я не знаю и никогда не юзал."@Dimetil Gidrozin (С)

"Солид это не геометрия и не тригонометрия и не алгебра это программа объёмного моделирования. возьми свою геометрию и дай мне 3-D модель развертки для станка.@Dimetil Gidrozin(С)

"Я децилион лет работаю в солиде но ни разу не читал стандартной чуши про настройки)) вообще не шарю в настройках)) короче это бред))" @Dimetil Gidrozin Dnepr (С)

"Много волшебных крутилок-перделок как в Power mill. Именно в этом и заключается комфорт работы и предупреждение ошибок в УП." @vik300001 (C)

"В случае одной координаты достаточно одного пальца - среднего@Ветерок (С)

"Пробовал померить силу показывает какие-то ньютоны." @Engineering(С)

"Это только в интернетах некоторые персонажи все умеют и знают, а на деле у них тупняк и нытье начинается." @lem_on(С)

Link to post
Share on other sites

Немного наблюдений.
1. CREOSON Server не любит сбоев при работе скриптов и в этом случае часто зависает. Рекомендую при отладке в случае сбоев его перезапускать.

2. Не нравится мне штатная функция запуска Creo start_creo. Она требует создания bat-файла, который, в свою очередь, запускает PSF-файл. Формат последнего в свободном доступе найти не удалось, а мне нужно запустить Creo со своим config.pro. К тому же лично у меня Creo с этого батника просто отказался запускаться. Потому по-быстрому родил свой вариант данной функции, который запускает Creo с помощью того же ярлыка, что и при ручном запуске:

# my_launcher_Creo.py
# Поместить в <...Каталог с Python>\Lib\site-packages
import subprocess, psutil, time

# Путь для запуска Creo. Замените на свой
path_launch_Creo = r'C:\Users\...\Desktop\Creo5.lnk'

# Время на инициализацию Creo
timer = 20

# Поиск указанного процесса в "Диспетчере задач"
def search_programm(Name):
    while True:
        for process in psutil.process_iter():
            if (process.name() == Name):
                print(Name + " is launch!")
                return
        time.sleep(1)
        
# Основная программа.
def launch_Creo():
    print("Starting Creo...")
    subprocess.Popen(['start', path_launch_Creo], shell = True)
    search_programm('parametric.exe')
    print("Wait" + str(timer) + " sec...")
    time.sleep(timer)

Использование в пользовательских скриптах:
 

...
from my_launcher_Creo import launch_Creo
...
if (c.is_creo_running() == False):
    c.disconnect()
    launch_Creo()
    c.connect()

Функция, впрочем, требует доработки, поскольку 20 секунд для запуска Creo может оказаться мало.
3. Функции работы с размерами типа dimension_... , похоже, работают лишь с размерами модели, но не чертежа. Последние я смог лишь просмотреть функцией dimension_list, но и только.

Link to post
Share on other sites

интересно а что хочется с делать с помощью этой приблуды?

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

запустить Creo со своим config.pro

и в чем проблема? Создается иконка запуска Крео, в которой указывается рабочая пака с нужным конфигом, и Крео запускается с этим конфигом.

Link to post
Share on other sites
19.01.2025 в 13:52, Maik812 сказал:

интересно а что хочется с делать с помощью этой приблуды?

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

 

19.01.2025 в 15:26, Ветерок сказал:

и в чем проблема? Создается иконка запуска Крео, в которой указывается рабочая пака с нужным конфигом, и Крео запускается с этим конфигом.

Так я и сделал. Штатная функция работает по-иному. 

Link to post
Share on other sites
  • 10 months later...
Когда-нибудь я стану гуру

Решил поделиться своим опытом с creopyson. Так как я полный 0 в программировании, в написании кода мне помогала нейросеть. Задавая ей правильно запросы и прикладывая описание функции, получалось все довольно круто.
Изначально нужно было сделать простой скрипт, который позволит добавлять ревизию крео в имя при экспорте в step\igs. Вполне получилось. 
Далее пошли скрипты для изменения масштаба в чертеже (так как почему-то макрос не работает), изменение форматки (через проверку условия).
Так же скрипт на формирование имени с кол-вом, материалом и толщиной.

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

  • Создание эксель таблицы по сборке, с нужными параметрами (например кол-во в сборке, толщина, материал и так далее)
  • Массовый экспорт из сборки деталей по выбранному значению параметра
  • Массовый экспорт всех чертежей в pdf
  • Массовая замена материалов
  • Массовое добавление параметров в детали сборки\изменение значений
  • Отчет по сборке(кол-во деталей, крепежа, колв-во деталей по параметрам (например по методу изготовления)
  • Чистка папки проекта от библиотечных деталей и чистка итераций (последнее всеми известный Spurge)


Так что довольно полезная вещь


 

Edited by Когда-нибудь я стану гуру
Исправления.
Link to post
Share on other sites
davidovka

Классно!

Есть штука чуть сложнее, но с гораздо большими возможностями: Web.Link (как его часть, есть еще creojs (Common Files/app/creojs/creojsweb/creo_js_tests.html, и там script_engine_testing), открывать в браузере Крео.)

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

Минусы: сложнее в написании (ии не пробовал использовать)

 

По сути это страница в браузере, т.е. легко рисовать UI (тут ИИ точно справится): всякие таблицы, списки, сортировки.

Link to post
Share on other sites
Когда-нибудь я стану гуру
35 минут назад, davidovka сказал:

Web.Link (как его часть, есть еще creojs

Я изначально пробовал работать напрямую с api creo, но у меня не получилось нормально установить\взаимодействовать на C и на js. Почему - непонятно.  Хотя принцип работы creopyson - посылать через сервер creoson json запросы. И так оно работает) 

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

 

Link to post
Share on other sites
davidovka
13 минут назад, Когда-нибудь я стану гуру сказал:

у меня не получилось нормально

попробуй ту ссылку из моего сообщения выше. 

С/С++ и js - это надо компилировать, это еще большая сложность. То что я описывал - работает без компиляции, как creopyson

И там с десяток простых примеров, для проверки работоспособности

Edited by davidovka
Link to post
Share on other sites
Когда-нибудь я стану гуру
5 минут назад, davidovka сказал:

компилировать

Ну компиляция не особо проблема. Свою программку я компилирую как раз таки. IDE одной строчкой собирает мне все в один экзешник. 

данного расположения у меня нет
есть по отдельности creojs и weblink
в последнем есть примеры скриптов js. надо будет глянуть. Благодарю!

Link to post
Share on other sites
davidovka
2 минуты назад, Когда-нибудь я стану гуру сказал:

данного расположения у меня нет

попробовать установку заново запустить и поставить нужную галочку :)

Link to post
Share on other sites
davidovka
16 минут назад, Когда-нибудь я стану гуру сказал:

у меня

creo.PNG

 должно быть..

  • Нравится 1
Link to post
Share on other sites
Когда-нибудь я стану гуру
3 часа назад, davidovka сказал:

 должно быть..

фанфакт: на рабочем 11.0.6.0 - данных файлов нет
на домашнем 11.0.3.0 - файлы есть) Буду изучать, спасибо!

Link to post
Share on other sites
Когда-нибудь я стану гуру
15.12.2025 в 13:05, davidovka сказал:

Web.Link (как его часть, есть еще creojs

Еще не начинал разбираться но сразу такой вопрос задам: может ли данный модуль напрямую взаимодействовать с файлами на пк? 
Была такая проблема: creopyson не ел русский при сохранении. Через питон это решалось тем, что файл сохраняется через creopyson с временным названием, а затем файл просто переименовывается обратно как и был. 
 

Link to post
Share on other sites
davidovka
1 час назад, Когда-нибудь я стану гуру сказал:

creopyson не ел русский при сохранении

Такого не замечал. Есть подробности?

1 час назад, Когда-нибудь я стану гуру сказал:

напрямую взаимодействовать с файлами на пк

С этим скорее чего через костыли, так как работа через браузер. Я не сильно вникал, так как использую Toolkit C++, таких проблем не возникает.

Link to post
Share on other sites
Когда-нибудь я стану гуру
31 минуту назад, davidovka сказал:

Такого не замечал. Есть подробности?

2 часа назад, Когда-нибудь я стану гуру сказал:

Если точнее - при экспорте. (Забыл уже) )
Перепроверил file_rename и file_save - работает.
 

import creopyson

c = creopyson.Client()
c.connect()

c.interface_export_file(
    file_type='STEP',
    filename='имя'
)
import creopyson

c = creopyson.Client()
c.connect()

c.interface_export_file(
    file_type='STEP',
    filename='имя'
)

 



image.png

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.

×
×
  • Create New...