Перейти к публикации

Рекомендованные сообщения

Доброго вечера. Поздравляю всех с прошедшими праздниками и желаю успехов.

Вообще проблема у меня следующая возникла. Пишу код по определению длины профиля с корявыми наконечниками. Алгоритм следующий:

1. Находим макс плоскость тела

2. По ней определяем ось

3. Точки оси разношу в разные стороны от тела сонаправленно ее векторам оси на некое расстояние, скажем на 10 метров

4. Далее методом Dist = part.ClosestDistance(body, swSketchPt1, Point1, Point2)  нахожу Point1 , координаты точки соприкосновения с телом на минимальной дистанции.

Торцы профиля имеют сложную зарезку образовывая одну или несколько поверхностей.

Получается всегда что точка сопряжения попадает либо на вершину , либо на кромку, либо на плоскость торца.

Что мы имеем . Координату. Вот по ней родимой и надо определить объект vertex, edge или face для задания последующих собряжений в 2D эскизе.(Для добавления длины профиля в свойства)

Попробовал метод SelectByID2. Надеялся на адекватное выделение. Но так и не понял до конца, почему выделяется скажем грань а не кромка и все в таком духе. Т.е, метод мне показался не надежным . Подозреваю что из-за наличия погрешности.

Отсюда вопрос, есть способы с помощью координаты найти  или определить объект твердого тела помимо SelectByID2?

 

 

профиль.jpg

Ссылка на сообщение
Поделиться на других сайтах


@Sla_68 если честно, я не понял вопроса :smile:

Сначала про грани и поиск точек, потом про длину, потом вообще "про что-то"

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах
59 минут назад, zerganalizer сказал:

на них стройте плоскости параллельные вашим

Дичайший совет. Делать дополнительные геометрические построения для нахождения математических точек.

Вы когда расстояние палки измеряете, то сначала прибиваете доски к торцам??? Ндаа...

Изменено пользователем streamdown
Ссылка на сообщение
Поделиться на других сайтах
11 минуту назад, streamdown сказал:

Дичайший совет. Делать дополнительные геометрические построения для нахождения математических точек.

Вы когда расстояние палки измеряете, то сначала прибиваете доски к торцам??? Ндаа...

100% рабочий и ПРОВЕРЕННЫЙ МНОГОКРАТНО совет для определения габарита вдоль оси любой балки типа у ТС. Картинки хоть смотрите, если не понимаете...

Ссылка на сообщение
Поделиться на других сайтах

@zerganalizer Я не понял что спрашивает никнейм выше. А то что вы посоветовали - дичь. И без картинок. И даже не надо вам мне ничего дальше объяснять)))

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, streamdown сказал:

Я не понял что спрашивает никнейм выше.

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

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, zerganalizer сказал:

Просто выдал решение

Слава богу, что в больших компаниях по производству софта сидят адекватные люди, не такие как вы)) и делают нормальный софт с нормальным API. И слава богу, что есть уйма программистов, которые пользуются математикой и головой для воспроизведения своих хотелок, а не "дендро-феккальными методами". Может лучше вам обратно в тему взд вернуться? :smile: там вас понимают и любят 

@Sla_68 ни в коем случае не делайте дополнительные геометрические построения лишь для того, чтобы что-то там вычислить. У вас есть мощный инструмент для такого - код.

Ссылка на сообщение
Поделиться на других сайтах

На балках типа как на фото надо распознать ось (направление), построить 2 экстремума вдоль направления (min, max), провести через них плоскости перпендикулярно оси и запросить между ними расстояние, чтобы в параметр "длина балки" положить результат. А каким кодом делать это - ТС виднее.

Ссылка на сообщение
Поделиться на других сайтах

Приветствую. Большая просьба не развозить  холивар по пустому. Я сейчас работаю в солиде по следующей стратегии. Большинство необходимых деталей или сборок делаю как одну деталь. Далее разделяю тела и сохраняю их. В зависимости от группы материала нужно назначить свойства. После разделения , отсутствует дерево построения детали с фичерами а также отсутствуют свойства. Поэтому макросами создаю алгоритмы для анализа геометрии и назначения геометрических свойств. В данном случае я нарисовал произвольный профиль с произвольными зарезами торцев. Понятие "профиль"- у меня это твердое тело имеющее  в разрезе сечение состоящее из кривых дуга или линия. Торцы у меня - это всегда плоские срезы(один или несколько), образующие одну или несколько плоскостей от режущего инструмента. Я поставил себе следущие задачи. 1) Определить в виде эскизной линии длину провиля. 2) Профиль должен иметь в свойстве привязки к геометрии детали, для параметрических изменений. Те если я изменю деталь "прототип-родитель" то это изменит сборку из разделеных тел и повлияет на свойтва всех деталей.

