Обозначение ценра отверсий

Автор injener, 04.04.16, 23:01:07

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

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

Вират Лакх

0) Берете фланец какой-нибудь в 3D из библиотеки СИ и смотрите на присоединительную сторону. Отверстия касаются или пересекают линию перехода поверхностей. Из-за этого имеем дуги вместо отверстий.
Конечно отдельным макросом фланцы. См. п.4 ответа 13.
Фланцы предлагаю не искать, а чтобы пользователь указал окружности, которые стоят по кругу. По крайней мере пока. Сколько отверстий выделит, столько и осевых, направленных в центр и длиной, равной диаметру любой из выделенных отв. Интересно, такое можно параметрически привязать? Центр можно посчитать как центр (масло масляное) многоугольника (мин. 3 угла), но если расставлять осевые по частично перекрытому фланцу (массив не 360 градусов), то косяк. Тут тогда подумать как по трем точкам определить центр. Систему из трех уравнений прямых решить что ли. Но по-началу можно просить пользователя указать центр. Из центра построить окружность стилем осевая уже известным радиусом. А то и дугу, если окружности не на 360 градусов. Но пока можно начать с полных окружностей.
Ну или выделить весь фланец. С большими концентрическими окружностями сделать как эта библиотека делает, а окр. самого малого диаметра считать круговыми.

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

upd
Если сделать балуном, но опять сразу в 16 и 17 версиях не будет работать, да?
Можно, как всегда, константу-настройку по выводу сообщений.
Еще настройку, где пользователь указывает версию компаса-питона.
Настройки - дело хорошее.
Можно не ждать, пока достроит обозначения. Я так понял, можно одновременно продолжать работу, а он там будет ставить параллельно. Или нет?

Вират Лакх

Мысли дилетанта про параллельность обработки видов. Макрос может вызвать самого себя (рекурсия)? Первая копия макроса считает сколько всего видов и сколько запущено своих копий. Если себя меньше, чем видов, то запускаем еще себя. Массив видов у каждой копии один и тот же. Каждая копия смотрит, сколько себя уже запущено и приступает к обработке вида под номером "кол-во себя"+1. При этом отключиться макросу после работы можно только при кол-ве себя = кол-ву видов, чтобы другие копии не ошиблись с порядковым номером вида для обработки. Интересно, винда копии макроса разделит по потокам?

ТрындецЪ

23.10.17, 10:22:19 #22 Последнее редактирование: 23.10.17, 14:53:59 от ТрындецЪ
Выкладываю первую версию макроса для  "фланцев ".
Выделяем окружности, расположенные по кругу и запускаем макрос.
Для расчётов макрос берёт координаты первых трех неконцентрических окружностей из выделения.
Если окружностей меньше трёх, то выводит сообщение.

Цитата: Вират Лакх от 21.10.17, 14:32:41
"А вот это хорошая мысль, почему я сам не догадался!?"
Тут у меня три комментария:
а) это, наконец-то, хорошая мысль в отличие от всех предыдущих? )
б) вы серьезно по этому предложению или "стигаете"? Ни смайлика, ни чего.
Я писал без тени иронии, даже поблагодарил за сообщение, которое посчитал полезным.
ЦитироватьЕсли сделать балуном, но опять сразу в 16 и 17 версиях не будет работать, да?
Что-то не припомню, чтобы из-за "балунов" была проблема в 16 и 17 версиях. В 17 только нет разделения на "с желтым треугольником" и "с синим кругом"
ЦитироватьМожно не ждать, пока достроит обозначения. Я так понял, можно одновременно продолжать работу, а он там будет ставить параллельно. Или нет?
Проблема может возникнуть из-за того, что макрос сам меняет активность видов для построения ОЦ.
Цитата: Вират Лакх от 22.10.17, 13:41:02
Мысли дилетанта про параллельность обработки видов. Макрос может вызвать самого себя (рекурсия)? Первая копия макроса считает сколько всего видов и сколько запущено своих копий. Если себя меньше, чем видов, то запускаем еще себя. Массив видов у каждой копии один и тот же. Каждая копия смотрит, сколько себя уже запущено и приступает к обработке вида под номером "кол-во себя"+1. При этом отключиться макросу после работы можно только при кол-ве себя = кол-ву видов, чтобы другие копии не ошиблись с порядковым номером вида для обработки. Интересно, винда копии макроса разделит по потокам?
Тут скорее не новый макрос открывать в новом потоке, а выполнение функции в новый поток отправлять. Я бегло изучал, когда кнопку "Стоп" для библиотеки БЧ сочинял. Там сложность с передачей переменных между потоками, нужно глубже изучать.
+ Благодарностей: 3

