ИНТЕЛЛЕКТУАЛЬНОЕ РАСПОЗНАВАНИЕ СМЕЩЕНИЙ В МОДЕЛЯХ CAD
INTELLIGENT RECOGNITION OF OFFSETS IN CAD MODELS

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее раскрытие относится, в общем, к системам автоматизированного проектирования, визуализации и производства (ʺCADʺ), системам управления жизненным циклом изделия (ʺPLMʺ) и аналогичным системам, которые управляют данными об изделиях и других предметах (совместно именуемых системами ʺуправления данными об изделияхʺ или системами PDM).
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0002] Системы PDM управляют данными PLM и другими данными, и системы CAD полезны для моделирования. Желательны усовершенствованные системы.
СУЩНОСТЬ РАСКРЫТИЯ
[0003] Различные раскрытые варианты осуществления включают в себя системы и способы для идентификации членов пар смещений в моделях CAD. Способ включает в себя прием модели CAD, которая включает в себя множество объектов, каждый из которых имеет базовую геометрию. Способ включает в себя определение первой цепи пар смещений, соответствующей первому объекту из множества объектов, включая идентификацию первого партнерского объекта, который является частью той же самой пары смещений. Способ включает в себя определение того, является ли первая цепь пары смещений сильной цепью. Способ включает в себя, когда первая цепь пар смещений является сильной цепью, маркировку первого объекта как часть пары смещений. Способ включает в себя сохранение модели CAD, включающей в себя маркированный первый объект.
[0004] Выше довольно широко описаны признаки и технические преимущества настоящего раскрытия, так что специалисты в данной области смогут лучше понять подробное описание, которое следует. Дополнительные признаки и преимущества изобретения будут описаны в дальнейшем, что составляет предмет формулы изобретения. Специалистам в данной области техники должно быть понятно, что они могут легко использовать концепцию и конкретный вариант осуществления, раскрытый в качестве основы, для модификации или разработки других структур для выполнения тех же целей настоящего раскрытия. Специалистам в данной области техники также должно быть понятно, что такие эквивалентные конструкции не выходят за пределы объекты и объема раскрытия в его самой широкой форме.
[0005] Прежде чем перейти к подробному описанию, изложенному ниже, может быть полезным установить определения некоторых слов или фраз, используемых в данном патентном документе: термины ʺвключать в себяʺ и ʺсодержатьʺ, а также их производные, означают включение без ограничения; термин ʺилиʺ является инклюзивным, означающим и/или; фразы ʺассоциированный сʺ и ʺассоциированный с этимʺ, а также их производные могут означать включать, быть включенным в, взаимосвязывать с, содержать, содержаться в, соединяться с, связываться с, быть связанным с, взаимодействовать с, перемежать, противопоставлять, быть вблизи, быть привязанным к, иметь, иметь свойство или тому подобное; и термин ʺконтроллерʺ означает любое устройство, систему или ее часть, которая управляет по меньшей мере одной операцией, независимо от того, реализуется ли такое устройство в аппаратных средствах, программно-аппаратных средствах, программном обеспечении или некоторой комбинации по меньшей мере двух из них. Следует отметить, что функциональные возможности, связанные с любым конкретным контроллером, могут быть централизованными или распределенными, локально или удаленно. Определения некоторых слов и фраз предоставлены в тексте этого патентного документа, и специалистам в данной области техники должно быть понятно, что такие определения применимы во многих, если не в большинстве, случаях в предшествующих и будущих применениях таких определенных слов и фраз. В то время как некоторые термины могут включать в себя широкий спектр вариантов осуществления, прилагаемая формула изобретения может четко ограничить эти термины до конкретных вариантов осуществления.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0006] Для более полного понимания настоящего раскрытия, а также его преимуществ, обратимся теперь к последующему описанию, которое следует рассматривать совместно с прилагаемыми чертежами, на которых одинаковые ссылочные позиции обозначают одинаковые объекты и на которых:
[0007] Фиг. 1 иллюстрирует блок-схему системы обработки данных, в которой может быть реализован вариант осуществления;
[0008] Фиг. 2 иллюстрирует примеры геометрических смещений между базовыми геометриями в соответствии с раскрытыми вариантами осуществления;
[0009] Фиг. 3 иллюстрирует пары смещений в соответствии с раскрытыми вариантами осуществления;
[0010] Фиг. 4A-4F иллюстрируют соединенные пары смещений в соответствии с раскрытыми вариантами осуществления;
[0011] Фиг. 5А-5С иллюстрируют примеры цепей смещений в соответствии с раскрытыми вариантами осуществления;
[0012] Фиг. 6 иллюстрирует блок-схему последовательности действий процесса в соответствии с раскрытыми вариантами осуществления;
[0013] Фиг. 7А и 7В иллюстрируют пример модели CAD в соответствии раскрытыми вариантами осуществления;
[0014] Фиг. 8 показан пример тонкостенной характеристики в соответствии с раскрытыми вариантами осуществления;
[0015] Фиг. 9 иллюстрирует пример исчезающих партнеров в соответствии с раскрытыми вариантами осуществления;
[0016] Фиг. 10А и 10В иллюстрируют исчезающие перекрытия в соответствии с раскрытыми вариантами осуществления; и
[0017] Фиг. 11 иллюстрирует объекты в нескольких цепях в соответствии с раскрытыми вариантами осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
[0018] Фиг. 1-11, которые рассматриваются ниже, и различные варианты осуществления, используемые для описания принципов настоящего раскрытия в данном патентном документе, приведены только в качестве иллюстрации и не должны быть истолкованы никоим образом, чтобы ограничивать объем раскрытия. Специалистам в данной области техники должно быть понятно, что принципы настоящего изобретения могут быть реализованы в любом выполненном соответствующим образом устройстве. Многочисленные инновационные идеи настоящей заявки будут описаны со ссылкой на приведенные в качестве примера неограничительные варианты осуществления.
[0019] В контексте двумерных (2D) или трехмерных (3D) геометрических моделей, часто бывает полезно для системы иметь возможность автоматически распознавать те пары геометрий смещения, которые пользователь обоснованным образом хотел бы поддерживать или иначе обрабатывать. То есть, модель будет часто включать в себя две геометрии, такие как линия, кривая или объект, которые смещены друг от друга на фиксированное расстояние. Во многих случаях это отношение смещения должно поддерживаться в модели, в то время как выполняются другие операции. Раскрытые варианты осуществления включают в себя интеллектуальные системы и способы для автоматического распознавания и обработки таких отношений смещения.
[0020] Базовое обнаружение нижнего уровня условия геометрического смещения может быть выполнено некоторыми системами, например, путем простого распознавания того, что две геометрии ограничены установленным расстоянием друг от друга. Другие системы могут идентифицировать признаки стенки в моделях объектов путем идентификации встречных поверхностей стенок, как описано в совместно переуступленном патенте США 8,260,583, включенном в настоящий документ посредством ссылки.
[0021] Однако, многие системы либо не будут распознавать отношения смещений без конкретных ограничений, либо будут идентифицировать слишком много пар геометрий как имеющих отношение смещения просто потому, что они расположены близко друг к другу. Чрезмерное распознавание ʺпарʺ смещений особенно проблематично, так как это приводит к медленному и непродуктивному взаимодействию пользователя с системой. Раскрытые варианты осуществления используют эвристические интеллектуальные методы для определения того, какие пары смещений должны быть распознаны.
[0022] На фиг. 1 показана блок-схема системы обработки данных, в которой может быть реализован вариант осуществления, например, в качестве системы CAD или PDM, в частности, сконфигурированной с помощью программного обеспечения или иным образом для выполнения процессов, как описано в настоящем документе, и, в частности, в качестве каждой из множества взаимосвязанных и взаимодействующих систем, как описано в настоящем документе. Система обработки данных включает в себя процессор 102, соединенный с кэшем/мостом 104 уровня два, который соединен, в свою очередь, с локальной системной шиной 106. Локальная системная шина 106 может представлять собой, например, шину архитектуры межсоединений периферийных компонентов (PCI). Также с локальной системной шиной в изображенном примере соединены основная память 108 и графический адаптер 110. Графический адаптер 110 может быть соединен с дисплеем 111.
[0023] Другие периферийные устройства, такие как адаптер 112 локальной сети (LAN)/сети широкого охвата (WAN)/беспроводной сети (например, WiFi), также могут быть соединены с локальной системной шиной 106. Интерфейс 114 шины расширения соединяет локальную системную шину 106 с шиной 116 ввода/вывода (I/O). Шина I/O 116 соединена с адаптером 118 клавиатуры/мыши, контроллером 120 диска и адаптером I/O 122. Контроллер 120 диска может быть соединен с устройством хранения 126, которое может быть любым подходящим используемым машиной или считываемым машиной носителем хранения данных, включая, без ограничения указанным, носители жестко-закодированного типа, такие как постоянная память (ROM) или стираемая, электрически программируемая постоянная память (EEPROM), устройство хранения на магнитной ленте и записываемые пользователем носители, такие как гибкие диски, накопители на жестких дисках и постоянная память на компакт-дисках (CD-ROM) или цифровые универсальные диски (DVD) и другие известные оптические, электрические или магнитные устройства хранения данных. Устройство хранения 126 может хранить любые данные, необходимые для работы, как описано в настоящем документе, в том числе модель CAD 152 и кэш 154, описанные более подробно ниже.
[0024] Также с шиной I/O 116 в показанном примере соединен аудио адаптер 124, с которым могут быть соединены динамики (не показаны) для воспроизведения звуков. Адаптер 118 клавиатуры/мыши обеспечивает соединение для указательного устройства (не показано), такого как мышь, шаровой манипулятор, следящий указатель, сенсорный экран и т.д.
[0025] Специалистам в данной области техники будет понятно, что аппаратные средства, изображенные на фиг.1, могут отличаться для конкретных реализаций. Например, другие периферийные устройства, такие как накопитель на оптических дисках и тому подобное, также могут быть использованы в дополнение или вместо изображенных аппаратных средств. Изображенный пример приведен только с целью объяснения и не подразумевает архитектурных ограничений в отношении настоящего раскрытия.
[0026] Система обработки данных в соответствии с вариантом осуществления настоящего раскрытия включает в себя операционную систему, использующую графический пользовательский интерфейс. Операционная система позволяет представлять одновременно несколько окон отображения в графическом пользовательском интерфейсе, причем каждое окно отображения обеспечивает интерфейс для другого приложения или другого экземпляра того же приложения. Пользователь может манипулировать курсором в графическом пользовательском интерфейсе с помощью указательного устройства. Положение курсора может изменяться и/или может генерироваться событие, например, нажатие кнопки мыши, для задействования желательного ответа.
TM
[0027] Одна из различных коммерческих операционных систем, такая как версия Microsoft Windows, продукт корпорации Microsoft, расположенной в Редмонде, шт. Вашингтон, может быть использована при соответствующей модификации. Операционная система модифицируется или создается в соответствии с настоящим раскрытием, как описано.
[0028] LAN/WAN/беспроводный адаптер 112 может быть соединен с сетью 130 (не является частью системы 100 обработки данных), которая может представлять собой любую общедоступную или частную сеть или комбинацию сетей системы обработки данных, как это известно специалистам в данной области, в том числе Интернет. Система 100 обработки данных может обмениваться данными по сети 130 с серверной системой 140, которая также не является частью системы 100 обработки данных, но может быть реализована, например, как отдельная система 100 обработки данных.
[0029] Раскрытые варианты осуществления включают в себя системы и способы для интеллектуальной идентификации и обработки ʺреалистичныхʺ геометрий смещения и могут быть реализованы в виде общей гибкой структуры, в которую может быть добавлена дополнительная эвристики. Как используется в данном описании, термин ʺреалистичныеʺ смещения относятся к таким, которые соответствуют геометриям смещений, как их рассматривал бы человек-пользователь. Различные варианты осуществления могут работать в различных режимах, в том числе пакетном/глобальном режиме для распознавания всех реалистичных смещений в модели и сохранения этой информации для последующего использования, а также локальном, управляемом выбором, осуществляемом ʺна летуʺ режиме для интерактивных операций, требующих только найти минимум пар смещений.
[0030] Различные варианты осуществления могут использовать абсолютные или контекстно-независимые критерии, так что решение о том, является или не является объект смещением, всегда будет одинаковым, независимо от того, используется ли пакетный режим или режим выбора, и независимо от порядка обработки. В различных вариантах осуществления, цепи соединенных объектов могут рассматриваться вместе, что в большей степени совпадает с тем, как люди оценивают смещения в типичных моделях. Кроме того, хотя и не ограничиваясь этим смещением, различные варианты осуществления могут поддерживать цепи смещений, содержащие некоторые ʺдлинные и тонкиеʺ пары, как это типично для ситуаций тонких стен и зазоров в моделировании CAD.
[0031] Для непротиворечивости описания, различные термины имеют конкретное применение в данном документе. ʺОбъектʺ относится к ограниченной части базовой геометрии. В 2D-реализациях, объект является ребром (кромкой), а базовая геометрия - кривой, в то время как в 3D-реализациях объект является гранью (лицевой стороной), а базовая геометрия - поверхностью.
[0032] ʺГеометрическое смещениеʺ существует между базовыми геометриями двух объектов, когда каждая базовая геометрии является одинаковым расстоянием от другой базовой геометрии во всех соответствующих точках. Эти два объекта упоминаются здесь как ʺпара смещенийʺ, и каждый объект в паре может упоминаться как ʺпартнерʺ другого. В 2D-реализациях, пара смещений могла бы состоять, например, из параллельных линий, концентрических кругов, смещений приближенных сплайновых кривых или базовой кривой и кривой смещения, определенной процедурно:
OffsetCurve(t)=BaseCurve(t)+distance*NormalToBaseCurve(t)
[0033] В 3D-реализациях, пара смещений могла бы состоять, например, из параллельных плоскостей, концентрических сфер, коаксиальных цилиндров, торов с одинаковой центральной линией, коаксиальных и с одинаковым углом конусов, смещений приближенных сплайновых поверхностей или базовой поверхности и поверхности смещения, определенной процедурно:
OffsetSurface(t)=BaseSurface(t)+distance*NormalToBaseSurface(t)
[0034] На фиг. 2 показаны примеры геометрических смещений между базовыми геометриями двух параллельных линий (верхний ряд) и двух концентрических окружностей (нижний ряд). На этом чертеже объекты 202 показаны сплошными линиями, в то время как их соответствующие базовые геометрии 204 показаны пунктирными линиями. Этот чертеж иллюстрирует, что один объект может полностью перекрывать другой объект (первый столбец), частично перекрывать другой (второй столбец), или объекты могут совсем не перекрывать друг друга (третий столбец), где базовые геометрии для каждого объекта имеют геометрическое смещение.
[0035] Как используется здесь, ʺперекрытиеʺ существует между двумя объектами геометрического смещения, если существует хотя бы одна точка проекции между двумя объектами. На фиг. 2, нормаль от поверхности одного объекта может проецироваться на другой объект в первом и втором столбцах, но не в третьем столбце. Таким образом, объекты первого и второго столбцов имеют перекрытие, но объекты третьего столбца не имеют перекрытия.
[0036] ʺПара смещенийʺ относится к двум объектам, которые являются ближайшими перекрывающимися геометрическими смещениями друг друга. Фиг. 3 иллюстрирует пары смещений в соответствии с раскрытыми вариантами осуществления. В этом примере только объекты 2 и 3 образуют пару смещений, поскольку они являются единственной комбинацией, где каждый является ближайшим перекрывающим геометрическим смещением к другому.
[0037] Как используется здесь, две пары смещений или цепи пар смещений являются ʺсоединеннымиʺ, если они имеют то же самое расстояние смещения и имеют смежность (соседство) между объектами на той же стороне или совместно используют объект на той же стороне. Фиг. 4A-4F иллюстрируют соединенные пары смещений в соответствии с раскрытыми вариантами осуществления.
[0038] Фиг. 4A-4D иллюстрируют примеры соединения через смежность. В каждом из этих примеров, объекты 1 и 2 являются первой парой смещений, и объекты 3 и 4 являются второй парой смещений. Эти пары смещений являются соединенными, так как объекты 1 и 4 являются смежными друг другу в каждом примере, и объекты 2 и 3 являются смежными друг другу в примерах, показанных на фиг. 4A и 4B. Смежность на одной стороне достаточна для соединения.
[0039] Фиг. 4E-4F иллюстрируют примеры соединения через совместное использование. В каждом из этих примеров, объекты 1 и 2 являются парой смещений, и объекты 1 и 3 также являются парой смещений. Эти пары смещений являются соединенными, так как объекты 2 и 3, каждый, формируют пару смещений с ʺобщимʺ (совместно используемым) объектом 1.
[0040] ʺЦепь смещенийʺ или ʺцепь пары смещенийʺ, как используется здесь, представляет собой одну или более соединенных пар смещений. Фиг. 5А-5С иллюстрируют примеры цепей 502 смещений, показанных сплошными линиями в модели CAD 500, в то время как остальные объекты показаны пунктирными линиями. Фиг. 5A иллюстрирует минимальную цепь смещений, включающую в себя только одну пару смещений. Фиг. 5B иллюстрирует частичную цепь смещений из нескольких соединенных пар смещений, но не включающую в себя все пары смещений, соединенные с теми, которые показаны. Фиг. 5C иллюстрирует полную цепь смещений, где полная цепь пар смещений показана сплошными линиями.
[0041] Раскрытые варианты осуществления могут обозначать объекты, как ʺреалистическиеʺ смещения, если они являются частью ʺсильнойʺ цепи смещений. О силе или слабости цепи можно судить, используя множество мер.
[0042] В некоторых случаях, цепь смещений может считаться ʺсильнойʺ, если она длинная и тонкая. Эта мера кодирует интерпретацию человеком стенообразных и щелевидных частей модели как более сильных, чем удаленные или короткие участки возможного смещения. В различных вариантах осуществления, эта мера производится по отдельным парам, и цепь считается сильной, если по меньшей мере одна пара является сильной. Она также может быть применена к цепи в целом. Мера представляет собой отношение длины перекрытия к значению расстояния смещения. В 2D-реализациях, длина перекрытия вычисляется как перекрывающиеся части ребер. В 3D-реализациях, длина была бы сформирована любой разумной мерой длины перекрытия, такой как диагональ прямоугольника перекрытия. Переменный порог может быть затем использован, чтобы определить, является ли пара сильной или нет. В некоторых вариантах осуществления, отношение 5:1 (длины перекрытия к смещению) используется в качестве порога для определения того, что пара является сильной, но и другие отношения могут быть использованы в других вариантах осуществления.
[0043] В некоторых случаях, цепь смещений может считаться ʺсильнойʺ, если она явным образом маркирована. Если пара смещений явно обозначена как пара смещений, то она должна рассматриваться как сильная.
[0044] В некоторых случаях цепь смещений цепи может рассматриваться как менее ʺсильнаяʺ, если ее пары смещений ʺблокированыʺ другими объектами. Вмешивающиеся объекты в пределах области перекрытия могут рассматриваться как ослабляющие силу пары или даже вообще игнорирующие ее в качестве пары. То, используется ли эта мера, может в значительной степени зависеть от области применения и конкретной реализации.
[0045] В некоторых случаях, цепь смещений может рассматриваться как ʺсильнаяʺ на основе геометрического типа геометрий. Различные геометрические типы могут рассматриваться как более сильные в связи с учетом редкости их появления. Например, геометрии сплайнов в геометрии приближенных смещений или процедурных смещений вряд ли будут случайными в смещении, в то время как линии и плоскости часто являются параллельными, а окружности и цилиндры часто являются концентрическими. Это может быть использовано в качестве явного переопределения меры силы или же для уменьшения отношения перекрытия, требуемого для распознавания.
[0046] В некоторых случаях цепь смещений может рассматриваться как ʺсильнаяʺ на основе конкретных значений. Конкретные абсолютные значения могут быть значимыми в некоторых ситуациях, или как явно введенные пользователем, или, возможно, набор стандартных значений области может быть известным.
[0047] В некоторых случаях цепь смещений может рассматриваться как ʺсильнаяʺ на основе других особенностей реализации. Как описано в настоящем документе, раскрытые методы являются гибкими, и любые особенности области или реализации могут быть использованы, чтобы вывести пару или всю цепь как сильную.
[0048] На фиг. 6 изображена блок-схема последовательности операций процесса в соответствии с раскрытыми вариантами осуществления, который может быть выполнен, например, с помощью одной или нескольких систем CAD, как описано в настоящем документе, упоминаемых в общем как ʺсистемаʺ.
[0049] Система принимает модель CAD (605), модель CAD включает в себя множество объектов, каждый из которых имеет базовую геометрию. Отметим, что множество объектов могут совместно использовать базовую геометрию, например, два объекта связанных линий на той же базовой геометрии линии. Модель CAD может быть сохранена как модель CAD 152. Модель CAD также может хранить информацию смещений и цепи для некоторых объектов, в том числе, какие объекты являются частью сильной цепи смещений, в этом случае эти объекты не требуют повторной обработке, как описано в настоящем документе.
[0050] Фиг. 7А и 7В иллюстрируют пример модели CAD 700, которая может приниматься и которая имеет множество объектов, таких как объекты 702 на фиг. 7А, каждый из которых имеет базовую геометрию (не показано) и используется для иллюстрации процесса согласно фиг. 6. Хотя этот пример представляет собой 2D-представление модели CAD, процессы, описанные в данном документе, также применимы к 3D-моделям CAD.
[0051] Система может инициализировать кэш цепи (610). Кэш цепи может записывать обработанные объекты и их обнаруженные цепи. Кэш цепи может быть сохранен как кэш 154.
[0052] Система может идентифицировать объекты, подлежащие обработке (615). Это может быть, например, один объект для режима обработки ʺна летуʺ или все объекты в CAD модели для пакетного режима. В примере на фиг. 7A, объект 702 выбран в качестве объекта, подлежащего обработке, и приложение или пользователь должен знать, следует ли обрабатывать выбранный объект 702 в качестве смещения. Идентификация объекта, подлежащего обработке, может включать в себя прием пользовательского выбора одного или нескольких объектов, подлежащих обработке.
[0053] Для каждого объекта, подлежащего обработке, если объект не является уже парой смещений, сохраненной в кэше, система идентифицирует пару смещений (620). В рамках 620, система определяет, является ли объект является частью пары смещений (620), включая идентификацию по меньшей мере одного партнерского объекта. Если текущий объект не является частью пары смещений, то никакая дальнейшая обработка не требуется для этого объекта, так как он не является частью цепи пар смещений. В примере согласно фиг. 7A, объект 704 идентифицирован как объект смещения для объекта 702, и объекты 702 и 704 содержат пару смещений и цепь пар смещений (так как цепи пар смещений нужно иметь только одну пару смещений).
[0054] Система добавляет пару смещений в кэш цепи (625) в качестве цепи пар смещений. Система может сформировать новую цепь в кэше с этой непосредственной парой смещений или добавить эту цепь пар смещений к соединенной цепи пар смещений, уже хранящейся в кэше (если процесс повторяется, как описано ниже).
[0055] Система может определить, является ли цепь пар смещений сильной цепью (630). Если цепь пар смещений является сильной цепью, то цепь пар смещений маркируется как сильная в кэше. В случае режима обработки на лету, обработка может переходить к 640, как только цепь пар смещений маркирована как сильная цепь, так как объект 702, следовательно, определяется как распознанное смещение, и цепь маркируется как сильная в кэше. В пакетном режиме все объекты, как правило, будут обработаны в любом случае.
[0056] В примере согласно фиг. 7А, перекрытие между объектами 702 и 704, однако, является недостаточным по отношению к расстоянию смещения, так что эта цепь не является сильной в первом проходе.
[0057] Система может идентифицировать дополнительную пару смещений, которая соединяется с цепью пар смещений, сохраненной в кэше (635), и процесс повторяется до 625. Если больше нет соединенных пар смещений, то процесс переходит к 640.
[0058] В примере согласно фиг. 7А, объекты 706 и 708 идентифицированы как соединенная пара смещений после первого прохода; эта пара смещений также не является сильной. В последующих итерациях, объекты 710 и 712 добавляются к цепи пар смещений в качестве соединенной пары смещений, но они не являются сильными. Объекты 720 и 722 добавляются к цепи пар смещений в качестве соединенной пары смещений, но они не являются сильными. Объекты 714 и 716 добавляются к цепи пар смещений в качестве соединенной пары смещений, но они не обязательно являются сильными (в зависимости от используемого отношения перекрытия/расстояния). Объекты 714 и 718 добавляются цепи пар смещений в качестве соединенной пары смещений, но они не обязательно являются сильными (в зависимости от используемого отношения перекрытия/расстояния). Однако когда перекрытие объектов 716 и 718 объединяется с объектом 714, как это описано более подробно ниже, то ясно, что имеется сильная цепь пар смещений.
[0059] Система маркирует выбранный объект как часть пары смещений, если он является частью сильной цепи (640). Если он не является частью сильной цепи, то выбранный объект не маркируется как часть пары смещений. Отметим, что нет необходимости находить всю цепь, чтобы определить результат для выбранного объекта. В примере согласно фиг. 7A, как только сильная цепь пар смещений идентифицирована, объект 702 маркируется как часть пары смещений.
[0060] Система сохраняет модель CAD, включающую в себя маркированные объекты (645). Любые из пары смещений, цепи пар смещений или другой информации, описанной выше, также могут быть сохранены.
[0061] Конечно, специалистам в данной области техники должно быть понятно, что, если конкретно не указано или не требуется последовательностью операций, некоторые этапы в процессах, описанных выше, могут опускаться, выполняться одновременно или последовательно или выполняться в другом порядке.
[0062] Фиг. 7В иллюстрирует результаты процесса в пакетном режиме, как описано выше. Пакетный режим распознал бы три полных цепи в модели 700, показанные сплошными линиями на фиг. 7В, в то время как не относящиеся к цепи объекты показаны пунктирными линиями. На этом чертеже одна цепь иллюстрируется сплошными линиями, обозначенными 730, другая цепь - сплошными линиями, обозначенными 740, и финальная цепь - остальными сплошными линиями.
[0063] В различных вариантах осуществления, система учитывает сочетание множества объектов в вычислениях перекрытия. Когда пары смещений совместно используют объект, например, как объекты 716 и 718 совместно используют объект 714 на фиг. 7А, вычисление отношения смещения может быть улучшено путем суммирования перекрытия всех пар. Этот случай часто возникает в результате расщепления одной стороны одной пары смещений и часто является тем, как человек воспринимает этот случай. В примере согласно фиг. 7A, как описано выше, сумма перекрытий между объектами 714/716 и 714/718 сравнивается с разностью смещений, что приводит к значительно большему отношению для рассмотрения того, сформирована ли сильная цепь смещений. Такая комбинация не ограничивается двумя объектами, которые совместно используют другой объект; любое количество объектов, которые совместно используют общий объект, могут быть объединены для такого вычисления перекрытия. То есть, перекрытие может быть вычислено на основе отношения (i) суммы длин, на которые первый объект и по меньшей мере один другой объект, который совместно использует первый партнерский объект, перекрывают первый партнерский объект, к (ii) расстоянию смещения между первым объектом и первым партнерским объектом.
[0064] Различные варианты осуществления могут также фильтровать пары смещений. В некоторых реализациях и для некоторых областей, может потребоваться только распознавать некоторые подмножества смещений. Например, если конкретный смысл может быть назначен каждой стороне объектов, например, ʺвнутриʺ и ʺснаружиʺ, тогда могут потребоваться смещения с характеристиками тонких стенок или габаритных зазоров между стенками, в то время как другие комбинации, где стороны выровнены, могут быть бесполезными. На фиг. 8 показан пример тонкостенной характеристики 802, где пара объектов образует тонкую стенку внутри объекта 820. Фиг. 8 также иллюстрирует пример характеристики 804 зазора, где пара объектов представляет собой смещение между заключенным объектом 810 и заключающим объектом 820. Фиг. 8 также иллюстрирует пример выровненной характеристики 806, где пара объектов представляет выровненное смещение между границами объекта 830 и объекта 820. Любые данные пары объектов могут фильтроваться, чтобы быть включенными или исключенными из процесса на основе таких характеристик.
[0065] В различных вариантах осуществления система может обрабатывать исчезающих партнеров. Общей проблемой при работе со смещениями является, когда радиус кривизны становится равным, а затем меньшим, чем расстояние смещения. Когда он становится равным, партнерский объект сжимается в точку нулевого радиуса, а когда он уменьшается дальше, радиус партнера эффективно становится отрицательным и не представляется в реальной части модели.
[0066] На фиг.9 показан пример исчезающих партнеров, когда радиус уменьшается, слева направо. На левой иллюстрации, радиус R кривизны внешнего объекта больше, чем расстояние d между внутренним объектом и внешним объектом, и поэтому радиус r кривизны внутреннего объекта больше нуля. На средней иллюстрации, R равно d, и r равно 0 (где d поддерживается постоянным), так что внутренний объект сжался в точку. На правой иллюстрации, R меньше, чем d, так что r меньше, чем 0 (где d поддерживается постоянным); внутренний объект вообще исчез из видимой модели.
[0067] Поскольку это довольно распространенная ситуация, различные процессы распознавания смещения, как описано здесь, обнаруживают это в явном виде с учетом геометрии соседства. Пара смещений с виртуальным партнером (то есть, созданным в модели, но не видимым в модели) и нулевой или отрицательный радиус используется для представления этой ситуации, позволяя паре быть частью цепи смещений. Когда модель затем редактируется, и больший радиус увеличивается или расстояние уменьшается (справа налево на чертеже), радиус партнера может снова стать положительным и может повторно появиться в модели.
[0068] В различных вариантах осуществления система может обрабатывать исчезающие перекрытия. Когда длина пары объектов-кандидатов смещений становится меньше, чем значение расстояния смещения, перекрытие будет исчезать.
[0069] Фиг. 10А и 10В иллюстрируют исчезающие перекрытия в соответствии с раскрытыми вариантами осуществления. Примером исчезающего перекрытия является, когда объекты малы по сравнению со значением смещения. В примере согласно фиг. 10A, отметим, что на крайней левой иллюстрации объекты 1002 и 1004 в цепи смещения перекрываются. Когда объекты 1002 и 1004 рассматриваются как прогрессивно уменьшающиеся, перекрытие исчезает, так что никакого перекрытия не видно на крайней правой иллюстрации. При условии, что расстояние d постоянно, пользователю часто было бы желательно, чтобы крайний левый случай все еще рассматривался как цепь пар смещений.
[0070] Для решения этой проблемы, система может определить требование ʺперекрытияʺ, чтобы включать зазоры вплоть до расстояния смещения. Фиг. 10B иллюстрирует пример, допускающий пару смещений, когда имеется зазор расстояния в перекрытии. В этом случае зазор в перекрытии между объектами 1006 и 1008 меньше, чем расстояние d смещения, так что система может рассматривать их как перекрывающиеся при идентификации пар смещений.
[0071] Следует отметить, что это не должно означать, что мера силы изменилась, поскольку эта пара должна по-прежнему, как правило, не считаться сильной. Достаточно включить пару в базовую проверку и допустить, чтобы сила требовалась еще где-либо в цепи.
[0072] В различных вариантах осуществления система может обрабатывать явные метки. Наличие явной метки, которая указывает на то, что пара должна рассматриваться как пара смещений, по меньшей мере в локальном использовании для редактирования, в общем случае, как ожидается, привело бы к паре, включенной в обработку в качестве пары смещений, независимо от того, удовлетворяет ли она требованиям перекрытия или ближайших соседей. Отметим, что это не следует путать с предыдущим упоминанием явной маркировки в качестве повышения меры силы в остальном действительной пары смещений.
[0073] В различных вариантах осуществления система может обрабатывать несколько цепей для того же самого объекта. Алгоритмическая структура способна обрабатывать объекты, находящиеся в нескольких цепях. Фиг. 11 иллюстрирует объекты в нескольких цепях. Например, на этом чертеже, первая цепь смещений могла бы включать в себя объекты 1102/1106/1112 и их партнерские объекты 1104/1108/1110. Вторая цепь смещений могла бы включать в себя объект 1104 и партнерский объект 1110. Это может быть верным, независимо от того, является ли или нет расстояние смещений между парами в первой цепи смещений таким же или отличается от расстояния между парами во второй цепи смещений. Это включение предпочтительно ограничено, чтобы избегать чрезмерного нахождения пар смещений, и поэтому система может использовать специфическую для реализации эвристику и знание в предметной области, чтобы ограничивать нахождение избыточных пар.
[0074] В различных вариантах осуществления, найденные пары с характерными длинными и тонкими начальными элементами делают всю цепь распознанной, и найденные пары как смещения, которые были бы слабыми, в отдельности, считаются как смещения за счет соединения цепи. Различные варианты осуществления могут находить те пары смещений, которые являются ближайшими перекрывающимися смещениями друг друга, и могут избегать обнаружения пар смещений, когда имеются блокирующие объекты.
[0075] Различные варианты осуществления могут использовать знания предметной области и расширения реализаций в рамках раскрытых методов, в том числе в базовом обнаружении условия пары смещений, в фильтрации нежелательных пар смещений, в типах соединений для формирования цепей и в указателях силы для пар и цепей в целом.
[0076] Специалистам в данной области техники должно быть понятно, что, для простоты и ясности, полная структура и работа всех систем обработки данных, пригодных для использования с настоящим раскрытием, не изображается и не описывается в данном документе. Вместо этого, изображается и описывается только та часть системы обработки данных, которая является уникальной для настоящего раскрытия или необходима для понимания настоящего раскрытия. Остальная часть структуры и работы системы 100 обработки данных может соответствовать любой из различных современных реализаций и методов, известных в данной области техники.
[0077] Важно отметить, что хотя раскрытие включает в себя описание в контексте полностью функциональной системы, специалистам в данной области техники должно быть понятно, что по меньшей мере части механизма настоящего раскрытия могут распространяется в виде инструкций, содержащихся в используемом машиной, используемом компьютером или считываемом компьютером носителе данных в любой из разнообразных форм, и что настоящее раскрытие в равной степени применимо независимо от конкретного типа носителя, несущего инструкции или сигнал, или носителя хранения данных, используемого для действительного выполнения распространения. Примеры используемого/считываемого машиной или используемого/считываемого компьютером носителя включают в себя: энергонезависимые, жестко закодированные носители, такие как постоянная память (ROM) или стираемая, электрически программируемая постоянная память (EEPROM) и записываемые пользователем носители, такие как гибкие диски, жесткие диски и постоянная память на компакт-дисках (CD-ROM) или цифровые универсальные диски (DVD).
[0078] Хотя примерный вариант осуществления настоящего раскрытия был описано подробно, специалистам в данной области техники должно быть понятно, что различные изменения, замены, варианты и усовершенствования, раскрытые в данном документе, могут быть сделаны без отступления от сущности и объема раскрытия в его самом широком виде.
[0079] Никакая часть описания в настоящей заявке не должна рассматриваться как означающая, что любой конкретный элемент, этап или функция является существенным элементом, который должен быть включен в объем формулы изобретения: объем запатентованного предмета определяется только принятыми пунктами формулы изобретения. Кроме того, ни один из этих пунктов формулы изобретения не предназначен для требования применения абзаца шесть 35 USC 112, если только за точными словами ʺсредство дляʺ не следует причастие.