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

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

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

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

injener

     Столкнулся с проблемой простановки обозначения центров отверстий на чертежах, особенно когда их много. Выделять каждое отверстие и проставлять обозначение довольно трудоемко. Затратил полчаса времени, написал библиотеку, протестировал, и теперь три клика мышки и во всех видах и на всех отверстиях появляются обозначения центров. Компас 16 пользуйтесь.
+ Благодарностей: 7

Вират Лакх

Классно! Просто и быстро ) Спасибо!
А теперь с вашего позволения:
1) Если вид повернут, то обозначение тоже повернуто относительно листа
2) Не хватает для эллипсов и дуг окружностей и эллипсов
3) Если не надо всем отверстиям ставить (см. п. 4 и 5), то может в команде предусмотреть: если нет выделенных, то всем, если есть выделенные объекты, то среди выделенных?
4) Если есть отверстия по кругу как у фланца, то обозначения надо же ориентировать в центр круга. Тут уж ничего не поделаешь?..
5) Если у того же фланца две окружности с одним центром, то получим наложение осевых. Проверка наложения элементов не выдает ошибки, т.к. не распространяется на оформительские вещи.

Дормидонт Евпатьевич

Цитата: injener от 04.04.16, 23:01:07
     Столкнулся с проблемой простановки обозначения центров отверстий на чертежах, особенно когда их много.
2011 год

http://support.ascon.ru/download/freeware_users/items/?dl_id=560

Библиотека Дополнительные операции для КОМПАС-3D V11 и выше
Прикладная библиотека предназначена для автоматизации отдельных операций при работе с графическими документами и 3D-моделями в системе КОМПАС-3D.

Библиотека позволяет создать обозначения центров для группы окружностей...


ЦитироватьБиблиотека Дополнительные операции для КОМПАС-3D V11 и выше
Есть в ней одна проблема, она 32-разрядная.

Алхимик

Можно добавить:

- возможность простановки и для дуг;
- проверку на несколько окружностей из одного центра, ставить осевую для самой большой окружности.

injener

Извините не проверил, архив. Высылаю 64-разрядную. Для фланцев будет отдельная библиотека
+ Благодарностей: 1

Студент 2015

Спасибо, а в чём отличия от этой???
Да ещё дополню предложения, лучше как в этой на картинке 2. Создавать обозначения для текущего вида.  А то создал, сначала для одного вида, потом переключился на второй третий, а на первом уже по три обозначения в одном месте.( заметил удалением одной оси)

Алхимик

что это за библиотека "Дополнительных операций"?

Студент 2015

Цитата: Алхимик от 05.04.16, 18:39:25
что это за библиотека "Дополнительных операций"?
Вот ссылка http://support.ascon.ru/download/freeware_users/items/?dl_id=560.
Давно уже пользуюсь. Правда не знаю как на 64 будет работать или нет.

injener

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

Вират Лакх

Может не несколько библиотек, а несколько разных простых команд в одной библиотеке (как компасная команда Отрезок с разными параметрами)?
Чем отличается новая версия от первой выложенной?

Цитата: Студент 2015 от 05.04.16, 19:02:08
Вот ссылка http://support.ascon.ru/download/freeware_users/items/?dl_id=560.
Давно уже пользуюсь. Правда не знаю как на 64 будет работать или нет.
На 64-разрядной работать не будет, т.к. структура разная.

ТрындецЪ

19.10.17, 09:25:18 #12 Последнее редактирование: 19.10.17, 13:05:02 от ТрындецЪ
Eсть жалобы на неработоспособность библиотеки в 17 версии программы. Поэтому делюсь макросом, который должен работать в этой версии.

Основное отличие макроса от аналогов - распознавание концентрических окружностей и простановка только центра большей из них. Но, в связи с этим, скорость работы на данный момент очень низкая.
Эта версия макроса работает с выделенной геометрией активного вида: выделяем область, запускаем макрос, получаем обозначения центров.