Вират Лакх

ЦитироватьЧто-то не припомню, чтобы из-за "балунов" была проблема в 16 и 17 версиях. В 17 только нет разделения на "с желтым треугольником" и "с синим кругом"
Проблема не в самих balloon'ах, а кодировке или как там её, в приписке "u" в команде вывода сообщения. pro100 их удалял в макросе БЧ, чтобы работал в 17-м компасе. Я имею ввиду, чтобы одновременно в двух версиях компаса работало.
ЦитироватьПроблема может возникнуть из-за того, что макрос сам меняет активность видов для построения ОС.
А, да, не подумал про это.

Вират Лакх

Изучение фланцевого макроса v0.1:
1) Ассоциация прямых осевых к отверстиям жестко фиксирует их угол наклона. Из-за этого не повернуть фланец на произвольный угол. Ничего с этим не поделать?
2) Круговая осевая линия не привязывается ни к чему. Оно и понятно, что привязаться не к кому, но неприятно. Допустим, у нас нет физически точки центра. Нельзя ли программно круговую осевую привязать тремя точками к тем трем отверстиям, по которым она была подсчитана? Если никак нельзя, то можно поискать в тех координатах окружность. Умеем такое? Если найдется, то к ней привязать круговую осевую.
3) Если "левая" окружность выделена, то макрос ничего не делает. Надо сообщение выдать что ли, что выделенные отверстия не образуют круг.
И сообщение "Выделите не менее трёх неконцентрических окружностей!" дописать словами ", расположенных по кругу"
4) Можно научить фланцевый макрос убирать обозначения центров от обычного макроса. Чтобы пользователю самому не удалять прямые центры, фланцевый мог бы сам вычистить в тех координатах "неправильные" обозначения и поставить свои. Т.е. заменить прямые на фланцевые.
5) Конечно же нужна обработка дуг. См. рис. ниже. Для таких видов макрос пока не годен.

lexz21

24.10.17, 07:16:59 #25 Последнее редактирование: 24.10.17, 07:30:58 от lexz21
Добрый день!!
Попытался запустить библиотеку Обозначения центров 0.3 и двойным кликом, и прикрутил в утилиты и оттуда,  после выделения группы отверстий.... никакого эффекта!!
Что делаю неправильно!! Как запустить?
Может дело в питоне?  в корневом каталоге С висит Python26

Win7sp1x64, Компас_3Dх64_17_1_3

Заранее спасибо

pr0100

В свойстве документа *py, *pyw, нужно заменить запускаемое приложение. 


Может подойдет:
"C:\Program Files\ASCON\KOMPAS-3D v17\Libs\Kompas-Macro\Python 3\Python-Portable.exe"
+ Благодарностей: 1

lexz21

Запустил библиотеки  с помощью C:\Program Files\ASCON\KOMPAS-3D v17\Libs\Kompas-Macro\Python 3\App\python.exe
Простановка центров для фланцев запустилась, но оси ставит  только на выделенные отверстия и общую осевую.
А вот библиотека простановки  центров вообще никаких осей... и выделял и отверстия  и вид ...ничего..

ТрындецЪ

Цитата: lexz21 от 24.10.17, 07:51:32
Простановка центров для фланцев запустилась, но оси ставит  только на выделенные отверстия и общую осевую.
Так и задумано, работает только с выделением.
ЦитироватьА вот библиотека простановки  центров вообще никаких осей... и выделял и отверстия  и вид ...ничего..
Макрос игнорирует ассоциативные виды, но если и с выделением не работает, то тогда нужно запускать через отладчик и смотреть какую ошибку выдаёт (через портативный PyScripter, например, который с 17 версией идёт).