Ссылка на сообщение
Поделиться на других сайтах

@Sla_68

9 минут назад, Sla_68 сказал:

Большая просьба не развозить  холивар по пустому.

Это почему? А где критерий холивара в отличие от "по делу"?

 

9 минут назад, Sla_68 сказал:

Определить в виде эскизной линии длину провиля.

Судя по вашим исходным, ответьте - какая будет длина вот такого профиля?

Скрытый текст

fed36b23f36959d3c902567e6e28614a.png ad17a86d72216e7971546caa3db442d8.png

 

Изменено пользователем streamdown
Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем zerganalizer
Ссылка на сообщение
Поделиться на других сайтах

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

 

Мысли такие , использовать след код:

Function ближайшая_вершина_к_координате(body, x, y, z, dist)
           vList = body.GetVertices
           Dim arr() As Double
           Dim edjpoint As Variant
           Dim arrobj() As Object
           Dim arrobjdis() As Double
            
                        For i = 0 To UBound(vList)
                            edjpoint = vList(i).GetClosestPointOn(x, y, z) 'ближайшая точка
                            ReDim Preserve arr(i) 'массив дистанций
                            ReDim Preserve arrobj(i)
                            arr(i) = длина_линии(x, y, z, edjpoint(0), edjpoint(1), edjpoint(2)) 'тригонометрия
                            Set arrobj(i) = vList(i)
                        Next i
                            max_min_indexarray arr, max1n, max2n, min1n, min2n ' моя функция для нахождения 1мин, 2мин, 1 макс, 2 макс индекса массива c использованием пузырьковой сортировки 
                            dis = arr(min1n)
                            Set ближайшая_вершина_к_координате = arrobj(min1n)
End Function

 

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, Sla_68 сказал:

ближайшая_вершина_к_координате

Все, мимо, если круглое сечение, скошенное под 45. Вы не попадете в вершину солида, это будет точка на кривом ребре. Если, конечно, метод не ищет точку ребра...

 

Вот только не понял - вы в пространстве чертежа API юзаете, или в модели 3D???

Изменено пользователем zerganalizer
Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, streamdown сказал:

Это почему? А где критерий холивара в отличие от "по делу"?

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

 

5 минут назад, streamdown сказал:

Судя по вашим исходным, ответьте - какая будет длина вот такого профиля?

20 миллиметров

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, streamdown сказал:

Вы когда расстояние палки измеряете, то сначала прибиваете доски к торцам??? Ндаа...

Штангель правильно прикладываю.

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, zerganalizer сказал:

Все, мимо, если круглое сечение, скошенное под 45. Вы не попадете в вершину солида, это будет точка на кривом ребре. Если, конечно, метод не ищет точку ребра...

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

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, zerganalizer сказал:

Экстремум от твердого тела в заданном направлении солид умеет?

Я этот вопрос не понял. Солид умеет много чего. Например проецировать точку в направлении вектора...http://help.solidworks.com/2017/English/api/sldworksapi/Get_Projected_Point_Example_VB.htm.

Ссылка на сообщение
Поделиться на других сайтах

Есть такая операция - в заданном направлении находит самую "высокую/низкую" точку тела - экстремум. Как экстремум функции.