+ Благодарностей: 4

Вират Лакх

Есть еще жалобы на незавершенность существующих библиотек. Те же пункты и для вашего макроса:
1) Если вид повернут, то обозначение тоже повернуто относительно листа.
2) Не хватает для эллипсов и дуг окружностей и эллипсов.
3) Остается в силе предложение: если нет выделенного ничего, то всем видам всем окружностям; если выделен вид, то только в нем всем отверстиям; если есть выделенные объекты, то среди выделенных (как сейчас). Это чтобы объединить все версии библиотек в одну. Не разделяю мнения, что для каждой разновидности команд должна быть своя прога.
4) "Если есть отверстия по кругу как у фланца, то обозначения надо же ориентировать в центр круга. Тут уж ничего не поделаешь?.." Тут я слегка неточен. Обозначения ведь должны быть не центра, а окружность стилем Осевая радиусом положения выделенных окружностей от указанного центра (или центр не указывать, а высчитывать). И обычные осевые для каждого отверстия, направленные на указанный (определенный расчетом) центр. ОЧЕНЬ НЕ ХВАТАЕТ ФЛАНЦЕВОЙ ФУНКЦИИ. Тут уж, действительно, надо другой макрос писать. От injener'а фланцевой библиотеки, видимо, не будет.
5) Проблема наложения решена не полностью. У повернутого вида все-таки происходит наложение осевых линий концентрических окружностей.
6) Я сообщения "Обозначения центров окружностей проставлены" и "Нет выделенных объектов!" сразу же закомментировал, ибо они лишние. По результату видно будет, сработала программа или нет. Тем более, что сообщения заставляют нажимать ОК.

ТрындецЪ

19.10.17, 12:04:57 #14 Последнее редактирование: 19.10.17, 13:04:06 от ТрындецЪ
Вират Лакх, Ваш неиссякаемый гейзер идей восхищает и отпугивает одновременно
Уважаю Вас за умелое нахождение брешей в любой программе, и с опаской встречаю каждое новое Ваше сообщение под моими разработками, ибо оно почти всегда сулит ворох работы.

Вират Лакх

Спасибо за лестный ответ ))
Гейзер, увы, продиктован возможностями компаса...
В свою очередь я Вас и не только Вас, но и PS, Дмитрий22, VladAV и других программистов искренне благодарю за Ваши нелегкие труды и трату личного времени, которого, как всегда, не хватает! Вы заметно облегчаете работу конструкторов.
Не бойтесь моих сообщений, они ни к чему не обязывают )

ТрындецЪ

20.10.17, 09:59:26 #16 Последнее редактирование: 20.10.17, 10:35:33 от ТрындецЪ
Тестируем новую версию макроса!

Что нового:
- работает с выделенными видами и выделением активного вида;
- обозначения центров у повёрнутых видов ориентируются параллельно/перпендикулярно листу;
- обозначения центров теперь параметрически привязываются к "окружностям - родителям";
- увеличена скорость работы.

Upd: Обновил версию во вложении.
Добавлено:
- при отсутствии выделения обрабатываются все непогашенные виды.
+ Благодарностей: 2

Вират Лакх

21.10.17, 03:33:14 #17 Последнее редактирование: 21.10.17, 08:41:15 от Вират Лакх
Готовьтесь, ТрындецЪ. Сейчас буду рвать и плющить :)

