Приветствую.
Глобальная задача: задать параметры цепной передачи, чтобы "К" построил неразрывную цепь с провисанием.
Локальная задача: задать длину и количество хорд, которые должны поместиться на цепной линии на заданном интервале, чтобы программа подсчитала коэффициент "а" цепной линии, заданной функцией f(x)=a*ch(x/a).
Определённый алгоритм вычисления уже представляю. Но в программировании "ноль" от слова "совсем".
В идеале я хочу, чтобы это выглядело так.
Нажал на кнопочку (пользовательскую) в "К", выскочило окошко, в котором нужно заполнить пустые ячейки. Нажал "ОК'еюшки" и "К" построил красивишную цепь.
А ЧТО будет в окошке? Для цепи на 2 звёздочки вроде бы понятно: параметры цепи/звёздочек и межцентровое, а если больше 2-х звёздочек? А провисание будет учитывать угол наклона цепи, да и где именно назначить провисание? И пр.
Есть ещё цепи с натяжными башмаками (распространено в ДВС на ГРМ) ...
Я хочу начать с малого - построение цепи для 2х звёздочек.
"угол наклона цепи" = ?
Не уверен, что правильно понял это термин. Но если под углом наклона понимается разность высот граничных точек цепной линии, то ответ "ДА будет учитывать".
"где назначить провисание?" для начала хотя бы внизу (а сверху считаю натяжение идеальным, без провисания)
Если я правильно понимаю, то при использовании натяжителей, цепь не будет провисать. Эту задачу можно решить с помощью различных дополнительных построений(эскизов)
Я давно хотел научиться программировать.
В моей трудовой деятельности цепи не используются. Но вот что-то мне захотелось решить эту задачу. Тем более много раз уже на форуме её обсуждали.
Цитата: beginner от 21.11.22, 11:52:52... (а сверху считаю натяжение идеальным, без провисания)
....
Бывают цепи с провисание наверху.
Тогда сразу скажу о первом нюансе: цепь НУЖНО согласовывать со звёздочкой - чтобы точно попадала в зубья. КАК? Задать угловое положение "главной присоединительной точки"?
Если бы цепь строилась в ВиМПе, то это делалось бы автоматически...
Цитата: IgorT от 21.11.22, 12:06:10Бывают цепи с провисание наверху.
Цитата: beginner от 21.11.22, 11:52:52"где назначить провисание?" для начала хотя бы внизу (а сверху считаю натяжение идеальным, без провисания)
Цитата: СВ от 21.11.22, 12:08:01Тогда сразу скажу о первом нюансе: цепь НУЖНО согласовывать со звёздочкой - чтобы точно попадала в зубья. КАК? Задать угловое положение "главной присоединительной точки"?
Цитата: beginner от 21.11.22, 11:34:40Локальная задача: задать длину и количество хорд, которые должны поместиться на цепной линии на заданном интервале, чтобы программа подсчитала коэффициент "а" цепной линии, заданной функцией f(x)=a*ch(x/a).
А потом уже будут нюансы.
Если я локальную задачу не смогу сделать, то никаких цепей вообще не будет :)
Мне для начала нужен совет ОПЫТНЫХ ПРОГРАММИСТОВ.
С математикой у меня проблем нет. (будем отталкиваться от этого предположения).
Ну высшую математику уже конечно забыл... но надеюсь в программировании это не требуется ::)
Добра всем!
А зачем в 3D модели провисание? Типа чтобы кожух не терло?
И будет ли натяжная звездочка?
Думается, проще линию провисания задавать дугой окружности. Потому как переход от неё к звеньям на звёздочках и так уже сложен.
Цитата: Alekzander от 21.11.22, 12:13:02А зачем в 3D модели провисание?
Потому что она там обязательно образуется, хотим мы этого или нет.
Цитата: Alekzander от 21.11.22, 12:13:02А зачем в 3D модели провисание?
Я перфекционист :sun:
Такой ответ годится? ;) ::)
Цитата: beginner от 21.11.22, 12:15:02Я перфекционист :sun:
Такой ответ годится? ;) ::)
Более чем и это здорово!
Поддерживаю.
Натяжка будет?
Цитата: Alekzander от 21.11.22, 12:17:03Натяжка будет?
Александр, сейчас рано об этом думать.
Нужно выполнить задачу "минимум".
Мне для начала нужно научиться программировать. А потом посмотрим.
Эта задача для меня может затянуться на долгие месяцы. Но сейчас есть свободное время ... дачный сезон окончен и можно заняться ещё чем-то на выходных.
Вот в справке есть начальные пояснения про цепную линию, может как то пригодится. :angel:
Благодарю.
Это уже всё изучил... и даже более.
Стоит вопрос именно в программировании.
Жду компетентных в этом вопросе.
Возможно тутошние программисты в силу своей скромности просто стесняются посоветовать что-либо...
Вдруг один посоветует, а другой будет критиковать...
или возможно они просто ещё не заходили на форум
Подожду и буду в личку писать.
Цитата: beginner от 21.11.22, 12:21:16Александр, сейчас рано об этом думать.
Нужно выполнить задачу "минимум".
Мне для начала нужно научиться программировать. А потом посмотрим.
Эта задача для меня может затянуться на долгие месяцы. Но сейчас есть свободное время ... дачный сезон окончен и можно заняться ещё чем-то на выходных.
Если провисание это перфекционизм, то натяжка - это насущная необходимость.
Много конструкций, где двигателем цепь не натянуть.
Там важно где натяжке быть
Относительно всего прочего - Вам нужен математик, а не программист
Нужна математическая модель этой кривой (ломаной)
Всё же попробуйте сравнить дугу и цепную линию, велика ли разница? Я это к тому, что место сопряжения линий может оказаться проблемным. И на дуге звенья строить гораздо проще (многогранником).
Кстати, на наклонной ветви цепная линия несимметрична, и тем больше несимметрична, чем больше угол наклона.
Цитата: Alekzander от 21.11.22, 12:48:26Относительно всего прочего - Вам нужен математик, а не программист
Нужна математическая модель этой кривой (ломаной)
Математика я уже нашёл - он эту тему и создал.
Но чтобы получить математическую модель кривой нужно программирование.
Возможно я бы смог это сделать в Excel'е, но хочу эту задачу решить с помощью программирования.
Цитата: СВ от 21.11.22, 12:57:05Кстати, на наклонной ветви цепная линия несимметрична, и тем больше несимметрична, чем больше угол наклона.
Сергей Васильевич, есть сомнения в том одолею ли я эту задачу?
Ну эта задача очередной вызов для меня. Как и вот эта (https://forum.ascon.ru/index.php?topic=37129.msg300757#msg300757)
Может ляпну чего лишнего, но я понимаю так -
если есть математическая модель ломаной, которая определяет все точки в зависимости от
входных параметров - шага и типа цепи, чисел зубьев звездочек, межосевого расстояния, координат центров звездочек
то построение цепи - текущая задача, решаемая средствами эскиза и таблицы переменных
Вам остается сварганить красивые диалоговые окна, чтобы пользователь вводил туда данные и для этого нужен программер?
Тоись математическая модель уже есть и описана?
Цитата: Alekzander от 21.11.22, 13:04:10Тоись математическая модель уже есть и описана?
Нет математической модели.
Целочисленно эта задача НЕ решается. Нужен метод итераций для решения.
И всё это нужно запрограммировать.
Алгоритм вычисления я уже примерно продумал. Осталось это занести в среду программирования, чтобы компьютер сам посчитал и выдал мне параметр "а", о котором я в первом сообщении написал.
Интересная задача, но боюсь моих навыков и тем более времени может не хватать, но можно попробовать=)
P.S. Недавно начал пользоваться GitHub, можно там создать открытый репозиторий и все кто сможет - посмотрит/поможет.
могу посоветовать
для описание мат модели использовать программу SMath Studio
https://ru.smath.com/обзор/SMathStudio/резюме
в ней же можно создавать независимые окна для ввода переменных
для связи математики с Компасом - использовать программу Standard Project
https://forum.ascon.ru/index.php?topic=30159.msg239028#msg239028
Цитата: beginner от 21.11.22, 13:08:04Нет математической модели.
Целочисленно эта задача НЕ решается. Нужен метод итераций для решения.
И всё это нужно запрограммировать.
Алгоритм вычисления я уже примерно продумал. Осталось это занести в среду программирования, чтобы компьютер сам посчитал и выдал мне параметр "а", о котором я в первом сообщении написал.
А как понять итераций? Перебора значений до получения того единственного при котором все шаги лягут в виде ломаной, ну или наденутся в виде ломаной на заданное межосевое?
Но если такая комбинация получится в итоге и она скорее всего будет единственная на данный набор значений - то это вероятно будет означать что мы просто не смогли найти математическое описание
Можно ведь методом подбора решать и квадратное уравнение, верно?
Цитата: beginner от 21.11.22, 12:57:42Сергей Васильевич, есть сомнения в том одолею ли я эту задачу?
У меня другое: думаю, что проще проектировать цепь в Компасе, переменными. Как вы говорите - заполнить таблицу и всё.
А вот такой момент - создать цепь для натяжной качающейся звёздочки, кажется мне ОЧЕНЬ сложным. (Особенно для начинающего программиста.) Вполне возможно, что Валерий Александрович не берётся за эту задачу в том числе и по этой причине.
Цитата: beginner от 21.11.22, 12:57:42...
Возможно я бы смог это сделать в Excel'е, но хочу эту задачу решить с помощью программирования.
...
Средствами Excel можно ОГО-ГО что напрограммировать!
Если чисто научиться программировать, и решить конкретно эту задачу, то ловчее в Excel. Связываться с SDK Компаса я бы не рекомендовал начинающему.
Цитата: Alekzander от 21.11.22, 13:19:24Можно ведь методом подбора решать и квадратное уравнение, верно?
Квадратное уравнение можно решить и точно, кажется вплоть до 4-й степени. Уравнения более высоких степеней, а тем более трансцендентные - только подбором (за исключением частных случаев). Это относится к обратному решению, например, как выразить параметр "а" через параметры Х и Y? и т. п.
Совершенно верно.
Только вот четвёртая степень уже не всегда решается в точных корнях.
Ну так что на счет сваять прогу под Excel?
Цитата: СВ от 21.11.22, 13:52:47У меня другое: думаю, что проще проектировать цепь в Компасе, переменными. Как вы говорите - заполнить таблицу и всё.
Что-то я ещё ни одного "удальца" не увидел на форуме, который одолел бы цепь
Цитата: СВ от 21.11.22, 13:52:47Вполне возможно, что Валерий Александрович не берётся за эту задачу в том числе и по этой причине.
он ясно выразился
Цитата: Golovanev от 10.10.22, 18:03:30Мой ответ такой... Никакого смысла в детальном прорисовывании в 3D цепей не вижу. Рисовать ее надо весьма условно одной деталью и естественно с провисанием. А детальная прорисовка каждого звена - это игра в бирюльки, баловство сиречь...
Алгоритм расчета ветвей верхней и нижней с провисанием готов принять.... Чтобы не разбираться детально.
Цитата: IgorT от 21.11.22, 14:06:35Ну так что на счет сваять прогу под Excel?
Не очень мне это нравится.
Цитата: beginner от 21.11.22, 14:10:12...Не очень мне это нравится.
Что так? Причины можно озвучить?
Цитата: YNA от 21.11.22, 13:58:57Квадратное уравнение можно решить и точно, кажется вплоть до 4-й степени. Уравнения более высоких степеней, а тем более трансцендентные - только подбором (за исключением частных случаев). Это относится к обратному решению, например, как выразить параметр "а" через параметры Х и Y? и т. п.
Цитата: beginner от 21.11.22, 14:05:18Совершенно верно.
Только вот четвёртая степень уже не всегда решается в точных корнях.
Ничего не имею против. Только пожелаю Вам удачи.
Но если меня однажды спросят -
Какого чорта, Вы, милорд, целый месяц торчали под Смоленском Зачем пытаться подбирать значение (если оно только одно при данных вводных), а не попытаться его вычислить? - я не буду знать что ответить.
появилась конкретная задача, которую хочу решить с помощью программирования.
Я так понял, что программирование почти что "маст хев"
Цитата: Alekzander от 21.11.22, 14:26:12Зачем пытаться подбирать значение (если оно только одно при данных вводных), а не попытаться его вычислить? - я не буду знать что ответить.
Александр! нельзя вычислить точным методом. Можно лишь подобрать.
Да! решение одно единственное, но оно не может быть получено в виде какого-то соотношения.
К примеру, в задаче появится вопрос: - От какого звена пойдёт провисание цепи? Как ответить математически?
(А при изменении угла наклона и звено станет другим.)
Цепные передачи Расчёт.png
Цитата: beginner от 21.11.22, 14:28:29появилась конкретная задача, которую хочу решить с помощью программирования.
Я так понял, что программирование почти что "маст хев"
...
Так я и предлагаю самый простой способ сочинить программу. До кучи эта же программа сможет управлять Компасом на предмет рисования собственно цепи. Почему нет?
Цитата: СВ от 21.11.22, 14:30:05От какого звена пойдёт провисание цепи? Как ответить математически?
(А при изменении угла наклона и звено станет другим.)
ну как-то я же ответил на
вопрос (https://forum.ascon.ru/index.php?topic=37129.msg300179#msg300179)
Цитата: IgorT от 21.11.22, 14:35:04Так я и предлагаю самый простой способ сочинить программу. До кучи эта же программа сможет управлять Компасом на предмет рисования собственно цепи. Почему нет?
Так эта задача будет решена в среде Excel?
Я бы хотел просто в чем-то научиться программировать (ну разные есть языки... просто каждый из них наверное заточен под свои задачи, хотя возможно есть и универсальные)
Хотя, возможно, из-за своего дилетантства я не совсем понимаю сути.
Сейчас вспомнил, что в екселе тоже есть встроенный редактор (если я правильно выражаюсь). VBA. даже помню как расшифровывается вижуал бейскик for аппликейшион. :-)))
Цитата: beginner от 21.11.22, 14:28:29появилась конкретная задача, которую хочу решить с помощью программирования.
Я так понял, что программирование почти что "маст хев"
Александр! нельзя вычислить точным методом. Можно лишь подобрать.
Да! решение одно единственное, но оно не может быть получено в виде какого-то соотношения.
Я тоже часто пользуюсь методом подбора (перебора) по двум причинам
1. У меня нет одной из переменной и я вынужден подставлять вместо ее точного значения произвольные, до тех пор пока не получу приемлемый результат.
2. Моего ума не хватило на нахождение верной зависимости. Ну или так быстрее, чем вспоминать тригонометрию
А что касается провисания, честно говоря мне больше по душе цепь без провисания, но с натяжкой
Да и провисание можно заформализовать. Вместо прямой линии, между которыми пойдет эта ветвь - будет ломаная у которой смещения осей звеньев от прямой будут происходить по выбранному закону
Цитата: beginner от 21.11.22, 14:36:25...
Хотя, возможно, из-за своего дилетантства я не совсем понимаю сути.
Сейчас вспомнил, что в екселе тоже есть встроенный редактор (если я правильно выражаюсь). VBA. даже помню как расшифровывается вижуал бейскик for аппликейшион.
Вот именно! Его возможности огромны.
А чем не устраивает разработка под VBA?
Цитата: IgorT от 21.11.22, 14:49:13Вот именно! Его возможности огромны.
А чем не устраивает разработка под VBA?
Так я только сейчас вспомнил, что в экселе есть VBA. И это тоже среда программирования.
Я сначала думал, что речь о том, чтобы решать эту задачу командами экселя.
Например, есть там знатный анализ "Что если..." - "Подбор параметра".
Потом можно накодить код, который управляя Компасом нарисует результат расчета. Но тут надо будет SDK Компаса выучить.
тогда начну составлять алгоритм.
Потом обсудим вопрос реализации этого алгоритма на VBA.
Лучше присмотритесь к python
Не сомневаюсь, что Вадим Сергеевич это сделает, если будет заниматься, пусть и долго. Сомневаюсь, что хватит терпения этим заниматься (особенно как начинающему программисту). Разве что найдутся славные парни, способные поддержать на каждом этапе.
А на счёт алгоритма: думается, нужно СРАЗУ брать общий случай - несколько звёздочек, провисание или натяжная качающаяся (или прямолинейно движущаяся) звёздочка или ролик (хотя и редкость, как и башмак). Кстати, вспомнился ещё вариант - грузовая цепь на вильчатом погрузчике, где всего одна звёздочка/ролик и оба конца цепи закреплены. Так что начать стоит с начала - с рассмотрения вариантов конструкции.
Про анимацию/параметризацию: цепь желательно заставить двигаться при перемещении каких-либо звеньев.
Пока вроде всё, что приходит на ум про цепь.
Цитата: beginner от 21.11.22, 14:28:29появилась конкретная задача, которую хочу решить с помощью программирования.
Я так понял, что программирование почти что "маст хев"
Мне давно ясно стало, что конструктор рано или поздно становится программистом.
Цитата: beginner от 21.11.22, 14:36:25Я бы хотел просто в чем-то научиться программировать (ну разные есть языки... просто каждый из них наверное заточен под свои задачи, хотя возможно есть и универсальные)
...
Сейчас вспомнил, что в екселе тоже есть встроенный редактор (если я правильно выражаюсь). VBA. даже помню как расшифровывается вижуал бейскик for аппликейшион. :-)))
Цитата: Михаил88 от 21.11.22, 15:36:10Лучше присмотритесь к python
Универсальный и легкий язык Python - самое оно для начинающих. Не требуется морочить голову всякими типами данных и синтаксисом. Можно сначала написать на нём, а потом переписать на VBA, если нужно, чтобы ячейки экселевского файла и их обработчик были в одном файле. Короче, можно хоть как. Но прототипирование лучше на Python. Осторожно! Вызывает привыкание :)
Начинайте. Задавайте вопросы любые, даже глупые, квадратные и албанские. Поможем.
Цитата: Вират Лакх от 22.11.22, 05:28:28Но прототипирование лучше на Python. Осторожно! Вызывает привыкание :)
Так меня вчера вечером уже затянуло ...
нашёл бесплатный курс для начинающих ... Вспомнил, что в школьные и студенческие годы изучал pascal
Цитата: Вират Лакх от 22.11.22, 05:28:28Начинайте. Задавайте вопросы любые, даже глупые, квадратные и албанские. Поможем.
Это, как я понимаю, уже специфический юмор программистов? :angel:
Pascal по сравнению с питоном - сложная штуковина )
Вот Вам в помощь свеженькое https://academy.yandex.ru/handbook/python
Цитата: beginner от 22.11.22, 07:32:37Так меня вчера вечером уже затянуло ...
...
То есть со средой определились.
На счет что проще в изучении, VBA или Python... По мне в среде Excel отладить прогу на VBA попроще будет.
Один минус. Для VBA нужен Excel. Питон он сам по себе, самодостаточен.
Почему именно Excel? У меня например вообще MS office не установлен, да и не было его никогда на рабочем компе, ну прям дискриминация получится :-)))
В Либр офисе тоже можно макросы писать, да ещё и на разных языках. Правда я в этом ни чего не понимаю, но вот такая менюшка попалась.
Ну и кроме всего прочего Либр офис бесплатный и доступный, что немаловажно в нынешних условиях. :)
Цитата: YNA от 22.11.22, 08:59:50Почему именно Excel? У меня например вообще MS office не установлен, да и не было его никогда на рабочем компе, ну прям дискриминация получится :-)))
В Либр офисе тоже можно макросы писать, да ещё и на разных языках. Правда я в этом ни чего не понимаю, но вот такая менюшка попалась.
Ну и кроме всего прочего Либр офис бесплатный и доступный, что немаловажно в нынешних условиях. :)
Макросы написанные под Excel не будут работать в Либер офисе. И макрорекордера я там не нашёл. А он весьма помогает генерить код.
Да и сам MS Office удобней и приятней в работе. Но конечно Либер доступней.
С другой стороны, если есть на машине MS Office, нафига тогда нужен Либер?
На счет Питона... Меня напрягает чехарда с версиями Питона. Бывает так, что код написанные в прежней версии не хочет работать в новой.
А что бы поставить новый Питон, надо менять ОС.
Заговор, однозначно.
Заговора нету, просто питон развивается, а VBA нет. Плюсом большое сообщество, которое пишет и выкладывает разные полезные библиотеки. Вы даже сравните ветку питона и vba на форуме.
Цитата: Михаил88 от 22.11.22, 09:37:48Заговора нету, просто питон развивается, а VBA нет.
То есть питон пытается дорасти до чего-то. До чего? :) Что мотивирует его рост?
Потребности рынка и пользователей. Также, как и в компасе появляется новый функционал, скорость работы и т.д.. Так и в питоне.
Цитата: Михаил88 от 22.11.22, 09:47:17Потребности рынка и пользователей. Также, как и в компасе появляется новый функционал, скорость работы и т.д.. Так и в питоне.
Интересно, Вам чего-то не хватало в старых версиях питона? Оно появилось в новых? Сейчас всего хватает или чего-то недостаёт?
Цитата: Михаил88 от 22.11.22, 09:37:48... просто питон развивается, а VBA нет....
Несколько странное развитие, в котором старый функции перестают работать и приходится менять ОС. У VBA такого не наблюдается. То что было сделано раннее работает в новых версиях, в отличии от питона.
Больше подобного я нигде не наблюдал. Ранее был принцип совместимости снизу в верх. В питоне его отменили.
Вас же с компасом такое не смущает да и с другими программами. Смысл спорить. Я свой выбор сделал. Каждый может почитать преимущества и недостатки и сделать свой выбор самостоятельно. Ни кого агитировать не собираюсь. Если мне нужно что то под компас сделать пишу на питоне, если какую то надстройку или макрос, который будет что то делать с таблицей в excel то в 99% случаев сделаю на vba.
Цитата: Михаил88 от 22.11.22, 11:07:31Вас же с компасом такое не смущает да и с другими программами. Смысл спорить. ...
А что меня смущает с Компасом? :) Компас откроет файлы предыдущих версий безо всяких операций с ОС. Питон почему-то иногда не выполняет макросы предыдущих версий. Это факт.
При этом ничего не имею против питона. Принимаю ситуацию с версиями как данность. Но в шутке про заговор есть доля шутки. :)
Кстати. Ваши замечательные макросы весьма помогаю в работе. Огромное спасибо за них!
Цитата: IgorT от 22.11.22, 11:25:03А что меня смущает с Компасом?
Screenshot_1.png
Я это имел ввиду.
Цитата: Михаил88 от 22.11.22, 11:36:32...
Я это имел ввиду.
Это понятно. Но старые файлы открываются без проблем не зависимо от разрядности ОС. С Питоном не так.
Проблема в разнице версий 2 и 3. В остальном 3.11 нормально работает с 3.8 вин7 и ниже. Не нагоняйте жути.
И желательно привести конкретный пример. Если код использует новинки последних версий, например, match-case, то старые, естественно, не поймут.
Цитата: Вират Лакх от 22.11.22, 13:44:07Проблема в разнице версий 2 и 3. В остальном 3.11 нормально работает с 3.8 вин7 и ниже. Не нагоняйте жути.
И желательно привести конкретный пример. Если код использует новинки последних версий, например, match-case, то старые, естественно, не поймут.
Не знаю что такое "match-case", с Питоном не работал, но ещё где-нибудь наблюдается, что новые версии каких-либо программ не выполняют файлы предыдущих версий?
Если все ограничиться написанием макросов, то питон хорош, наверно. Как язык для старта-очень плохо. Огромная разница между компилируемыми языками и питоном. И даже не буду упоминать любимый Делфи или лазарус. Но c++ после Делфи, в основном просто другой синтаксис. C# очень хорош. Но точно не питон, потому что им все и закончится. Питонисты не кидайте камнями, просто я неосилятор.
Другими словами, если ограничиться практическими задачами в Компасе как конструктору, то Питона, считаете, будет достаточно?
]
Цитата: СВ от 23.11.22, 08:28:26Другими словами, если ограничиться практическими задачами В Компасе как конструктору, то Питона, считаете, будет достаточно?
Питон сам по себе для освоения не сложен. Сложности начинаются в освоении SDK Компаса. Это не каждому по силам.
Справедливости ради. Хоть я очень не люблю питон. На нем можно написать буквально все.
Цитата: graphdark от 23.11.22, 21:19:41На нем можно написать буквально все.
:-))) :-))) :-)))
Как на счет
Операционной системы, какого-нибудь
компилятора, или, хотя-бы, простенького
CAD-а...?
У Python достаточно узкая ниша применения, если исходить из разумной целесообразности - и лампочкой можно гвозди забивать, но вот нужно ли?
Цитата: p3452 от 24.11.22, 00:00:20Как на счет Операционной системы, какого-нибудь компилятора, или, хотя-бы, простенького CAD-а...?
Стоит заметить, что вот пишу на Delphi, C++. И не хочу участвовать в написании ОС или простенького компилятора. А кад на питоне есть. Есть граф. редакторы. У меня это в голове не укладывается, но скриптом описали даже броузер. Не хочу сказать, что ПО на питоне прям огонь. Оно невероятно тяжелое, привязано к версии языка. Но оно дергает либы на С++ или С, поэтому умудряется обходить свои ограничения. Но скатываемся к флейму о лучшем ЯП. Но все знаем, что любой ЯП хорош для своей задачи. Макросы-хорош питон.
Цитата: KrissKross от 21.11.22, 13:11:17могу посоветовать
для описание мат модели использовать программу SMath Studio
https://ru.smath.com/обзор/SMathStudio/резюме (https://ru.smath.com/%D0%BE%D0%B1%D0%B7%D0%BE%D1%80/SMathStudio/%D1%80%D0%B5%D0%B7%D1%8E%D0%BC%D0%B5)
в ней же можно создавать независимые окна для ввода переменных
для связи математики с Компасом - использовать программу Standard Project
https://forum.ascon.ru/index.php?topic=30159.msg239028#msg239028 (https://forum.ascon.ru/index.php?topic=30159.msg239028#msg239028)
удобная программа была но стала платной..
помню еще на 2 курсе когда познакомился с matlab simulink - предложил сюда в ветке предложения - встроить математический пакет в Компас для работы с графическими объектами минуя Api.
В сети нашел кучу исходников на плюсах/.Net некоторые из них сгенерировал из того же matlab 6.5 :) - в чем его плюс он генерирует функции с учетом всевозможных событий.
Комплексный анализ.
Граф-аналитические исчисления.
Удобство формирования КД и ПЗ.
У других САПР есть это направление в виде скрипт блоков прям на моделях для синтеза.
Приветствую.
Почти закончил с написанием программы.
Pythonовцы, посоветуйте пожалуйста, что лучше использовать для создания графического интерфейса pyqt или tkinter.
Прошу посоветовать с чего начать изучение SDK. Мне же как-то нужно передать данные в Компас, чтобы правильная цепь построилась.
Цитата: beginner от 05.02.24, 15:46:52Pythonовцы, посоветуйте пожалуйста, что лучше использовать для создания графического интерфейса pyqt или tkinter.
Приветствую. Если графический интерфейс нужен будет только для задач типа "выбрать" или "вписать" значение, то проще взять tkinter, т.к. он является встроенной библиотекой.
Да.
Графический интерфейс только для ввода данных цепной передачи.
Цитата: beginner от 05.02.24, 15:46:52Прошу посоветовать с чего начать изучение SDK. Мне же как-то нужно передать данные в Компас, чтобы правильная цепь построилась.
Перед изучением SDK следует убедиться в наличии библиотеки pywin32 и научиться подключаться к компасу.
Зная CLSID библиотек типов компаса, создаём модули или убеждаемся в их наличии и соответствии (переменные называем как удобно):
from win32com.client import gencache
const = gencache.EnsureModule('{75C9F5D0-B5B8-4526-8681-9903C567D2ED}', 0, 1, 0).constants
con3d = gencache.EnsureModule('{2CAF168C-7961-4B90-9DA2-701419BEEFE3}', 0, 1, 0).constants
api5 = gencache.EnsureModule('{0422828C-F174-495E-AC5D-D31014DBBE87}', 0, 1, 0)
api7 = gencache.EnsureModule('{69AC2981-37C0-4379-84FD-5DD2F3C0A520}', 0, 1, 0)
или
from win32com.client import gencache, constants
gencache.EnsureModule('{75C9F5D0-B5B8-4526-8681-9903C567D2ED}', 0, 1, 0)
gencache.EnsureModule('{2CAF168C-7961-4B90-9DA2-701419BEEFE3}', 0, 1, 0)
api5 = gencache.EnsureModule('{0422828C-F174-495E-AC5D-D31014DBBE87}', 0, 1, 0)
api7 = gencache.EnsureModule('{69AC2981-37C0-4379-84FD-5DD2F3C0A520}', 0, 1, 0)
Зная ProgID компаса, подключаемся к запущенному экземпляру:
from win32com.client import GetActiveObject
kompas5 = GetActiveObject('Kompas.Application.5')
kompas7 = GetActiveObject('Kompas.Application.7')
или
import pythoncom
GetActiveApplication = lambda ProgID: gencache.GetClassForProgID(ProgID)(pythoncom.connect(ProgID))
kompas5 = GetActiveApplication('Kompas.Application.5')
kompas7 = GetActiveApplication('Kompas.Application.7')
или короче
from pythoncom import connect
KompasObject = api5.KompasObject(connect('Kompas.Application.5'))
iApplication = api7.IApplication(connect('Kompas.Application.7'))
Далее открываем SDK, например, https://help.ascon.ru/KOMPAS_SDK/22/ru-RU/applicate.html
Ещё стоит иногда заглядывать в саму питоновскую библиотеку типов. Она расположена тут:
print(gencache.GetGeneratePath())
Предлагаю функцию просмотра свойств полученного интерфейса:
def printprop(i): # i - интерфейс
print(i.__doc__)
for _ in sorted(i._prop_map_get_):
print(_, getattr(i, _))
printprop(iApplication)
Ищите в SDK то, что Вам нужно, и по цепочке получаете интерфейсы свойством / методом или преобразованием типа.
И, конечно же, примеры программ на форуме.
ЦитироватьПрошу посоветовать с чего начать изучение SDK. Мне же как-то нужно передать данные в Компас, чтобы правильная цепь построилась.
Есть PyKompasMacro
ЦитироватьPyKompasMacro будет полезен как для автоматизации работы пользователя в КОМПАС-3D, так и для изучения интерфейсов прикладного программирования (API) КОМПАС-3D.
https://slaviationsoft.blogspot.com/
Цитата: beginner от 05.02.24, 15:46:52Приветствую.
Почти закончил с написанием программы.
Pythonовцы, посоветуйте пожалуйста, что лучше использовать для создания графического интерфейса pyqt или tkinter.
Прошу посоветовать с чего начать изучение SDK. Мне же как-то нужно передать данные в Компас, чтобы правильная цепь построилась.
А нет мысли подключить каких-нибудь энтузиастов из профи? Может быть даже в духе соревновательности - кто лучше сделает.
И ещё любопытно: какая у вас концепция заложена? Универсальная, при которой двух звёздочную передачу не проблема переключить на многозвёздочную, или только для двух звёздочек? (Понимаю, что стоит подождать, но - сильно любопытно.)
Цитата: СВ от 06.02.24, 08:27:11А нет мысли подключить каких-нибудь энтузиастов из профи?
Однозначно Нет. Я понимаю, что мой Код далёк от идеала, но это моё творение и я постараюсь закончить его самостоятельно.
Цитата: СВ от 06.02.24, 08:27:11И ещё любопытно: какая у тебя концепция заложена? Универсальная, при которой двух звёздочную передачу не проблема переключить на многозвёздочную, или только для двух звёздочек? (Понимаю, что стоит подождать, но - сильно любопытно.)
На данный момент расчёт реализован для двух звёздочек (с провисанием снизу)
Вводим количество зубьев, шаг, взаимное расположение звёздочек, начальный угол поворота ведущей звёздочки.
Программа подсчитывает угол поворота ведомой звёздочки и сразу указывает какое наименьшее количество звеньев цепи теоретически возможно.
Вводим необходимое количество звеньев цепи и получаем коэффициент цепной линии и координаты граничных точек.
Теперь задача:
1. Обернуть программу в удобный интерфейс, чтобы пользователь мог вводить данные.
2. Научиться подключаться к Компасу и передавать ему данные, полученные при расчёте, для построения реальной 3D цепи.
Вот просто график строитЦепная линия 07.rar
Цитата: beginner от 06.02.24, 08:57:14Вводим количество зубьев, шаг, взаимное расположение звёздочек, начальный угол поворота ведущей звёздочки.
Программа подсчитывает угол поворота ведомой звёздочки и сразу указывает какое наименьшее количество звеньев цепи теоретически возможно.
Вводим необходимое количество звеньев цепи и получаем коэффициент цепной линии и координаты граничных точек.
А "угол наклона" цепной передачи есть? Т.е. угол между горизонтом и плоскостью, в которой расположены оси звёздочек.
- - -
На счёт концепции: я спрашиваю немного о другом, не о вводе данных для построения, а о методе, принятом для нахождения "координат граничных точек", как вы их называете. (Полагаю, это оси шарниров цепи.) Т.е. этим же методом можно находить и "координаты" для многозвёздочной передачи?
Цитата: Николай от 06.02.24, 13:00:59Вот просто график строитЦепная линия 07.rar
просто построить график цепной линии мы могём... эта задача простая
Цитата: СВ от 06.02.24, 13:21:18А "угол наклона" цепной передачи есть?
конечно есть
Цитата: beginner от 06.02.24, 08:57:14взаимное расположение звёздочек
Цитата: СВ от 06.02.24, 13:21:18Т.е. этим же методом можно находить и "координаты" для многозвёздочной передачи?
Если под многозвёздочностью понимается натяжная звёздочка, то алгоритм другой. Там же не будет (в идеале) провисания цепи.
На счёт сроков реализации. Если верить вот этому мнению (а не доверять этому пользователю у меня нет причин)
Цитата: IgorT от 23.11.22, 08:38:45Питон сам по себе для освоения не сложен. Сложности начинаются в освоении SDK Компаса. Это не каждому по силам.
, то на реализацию всего задуманного у меня уйдёт ещё год (скорее всего). Сейчас дачный сезон начнётся :)))) Все выходные проходят на земле.
Цитата: beginner от 06.02.24, 14:59:59Если верить вот этому мнению (а не доверять этому пользователю у меня нет причин)
ЦитироватьПитон сам по себе для освоения не сложен. Сложности начинаются в освоении SDK Компаса. Это не каждому по силам.
Подтверждаю, он всё верно сказал. Даже если в программировании ровно 0 опыта, при наличии технического мышления (а врятли на этом форуме водится хоть один гуманитарий :D) освоить несложно.
И ещё более верны слова про SDK. Действительно, есть не самая плохая справка, которая, однако, совершенно не научит работать с SDK, она нужна тем, кто уже умеет. Хорошие книги и курсы есть, но они раскиданы по разным языкам программирования: серия статей на Habr по С++, книга Норсеева по Delphi, видео на Ютубе по С#... По Питону что существует я вообще не в курсе...
Короче, освоение идёт наощупь и с трудом, мои ранние темы на этом форуме соврать не дадут)
В идеале найти человека, который уже писал на Питоне и регулярно советоваться, наладить контакт вне тем форума. Но если не получится, то нужно много времени и упорства.
Т.е. новичку получить кракозябру вместо программы - раз плюнуть?
Новичку не суметь в принципе запустить программу - раз плюнуть