extremums.jpg

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • gudstartup
      ну за границу ездил и досмотр при выезде обязателен у него не один а с одним станком это не производство у многих даже в гаражном хозяйстве больше
    • aalex_b
      Добрый день. Саму систему я поднял. Не знаю куда вводится центр стола, но предполагаю в 960,хх параметр для Y и для X А поворот головы куда вносят: при горизонтальном и вертикальном положении. Так же методика измерения интересует  HDD ушел физически: BIOS его не видит и при включении питания свист, как от болгарки.
    • Flint_ru
      Добрый день!  Подскажите, можно ли в WB задать нагрузку двухмерной таблицей, не прибегая к всавке apdl и если можно, то как?  В apdl  просто создается таблица, например, один параметр Time, другой координата. В итоге можно для каждого шага задать свою нагрузку, зависящую от координаты.  В WB можно выбрать  tabular, но есть возможность выбрать только одну независимую переменную. Спасибо.
    • Killerchik
      Вы уверены? Я не знаю, на сколько дотошна на вывоз китайская таможня. Судя по идущим посылкам - совершенно не дотошна.   СОЖ мы себе везли (которую по моей дурости купили, думая что привезти будет легко) через 2 промежуточные страны страны. Что-то более стрёмное, с малейшей электроникой, едет через 3. Это типа прекрасная новая реальность, добро пожаловать.   Со станком не случится, а вот с заказом может случится много чего - не успеть к выставке, не получить инвестора. Производства бывают разные - какая-то конкретная деталь может быть сделана на каком-то одном имеющемся станке, может там отверстие глубокое, может габарит большой. Да может просто у человека один станок, и всё! Что он теперь, ненормальный?
    • Jesse
      @Fedor Успокойтесь. Никто тут не собирается отказываться от теории сплошности
    • Shura762
      Вопрос из разряда "Достало" как сделать в Словаре ширину колонок больше ПОСТОЯННОЙ! уже устал двигать каждый раз. Это первый вопрос. Второй - при "Сброс настроек.." Словарь принимает вид из поставки, где кроются файлы для восстановления, хочу заменить и забыть. Спасибо заранее. И еще вдогонку, при редактировании содержимого Словаря или создания нового используется Шрифт "старый" как изменить на "новый" который в ТФ по умолчанию.
    • Maik812
      Хочешь не хочешь а сортировать по содержимому и искать в нем текст приходится..  Есть правильные конвертеры просто. Но вот бывает что не та кодировка или не так правильно она оформлена и не понимает. Сверху абракадабра в слове "формат" Солид 2010 кажется, а ниже пересохранен в новее версии или наоборот.. Там конвертер x2doc , он "на лету" переводит пдф в текстовик и регулярным выражением вытаскивает "содержимое" в колонку . Поиск текста в пдф тоже так же делается. А содержимое колонки ТС, можно уже одним кликом по команде в EXEL вставить.
    • MagicNight
      Добрый день! Купили фрезерный станок с ЧПУ со стойкой FANUC Series 0i-Model F Plus. Имею не большой опыт данной стойки. Привязали десять инструментов относительно стола станка (т.е стол станка Z=0) Сейчас принесли приспособление которое имеет высоту 50мм. Хотим привязать весь инструмент от приспособления. Подскажите, как это сделать быстро, чтобы не вносить изменения в корректор на каждый инструмент. Пролистал книги в электронном варианте, бегло, не нашел. А уже нужно делать заказ.
    • kkk
      Стрелки разрезов иногда "пробивают" линии разрезов, что-то еще бывает. Но это мелочи, у нас нормоконтроля нет. А вот когда закрашенные виды начинают жестко чудить, с пропаданием или перемешиванием текстур, тогда уже неприятно. Либо еще какие-глюки вылезают оформительские. Нам часто приходится дизайнерам на одобрение файлы засылать, а такие штуки несколько нервируют.
    • ID_Hacker
      Более того, у него в SET PG/PC в диагностике нельзя посмотреть доступные адреса на шине. Но для общих задач подходит. Так же мы их комуникационные интерфейсы MPI/ETHERNET берём, что бы подключать станки на Sinumerik Powerline к заводской сети для сбора данных диспетчеризации и удалённого подключения Step 7.     Здесь ищите: Александр Кудинов, Пряничников Алексей. Номера давать некультурно.     ТИА у вас просит ToolBox 18 Update 1 потому что сама ТИА 18 версии. Проект то такой версии и был? Или вы конвертировали при открытии? Файл проекта ТИА имеет расширение *.ap13, *.ap14, *.ap16, *.ap18 в зависимости от версии ТИА в которой он создан.   И ещё вариант поиска. У вас же на станке наверняка стоит Simatic IPC компьютер и TCU на пульту управления. Вы пробовали выходить на Simatic IPC в Windows и смотреть что на нём есть? Вполне может быть там установлена TIA с нужными дополнениями.
×
×
  • Создать...