0) Если будете фланцы делать, то там будет проблема в том, что отверстия пересекаются или касаются выступа и получаются дуги (3D).
1) Когда ничего не выделено, то в IDLE (Python GUI) пишет (при этом проставляет как надо):
Цитировать
<win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.IView instance at 0x70353800>
<win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.IView instance at 0x76122504>
<win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.IView instance at 0x70355400>
<win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.IView instance at 0x76122504>
<win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.IView instance at 0x70354952>
<win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.IView instance at 0x70354184>
Это нормально?
2) Проблема с выделенными ассоциативными видами с модели - не проставляет. В питон шеле ничего не говорит. На 2D видах работает.
3) На повернутых ассоциативных видах на дорисованных "вручную" окружностях не ставит, в то время как на прямых видах - ставит. Это случай, когда ничего не выделено перед запуском макроса.
4) Есть, видимо, какая-то неточность построения или "слишком большая" точность вычисления где-то за пределами 10 знаков после запятой (точнее компас не дает измерить командой Расстояние между двумя точками), из-за которой макрос в 2D видах все же накладывает два обозначения центра друг на друга на концентрических окружностях. Не всегда это проявляется, а, скорее, на повернутых видах, там же всякие синусы-косинусы возникают. Попробуйте ввести округление до 10 знаков после запятой что ли, чтобы считать центра одинаковыми...
upd. Или использовать константу компаса FLT_EPS. Или, наоборот, округлять гораздо грубее. Например, когда вручную пользователь чертит и чуточку промахнулся от центра...
+ Благодарностей: 1

Вират Лакх

5) Из области фантастики в качестве шутки-прибаутки )
Быстродействие можно увеличить распараллеливанием, аналогично тому, как сделано построение/перестройка ассоциативных видов: один вид - одно ядро/поток.
+ Благодарностей: 1

ТрындецЪ

21.10.17, 11:37:57 #19 Последнее редактирование: 21.10.17, 12:51:58 от ТрындецЪ
Цитата: Вират Лакх от 21.10.17, 03:33:14
0) Если будете фланцы делать, то там будет проблема в том, что отверстия пересекаются или касаются выступа и получаются дуги (3D).
По этому описанию ничего не понял. Лучше файл приложите, на котором мне будущий код отлаживать.
Вообще эта задача заинтересовала. Нужно подумать, как это должно выглядеть.
Я получаю окружности в виде двух координат центра и радиуса. И вот из этого набора чисел нужно вычислить фланцы.
Для начала попробую сделать это отдельным макросом, т.к. встроить выискивание/фильтрование фланцев в общий код это высокая планка.
Например, пользователь выделяет область чертежа, где есть 1 фланец, макрос собирает инфу с оркужностей(дуг) из этого выделения и...(дальше ещё не придумал).
Upd: Или так. Запускаем макрос, выделяем область, затем указываем точку центра фланца и макрос ищет группу окружностей, равноудаленных от данной точки, а может и несколько групп. Потом создаёт окружность стилем осевая и центры ставит.
Цитировать1) Когда ничего не выделено, то в IDLE (Python GUI) пишет (при этом проставляет как надо):Это нормально?
Один print в коде остался.
Цитировать2) Проблема с выделенными ассоциативными видами с модели - не проставляет. В питон шеле ничего не говорит. На 2D видах работает.
3) На повернутых ассоциативных видах на дорисованных "вручную" окружностях не ставит, в то время как на прямых видах - ставит. Это случай, когда ничего не выделено перед запуском макроса.
Я отлаживал на неассоциативных видах. Нужно будет с ассоциативными поработать.
Цитировать4)...Попробуйте ввести округление до 10 знаков после запятой что ли, чтобы считать центра одинаковыми...
upd. Или использовать константу компаса FLT_EPS. Или, наоборот, округлять гораздо грубее. Например, когда вручную пользователь чертит и чуточку промахнулся от центра...
Введу константу, отвечающую за округление.
Цитировать5) Из области фантастики в качестве шутки-прибаутки )
Быстродействие можно увеличить распараллеливанием, аналогично тому, как сделано построение/перестройка ассоциативных видов: один вид - одно ядро/поток.
А вот это хорошая мысль, почему я сам не догадался!?

И ещё по поводу финального сообщения. Моё мнение - его лучше вернуть, хотя бы сделать всплывающим. Есть у меня много видов, я запустил макрос и не понятно, когда он закончил работу. Не буду же я лазить по всем видам и смотреть везде ли уже проставлены ОЦ (обозначение центра).