Цитата: Вират Лакх от 24.10.17, 07:14:15
1) Ассоциация прямых осевых к отверстиям жестко фиксирует их угол наклона. Из-за этого не повернуть фланец на произвольный угол. Ничего с этим не поделать?
Я тоже заметил, но это стандартное обозначение центра и такая особенность его параметризации-угол не изменяется параметрически. Можно заменить ОЦ на две прямые и параметризовать их, но с параметризацией я ещё не работал.
Цитировать2) Круговая осевая линия не привязывается ни к чему. Оно и понятно, что привязаться не к кому, но неприятно. Допустим, у нас нет физически точки центра. Нельзя ли программно круговую осевую привязать тремя точками к тем трем отверстиям, по которым она была подсчитана? Если никак нельзя, то можно поискать в тех координатах окружность. Умеем такое? Если найдется, то к ней привязать круговую осевую.
См. ответ выше.
Цитировать3) Если "левая" окружность выделена, то макрос ничего не делает. Надо сообщение выдать что ли, что выделенные отверстия не образуют круг.
Нужно доработать алгоритм, иногда, даже если окружности все по кругу расположены, он всё равно ошибку выдаёт. Не вычислил пока, что ему не нравится.
ЦитироватьИ сообщение "Выделите не менее трёх неконцентрических окружностей!" дописать словами ", расположенных по кругу.
Любые три окружности будут расположены "по кругу"
Цитировать4) Можно научить фланцевый макрос убирать обозначения центров от обычного макроса. Чтобы пользователю самому не удалять прямые центры, фланцевый мог бы сам вычистить в тех координатах "неправильные" обозначения и поставить свои. Т.е. заменить прямые на фланцевые.
5) Конечно же нужна обработка дуг. См. рис. ниже. Для таких видов макрос пока не годен.
Доработаем в будущих версиях.

Вират Лакх

ЦитироватьМожно заменить ОЦ на две прямые и параметризовать их
Думаю, не стоит. Две прямые, как и круговая осевая, - это не обозначения, а просто геометрия. Отсюда неудобства обработки их скопом.
Цитироватьиногда, даже если окружности все по кругу расположены, он всё равно ошибку выдаёт. Не вычислил пока, что ему не нравится.
Может опять эта слишком большая точность?
ЦитироватьЛюбые три окружности будут расположены "по кругу"
Три - да, больше трех - нет. В запросе не менее 3, значит выделят и 4, и 54.

ТрындецЪ

24.10.17, 15:21:54 #30 Последнее редактирование: 24.10.17, 15:33:54 от ТрындецЪ
Обозначения центров v0.4.

Что нового:
- работает с ассоциативными видами;
- работает с выделенными окружностями, расположенными на разных видах;
- игнорирует окружности, лежащие на погашенном слое.
+ Благодарностей: 3

lexz21

Изумительно!! и параметризация .....

ТрындецЪ

Цитата: lexz21 от 24.10.17, 15:51:24
Изумительно!! и параметризация .....
Что, заработало?

Вират Лакх

ОЦ 0.4 у Фланец 1-50-16 Ст 20 ГОСТ 12821-80 (приварной встык) ставит два обозначения центра. Асс. вид с модели.
Быстродействия не хватает даже для простых случаев.
+ Благодарностей: 1

ТрындецЪ

25.10.17, 09:09:16 #34 Последнее редактирование: 25.10.17, 09:19:24 от ТрындецЪ
Обозначения центров v0.4.1

Что нового:
- введена константа, задающая допустимую разницу координат центров концентрических окружностей.

Из-за излишней точности считывания координат центров, происходили наложения ОЦ в ранних версиях.

:!: P.S.:Обращение к модератору: "Можно ли в названии темы потерянные "т" восстановить?"
+ Благодарностей: 1

pr0100

Предложение такое в всплывающем сообщении добавить такие данные, как количество. Макрос считал каждый тип диаметра. И выдавал сообщения. На выделенном виде.

Starik

Отображение каждого сообщения на экране значительно увеличивает время работы.

pr0100

Попробовал на эскизе в 3д расставить осевые. Все расставилось. И родилось предложение такого характера. Разделить макрос на несколько частей. Создаем графический интерфейс так называемый управляемый. Где будет нарисовано три кнопки.
1 Кнопка "Расставить осевые на центрах"
2 Кнопка посчитать количество окружностей каждого типа в активном виде.
3 Расставить точки на окружностях.


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

ТрындецЪ

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

Цитата: pr0100 от 25.10.17, 11:14:17
2 Кнопка посчитать количество окружностей каждого типа в активном виде.
Это какие типы у окружностей, что-то я не понял.
Цитировать3 Расставить точки на окружностях.
О каких точках речь? Точки в центрах? Для чего это нужно?
Upd: если создавать граф.интерфейс то тогда впихнуть туда ОЦ для "фланцев" и "ОЦ пазов" (может, руки дойдут и до них)

pr0100

Я имею в виду расчет диаметра количества окружностей каждого типа.
D10 - 20 шт.
D15 - 40 шт.


А точки нужны потом в 3х мере, для того, чтобы массивом по ним крепеж размещать.
+ Благодарностей: 1