ЛОКАЛЬНОЕ ПОВЕДЕНИЕ В ВАРИАЦИОННОЙ СИСТЕМЕ
LOCAL BEHAVIOUR IN VARIATION SYSTEM

Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится в общем к системам компьютеризированного проектирования, визуализации и производства («системам CAD»), системам управления жизненным циклом продукции (ʺPLMʺ) и подобным системам, которые управляют данными о продукции и других объектах (вместе называемых системами «управления данными о продукции» или системами PDM).
Уровень техники
[0002] Системы CAD позволяют создавать, визуализировать и изменять модели объектов. Желательно создание улучшенных систем.
Раскрытие изобретения
[0003] Различные описанные варианты выполнения включают в себя способы редактирования CAD и соответствующие системы и машиночитаемые носители. Способ включает в себя этапы, на которых принимают модель CAD, включающую в себя множество объектов, и принимают пользовательский ввод, включающий в себя выбор по меньшей мере одного объекта и перемещение выбранного объекта. Способ включает в себя этапы, на которых применяют любое основное условное поведение, которое соответствует пользовательскому вводу, и применяют любое дополнительное условное поведение, которое соответствует пользовательскому вводу. Способ включает в себя этап, на котором формируют вариационную систему, подлежащую решению на основании пользовательского ввода, любого применяемого основного условного поведения и любого дополнительного условного поведения. Способ включает в себя этап, на котором выполняют вариационное решение вариационной системы для формирования отредактированной модели CAD, и сохраняют отредактированную модель CAD.
[0004] Выше приведена довольно широкая характеристика признаков и технических преимуществ настоящего изобретения для того, чтобы специалисты в данной области техники лучше понимали нижеследующее подробное описание. Далее будут описаны дополнительные признаки и преимущества изобретения, которые образуют содержимое формулы изобретения. Специалистам в данной области техники будет понятно, что они могут с легкостью использовать концепцию и конкретный раскрытый вариант выполнения в качестве основы для изменения или разработки других структур для достижения тех же целей настоящего изобретения. Специалистам в данной области техники также будет понятно, что такие эквивалентные конструкции не выходят за рамки объема изобретения в его наиболее широкой форме.
[0005] Перед приведением нижеследующего ПОДРОБНОГО ОПИСАНИЯ может быть полезным приведение определений некоторых слов или словосочетаний, используемых в этом патентном документе: понятия «включать в себя» и «содержать», а также их производные, обозначают включение без ограничения; понятие «или» является не исключающим, означает «и/или»; словосочетания «ассоциированный» и «ассоциированный с», а также их производные, могут означать включение, включение во что-либо, взаимное соединение с чем-либо, содержание, содержание внутри чего-либо, соединение с чем-либо, сопряжение с чем-либо, возможность осуществления связи с чем-либо, взаимодействия с чем-либо, перемежение, наложение, нахождение вблизи чего-либо, связь с чем-либо, наличие чего-либо, наличие свойства, или тому подобное; и понятие «контроллер» означает любое устройство, систему или их часть, которая управляет по меньшей мере одной операцией, при этом такое устройство может быть реализовано в аппаратном обеспечении, микропрограммном обеспечении, программном обеспечении или в каком-либо сочетании по меньшей мере двух видов указанного выше. Следует отметить, что функциональность, ассоциированная с каким-либо конкретным контроллером, может быть централизованной или распределенной как локально, так и удаленно. Определения некоторых слов и словосочетаний приведены на протяжении данного патентного документа, и специалистам в данной области техники будет понятно, что такие определения применимы во многих, если не в большинстве случаев к более ранним, а также и к будущим применениям определенных таким образом слов и словосочетаний. При том, что некоторые понятия могут включать в себя широкий спектр вариантов выполнения, приложенная формула изобретения может явным образом ограничивать эти понятия конкретными вариантами выполнения.
Краткое описание чертежей
[0006] Для более полного понимания настоящего изобретения и его преимуществ заявитель обращается теперь к нижеследующему описанию, рассматриваемому в сочетании с сопровождающими чертежами, на которых аналогичные позиции указывают на аналогичные объекты, и на которых:
[0007] На Фиг. 1 показана блок-схема системы обработки данных, в которой может быть реализован вариант выполнения изобретения.
[0008] На Фиг. 2A-2D показаны примеры возможных результатов перемещения края в модели CAD в соответствии с раскрытыми вариантами выполнения.
[0009] На Фиг. 3A-3L показаны примеры основного поведения для модели CAD на основании определенных состояний и пользовательского выбора в соответствии с раскрытыми вариантами выполнения.
[0010] На Фиг. 4A-4L показаны примеры основного поведения для модели CAD на основании определенных состояний и пользовательского выбора для некоторых других видов кривых в соответствии с раскрытыми вариантами выполнения.
[0011] На Фиг. 5A-5I показаны примеры основного поведения для модели CAD на основании определенных состояний и пользовательского выбора для некоторых других видов кривых в случае, когда имеет место слияние между элементами в соответствии с раскрытыми вариантами выполнения.
[0012] На Фиг. 6A-6F показаны примеры основного поведения по повороту в соответствии с раскрытыми вариантами выполнения при перемещении элемента.
[0013] На Фиг. 7A-7D показано основное поведение с использованием блокировки высоты кривой в соответствии с раскрытыми вариантами выполнения.
[0014] На Фиг. 8A-8L показаны примеры дополнительного условного поведения для модели CAD на основании определенных состояний и пользовательского выбора в соответствии с раскрытыми вариантами выполнения.
[0015] На Фиг. 9A-9F показаны различные классификации соединений в соответствии с раскрытыми вариантами выполнения.
[0016] На Фиг. 10 показана блок-схема процесса в соответствии с раскрытыми вариантами выполнения.
Осуществление изобретения
[0017] Рассмотренные ниже Фиг. 1-10 и различные варианты выполнения, используемые для описания принципов настоящего изобретения в этом патентном документе, приведены лишь в качестве иллюстрации и не должны быть истолкованы каким-либо образом как ограничивающие объем изобретения. Специалистам в данной области техники будет понятно, что принципы настоящего изобретения могут быть реализованы в любом устройстве, выполненном надлежащим образом. Различные новые концепции настоящей заявки будут описаны с обращением к примерным, не ограничивающим вариантам выполнения.
[0018] Раскрытые варианты выполнения обеспечивают возможность интуитивного редактирования двумерной и трехмерной геометрии. Для обеспечения постоянных результатов, соответствующих ожиданиям пользователя, локальным поведением перемещаемой геометрии необходимо управлять. Раскрытые варианты выполнения включают в себя системы и способы определения и формирования желаемого поведения при редактировании моделей CAD.
[0019] В системе вариационного моделирования, такого как процессы «синхронной технологии», используемые в продукции Siemens Product Lifecycle Management Software, Inc., изменения выражаются в общем вариационными методами. Вариационная система описывает параметры и отношения признаков в модели объекта или наборе кривых с точки зрения геометрических ограничений и размеров. Затем в таких системах используется процесс-«вычислитель» для обработки этих ограничений и размеров вместе с множеством дополнительных ограничений и размеров, требуемых для сохранения определяющих параметров, и необходимый участок модели вычисляется одновременно.
[0020] Традиционно управление геометрией кривых в двух измерениях (2D) или в трех измерениях (3D) осуществлялось либо без ограничений, либо с необходимостью полного ограничения всей системы автоматически или вручную. Ни один из этих способов не имеет преимуществ синхронной технологии, которая автоматизирует основанное на выборе, локальное, быстрое и интуитивное редактирование и не требует ограничения всей системы.
[0021] Модель CAD определяется набором геометрий, соединенных вместе последовательностью топологических и геометрических отношений. Эти отношения необходимо поддерживать по мере манипуляции с геометрией, и таким образом они влияют на локальное поведение как движущейся, так и неподвижной геометрии.
[0022] При манипулировании геометрией очень часто существует множество способов, которыми соответствующая геометрия может перемещаться так, чтобы она сохраняла упомянутое отношение. С точки зрения человека некоторые из этого множества решений являются явно нежелательными, но также есть множество решений, которые являются желательными. Это представляет проблему для любого программного обеспечения, которое стремится к манипулированию геометрией способом, который как является интуитивным для пользователя, так и обеспечивает пользователю гибкость при получении желаемого результата.
[0023] Раскрытые варианты выполнения определяют желаемое локальное поведение как для движущихся объектов, так и для смежных объектов, и описывают процессы формирования этого поведения в системе CAD.
[0024] На Фиг. 1 показана блок-схема системы обработки данных, в которой может быть реализован вариант выполнения, например системы PDM, в частности конфигурированной посредством программного обеспечения или другим способом для выполнения процессов, описанных в настоящем документе, и в частности в качестве каждой из множества взаимно соединенных и осуществляющих связь друг с другом систем, описанных в настоящем документе. Показанная система обработки данных включает в себя процессор 102, соединенный с мостом/кэшем 104 второго уровня, который, в свою очередь, соединен с локальной системной шиной 106. Локальная системная шина 106 может быть, например, шиной архитектуры взаимосвязи периферийных компонентов (PCI). Также с локальной системной шиной в показанном примере соединены основная память 108 и графический адаптер 110. Графический адаптер 110 может быть соединен с дисплеем 111.
[0025] Другие периферийные устройства, такие как адаптер 112 локальной сети (LAN)/глобальной сети/беспроводной сети (например WiFi), также могут быть соединены с локальной системной шиной 106. Интерфейс 114 шины расширения соединяет локальную системную шину 106 с шиной 116 ввода/вывода (I/O). Шина 116 I/O соединена с адаптером 118 клавиатуры/мыши, контроллером 120 дисков и адаптером 122 I/O. Контроллер 120 дисков может быть соединен с хранилищем 126, которое может представлять собой любой подходящий используемый машиной или машиночитаемый носитель, включая, но не ограничиваясь, энергонезависимые носители жестко закодированного типа, такие как постоянные запоминающие устройства (ROM) или стираемые, электрически программируемые постоянные запоминающие устройства (EEPROM), носители на магнитной ленте, и носители записываемого пользователем типа, такие как гибкие диски, жесткие диски и постоянные запоминающие устройства на компакт-дисках (CD-ROM) или универсальных цифровых дисках (DVD), и другие известные оптические, электрические и магнитные запоминающие устройства. Хранилище 126 может хранить такие программные элементы и элементы данных, как модель 152 CAD, вариационная система 154 и другие, описанные в настоящем документе.
[0026] Также в показанном примере с шиной 116 I/O соединен аудиоадаптер 124, с которым могут быть соединены громкоговорители (не показаны) для воспроизведения звуков. Адаптер 118 клавиатуры/мыши обеспечивает соединение для устройства указания (не показано), такого как мышь, шаровой манипулятор, тензометрический джойстик и т.п.
[0027] Специалистам в данной области техники понятно, что аппаратное обеспечение, изображенное на фиг. 1, может различаться в конкретных вариантах реализации. Например, в дополнение к показанному аппаратному обеспечению или вместо него также могут быть использованы другие периферийные устройства, такие как оптический дисковод и тому подобное. Изображенный пример представлен лишь в целях пояснения и не подразумевает каких-либо ограничений в плане архитектуры в отношении настоящего изобретения.
[0028] Система обработки данных в соответствии с вариантом выполнения настоящего изобретения включает в себя операционную систему, использующую графический пользовательский интерфейс. Операционная система позволяет одновременно представлять на графическом пользовательском интерфейсе множество окон отображения, при этом каждое окно отображения обеспечивает интерфейс для другого приложения или для другого экземпляра того же приложения. Пользователь может манипулировать курсором в графическом пользовательском интерфейсе посредством указывающего устройства. Может изменяться положение курсора и/или может формироваться событие, такое как нажатие на клавишу мыши, для вызова желаемого ответа.
TM
[0029] Может использоваться одна из различных доступных на рынке операционных систем, таких как версия Microsoft Windows, продукции компании Microsoft Corporation, расположенной в Редмонде, штат Вашингтон, при условии надлежащей модификации. Операционная система модифицируется или создается в соответствии с настоящим изобретением, как описано.
[0030] Адаптер 112 LAN/WAN/беспроводной сети может быть соединен с сетью 130 (которая не является частью системы 100 обработки данных), которая может быть сетью или сочетанием сетей общественной или частной системы обработки данных, как известно специалистам в данной области техники, включая сеть Интернет. Система 100 обработки данных может осуществлять связь по сети 130 с серверной системой 140, которая также не является частью системы 100 обработки данных, но может быть реализована, например, в виде отдельной системы 100 обработки данных.
[0031] Фиг. 2A-2D иллюстрируют примеры возможных результатов перемещения края 205 из положения A в положение B в модели CAD. Применительно к перемещению края 205 и соединенных с ним соседних структур, любой из этих потенциальных результатов может быть желательным для пользователя. Раскрытые варианты выполнения направлены на способы обеспечения правильных и постоянных результатов.
[0032] Различные раскрытые варианты выполнения определяют поведение и выполняют редактирование моделей CAD в соответствии с одним или более типов соединений между геометриями в системе, с пользовательским выбором, с предложенными вариантами, позволяющими пользователю конфигурировать поведение для соответствия требованиям пользователя, или с различными предпочтениями, автоматически применяемыми в вычисляемом указании системе.
[0033] При том что приведенные в настоящем документе описание и чертежи описывают и иллюстрируют примеры двумерных (2D) моделей CAD для простоты иллюстрации, технологии и процессы, описываемые в настоящем документе, равным образом применимы к трехмерным (3D) моделям CAD.
[0034] Для формирования постоянного поведения в моделях CAD система может определять желаемое поведение для различных ситуаций и вариантов. Нижеприведенный пример может быть классифицирован в общем либо как основное поведение, которое описывает поведение по умолчанию, встроенное в систему, или дополнительное поведение, которое может включать в себя набор дополнительных поведений, который пользователь может активировать или деактивировать на основании желаемого результата.
[0035] Нижеследующее описание и схемы описывают примеры способов формирования желаемого поведения при вариационном редактировании модели, охватывающего множество различных геометрических и топологических состояний.
[0036] Фиг. 3A-3L иллюстрируют примеры основного поведения для модели CAD на основании конкретных состояний и пользовательского выбора.
[0037] Фиг. 3A-3C иллюстрируют состояние вершины с одним краем, когда край 305 или вершину 310 перемещают из первого положения A во второе положение B. На Фиг. 3A пользователь выбирает и перемещает край 305. Соответствующее основное поведение состоит в том, что конечные вершины края 305 перемещаются вместе с краем 305.
[0038] На Фиг. 3B пользователь выбирает и перемещает вершину 310. Соответствующее основное поведение состоит в том, что край 305 поворачивается или вращается вокруг наиболее дальней вершины (противоположно вершине 310). Край 305 также может укорачиваться или удлиняться для соответствия новому положению вершины 310.
[0039] На Фиг. 3C пользователь выбирает и перемещает как вершину 310, так и край 305. Соответствующее основное поведение состоит в том, что край 305 и вершины края 305 перемещаются вместе.
[0040] Фиг. 3D-3F иллюстрируют состояние вершины с двумя краями, когда край 305 или вершину 310 перемещают из первого положения A во второе положение B. На Фиг. 3D пользователь выбирает и перемещает край 305. Соответствующее основное поведение состоит в том, что вершины края 305 остаются соединенными с соседними краями, и край 305 укорачивается или удлиняется в соответствии с соседними краями.
[0041] На Фиг. 3E пользователь выбирает и перемещает вершину 310. Соответствующее основное поведение состоит в том, что все края, соединенные с вершиной 310, поворачиваются или вращаются вокруг их наиболее дальних вершин (противоположно вершине 310). Эти края также могут сокращаться или удлиняться, чтобы соответствовать новому положению вершины 310.
[0042] На Фиг. 3F пользователь выбирает и перемещает как вершину 310, так и край 305. Соответствующее основное поведение состоит в том, что (наклонный) невыбранный край на вершине 310 повернется (будет вращаться и удлинится), в то время как невыбранный край на другом конце (горизонтальный) будет укорочен или удлинен в соответствии с новым положением вершины 310.
[0043] Фиг. 3G-3I иллюстрируют состояние соприкасающихся вершин, когда край 305 или вершину 310 перемещают из первого положения A во второе положение B. На Фиг. 3G пользователь выбирает и перемещает край 305. Соответствующее основное поведение состоит в том, что невыбранные края, имеющие вершины в слиянии с краем 305, укорачиваются или удлиняются в соответствии с перемещением края 305.
[0044] На Фиг. 3H пользователь выбирает и перемещает вершину 310. Соответствующее основное поведение состоит в том, что все края, соединенные с вершиной 310 или имеющие слияние с ней, поворачиваются или вращаются вокруг своих наиболее дальних вершин (противоположно вершине 310) для сохранения их соединения с вершиной 310. Эти края также могут сокращаться или удлиняться для соответствия новому положению вершины 310.
[0045] На Фиг. 3I пользователь выбирает и перемещает как вершину 310, так и край 305. Соответствующее основное поведение состоит в том, что невыбранный наклонный край, соединенный с выбранной вершиной, поворачивается, и невыбранный вертикальный край, соединенный с выбранным краем, укорачивается/удлиняется в соответствии с новым положением вершины 310 и края 305.
[0046] На Фиг. 3J-3L проиллюстрировано состояние вершины с тремя или более краями, когда край 305 или вершину 310 перемещают из первого положения A во второе положение B. На Фиг. 3J пользователь выбирает и перемещает край 305. Соответствующее основное поведение состоит в том, что невыбранные края, ведущие к вершине с тремя краями, поворачиваются, и невыбранный край (ведущий к вершине с двумя краями) укорачивается или удлиняется с учетом перемещения края 305.
[0047] На Фиг. 3К пользователь выбирает и перемещает вершину 310. Соответствующее основное поведение состоит в том, что все из трех или более краев, соединенных с вершиной 310, поворачиваются или вращаются вокруг своих наиболее дальних вершин (противоположно вершине 310) для сохранения их соединения с вершиной 310. Эти края также могут сокращаться или удлиняться для соответствия новому положению вершины 310.
[0048] На Фиг. 3L пользователь выбирает и перемещает как вершину 310, так и край 305. Соответствующее основное поведение состоит в том, что края с левого конца (вершины с тремя краями) поворачиваются, а края с правого (нормального) конца вершины укорачиваются или удлиняются в соответствии с новым положением вершины 310 и края 305.
[0049] Фиг. 4A-4L иллюстрируют примеры основного поведения для модели CAD на основании конкретных состояний и пользовательского выбора для некоторых других видов кривых. Подобное основное поведение может также быть определено для случаев, в которых используются другие виды кривых. Для простоты в нижеследующих примерах показаны ситуации для вершин с 2 краями, но подобное поведение для случаев с одним краем, соприкасающимися и тремя или более краями также включено в объем настоящего изобретения.
[0050] На Фиг. 4A-4C проиллюстрировано состояние соединенной дуги, когда край 405 или вершину 410 перемещают из первого положения A во второе положение B. На Фиг. 4A край 405 имеет по меньшей мере одну вершину, соединенную с дугой, и пользователь выбирает и перемещает его. Соответствующее основное поведение состоит в том, что край 405 сокращается или удлиняется для соответствия и сохранения соединений с соединенной дугой (дугами).
[0051] На Фиг. 4B пользователь выбирает и перемещает вершину 410. Соответствующее основное поведение состоит в том, что любые соединенные дуги или края поворачиваются вокруг наиболее дальней вершины (противоположно вершине 410). Соединенные края или дуги также могут сокращаться или удлиняться, чтобы соответствовать новому положению вершины 410.
[0052] На Фиг. 4С пользователь выбирает и перемещает как вершину 410, так и край 405. Соответствующее основное поведение состоит в том, что край 405 и вершины края 405 (включая вершину 410) перемещаются вместе, и любые соединенные дуги или края поворачиваются вокруг наиболее дальней вершины (противоположно вершине 410). В данном случае верхняя арка поворачивается, поскольку она соединена с выбранной вершиной. Нижняя дуга укорачивается или удлиняется. Соединенные края или дуги могут также сокращаться или удлиняться для соответствия новому положению вершин края 405.
[0053] Фиг. 4D-4F иллюстрируют состояние соединенной дуги, когда кривую 415, которая в данных случаях является дугой, или вершину 410 перемещают из первого положения A во второе положение B. На Фиг. 4D пользователь выбирает и перемещает кривую 415. Соответствующее основное поведение состоит в том, что радиус дуги для кривой 415 остается жестким, и кривая 415 сокращается или удлиняется для сохранения соединений с любыми соединенными краями.
[0054] На Фиг. 4E пользователь выбирает и перемещает вершину 410. Соответствующее основное поведение состоит в том, что любые соединенные дуги или края поворачиваются вокруг наиболее дальней вершины (противоположно вершине 410). Соединенные края или дуги могут также сокращаться или удлиняться для соответствия новому положению вершины 410.
[0055] На Фиг. 4F пользователь выбирает и перемещает как вершину 410, так и кривую 415. Соответствующее основное поведение состоит в том, что край 415 и выбранная вершина 410 перемещаются вместе, радиус дуги кривой 415 остается жестким, и кривая 415 сокращается или удлиняется для сохранения соединений с любыми соединенными краями, и любые соединенные дуги или края поворачиваются вокруг наиболее дальней вершины (противоположно вершине 410). То есть верхний наклонный не соединенный край поворачивается, нижний горизонтальный край укорачивается или удлиняется, и выбранный край перемещается вместе с вершиной и укорачивается в нижнем конце, чтобы достичь горизонтального края. Соединенные края или дуги также могут сокращаться или удлиняться для соответствия новому положению вершин кривой 415.
[0056] Фиг. 4G-4I иллюстрируют состояние общей кривой, когда край 40 или вершину 410 перемещают из первого положения A во второе положение B. На Фиг. 4G пользователь выбирает и перемещает край 405. Соответствующее основное поведение состоит в том, что край 405 сокращается или удлиняется для сохранения соединений с любыми соединенными краями или кривыми.
[0057] На Фиг. 4H пользователь выбирает и перемещает вершину 410. Соответствующее основное поведение состоит в том, что любые соединенные края или кривые поворачиваются вокруг наиболее дальней вершины (противоположно вершине 410). Соединенные края или кривые также могут сокращаться или удлиняться для соответствия новому положению вершины 410.
[0058] На Фиг. 4I пользователь выбирает и перемещает как вершину 410, так и край 405. Соответствующее основное поведение состоит в том, что край 405 и выбранная вершина перемещаются вместе, и любые соединенные кривые или края поворачиваются вокруг наиболее дальней вершины (противоположно любой соединенной вершине). Соединенные края или кривые также могут сокращаться или удлиняться для соответствия новому положению вершин края 405. То есть в этом случае верхний край поворачивается и нижний край укорачивается.
[0059] Фиг. 4J-4L иллюстрируют состояние общей кривой, когда кривую 415 или вершину 410 перемещают из первого положения A во второе положение B. На Фиг. 4J пользователь выбирает и перемещает кривую 415. Соответствующее основное поведение состоит в том, что форма кривой 415 является жесткой, но кривая 415 может сокращаться или удлиняться для соответствия и сохранения соединений с любыми соединенными краями или кривыми.
[0060] На Фиг. 4K пользователь выбирает и перемещает вершину 410. Соответствующее поведение состоит в том, что все кривые или края, соединенные с вершиной 410, поворачиваются или вращаются вокруг своих наиболее дальних вершин (противоположно вершине 410) для сохранения их соединения с вершиной 410. Эти края также могут сокращаться или удлиняться для соответствия новому положению вершины 410.
[0061] На Фиг. 4L пользователь выбирает и перемещает как вершину 410, так и кривую 415. Соответствующее основное поведение состоит в том, что форма кривой 415 является жесткой, но кривая 415 может сокращаться или удлиняться для сохранения соединений с любыми соединенными краями или кривыми. В этом случае верхний край, соединенный с выбранной вершиной, также поворачивается.
[0062] Слияние добавляет к поведению еще один уровень сложности. Фиг. 5A-5I иллюстрируют примеры основного поведения для модели CAD на основании конкретных состояний и пользовательского выбора для кривых нескольких других видов, когда между элементами имеет место слияние. Следующие схемы показывают различные варианты выбора и состояния вершин, все из которых основаны на дугах и линиях. Аналогичные ситуации также имеют место для слияния между другими видами кривых.
[0063] Фиг. 5A-5C иллюстрируют состояние слияния для вершины с двумя краями, когда край 505 или кривую 515 перемещают из первого положения A во второе положение B. На Фиг. 5A пользователь выбирает и перемещает край 505. Соответствующее основное поведение состоит в том, что любая соединенная кривая или дуга с отношением слияния с краем 505 перемещается для сохранения отношения слияния, и другие края или кривые укорачиваются соответственно.
[0064] На Фиг. 5B пользователь выбирает и перемещает кривую 515. Соответствующее основное поведение состоит в том, что любые соединенные дуги или края поворачиваются вокруг наиболее дальней вершины (противоположно кривой 515) для сохранения отношения слияния. Соединенные края или дуги могут также сокращаться или удлиняться для соответствия новому положению кривой 515.
[0065] На Фиг. 5C пользователь выбирает и перемещает как кривую 515, так и край 505. Соответствующее основное поведение состоит в том, что край 505 и кривая 515 перемещаются вместе, и любые соединенные дуги или края поворачиваются вокруг наиболее дальней вершины (противоположно кривой 515) для сохранения отношения слияния. Соединенные края или дуги также могут сокращаться или удлиняться для соответствия новому положению вершин кривой 515 и края 505. Края, соединенные через слияние, повернутся, а края, соединенные в точках, где нет слияния, укоротятся или удлинятся. Так, в данном случае верхний край поворачивается, а нижний край удлиняется.
[0066] Фиг. 5D-5F иллюстрируют общее состояние слияния, когда кривую 515 или край 505 перемещают из первого положения A во второе положение B. На фиг. 4D пользователь выбирает и перемещает кривую 415. Соответствующее основное поведение состоит в том, что любая соединенная кривая или дуга, состоящая в отношении слияния с дугой 515, перемещается для сохранения отношения слияния, а другие края или кривые укорачиваются или поворачиваются соответственно.
[0067] На Фиг. 5E пользователь выбирает и перемещает край 505. Край 505 состоит в отношении слияния по меньшей мере с одной кривой. Соответствующее основное поведение состоит в том, что любые соединенные кривые или края поворачиваются вокруг наиболее дальней вершины (противоположно краю 505) для сохранения отношения слияния. Соединенные края или кривые также могут сокращаться или удлиняться для соответствия новому положению края 505. Этот случай отличается от других тем, что поворот на некотором уровне устранен. Дуга перемещается, чтобы она оставалась в слиянии с выбранным элементом, затем соседние с ней края поворачиваются, поскольку они находятся в слиянии с дугой.
[0068] На Фиг. 5F пользователь выбирает и перемещает край 505. Край 505 находится в отношении слияния по меньшей мере с одной кривой. Соответствующее основное поведение состоит в том, что любые невыбранные края, соединенные путем слияния с дугой, поворачиваются вокруг наиболее дальней вершины (противоположно краю 505) для сохранения отношения слияния. Соединенные края или кривые также могут сокращаться или удлиняться для соответствия новому положению края 505.
[0069] Фиг. 5G-5I иллюстрируют состояние слияния для вершины с тремя краями, когда край 505 и кривую 515 перемещают из первого положения A во второе положение B. На Фиг. 5G пользователь выбирает и перемещает край 505. Соответствующее основное поведение состоит в том, что дуги перемещаются для сохранения слияния, и затем соседние по отношению к дуге элементы удлинятся или сокращаются соответственно для сохранения соединений и любых отношений слияния с краем 505.
[0070] На Фиг. 5H пользователь выбирает и перемещает кривую 515. Соответствующее основное поведение состоит в том, что любые соединенные края или кривые поворачиваются для сохранения любого отношения слияния. Соединенные края или кривые также могут сокращаться или удлиняться для соответствия новому положению кривой 515.
[0071] На Фиг. 5I пользователь выбирает и перемещает край 505. Соответствующее основное поведение состоит в том, что другие кривые или края сокращаются или удлиняются для сохранения соединений и любых отношений слияния с краем 505. В данном случае слияние сохраняется наверху, а края укорачиваются или удлиняются внизу.
[0072] Посредством многих из вышеприведенных примеров показано, что края или кривые «поворачиваются» или вращаются для локализации изменений в модели. Поведение по повороту зависит от вида геометрии и любых слияний.
[0073] Фиг. 6A-6F иллюстрируют примеры основного поведения по повороту в соответствии с раскрытыми вариантами выполнения, когда элемент перемещают из первого положения A во второе положение B. Фиг. 6A иллюстрирует пример поворота линии, когда перемещается вершина 610. В этом случае соединенная линия поворачивается вокруг ее наиболее дальней вершины (от вершины 610) и удлиняется для сохранения соединения с вершинами. Фиг. 6B иллюстрирует пример поворота линии, когда перемещается дуга 615. В этом случае соединенные линии поворачиваются и удлиняются для сохранения слияний.
[0074] Фиг. 6C иллюстрирует пример поворота дуги, когда перемещается вершина 610. В этом случае соединенная дуга «вытягивается» и поворачивается для сохранения высоты от хорды, но при этом проходит через конечные точки для сохранения ее соединений. Фиг. 6D иллюстрирует другой пример поворота дуги, когда перемещается вершина 610. В этом случае радиус и положение соединенной дуги перемещаются для сохранения слияния и при этом проходят через конечные точки для сохранения соединений дуги.
[0075] Фиг. 6E иллюстрирует общий пример поворота, когда перемещается вершина 610. В этом случае соединенная кривая «вытягивается» и поворачивается для сохранения высоты от хорды, но при этом проходит через конечные точки для сохранения ее соединений. Фиг. 6F иллюстрирует другой общий пример поворота, когда перемещается вершина 610. В этом случае соединенные кривые вытягиваются и перемещаются для сохранения слияния и при этом проходят через конечные точки.
[0076] Блокирование высоты кривой, описываемое в настоящем документе, состоит в способности «вытягивать» кривую, чтобы она помещалась между двумя точками, при этом сохраняя постоянной ее высоту. В простом случае это применимо к дугам путем определения дуги между тремя точками, но также может применяться и к другим кривым. Регулирование высоты кривой при вариационных изменениях обеспечивает простое и постоянное поведение.
[0077] Фиг. 7A-7D иллюстрируют основное поведение при использовании блокирования высоты кривой в соответствии с раскрытыми вариантами выполнения. В каждом из этих случаев кривая или дуга 715 проходит из первой точки PT1 во вторую точку PT2 через третью среднюю точку PT3. Высота кривой представляет собой ортогональное расстояние от PT3 до (гипотетической) линии, соединяющей PT1 и PT2.
[0078] На Фиг.7A показана исходная кривая, а на Фиг. 7B показана соответствующая отредактированная кривая с блокированием высоты кривой. На Фиг. 7A дуга 715 определяется PT1, PT2 и PT3. На Фиг. 7B после редактирования дуга 715 вытянута так, чтобы она соответствовала новым положениям точек, но высота от хорды остается постоянной.
[0079] На Фиг. 7C показана исходная кривая, а на Фиг. 7D показана соответствующая отредактированная кривая с блокированием высоты кривой. На Фиг. 7A кривая 715 определена между PT1 и PT2 и касается рамки в PT3. На Фиг. 7D после редактирования кривая 715 вытянута, но при этом проходит от PT1 до PT2 при той же высоте кривой в PT3.
[0080] Фиг. 8A-8L иллюстрируют примеры дополнительного условного поведения для модели CAD на основании конкретных состояний и пользовательского выбора для некоторых других видов кривых. Нижеследующие схемы демонстрируют различные варианты выбора и состояний для вершин, все из которых основаны на дугах и линиях. Аналогичные ситуации также имеют место для других видов кривых.
[0081] Фиг. 8A и 8B иллюстрируют дополнительное условие постоянного размера, когда край 805 перемещают из первого положения A во второе положение B. На Фиг. 8A дополнительное условие «включено», а на Фиг. 8B дополнительное условие «выключено». На Фиг. 8A выбранный край 805 остается неизменным, а соседние края поворачиваются, чтобы адаптироваться к нему. На Фиг. 8B размер выбранного края изменился, в то время как соседние края остаются неподвижными и просто укорачиваются или удлиняются таким образом, чтобы соответствовать перемещаемой кривой.
[0082] Фиг. 8C и 8D иллюстрируют дополнительное условие сохранения самопересечения, когда край 805 перемещают из первого положения A во второе положение B. На Фиг. 8C дополнительное условие «включено», а на Фиг. 8D дополнительное условие «выключено». На Фиг. 8C любые состояния самопересечения обнаруживаются и сохраняются. На Фиг. 8D состояния самопересечения разделяются.
[0083] Фиг. 8E и 8F иллюстрируют дополнительное условие сохранения блокировки горизонтали/вертикали, когда вершину 810 перемещают из первого положения A во второе положение B. На Фиг. 8E дополнительное условие «включено», а на Фиг. 8D дополнительное условие «выключено». На Фиг. 8E соединенный вертикальный край остается вертикальным. На Фиг. 8F соединенный вертикальный край поворачивается. Конечно, хотя здесь показана блокировка вертикали, таким же образом может обрабатываться и блокировка горизонтали.
[0084] Фиг. 8G и 8H иллюстрируют дополнительное условие блокировки размера, когда край 805 перемещают из первого положения A во второе положение B. На Фиг. 8G дополнительное условие «включено», а на Фиг. 8H дополнительное условие «выключено». На Фиг. 8G сохраняется радиус окружности. На Фиг. 8H радиус окружности увеличивается.
[0085] Фиг. 8I и 8J иллюстрируют дополнительное условие поворота, когда вершину 810 перемещают из первого положения A во второе положение B. На Фиг. 8I дополнительное условие «включено», а на Фиг. 8J дополнительное условие «выключено». На Фиг. 8I соединенные линия и дуга поворачиваются для локализации редактирования. На Фиг. 8H соединенная линия перемещается таким образом, чтобы совпадать с вершиной 810, в то время как дуга изменяет радиус и перемещается.
[0086] Фиг. 8K и 8L иллюстрируют дополнительное условие «поворота вокруг», когда вершину 810 перемещают из первого положения A во второе положение B, что требует поворота элемента вокруг оси дуги или виртуального пересечения. На Фиг. 8K дополнительное условие «включено», а на Фиг. 8L дополнительное условие «выключено». На Фиг. 8K дуга в модели остается неподвижной и в слиянии с соединенной линией. На Фиг. 8L виртуальное пересечение двух соединенных с дугой линий остается неподвижным, а дуга перемещается для сохранения слияния с этими линиями.
[0087] Как отмечено выше, все поведения, описанные в настоящем документе, описаны и показаны для простоты на простых двумерных эскизах, но эти принципы применимы и к трехмерным элементам и моделям, которые входят в объем настоящего изобретения.
[0088] В некоторых из подробно описанных областей используется классификация видов соединений с соседними объектами, помогающая в принятии решений о желаемом поведении. Например, соединение между двумя краями может быть описано как L-вершина.
[0089] Фиг. 9A-9F иллюстрируют различные классификации соединений, которые могут упоминаться в настоящем документе. Опять же, они описаны и показаны для простоты в двумерной форме, но в равной степени применимы и к трехмерной форме. Схемы приведены с разрывами между конечными точками края. Однако обычно они соединяются вершиной или совпадают друг с другом. На Фиг. 9A показана «O-вершина», которая является «открытой» вершиной края. Фиг. 9B иллюстрирует «L-вершину» между двумя краями. Фиг. 9C иллюстрирует «T-вершину» между двумя краями. Фиг. 9 D иллюстрирует «T-вершину» между тремя краями. Фиг. 9E иллюстрирует «Y-вершину» между тремя краями. Фиг. 9F иллюстрирует обобщенную «Y-вершину» между четырьмя краями.
[0090] Один процесс формирования поведения редактируемых моделей и управления им включает в себя несколько этапов, выполняемых одной или более системами обработки данных CAD. Система формирует подлежащую решению систему, которая включает в себя одно или более из желаемого пользователем действия (т.е. перемещения, поворота и т.п.), обнаруженных геометрических отношений (т.е. слияния, концентричности и т.п.), топологических отношений (т.е. края, вершины и т.п.), определяемых пользователем отношений (т.е. расстояния, радиуса и т.п.) и предпочтений, которые определяют поведение объектов (т.е. предпочтения совпадения, предпочтения параллельности и т.п.).
[0091] Затем система может упорядочить заданные предпочтения для вызова желаемого поведения, решить систему для определения того, что необходимо изменить, и применить изменения к модели.
[0092] «Предпочтения» представляют собой ограничения, которые применяются только если они не сделают систему нерешаемой. Они полезны при обеспечении общих характеристик поведения, которые являются вторичными по отношению к обычным ограничениям или состояниям в модели.
[0093] Например, рассмотрим систему, содержащую две линии, причем одна из них поворачивается, а другая является фиксированной. Предпочтение параллельности между двумя линиями не может быть применено, поскольку это сделает систему нерешаемой.
[0094] Раскрытые варианты выполнения расширяют общий вариационный процесс таким образом, чтобы он включал в себя расширенное применение жесткости выбранных объектов, обнаружение и классификацию соединений, формирование дополнительных предпочтений для управления поведением, и дополнительную логику упорядочивания для управления поведением.
[0095] В раскрытом варианте выполнения возможно расширенное применение жесткости выбранных объектов. Все выбранные объекты могут оставаться жесткими во время редактирования, что означает, что все объекты в выбранном наборе подвергаются одному и тому же преобразованию. В раскрытых вариантах выполнения эта функция жесткости может распространяться на автоматическое ограничение любых смежных Y-вершин жестким состоянием в пределах выбранной области. Это аналогично примеру по Фиг. 3J. Когда включен вариант выбора «постоянный размер», система может автоматически ограничить любые смежные вершины жестким состоянием в пределах выбранной области. Это аналогично примерам по Фиг. 8A и 8B.
[0096] В раскрытых вариантах выполнения возможно расширенное применение обнаружения и классификации соединений. Система может анализировать модель для автоматического обнаружения множества различных геометрических состояний, включая такие ограничения, как слияние и параллельность. В раскрытых вариантах осуществления возможно дополнительное обнаружение таких состояний, как совпадение вершин, образующих L-вершину или Y-вершину, как описано выше, и состояний вершин на крае, образующих T-вершину, как описано выше.
[0097] В раскрытых вариантах выполнения возможно расширенное применение формирования дополнительных предпочтений для управления поведением. Предпочтения могут формироваться для определения поведения объектов в модели. Затем эти отдельные предпочтения могут быть упорядочены для обеспечения постоянного поведения. Предпочтения могут включать в себя те, которые направлены на обеспечение поведения блокировки горизонтали/вертикали, описанного выше, поведения блокировки радиуса, описанного выше, и некоторые виды поведения по повороту краев, когда имеют место слияния. Раскрытые варианты выполнения могут формировать дополнительные предпочтения, такие как блокировка высоты от хорды, как описано в настоящем документе, жесткость по возможности для O-вершин, гарантирующая, что O-вершины подвергаются тому же преобразованию, что и край, применительно к которому они используются, как в вышеприведенном примере по Фиг. 3A, предпочтения по отсутствию перемещения по возможности для вершин, вызывающие поворот краев вокруг их наиболее дальней вершины, как в нескольких примерах, описанных выше.
[0098] В раскрытых вариантах выполнения возможно расширенное применение дополнительной логики упорядочивания для управления поведением. В общем случае все формируемые предпочтения упорядочиваются системой. Эта система использует сочетание логики, основанной на виде предпочтения и его удаленности от задаваемой пользователем операции для определения порядка предпочтений. Перечисленные выше предпочтения естественным образом применяются в этой системе упорядочивания. В раскрытых вариантах выполнения также отдается приоритет таким предпочтениям, как блокировка высоты от хорды и жесткость по возможности для O-вершин, наделенных надлежащим приоритетом.
[0099] На Фиг. 10 показана блок-схема процесса в соответствии с раскрытыми вариантами выполнения, который может выполняться, например, системой обработки данных CAD, такой как описанная выше система 100 обработки данных, которая ниже называется в общем «системой».
[0100] Система принимает модель CAD, включающую в себя множество объектов (1005). Модель CAD может быть двумерной или трехмерной моделью, и объекты могут быть двумерными элементами, такими как края, кривые и вершины, или могут быть трехмерными элементами, такими как края, грани и т.п. Прием в контексте настоящего документа может включать в себя загрузку из хранилища, прием от другого устройства или процесса, прием через взаимодействие с пользователем или иное. Модель CAD может храниться в памяти или другом хранилище, как, например, модель 152 CAD.
[0101] Система принимает пользовательский ввод, включающий в себя выбор по меньшей мере одного объекта и перемещение выбранного объекта (1010).
[0102] Система применяет любые основные условные поведения, которые соответствуют пользовательскому вводу (1015). Они могут включать в себя любые из описанных выше основных условных поведений. В качестве части этого процесса, система может применять жесткость к выбранным объектам, как описано выше, и может обнаруживать или классифицировать геометрические состояния, как описано выше.
[0103] Система применяет любые дополнительные условные поведения, которые соответствуют пользовательскому вводу (1020). Они могут включать в себя любые из дополнительных условных поведений, описанных выше.
[0104] Система формирует вариационную систему, подлежащую решению на основании пользовательского ввода, любых применяемых основных условных поведений и любых применяемых дополнительных условных поведений (1025). Основные условные поведения и дополнительные условные поведения могут рассматриваться как предпочтения, и эти и другие предпочтения могут упорядочиваться и применяться как часть формирования вариационной системы, которая может сохраняться в памяти или другом хранилище как вариационная система 154.
[0105] Система выполняет вариационное решение вариационной системы для формирования отредактированной модели CAD (1030).
[0106] Система сохраняет или отображает отредактированную модель CAD (1035).
[0107] Разумеется, специалистам в данной области техники будет понятно, что, если это конкретно не указано или не требуется последовательностью операций, определенные этапы в процессах, описанных выше, могут быть пропущены, могут выполняться одновременно или последовательно, или выполняться в другом порядке.
[0108] Специалистам в данной области техники будет понятно, что для простоты и ясности в настоящем документе не показана и не описана полная структура и работа всех систем обработки данных, подходящих для использования в настоящем изобретении. Вместо этого, система обработки данных показана и описана лишь в той степени, в которой она уникальна для настоящего изобретения, или в достаточной степени для понимания настоящего изобретения. Остальная часть конструкции или работы системы 100 обработки данных может соответствовать любым из различных существующих вариантов реализации и технологий, известных в данной области техники.
[0109] Важно отметить, что хотя настоящее изобретение включает в себя описание в контексте полностью функциональной системы, специалистам в данной области техники будет понятно, что по меньшей мере части механизма настоящего изобретения могут распространяться в виде команд, содержащихся на используемом компьютером или машиной или машиночитаемом носителе в любой из различных форм, и что настоящее изобретение в равной степени применимо вне зависимости от конкретного вида носителя команд или сигналов или носителя данных, фактически применяемого для упомянутого распространения. Примеры используемых машиной/машиночитаемых или используемых/считываемых компьютером носителей включают в себя: энергонезависимые носители жестко закодированного типа, такие как постоянные запоминающие устройства (ROM) или стираемые, электрически программируемые постоянные запоминающие устройства (EEPROM), и носители записываемого пользователем типа, такие как гибкие диски, жесткие диски и постоянные запоминающие устройства на компакт-дисках (CD-ROM) или универсальных цифровых дисках (DVD).
[0110] При том, что был подробно описан примерный вариант выполнения настоящего изобретения, специалистам в данной области техники будет понятно, что могут быть выполнены различные изменения, замены, вариации и усовершенствования по отношению к описанному в настоящем документе, не выходящие за рамки сущности и объема изобретения в его наиболее широком виде.
[0111] Никакие сведения в описании настоящей заявки не следует понимать как подразумевающие, что какой-либо конкретный элемент, этап или функция представляет собой существенный элемент, который должен быть включен в объем формулы изобретения: объем охраняемого патентом объекта определяется лишь патентоспособной формулой изобретения. Кроме того, ни один из этих пунктов формулы изобретения не должен подпадать под действие шестого абзаца параграфа 112 ст. 35 USC, если за точными словами «средство для» не следует имя действия.