KR101691454B1 - 그래프에 의해 모델링되는 어셈블리의 설계 - Google Patents

그래프에 의해 모델링되는 어셈블리의 설계 Download PDF

Info

Publication number
KR101691454B1
KR101691454B1 KR1020100138615A KR20100138615A KR101691454B1 KR 101691454 B1 KR101691454 B1 KR 101691454B1 KR 1020100138615 A KR1020100138615 A KR 1020100138615A KR 20100138615 A KR20100138615 A KR 20100138615A KR 101691454 B1 KR101691454 B1 KR 101691454B1
Authority
KR
South Korea
Prior art keywords
assembly
graph
modeling graph
chain
node
Prior art date
Application number
KR1020100138615A
Other languages
English (en)
Other versions
KR20110079549A (ko
Inventor
쟝-프랑수와 라모
로랑 알트
Original Assignee
다솔 시스템므
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 다솔 시스템므 filed Critical 다솔 시스템므
Publication of KR20110079549A publication Critical patent/KR20110079549A/ko
Application granted granted Critical
Publication of KR101691454B1 publication Critical patent/KR101691454B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/18Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/80Technologies aiming to reduce greenhouse gasses emissions common to all road transportation technologies
    • Y02T10/82Elements for improving aerodynamics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Architecture (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 복수의 객체들의 어셈블리를 설계하기 위해 의도된 컴퓨터-구현 방법을 제공한다. 어셈블리는 노드들 및 아크들을 갖는 지향성 비순환 모델링 그래프에 의해 모델링된다. 각각의 노드는 어셈블리의 객체를 나타낸다. 각각의 아크는 기점 노드에 의한 종점 노드의 사용을 나타낸다. 적어도 하나의 아크는 식별자에 의해 고유하게 식별된다. 어셈블리는, 적어도 하나의 식별자의 제 1 체인을 포함하는 적어도 하나의 튜플을 갖는 적어도 하나의 릴레이션에 의해 또한 모델링된다. 이 컴퓨터-구현 방법은, 적어도 하나의 식별자의 제 1 체인과 제 2 체인 간의 적어도 하나의 맵핑을 결정하는 단계 및 릴레이션의 튜플에서의 제 1 체인의 적어도 하나의 발생을 제 2 체인으로 대체하는 단계를 포함한다.
이러한 방식으로 본 발명은 파괴된 튜플들을 자동으로 복구하고 그리하여 설계를 용이하게 하기 위한 수단을 제공한다.

Description

그래프에 의해 모델링되는 어셈블리의 설계{DESIGN OF AN ASSEMBLY MODELED BY A GRAPH}
본 발명은 객체들의 어셈블리의 설계 및 객체들의 어셈블리의 협력 설계 분야에 관한 것이다.
어셈블리의 통상적인 예들은, 차체 구조의 내부 및/또는 외부, 기계적 및 전기적 장비를 포함하는 완전한 자동차, 항공기, 선박이 있다. 이러한 어셈블리의 설계 목적은 연구 및 대안을 용이하게 하기 위해 엔지니어에게 미래의 제품의 가상 발생을 제공하기 위함이다.
객체들의 새로운 어셈블리를 설계할 때, 설계자는 통상 PLM/CAD 시스템 (즉, Product LifeCycle Management/Computer Aided Design 시스템) 으로 작업한다. 이러한 시스템은 이전에 저장된 (또한 새로운 어셈블리를 설계하는 동안 가능한 생성된 및 저장된) 부품들 또는 부품들의 어셈블리들과 같은 참조 객체들의 데이터베이스를 포함한다.
어셈블리는 재사용 그래프 (reuse graph) 에 의해 모델링된다. 재사용 그래프 (또는 "재-사용" 그래프) 는, 어셈블리의 기초가 되는 재사용 스키마를 캡처하는 라벨링된 지향성 비순환 그래프 (directed acyclic graph) 이다. 보다 구체적으로, 재사용 그래프의 노드는 참조 객체 또는 참조 객체들의 어셈블리에 대응한다. 편의상, 이하에서는 노드와 그 노드가 대응하는 객체 간에 구별이 없다. 재사용 그래프의 아크 (arc) 는, 아크의 기점 노드 (origin node) 에 의한 아크의 종점 노드 (end node) 의 "사용(use)" 을 나타내고 라벨링된다. 즉, 재사용 그래프의 노드는 사용들로 이루어지고, 즉, 예컨대, 그것의 자 노드 (child node) 들로 이루어진다. 또한, 재사용 그래프들은 인스턴스 그래프들로서 공지되어 있다.
재사용 그래프의 예가 도 1 에 나타나 있다. 이 예에서, 노드 α는 노드 b 의 2개의 사용들 및 노드 c 의 1개의 사용으로 이루어진다 (즉, 노드 α에 대응하는 참조 객체는 노드 b 에 대응하는 참조 객체의 2개의 인스턴스들 및 노드 c 에 대응하는 참조 객체의 1개의 인스턴스로 이루어진다). 또한, 도 1 은 노드 b 가 노드 c 의 2 개의 사용들로 이루어짐을 말한다.
재사용 그래프가 어셈블리를 어떻게 모델링하는지를 구체적으로 설명하기 위해, 노드 α는 자동차에 대응하고, 노드 b 는 자동차의 차축에 대응하고, 노드 c 는 차바퀴에 대응한다고 고려해보자. 자동차는, 아크들 u1 및 u2 에 대응하는 2 개의 차축들 (전방 자축과 후방 자축) 을 사용한다. 각각의 차축은 아크들 u3 및 u4 에 대응하는 2개의 차바퀴들 (좌측 차바퀴와 우측 차바퀴) 을 사용한다. 마지막으로, 자동차는, 아크 u5 에 대응하고 어떠한 차축에 의해서도 사용되지 않는 다른 차바퀴 (예비 차바퀴) 를 사용한다.
도 1 의 예에 의해 도시된 바와 같이, 재사용 그래프의 특징은 그것의 노드들이 수회 사용될 수도 있다는 것이다. 즉, 트리 그래프와는 반대로, 재사용 그래프의 노드들은 수개의 모 노드 (parent node) 들을 가질 수도 있다. 따라서, 재사용 그래프는 정보의 중복을 회피하면서 모든 정보를 수집한다.
재사용 그래프는 모든 정보를 수집하고, 저장 동안 자원 절약을 허용한다. 그러나, 설계를 위해 사용하기 쉽지 않다. 이런 이유 때문에, 모든 아크들을 조사하고 재사용된 노드들을 복제함으로써 재사용 그래프로부터 언폴딩된 그래프 (unfolded graph) 가 연산된다. 결과적으로, 언폴딩된 그래프는 항상 트리 그래프 (즉, 루트 노드가 정확히 1개의 모 노드를 갖는 것을 제외한 모든 노드들) 이다. 모든 객체들의 모든 발생들이 가시적이기 때문에 언폴딩된 그래프는 전체 어셈블리의 사실적인 뷰를 제공한다. 또한, 언폴딩된 그래프는 어셈블리의 그래픽 표현으로서 뷰잉될 수도 있고, 그후 모든 객체들의 모든 발생들이 공간 내 정확한 위치에서 디스플레이된다. 또한, 언폴딩된 그래프들은 발생 그래프 (occurrence graph) 들로서 공지되어 있다.
도 1 의 재사용 그래프에 대응하는 언폴딩된 그래프는, 이하 참조되는 도 2 에 나타나 있다.
객체 복제를 고려하기 위해, 인덱스들 ((·,1)),(·,2),(·,3),(·,4),(·,5)) 이 언폴딩된 그래프의 아크들 (u1, u2, u3, u4, u5) 및 노드들 (α, b, c) 에 연관된다. 이 방법에서 아크들 및 노드들을 포함하는 언폴딩된 그래프의 각각의 심볼은 고유하다. 그러나, 언폴딩된 그래프는 2 가지 이유 때문에 시스템에 지속적으로 저장되지 않는다. 첫번째로, 복제된 데이터는 재사용 그래프보다 더 많은 메모리 공간을 차지한다. 이는 특히 복잡한 어셈블리들을 설계할 때 문제가 된다. 두번째로, 복제된 데이터를 업데이트하는 것은 모든 카피 (copy) 들의 소모적인 스캔 때문에 어렵고 비용이 드는 프로세스이다. 이러한 이유 때문에, 재사용 그래프만이 시스템에 지속적으로 저장된다.
따라서, 재사용 그래프를 언폴딩할 때; 예컨대 설계자가 어셈블리를 편집하기를 원할 때, 인덱스들은 편집 시간 동안 동일한 참조 객체의 발생들을 구별하기 위해 플라이 (fly) 상에서 발생된다. 동일한 어셈블리를 재차 폐쇄 및 개방시키는 것은 상이한 인덱스들을 발생시킬 것이다. 또한, 2 명의 설계자들이 동시에 동일한 어셈블리를 편집하고 상이한 인덱스들을 발생시키기를 원할 수도 있다.
또한, 어셈블리는 튜플 (tuple) 들 (즉, 릴레이션 (relation) 들 내의 객체들의 순서화된 세트) 을 갖는 릴레이션들에 의해 모델링된다. 통상의 릴레이션은 2 개의 객체들 간의 거리이다. 예컨대, 도 1 을 참조하여 상기 제공된 구체적인 설명에서의 그러한 릴레이션의 튜플은 2 개의 차바퀴들 간의 거리를 정의하는데 있다.
릴레이션들은 언폴딩된 그래프를 통해 캡처된다. 설계자가 도 1 의 예에서 객체들 (c,1)(c,5) 를 갖는 튜플에서의 거리 릴레이션을 생성한다고 가정한다. 그들은 둘다 참조 객체 c 의 사용이다. 앞서 설명한 바와 같이, 인덱스들 (·,1)(·,5) 는 지속적으로 저장되지 않는다. 따라서, "(c,1)(c,5) 간의 거리"를 지속적으로 저장할 수 없다. 그렇게 하면, 시스템은, 재사용 그래프가 언폴딩될 때마다 새로운 인덱스들이 발생되고 객체 c 의 5 개의 발생들이 있기 때문에 폐쇄-및-개방 시퀀스 이후에 부정확한 발생들을 발견할 수도 있고 또는 릴레이션을 덧붙이기 위한 객체 c 의 발생들을 발견하지 않을 것이다. 또한, 2명의 사용자들이 그들의 설계를 공개할 경우, 어셈블리를 재차 판독할 때, 사용자들 둘다의 릴레이션들이 이용가능한 방식으로 릴레이션들은 재사용 그래프와 함께 저장되어야 한다.
이들 제약의 결과는 릴레이션이 재사용 그래프의 심볼들로 인코딩되어야 한다는 것이므로, 릴레이션이 지속적으로 저장될 수도 있다. 당업계의 솔루션의 상태는, 루트 노드로부터 아크들의 경로를 이용하여 언폴딩된 그래프의 노드들을 명명하는 것이다. 예컨대, 노드 (c,1) 은 아크들 ( u 1 ,1)( u 3 ,1) 에 의해 루트 노드 (α,1)로부터 도달가능하므로, 그것의 경로는 아크 심볼들의 연결 (u 1 ,1)(u 3 ,1) 에 의해 정의된다. 그리하여, 노드 (c,1) 의 명칭은 지속적 심볼만을 유지함으로써 경로 ( u 1 ,1)( u 3 ,1) 로부터 획득되고, 이는 u1u3 을 산출한다. (c,5) 에 대해 유사한 추론이 u2u3 을 산출한다. 마지막으로, 노드들 (c,1) 과 (c,5) 사이의 릴레이션은 "u1u3 과 u2u3 사이의 릴레이션"으로서 지속적으로 저장된다. 모든 인덱스들을 변경한 후에도 u1u3 및 u2u3 은 언폴딩된 그래프에서의 고유한 경로들을 정의함에 주의한다. 이러한 특성은 폐쇄-및-개방 시퀀스 이후에 릴레이션의 지속성을 보장한다. 또한, 동일한 어셈블리 상에서 릴레이션들의 동시 생성을 보장한다.
어셈블리를 개방하는 것은 2 개의 단계들을 통해 수행된다. 첫번째 단계는 재사용 그래프로부터 언폴딩된 그래프를 연산하는 것이다. 두번째 단계는 각각의 릴레이션 및 릴레이션의 각각의 튜플에 대해, 언폴딩된 그래프의 어떤 노드들이 튜플에 있는지를 발견하는 것이다. 알고리즘은 언폴딩된 그래프에서 튜플에 저장된 재사용 아크들의 경로들에 대응하는 아크들의 경로를 탐색한다. 이 단계는 "릴레이션들 업데이트"라 불린다. 언폴딩된 그래프의 어떠한 노드에도 접속될 수 없는 (경로 매칭이 없음) 릴레이션의 튜플은 "파괴(broken)"되었다고 칭해진다.
어셈블리를 모델링하는 재사용 그래프가 편집될 때 튜플은 파괴될 수도 있다. 도 3 내지 도 5 는, 재사용 그래프를 편집하는 것이 파괴된 튜플에 이르는 하나의 상황을 도시한다.
도 3 은, 도 1 의 재사용 그래프에 의해 모델링되고, 1 개의 튜플을 갖는 Connect 라 명명되는 릴레이션에 의해 또한 모델링되는 어셈블리의 언폴딩된 그래프의 표현이다. 릴레이션 Connect 의 튜플은 기계적으로 접속된 객체들의 커플이다. 도 3 의 예에서, 튜플은 비지속적 발생 심볼들 상에서 Connect[(c,1),(c,5)] 로서, 비지속적 경로 심볼들 상에서 Connect[(u 1 ,1)(u 3 ,1)(u 2 ,1)(u 3 ,1)] 로서, 그리고 지속적 경로 심볼들 상에서 Connect[u 1 u 3 ,u 2 u 3 ] 로서 코딩될 수도 있다.
이 튜플은 도 1 의 재사용 그래프에서의 변화 이후에 파괴될 수도 있다. 튜플들은 재사용 그래프의 아크들의 경로들을 이용하여 코딩된다. 이 그래프가 편집 (아크들을 추가, 삭제 또는 리라우팅 (rerouting), 노드들을 추가, 삭제 등) 될 경우, 일부 경로들은 더 이상 존재하지 않을 수도 있고, 이들 경로들로 코딩된 튜플들이 파괴된다. 따라서, 튜플들을 재접속하기 위해 설계자로부터의 재작업이 필요하다. 예를 들면, 도 4 에 나타낸 바와 같이, 설계자가 α와 b 사이에 새로운 참조 제품 d 를 추가함으로써 도 1 에서의 재사용 그래프를 편집한다고 가정한다.
도 5 는 도 4 의 편집된 재사용 그래프에 대응하는 언폴딩된 편집된 그래프를 나타낸다. 튜플 Connect [ u 1 u 3 , u 2 u 3 ] 은, 경로 u1u3 이 도 5 에서의 언폴딩된 그래프의 어떠한 노드도 식별하지 않기 때문에 파괴된다. 예상되는 바와 같이, (도 3 의 콘텍스트에서 정의된) 경로 u2u3 은 노드 (c,7) 를 식별함에 주의한다. 도 3 의 인덱스들은, 재사용 그래프 편집 이후에 폐쇄-및-개방 시퀀스를 시뮬레이션하기 위해 변경된다.
튜플이 파괴된 경우에, 설계자가 튜플들을 수동으로 재접속해야 하기 때문에 설계는 지루해진다. 따라서, 본 발명의 목적은 설계를 용이하게 하기 위해 파괴된 튜플들을 자동으로 복구하기 위한 솔루션을 제공하는 것이다.
이 목적은 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법에 의해 달성되며, 어셈블리는 노드들 및 아크들을 갖는 지향성 비순환 모델링 그래프에 의해 모델링되고,
- 각각의 노드는 어셈블리의 객체를 나타내고,
- 각각의 아크는 기점 노드에 의한 종점 노드의 사용을 나타내고, 적어도 하나의 아크는 식별자에 의해 고유하게 식별되고,
어셈블리는, 적어도 하나의 식별자의 제 1 체인 (first chain) 을 포함하는 적어도 하나의 튜플을 갖는 적어도 하나의 릴레이션에 의해 또한 모델링되고,
이 컴퓨터-구현 방법은,
적어도 하나의 식별자의 제 1 체인과 제 2 체인 간의 적어도 하나의 맵핑을 결정하는 단계, 및
릴레이션의 튜플에서의 제 1 체인의 적어도 하나의 발생을 제 2 체인으로 대체하는 단계를 포함한다.
바람직한 실시형태들은 하기 특징들 중 하나 이상을 포함한다:
- 지향성 비순환 모델링 그래프는, 초기 모델링 그래프를 편집하는 단계에 의해 제공되고, 결정하는 단계는, 편집하는 단계에 따라 실시된다;
- 편집하는 단계는, 초기 모델링 그래프의 아크를 삭제하는 단계, 초기 모델링 그래프에 아크를 추가하는 단계, 또는 초기 모델링 그래프의 아크를 리라우팅하는 단계를 포함한다;
- 편집하는 단계 이전에, 초기 모델링 그래프가 언폴딩되고, 언폴딩된 초기 모델링 그래프의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별된다;
- 편집하는 단계 및 결정하는 단계는 반복된다;
- 결정하는 단계의 각각의 반복시에 결정된 맵핑은 맵핑 리스트를 증분시키고, 맵핑 리스트는 또한 콤팩트화된다;
- 이 컴퓨터-구현 방법은 제 1 어셈블리를 설계하기 위해 수행될 수도 있고, 맵핑은 제 2 어셈블리의 설계시에 결정된 맵핑의 역 (inverse) 이고, 제 2 어셈블리는 상기 컴퓨터-구현 방법에 따라 또한 설계되고, 제 1 어셈블리의 지향성 비순환 모델링 그래프 및 제 2 어셈블리의 초기 모델링 그래프는 동일하다;
- 이 컴퓨터-구현 방법은 제 1 어셈블리를 설계하기 위해 수행될 수도 있고, 맵핑은 제 2 어셈블리의 설계시에 결정된 맵핑의 역으로 또한 합성되고, 제 2 어셈블리는 상기 컴퓨터-구현 방법에 따라 또한 설계되고, 제 1 어셈블리 및 제 2 어셈블리의 초기 모델링 그래프는 동일하다;
- 이 컴퓨터-구현 방법은 제 1 어셈블리를 설계하기 위해 수행될 수도 있고, 제 1 어셈블리의 지향성 비순환 모델링 그래프는, 상기 컴퓨터-구현 방법에 따라 또한 설계되는 제 2 어셈블리의 지향성 비순환 모델링 그래프와 상기 컴퓨터-구현 방법에 따라 또한 설계되는 제 3 어셈블리의 지향성 비순환 모델링 그래프를 병합함으로써 제공되고, 제 2 어셈블리 및 제 3 어셈블리의 초기 모델링 그래프는 동일하며, 병합은, 제 1 어셈블리의 지향성 비순환 모델링 그래프의 각각의 아크가 제 2 어셈블리의 지향성 비순환 모델링 그래프의 아크 또는 제 3 어셈블리의 지향성 비순환 모델링 그래프의 아크임을 제공하고, 결정하는 단계는 병합에 따라 수행된다;
- 이 컴퓨터-구현 방법은, 제 1 어셈블리의 지향성 비순환 모델링 그래프, 제 2 어셈블리의 지향성 비순환 모델링 그래프, 제 3 어셈블리의 지향성 비순환 모델링 그래프 그리고 제 2 어셈블리 및 제 3 어셈블리의 초기 모델링 그래프를 언폴딩하는 단계로서, 상기 언폴딩된 그래프들의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별되는, 상기 언폴딩하는 단계, 제 2 어셈블리의 언폴딩된 지향성 비순환 모델링 그래프에 제 1 대응 노드를 그리고 제 3 어셈블리의 언폴딩된 지향성 비순환 모델링 그래프에 제 2 대응 노드를 제공하는 단계로서, 상기 대응하는 노드들은 제 2 어셈블리 및 제 3 어셈블리의 언폴딩된 초기 모델링 그래프의 동일한 대응된 노드에 대응하는, 상기 제공하는 단계, 및 제 1 대응 노드가 제 1 어셈블리의 언폴딩된 지향성 비순환 모델링 그래프에 있는지 여부를 테스트하는 단계를 더 포함할 수도 있고, 테스트하는 단계가 긍정적인 결과를 산출하는 경우, 결정된 맵핑들은, 대응된 노드의 체인으로부터 제 1 대응 노드로의 맵핑, 그리고 제 2 대응 노드의 체인으로부터 제 1 대응 노드의 체인으로의 맵핑이다;
이 컴퓨터-구현 방법은, 제 1 어셈블리의 지향성 비순환 모델링 그래프 및 제 2 어셈블리의 지향성 비순환 모델링 그래프를 언폴딩하는 단계로서, 상기 언폴딩된 그래프들의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별되는, 상기 언폴딩하는 단계, 언폴딩된 제 2 어셈블리의 지향성 비순환 모델링 그래프에 비-대응 노드를 제공하는 단계로서, 상기 비-대응 노드는 언폴딩된 제 2 어셈블리의 초기 모델링 그래프의 임의의 노드에 대응하지 않는, 상기 제공하는 단계, 및 비-대응 노드가 제 1 어셈블리의 언폴딩된 지향성 비순환 모델링 그래프에 있는지 여부를 테스트하는 단계를 더 포함할 수도 있고, 테스트하는 단계가 부정적인 결과를 산출하는 경우, 결정된 맵핑은, 비-대응 노드의 체인으로부터 빈 (empty) 체인으로의 맵핑이다;
릴레이션은 기계적 링크, 콘텍스트 링크 (contextual link), 상대적인 포지셔닝, 퍼블리케이션 인터페이스 (publication interface), 또는 조직 트리 (organizing tree) 이다.
또한, 이 목적은,
- 객체들을 저장하는 데이터베이스; 및
- 상기 컴퓨터-구현 방법을 이용하여 복수의 객체들의 어셈블리를 설계하는데 적합한 그래픽 사용자 인터페이스를 포함하는,
컴퓨터-지원 설계 시스템에 의해 달성된다.
또, 이 목적은 컴퓨터에 의해 실행하기 위한 명령들을 포함하는 컴퓨터 프로그램에 의해 달성되며, 명령들은, 객체들을 저장하는 데이터베이스를 포함하는 컴퓨터-지원 설계 시스템으로 하여금 상기 컴퓨터-구현 방법을 수행하도록 한다.
또한, 이 목적은 상기 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 저장 매체에 의해 달성된다.
본 발명의 추가적인 특징들 및 이점들은, 이하에 열거된 첨부 도면들을 참조하여, 비제한적인 예들로서 주어지는, 본 발명의 실시형태들의 하기 설명으로부터 명백해질 것이다.
도 1 은 재사용 그래프의 예를 나타낸다.
도 2 는 도 1 의 재사용 그래프에 대응하는 언폴딩된 그래프를 나타낸다.
도 3 은 도 1 의 재사용 그래프 상에서의 릴레이션의 예를 나타낸다.
도 4 는 편집후 도 1 의 재사용 그래프를 나타낸다.
도 5 는 도 4 의 편집된 재사용 그래프에 대응하는 언폴딩된 편집된 그래프를 나타낸다.
도 6 은 다중 루트 지향성 비순환 그래프를 나타낸다.
도 7 은 도 6 의 그래프로부터 획득된 단일 루트 지향성 비순환 그래프를 나타낸다.
도 8 내지 도 10 은 도 1 의 그래프의 다른 변형을 나타낸다.
도 11 은 당업계의 프로세스의 상태의 차트를 도시한다.
도 12 는 본 발명의 프로세스의 예의 차트를 도시한다.
도 13 및 도 14 는 도 1 의 모델링 그래프 상에서의 편집 동작의 예를 나타낸다.
도 15 내지 도 19 는 협력 설계를 도시한다.
도 20 내지 도 31 은 어셈블리의 편집들을 도시한다.
도 32 내지 도 35 는 그래프들을 병합할 때 본 발명의 사용의 예들을 나타낸다.
본 발명에 따른 컴퓨터-구현 방법은 복수의 객체의 어셈블리를 설계하도록 의도된다. 어셈블리는 노드 및 아크를 갖는 지향성 비순환 모델링 그래프에 의해 모델링된다. 각각의 노드는 어셈블리의 객체를 나타낸다. 각각의 아크는 기점 노드에 의한 종점 노드의 사용을 나타낸다. 적어도 하나의 아크가 식별자에 의해 고유하게 식별된다. 어셈블리는 적어도 하나의 식별자의 제 1 체인을 포함하는 적어도 하나의 튜플을 갖는 적어도 하나의 릴레이션에 의해 또한 모델링된다. 이 방법은 적어도 하나의 식별자의 제 1 체인과 제 2 체인 사이의 적어도 하나의 맵핑을 결정하는 단계 및 릴레이션의 튜플에서의 제 1 체인의 적어도 하나의 발생을 제 2 체인으로 대체하는 단계를 포함한다. 이 방식으로, 파괴된 튜플이 자동으로 복구되고 설계가 용이해진다.
이 모델링 그래프는 어셈블리의 구조, 또는, 다른 말로, 어셈블리의 객체들 사이의 계층을 캡처한다. 어셈블리의 각각의 객체는 모델링 그래프의 노드에 연관된다. 데이터베이스에서의 참조 데이터에 대한 포인터가 노드에 부착될 수도 있다. 이 참조 데이터는, 예를 들어, 부품 또는 부품의 어셈블리의 사양을 포함할 수도 있다.
적어도 하나의 아크가 식별자에 의해 고유하게 식별된다. 식별자는, 예를 들어, 심볼, 문자, 또는 심볼이나 문자의 체인 (또는 스트링) 이다. 종래 기술로부터 공지된 임의의 타입의 식별자가 아크를 식별하는데 적합하다. 다음에서, 문자 "u" 에 수치 인덱스 x 가 후속하는 심볼 "ux" 가 아크를 식별하는 일예로 이용된다.
더 일반적으로는, 모델링 그래프의 모든 아크가 고유하게 식별된다. 그러나, 이것은 필수요건은 아니다.
따라서, 몇몇 정의에 따르면, 그래프가 "라벨링된" 것으로 지칭되고, 이것은, 몇몇 정보가 아크 및/또는 노드에 부착될 수 있음을 의미한다.
정의에 의해, "지향성(directed)" 은 모든 아크가 배향된 것을 의미한다. 모델링 그래프는 지향되어, 기점 노드로부터 종점 노드까지 배향된 각각의 아크는 그 기점 노드에 의한 종점 노드의 이용을 나타낸다. 이러한 배향된 아크는 종점 노드의 관점으로부터의 입력 아크 및 기점 노드의 관점으로부터의 출력 아크를 나타낸다. 이용은 종래 기술로서 정의된다. 어셈블리의 객체가 다른 객체를 이용하는데 기계적 의미가 없고 동일한 다른 객체에 의해 동시에 이용될 것이기 때문에, 그래프는 지향된다.
정의에 의해, "비순환" 은 아크의 순환이 없음을 의미한다. 모델링 그래프는 비순환이고 그렇지 않으면 객체가 스스로 회귀적으로 정의될 것이고, 이것은 재료 비용의 관점에서 무의미하다.
정의에 의해, "단일 루트" 는 하나의 노드 (루트 노드로 지칭됨) 만이 입력 아크를 갖지 않는 것을 의미한다. 모델링 그래프는 일반적으로 단일 루트 그래프이다. 이것은 특히 도 1 의 예의 경우이다. 실제로, 설계자는 일반적으로 객체의 하나의 어셈블리에 대해 작업한다. 그러나, 설계자가 객체의 어셈블리의 세트에 대해 작업할 수도 있기 때문에, 이것은 제한이 아니다.
간결함을 위해, 이하 모델링 그래프는 단일 루트의 지향성 비순환 그래프 (DAG; Directed Acyclic Graph) 로서 고려될 것이다. 그러나, 도 6 및 도 7 의 예는, 다중 루트 DAG 로의 일반화가 간단함을 나타낸다. 실제로, 도 6 에 도시된 바와 같은 다중 루트 DAG 는, 도 7 에 도시된 바와 같이, 루트 노드 r, 및 이 루트 노드 r 을 모든 이전 루트 노드에 접속시키는 아크를 추가함으로써 단일 루트 DAG 로 용이하게 변환된다.
따라서, 모델링 그래프는 종래 기술에 공지된 바와 같이 재사용 그래프일 수도 있다. 그러나, 본 발명은 DAG 에 의해 모델링된 다른 타입의 어셈블리에 적용될 수 있다.
어셈블리는, 적어도 하나의 식별자의 제 1 체인을 포함하는 적어도 하나의 튜플을 갖는 적어도 하나의 릴레이션에 의해 더 모델링된다.
세트 이론에서, 릴레이션은 튜플의 순서화되지 않은 세트이다. 튜플은 적어도 하나의 엘리먼트의 순서화된 세트이다. 그러나, 순서화되는 튜플은 본 발명의 적용을 위한 요건이 아니다. 따라서, 이하, 튜플은 적어도 하나의 엘리먼트의 세트로서 고려될 것이다. 튜플의 애리티 (arity) 는 튜플이 포함하는 엘리먼트의 수이다. 릴레이션의 모든 튜플이 동일한 애리티를 갖는 경우 그것은 릴레이션의 애리트를 언급한다. 그리하여, 릴레이션의 애리티는 튜플의 애리티이다. 릴레이션은 상이한 애리티의 튜플을 포함할 수도 있기 때문에 필수적으로 애리티를 가질 필요는 없다.
어셈블리의 설계의 콘텍스트에서, 어셈블리를 모델링하는 릴레이션은 어셈블리의 설계 특성을 캡처한다. 이러한 릴레이션의 일예인 릴레이션 Connect 는 도 3 과 관련하여 이미 전술하였다. 일반적으로, 릴레이션은 다음 중 하나를 캡처한다:
- 디멘져닝 및 포지셔닝 제약과 같은 객체들 사이의 기계적 링크,
- 객체들과 그 객체들의 모 객체들 사이의 상대적인 포지셔닝,
- 상대적인 포지셔닝 사양을 갖거나 또는 갖지 않는 카피-위드-링크 (copy-with-link) 객체와 같은 객체들 사이의 콘텍스트 링크
- 인터페이스 퍼블리케이션, 및
- 조직 트리.
기계적 링크 및 포지셔닝 제약은 복수의 객체의 어셈블리의 설계의 콘텍스트에서 직관적이고 종래기술로부터 공지되어 있다. 전술한 릴레이션 Connect 가 특히 이 카테고리가 속한다. 이들은 추가적으로 설명할 필요가 없다.
이하, 상대적인 포지셔닝 릴레이션을 간략하게 설명한다. 객체의 어셈블리, 더 상세하게는 견고한 부품의 기계적 어셈블리에 적용되는 경우, 모델링 그래프 각각의 아크는 기점 노드에 대한 종점 노드의 상대적인 위치를 운반한다. 정의에 의해, 축 시스템 R2 에 대한 축 시스템 R1 의 상대적인 위치는, R2 를 R1 상으로 이동시키는 아이소메트릭 3D 변환 P 이다. 예를 들어, 도 1 을 참조하면, 아크 u4 는 객체 b 에서 객체 c (의 이용) 의 상대적인 위치를 운반한다. 유사하게, 아크 u1 은 객체 a 에서 객체 b (의 이용) 의 상대적인 위치를 운반한다. 재사용 그래프를 언폴딩하는 것은 각각의 부품의 플라이 상에서의 포지셔닝 연산을 포함한다. 예를 들어, 도 2 를 참조하면, 부품 (c, 2) 의 위치는 b 에 대한 c 의 상대적인 위치와 a 에 대한 b 의 상대적인 위치의 조합이다. 자원 절약을 위해 상대적인 위치를 애리티 1 의 릴레이션으로서 캡처하는 것이 바람직하다.
이하, 콘텍스트 링크 릴레이션을 간략하게 설명한다. S 및 T 를 각각 소스 부품 및 타겟 부품으로 명명된 어셈블리 내에서 이용되는 2 개의 객체로 가정한다. 콘텍스트 링크는 객체 S 의 객체 T 로의 지오메트리를 카피함으로써 생성된다. 카피는 소스 지오메트리와 카피된 지오메트리 사이의 링크를 세이브하고, 이것은, 소스 지오메트리가 변하는 경우 그 새로운 형상을 피쳐링하기 위해 카피된 지오메트리가 업데이트되는 것을 의미한다. 카피된 지오메트리의 위치를 관리하기 위한 2 가지 방식: 절대적인 포지셔닝 및 상대적인 포지셔닝이 있다. 절대적인 포지셔닝은 객체 T 의 레퍼런셜에서의 카피된 지오메트리를 객체 S 의 위치에 배치하는 것이다. 어셈블리 내에서 객체 S 및/또는 T 를 이동시키는 것은 객체 T 의 레퍼런셜에서의 카피된 지오메트리의 위치에 대해 영향이 없다. 상대적인 포지셔닝은 기계적 어셈블리 내에서 객체 S 및 T 의 상대적인 위치에 따라 부품 T 의 카피된 지오메트리를 배치하는 것이다. 어셈블리 내에서 객체 S 및/또는 T 를 이동시키는 것은 객체 T 의 레퍼런셜에서의 카피된 지오메트리의 위치를 변경한다.
이하, 인터페이스 퍼블리케이션 릴레이션을 간략하게 설명한다. 다양한 애플리케이션은 객체 인터페이스의 엄격한 정의를 요구한다. 객체의 인터페이스는 그 객체가 외부 세계와 소통하는 것을 허용하는 것이다. 예를 들어, 차바퀴의 인터페이스는 보어 (bore) 및 트레드 (tread) 를 포함할 수도 있다. 이 목적으로, 객체의 인터페이스의 정의는 객체 외부로 노출되고, 퍼블리시되고 (published), 외부 링크는 퍼블리시된 객체들만을 접속시키도록 가정된다. 퍼블리케이션은, 사용자가 정의한 명칭 및 모델링된 그래프 중에서 그 퍼블리시된 객체를 정의하는 아크의 경로에 의해 설명된다. 개념적으로, 퍼블리케이션은 애리티 1 의 릴레이션과 유사하게, 즉, 튜플이 오직 하나의 객체만을 포함한 릴레이션처럼 거동한다.
이하, 트리 릴레이션을 조직하는 것을 간략하게 설명한다. 다수의 환경에서, 설계자의 요구는 모델링 그래프를 변경하지 않으면서 어셈블리의 부품들을 재조직하는 것이다. 어셈블리의 부품들은 언폴딩된 트리의 리프 노드 (leaf node) 에 대응할 수도 있다. 모델링 그래프에 대응하는 언폴딩된 트리를 획득하는 방법은 이미 설명하였고, 종래 기술로부터 공지되어 있다. 트리 튜플을 조직하는 것은, 언폴딩된 트리에 의해 제공된 트리 구조가 편리하지 않을 때마다 생성될 수도 있다. 이 문제를 해결하기 위해, "조직 트리" 로 지칭되는 새로운 트리 구조가 생성된다. 이 조직 트리의 노드들은 타입, 명칭 등의 측면에서 설계자가 요구하는 것이다. 유일한 조건은 조직 트리의 각각의 리프 노드를 언폴딩된 트리의 리프 노드에 연관시키는 것이다. 조직 트리의 리프 노드들은 아크의 경로를 통해 언폴딩된 트리의 리프 노드를 인식한다. 물론, 필요한 만큼 많은 조직 트리가 생성될 수 있다. 그 결과, 조직 트리는, 애리티가 모델링 그래프에 대응하는 언폴딩된 트리의 리프 노드의 수만큼 많은 릴레이션이다.
물론, 어셈블리는 전술한 카테고리 중 하나에 속하는 릴레이션에 의해 필수적으로 모델링될 필요는 없다. 어셈블리는, 객체의 어셈블리의 설계에 유용한 임의의 다른 릴레이션에 의해 모델링될 수도 있다.
단순화를 위해, 이하, 애리티 2 의 릴레이션, 즉, 2 개의 객체들 사이의 릴레이션에 의한 개념을 주로 설명한다. 그러나, 임의의 애리티 (예를 들어, 상대적인 포지셔닝 및 인터페이스 퍼블리케이션의 경우의 애리티 1, 또는 예를 들어, 조직 트리의 경우의 가능한 더 높은 애리티) 의 릴레이션으로의 일반화 및 고정된 애리티가 없는 릴레이션은 간단하다.
릴레이션은 튜플을 통한 어셈블리의 설계 특성을 캡처한다. 즉, 튜플은, 그 튜플이 대응하는 객체들 (또는 객체) 가 그 릴레이션 내에 속한다는 정보를 제공한다. 이 점에서, 튜플은 또한 어셈블리를 모델링한다. 튜플은 통상적으로 문자의 시퀀스로서 인코딩된다. 그러나, 이 정보를 인코딩하는 임의의 방식은 본 발명의 범주에 속한다. 확장에 의해 그리고 간결함을 위해, 릴레이션 내의 객체의 세트 및 이 정보의 인코딩 모두를 동일한 용어 "튜플" 로 지칭한다.
어셈블리를 모델링하는 릴레이션은 적어도 하나의 튜플을 갖는다. 유효한 튜플은 어셈블리의 객체의 세트에 대응한다. 반대로, 파괴된 튜플은 릴레이션 내의 어셈블리의 객체의 세트를 식별하지 못한다.
튜플은 객체를 나타내는 노드들을 참조함으로써 어셈블리의 객체들의 세트를 식별한다. 종래 기술에서와 같이, 노드들을 식별하는 아크의 경로를 이용함으로써 노드들이 참조된다. 따라서, 튜플은 적어도 하나의 식별자의 제 1 체인을 포함한다. 제 1 체인의 식별자는 모델링 그래프의 아크의 식별자를 포함할 수도 있다. 그러나, 예를 들어, 튜플이 파괴된 경우에서와 같이, 항상 그러한 것은 아니다.
이 방법은, 적어도 하나의 식별자의 제 1 체인과 제 2 체인 사이의 적어도 하나의 맵핑을 결정하는 단계 및 그 릴레이션의 튜플에서의 제 1 체인의 적어도 하나의 발생을 제 2 체인으로 대체하는 단계를 포함한다. 튜플이 파괴된 경우, 제 1 체인을 제 2 체인으로 대체하는 것은 튜플을 복구하는 것을 허용한다. 제 1 체인과 제 2 체인 사이의 맵핑은 설계자의 개입없이 대체하는 단계를 정확하게 수행하기 위한 수단을 제공한다. 따라서, 복구는 자동이고, 설계자는 수동으로 튜플을 리라우팅할 필요가 없다. 그 결과, 설계가 용이해진다.
릴레이션은 제 1 체인을 포함하는 복수의 튜플을 가질 수도 있다. 대안적으로 또는 추가적으로, 어셈블리는, 제 1 체인을 포함하는 적어도 하나의 튜플을 갖는 다른 릴레이션에 의해 더 모델링될 수도 있다. 제 1 체인을 포함하는 튜플이 2 개 이상 존재할 수도 있다는 것이 아이디어이다. 이것은 특히, 어셈블리의 객체가 수개의 릴레이션에 속하는 경우 및/또는 동일한 릴레이션의 수개의 튜플에 속하는 경우이다. 이 경우, 결정하는 단계는 오직 한번 수행된다. 대체하는 단계는 제 1 체인을 포함하는 모든 튜플에 대해, 또는 복구를 위해 선택된 제 1 체인을 포함하는 모든 튜플에 대해 수행될 수도 있다. 제 1 체인을 포함하는 튜플이 파괴된 경우, 설계자는 튜플들을 하나씩 수동으로 복구할 필요가 없기 때문에, 설계가 상당히 용이해진다. 실제로, 맵핑에 기초하여 모든 대체가 자동으로 수행되기 때문에 복구는 자동이 된다.
임의의 튜플에 대해 대체하는 단계를 수행하는 것은 제 1 체인으로부터 제 2 체인으로의 결정된 맵핑을 그 튜플에 적용하는 단계를 포함할 수도 있다. 튜플이 제 1 체인을 포함하는 경우, 맵핑을 적용하는 단계는 제 1 체인을 그 튜플 내의 제 2 체인으로 대체하는 단계를 포함한다. 튜플이 제 1 체인을 포함하지 않는 경우, 대체가 발생하지 않기 때문에, 맵핑을 적용하는 단계는 아이덴티티 맵핑을 적용하는 것과 동일하다. 따라서, 이 방법은, 튜플이 맵핑의 제 1 체인을 포함하는지 여부를 테스트하고, 제 1 체인을 포함하는 튜플에만 그 맵핑을 적용하는 단계를 포함할 수도 있다. 대안적으로, 이 방법은 테스트하는 단계없이 모든 튜플에 맵핑을 적용할 수도 있다.
모델링 그래프는 초기 모델링 그래프를 편집하는 단계에 의해 제공될 수도 있다. 즉, 초기 모델링 그래프가 변경 또는 변형될 수도 있다. 그 후, 결정하는 단계가 편집하는 단계에 따라 수행될 수도 있다.
전술한 바와 같이, 도 1 내지 도 5 는, 그래프를 편집하는 것이 어떻게 파괴된 튜플에 이르는지를 도시한다. 도 1 의 그래프는 어셈블리를 모델링하는 초기 그래프이다. 하나의 튜플을 갖는 릴레이션 Connect 는 어셈블리를 더 모델링한다. 종래 기술로부터 공지된 바와 같이, 튜플은 초기 모델링 그래프의 아크의 식별자의 체인을 이용하여 코딩된다. 식별자의 체인은 아크의 경로에 대응한다. 도 3 의 예에 도시된 바와 같이, 릴레이션 Connect 는 튜플 Connect[u1u3,u2u3] 를 가질 수도 있다.
초기 모델링 그래프를 편집하는 것 (또는 변형하는 것) 은, 다음 순서의 기본 동작이 수행된 후 도 4 의 예에 도시된 것과 같은 모델링 그래프를 제공할 수도 있다:
1. 노드 d 를 생성하고,
2. 아크 u6 을 생성하고,
3. 아크 u6 의 기점을 노드 d 로 설정하고,
4. 아크 u6 의 종점을 b 로 설정하고,
5. 아크 u1 의 종점을 노드 d 로 변경한다.
따라서, 그래프를 편집하는 것은,
- 초기 그래프의 아크를 삭제하는 것
- 아크에 초기 그래프를 추가하는 것, 또는
- 초기 그래프의 아크를 리라우팅하는 것을 포함할 수도 있다.
아크를 추가하는 것은 아크를 생성하는 것과 동일하다. 아크를 리라우팅하는 것은 기점 노드 및/또는 종점 노드를 재정의하는 것을 의미한다.
아크를 복제하는 것과 같은 그래프를 편집하는 다른 방식은 본 발명의 범주에 속한다. 전술한 기본 아크 동작은, 다른 편집 오퍼레이터가 그에 기초할 수도 있는 최소 세트의 동작을 제공한다. 실제로, 아크의 경로를 통해 균등한 노드들이 인코딩될 수도 있다. 예를 들어, 노드를 생성하는 것은 도 4 의 예에 도시된 바와 같이 아크를 추가하는 것 및 다른 아크들을 리라우팅하는 것으로 구성된다.
편집하는 단계 이전에, 초기 모델링 그래프는 언폴딩될 수도 있다. 언폴딩된 초기 그래프의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별될 수도 있다. 체인은 초기 그래프의 아크의 경로에 대응한다. 편집하는 단계 이전에 초기 모델링 그래프를 언폴딩하는 것은 더 사용자 친화적으로 편집하는 단계를 가능하게 한다.
도 2 는 도 1 의 초기 그래프를 언폴딩하는 결과의 일예이다. 도 3 은 도 2 의 초기 모델링 그래프에서 듀플 Connect[u1u3,u2u3] 의 예를 제공한다.
따라서, 모델링 그래프는 초기 모델링 그래프의 편집의 결과이다. 도 4 의 모델링 그래프의 콘텍스트에서, 경로 u1u3 은 도 5 에 도시된 언폴딩된 모델링 그래프의 임의의 노드를 식별하지 않기 때문에 튜플 Connect[u1u3,u2u3] 은 파괴된다.
이 예는 그래프를 편집하는 것이 어떻게 튜플을 파괴하는지를 도시한다. 이러한 파괴된 튜플을 자동으로 복구하기 위한 솔루션은, 편집하는 단계에 따라 제 1 체인과 제 2 체인 사이의 맵핑을 결정하는 것이다. 예를 들어, 아크 u1 의 기점을 노드 a 에서 노드 b 로 변경하는 동작 (5) 은 제 1 체인 u1 과 제 2 체인 u1u6 사이에서의 맵핑 u1→u1u6 과 연관될 수도 있다.
이것은, 대체하는 단계가 형식적으로 제 1 체인 (심볼 u1) 을 제 2 체인 (심볼 u1u6 의 스트링) 으로 교체하는 것을 의미한다. 언폴딩된 그래프를 연산한 후, 및 접속할 노드들을 탐색하기 전에, 편집하는 단계로부터 얻어진 맵핑은 형식적으로 튜플 Connect[u1u3,u2u3] 에 적용된다. 이 예에서, 이것은 모델링된 그래프의 콘텍스트에서 파괴된 튜플 Connect[u1u3,u2u3] 을 튜플 Connect[u1u6u3,u2u3] 에 의해 변경한다. 튜플의 예를 나타내는 도 8 을 참조하면, 대체하는 단계 이후, 도 4 의 모델링 그래프에 대해, 아크 경로 u1u6u3 및 u2u3 을 통한 언폴딩된 모델링 그래프의 2 개의 노드들을 정확하게 식별하기 때문에 이 튜플은 유효하다. 종래 기술에서와 같이, 이 유효 튜플은, 모델링 그래프가 언폴딩될 때마다 Connect[(c,9),(c,7)] 와 같은 비지속적 심볼에 대해 코딩될 수 있다.
튜플을 파괴하지 않고 "구조를 변경하는" 대안적 방법은 조직 트리를 변형하는 것이다. 이것은, 모델링 그래프가 변경되지 않기 때문에 링크를 파괴하지 않는다. 반대로, 본 발명은 재사용 그래프 편집에도 불구하고 튜플을 자동으로 복구하는 방법을 제공한다.
모델링 그래프의 편집 이후 파괴된 튜플의 자동 복구에 기인하여, PLM/CAD 시스템은 설계자에게 오직 강제적 복구 튜플을 요구하거나 튜플 동작을 리라우팅한다. "명백한" 리라우팅 동작이 이 시스템에 의해 자동으로 수행된다. 그 결과, 설계자는 비생산적 작업에 시간을 소모하는 것으로 좌절하게 되지 않고, 절약된 시간은 설계 작업에 전용된다. 또한, 수동 리라우팅 동작에 의해 유발되는 잠재적 에러가 제거되기 때문에, 품질이 세이브된다.
편집 및 결정하는 단계는 반복될 수도 있다. 초기 모델링 그래프가 수차례 편집될 수도 있다. 각각의 반복마다 맵핑이 그에 따라 결정될 수도 있다.
예를 들어, 설계자는 전술한 바와 같이 새로운 레퍼런스 d 를 a 와 b 사이에 삽입하고 다른 새로운 레퍼런스 e 를 d 와 b 사이에 삽입함으로써 편집을 수행한다. 얻어진 모델링 그래프 및 언폴딩된 모델링 그래프가 도 9 및 도 10 에 각각 도시되어 있다.
각각의 편집 단계에 따른, 각각의 편집 단계 이후의 결정하는 단계에서 결정되는 맵핑은: u1→u1u6 및 u6→u6u7 이다.
결정하는 단계의 반복에서 결정된 각각의 맵핑은 맵핑 리스트를 증분시킬 수도 있다. 이러한 맵핑 리스트는 어셈블리를 모델링한다. 리스트는 순서화된 세트이다. 따라서, 리스트의 맵핑은 순서화된다. 증분은, 결정하는 단계의 반복이 수행되는 순서를 고려한다. 이 방식으로, 맵핑 리스트는 편집 이력의 추적을 유지한다. 이것은, 다수의 단계들을 포함하는 복잡한 편집이 초기 모델링 그래프 상에서 수행된 경우에도 파괴된 튜플들을 자동으로 복구할 수 있게 한다.
전술한 예에서, 리스트는 맵핑 u1→u1u6 및 u6→u6u7 로 이루어진다. 따라서, 도 9 및 도 10 의 편집된 그래프의 콘텍스트에서 파괴된 튜플 Connect[u1u3,u2u3] 은, 체인 u1 을 체인 u1u6 으로 성공적으로 대체하고, 체인 u6 을 체인 u6u7 로 대체함으로써 복구되어 Connect[u1u6u7u3,u2u3] 가 되고, 이것은 편집된 모델링 그래프의 콘텍스트에서 유효 튜플이다.
대체하는 단계 이전에, 맵핑 리스트가 콤팩트화될 수도 있다. 실제로, 도 9 및 도 10 의 예에서, 2 개의 맵핑의 리스트 u1→u1u6 및 u6→u6u7 가 오직 하나: u1→u1u6u7 로 콤팩트화될 수 있음에 주목할 수도 있다. 그 후, 파괴된 튜플은 복구되어, 종전과 같이 동일한 유효 튜플 Connect[u1u6u7u3,u2u3] 가 되어, 이것은 도 10 의 언폴딩된 그래프의 발생 노드 (c,9) 및 (c,7) 를 정확하게 접속시킨다. 이것은 메모리 자원을 절약할 수 있게 한다. 프로세서 성능을 위해, 이 콤팩트화 동작은 대체하는 단계 이전에 수행될 수도 있다.
더 일반적으로, 본 발명은 다음과 같은 소프트웨어 아키텍쳐를 정의한다.
- 모델링 그래프를 편집하는 임의의 오퍼레이터가 맵핑을 결정한다. 맵핑은 규칙에 따라 자동으로 결정될 수도 있다. 이러한 규칙은 편집 알고리즘을 책임지는 소프트웨어 엔지니어의 담당이다. 이하 증명되는 수학적 이론이 이러한 규칙을 정의하는 것을 보조할 수도 있다. 맵핑은 또한 설계자에 의해 결정될 수도 있다.
- 맵핑 리스트는 성능을 위해 적용 전에 콤팩트화될 수도 있다.
- 콤팩트화된 맵핑 리스트는 모든 릴레이션 정의에 관련된 모든 튜플에 대한 대체에 적용될 수도 있다. 대안적으로, 맵핑 리스트의 맵핑 중 일부가 튜플 중 일부에 적용될 수도 있다.
도 11 은 당업계의 프로세스의 상태의 차트를 도시한다. 튜플은 언폴딩된 모델링 그래프가 재연산된 후 업데이트되고, 다수의 파괴된 링크 (1) 는 설계자에 의해 복구되어야 한다. 도 12 는 본 발명의 프로세스의 일예의 차트를 도시한다. 맵핑은 모델링 그래프의 편집 동안 생성된다. 이들은 튜플을 업데이트하기 전에 튜플에 관련된 모든 경로에 형식적으로 적용된다. 존재한다면, 나머지 파괴된 튜플 (2) 은 진정한 설계 목적만을 위해 사용자에 의해 복구 또는 리라우팅될 것이고, 이것은 수학적 이론에 의해 추후 입증된다.
도 13 은 도 1 의 모델링 그래프에 대한 더 정교한 편집 동작의 일예를 도시한다. 이 목적은 중간 노드를 제거함으로써 평탄한 모델링 구조를 제공하는 것이다. 예를 들어, 이 설계는 중간 노드 b 를 제거함으로써 도 13 의 최좌측 그래프를 도 13 의 최우측 그래프로 편집할 수도 있다. 이 동작의 목적은 언폴딩된 모델링 그래프에서 (이미 설명한 리프 노드들에 대응하는) 동일한 수의 부품을 유지하는 것이다. 도 13 의 예에서는, "b 제거" 동작 전에 부품 c 의 5 개의 이용이 존재한다. 편집된 모델링 그래프의 언폴딩된 그래프는 도 14 에 도시된 바와 같이, 부품 c 의 5 개의 발생을 피처링해야 한다.
"제거" 동작은 다음의 맵핑을 제공한다:
- u1 u3→u6
- u1 u4→u7
- u2 u3→u8
- u2 u4→u9
이 방식으로, 초기 모델링 그래프에 대해 코딩된 튜플은 편집된 모델링 그래프의 심볼들로 자동으로 변환된다. 변형된 모델링 그래프를 언폴딩하고 튜플을 업데이트하는 것은 정확한 어셈블리를 제공한다. 아래의 표는 설계 단계에 따른 링크의 코딩을 나타낸다 (인덱스는 이전 도면의 인덱스이다.)
Figure 112010087526643-pat00001
전술한 설명은, 1명의 설계자가 어셈블리를 모델링하는 초기 그래프를 편집함으로써 객체의 어셈블리를 설계하는 콘텍스트에서 본 발명의 이용을 강조하였다. 본 발명은 또한 협력 설계, 즉, 2명 이상의 설계자를 수반하는 설계의 콘텍스트에도 유용하다.
협력 설계는 몇명의 사용자가 초기 객체의 로컬 카피를 획득하고, 이 카피를 변형하는 것이다. 변형은 어셈블리 구조를 변경하고, 관계를 추가 및 제거하는 것이다.
당업계의 상태에서, 협력 설계는 다음의 이유 때문에 지루한 작업이다. 2명의 사용자가 어셈블리를 모델링하는 초기 그래프의 로컬 카피를 획득한다. 이들 모두는 그 모델링 그래프를 독립적으로 편집하고, 릴레이션 및 그 릴레이션 내의 튜플들을 생성한다. 일 설계자로부터 다른 설계자에게 튜플을 전송하는 것은 현재 기술에는 호환되지 못한다. 전술한 바와 같이, 튜플은 모델링 그래프의 경로 또는 아크를 통해 노드를 포인팅한다. 그 결과, 모델링 그래프 A 의 콘텍스트에서 생성되고 다른 모델링 그래프 B 의 콘텍스트로 전송된 관계는 일반적으로 포인팅된 노드를 재접속할 수 없다.
"동시적 설계" 또는 "협력 설계" 즉, 몇명의 설계자가 동일한 어셈블리에 대해 작업하고 네트워크를 통해 변형을 교환하는 문제가 본 문헌에서 처리된다. 특히, 텍스트 동기화기에 대한 최근의 연구는 "변환 접근방법" 개념에 이르렀다. 이 개념은 안전한 데이터 동기화기를 설계하는 매우 단순한 고유의 정의 및 특성을 제공한다. 참고 문헌은: 2003 년 프랑스의 P. Molli, G. Oster, H. Skaf-Molli 및 A. Imine, INRIA Lorraine 에 의한 Using the transformational approach to build a safe and generic data synchronizer 이다. 그러나, 이 문헌은 "텍스트 동기화" 에 관한 것이고, 이것은 복수의 객체의 어셈블리에 관한 개념과는 별개의 분야이다.
2명의 설계자가 협력하여 작업하는 것을 가정한다. 형식적으로, 제 1 설계자가 제 1 어셈블리에 대해 작업할 수도 있고, 제 2 설계자가 제 2 어셈블리에 대해 작업할 수도 있다. 협력은, 2명의 설계자가 동일한 초기 모델링 그래프로부터 시작할 수도 있다는 사실에 있다.
이제, 제 2 설계자가 전술한 바와 같이 모델링 그래프를 편집한다고 가정한다. 편집 후, 제 2 설계자는 릴레이션 및 그 릴레이션 내의 튜플을 생성할 수도 있다. 그 후, 그는 그 튜플을 제 1 설계자에게 전송할 수도 있다. 그러나, 이러한 튜플은 제 1 어셈블리의 모델링 그래프의 콘텍스트에서는 파괴되었을 수도 있다.
이 문제를 해결하기 위해, 편집으로부터 얻어진 맵핑의 역이 결정될 수도 있다. 제 1 어셈블리의 콘텍스트에서, 맵핑의 결정된 역에 따라 대체가 수행될 수도 있다. 즉, 맵핑은 제 2 어셈블리의 설계에서 결정된 맵핑의 역이고, 제 2 어셈블리는 그 제 2 어셈블리의 초기 그래프를 편집하는 단계를 포함하는 방법에 따라 설계되고, 제 1 어셈블리의 모델링 그래프와 제 2 어셈블리의 초기 그래프는 동일하다. 이것은 동시적 및 협력 설계를 향상시킨다. 실제로, 맵핑의 역에 기인하여, 제 2 사용자의 콘텍스트에서 생성된 튜플은 그 초기 모델링 그래프에 대해 작업하는 제 1 사용자의 콘텍스트에 전송되는 경우 자동으로 복구된다.
그러나, 일반적 협력 프로세스에서, 2명의 사용자 모두는 초기 그래프를 개별적으로 편집한다. 그때, 문제는 일 사용자가 다른 사용자에게 튜플을 전송하는 것이다. 상세히 설명하기 전에, 협력 설계의 대략적인 일반적 프로세스를 도 15 를 참조하여 단순한 시나리오를 통해 설명한다. 사용자 A 는 초기 그래프 G0 를 판독함으로써 시작하여 이를 제 1 모델링 그래프 G1 으로 편집한다. 그 후, 사용자 A 는 그래프 G1 을 사용자 B 에게 전송하고, 사용자 B 는 이를 제 2 모델링 그래프 G2 로 편집한다. 그 동안, 사용자 A 는 그래프 G1 (의 자신의 카피) 을 그래프 G3 으로 변형하고 그래프 G3 상에 튜플 x 를 생성한다. 마지막으로, 사용자 A 는 튜플 x 를 사용자 B 에게 전송한다. 본 발명이 없으면, 튜플 x 는 새로운 콘텍스트인 그래프 G2 의 노드들을 정확히 포인팅하지 않기 때문에, 사용자 B 는 도 15 에 도시된 바와 같이 튜플 x 의 수동 리라우팅을 수행해야 한다.
본 발명은 제 1 어셈블리를 설계하기 위한 방법을 제공함으로써 이 문제를 해결한다. 제 1 어셈블리가 편집되고, 제 1 맵핑이 그에 따라 결정된다. 그 맵핑은 또한 제 2 어셈블리의 편집 동안 결정된 맵핑의 역으로 합성된다. 제 1 및 제 2 어셈블리의 초기 그래프는 동일하다. 이러한 방법 때문에, 2명의 사용자가 동일한 초기 그래프를 편집하는 경우에도, 그들은 시스템적으로 릴레이션의 튜플들을 수동으로 리라우팅할 필요없이 그 릴레이션을 서로 전송할 수 있다.
도 15 의 예에서, 그래프 G2 의 튜플 x 를 성공적으로 그리고 자동으로 리라우팅하기 위해 (튜플 x 가 그래프 G3 에서 초기에 생성된 것을 기억함), 이 시스템은 도 16 에 도시된 바와 같이 적절한 전처리 및 후처리 단계들을 수행할 수도 있다.
도 17 은 도 15 및 도 16 의 동일한 단순한 시나리오를 참조하여, 전처리 및 후처리 단계들 내에서 발생하는 맵핑 대수를 나타낸다. 이 목적에 도달하기 위해, 설계자가 모델링 그래프를 편집할 때마다, 이 편집에 의해 발생된 맵핑은 맵핑 리스트 (단순화를 위해 "s-리스트") 를 증분시킨다. 표시 si →j 는 그래프 Gi 를 그래프 Gj 로 바꾸는 편집과 연관된 s-리스트이다. si →j*sj →i 가 아이덴티티가 되도록 역 맵핑 [si →j]-1 이 si →j 에 대해 표기되고, "*" 은 합성 연산자이다.
그래프 G1 은 s-리스트 s0 →1 과 함께 사용자 B 에게 전송된다. 전처리 단계는 (튜플 x 가 생성된) 그래프 G3 으로부터의 역 s-리스트를 초기 그래프 G0 까지 연산한다. 후처리 단계는 그래프 G1 에 대해 사용자 B 에 의해 행해진 변경을 나타내는 것과 이 s-리스트를 조합한다. 이것은, G3 으로부터 G2 로의 적절한 s-리스트 모델링 변경을 산출하고, 이것은 튜플 x 를 새로운 콘텍스트: 그래프 G2 로 리라우팅하는 것을 허용한다.
도 18 의 예는 3 명의 사용자 및 확대된 통신을 수반하는 더 복잡한 예를 도시한다. 설계자 A, B 및 C 가 소정의 어셈블리에 대해 작업한다고 가정한다. 이들은 개별적으로 작업하기 때문에, 초기 모델링 그래프의 로컬 카피를 이용한다. 이들 모두는 모델링 그래프를 편집하고 릴레이션을 생성한다. 포인트는 모델링 그래프의 상이한 버전에 대해 생성된 릴레이션의 튜플들을 교환하는 것이다. 개념적으로, 전용 구조가 상이한 모델링 그래프 버전에 대한 모든 s-리스트 및 이들의 접속을 캡처한다. 이 구조는 예를 들어, 지향성 트리 그래프일 수도 있다. 루트 노드는 모델링 그래프의 초기 버전이다. 다른 노드들은 모델링 그래프의 연속적 버전이다. 노드 X 를 노드 Y 에 접속시키는 지향성 아크는 모델링 그래프 X 를 모델링 그래프 Y 로 변경하는 변형과 연관된 s-리스트로 라벨링된다. 트리 그래프의 가지는 동일한 사용자에 의해 행해진 변형을 캡처한다. 예를 들어, 초기 모델링 그래프 G0 은 사용자 A 에 의해 G1 으로 변경되고, 그 후 G2 및 최종적으로 G3 으로 변경된다. 사용자 B 는 모델링 그래프 G1 을 카피하고 이를 G4 로 변경한다. 사용자 C 는 G2 를 카피하고 이를 G3 으로 변경한다. 이것은 도 18 의 트리를 산출한다.
임의의 그래프 상에서 생성된 릴레이션의 튜플은 적절한 시퀀스의 맵핑을 적용함으로써 임의의 다른 그래프와 호환가능할 수 있다. 이 시퀀스는 2 개의 모델링 그래프를 접속시키는 트리 구조에서의 고유 경로에 의해 획득된다. 예를 들어, 다음의 s-리스트가 튜플에 의해 접속된 경로: s1 →4* s2 →1* s5 →2(x) 에 적용되면, G5 상에서 사용자 C 에 의해 생성된 튜플 x 는 사용자 B 의 그래프 G4 와 호환가능하다. 물론, 특히 튜플에 의해 접속된 객체가 새로운 콘텍스트에서 삭제된 경우, 설계자로부터 몇몇 수동 리라우팅이 요구되는 것이 발생할 수도 있다. 이것은, 진정한 설계 문제를 증가시키기 때문에 요구된다. 이 방식으로 사용자들은 자유롭고 안전하게 튜플들을 교환할 수 있다.
전체 트리 구조를 필요로 하지 않고 이 이론을 구현하는 방법이 있다. 이 구조를 생성, 업데이트 그리고 저장하는 어려운 문제들이 스킵된다. 이 원리는 시간의 순서로 이전의 시나리오를 다시 논의하며 설명된다.
1. 사용자 A는 모델링 그래프의 제 1 버전 G0를 생성한다.
2. 사용자 A는 이 모델링 그래프를 새로운 버전 G1으로 편집하고, 이 편집과 연관된 s-리스트
Figure 112010087526643-pat00002
를 저장한다.
3. 사용자 A는 G1을 s-리스트
Figure 112010087526643-pat00003
와 함께 사용자 B에게 보낸다.
4. 사용자 A는 G1을 다른 버전 G2로 편집하고 s-리스트
Figure 112010087526643-pat00004
를 저장한다.
5. 그러는 동안, 사용자 B는 G1 그래프를 다른 버전 G4로 저장하고 s-리스트
Figure 112010087526643-pat00005
를 저장한다.
6. 사용자 A는 합성 s-리스트
Figure 112010087526643-pat00006
와 함께 그래프 G2를 사용자 C에게 보낸다.
7. 사용자 A는 G2를 G3로 편집하고 s-리스트
Figure 112010087526643-pat00007
를 저장한다.
8. 사용자 A는 G2를 G5로 편집하고 s-리스트
Figure 112010087526643-pat00008
를 저장한다.
9. 사용자 C는 튜플 x를 생성하고 이것을 사용자 A 및 B에게 보낸다.
10. 이를 위해서, 사용자 C는 튜플 x (의 카피) 를 합성 s-리스트
Figure 112010087526643-pat00009
와 함께 사용자 A 에게 보낸다.
11. 사용자 A는 튜플 x를 수신하고 s-리스트
Figure 112010087526643-pat00010
를 합성한다.
a. 제 1 단계는 이 s-리스트를 초기 모델링 그래프로부터의 모든 편집들의 s-리스트와 합성하며, 이는
Figure 112010087526643-pat00011
Figure 112010087526643-pat00012
을 산출한다.
b. 다음 단계는
Figure 112010087526643-pat00013
Figure 112010087526643-pat00014
Figure 112010087526643-pat00015
로 그리고
Figure 112010087526643-pat00016
로 단순화하는 것이다.
c. 이후, 사용자 A는 더 이상 단순화할 수 없는 이 s-리스트를 사용자 A의 현재 모델링 그래프 G3,
Figure 112010087526643-pat00017
와 호환가능하게 하는 튜플 x에 적용한다.
12. 사용자 C는 합성 s-리스트
Figure 112010087526643-pat00018
와 함께 튜플 x (의 카피) 을 사용자 B에게 보낸다.
13. 사용자 B는 튜플 x 및 s-리스트
Figure 112010087526643-pat00019
를 수신한다.
a. 제 1 단계는 이 s-리스트를 초기 그래프로부터의 모든 편집들의 s-리스트와 합성하는 것이고, 이는
Figure 112010087526643-pat00020
를 산출한다.
Figure 112010087526643-pat00021
는 G1과 함께 사용자 B에게 보내졌음을 기억한다.
b. 다음 단계는
Figure 112010087526643-pat00022
Figure 112010087526643-pat00023
로 단순화하는 것이다.
c. 이후, 사용자 B는 더 이상 단순화할 수 없는 이 s-리스트를 사용자 B의 현재 모델링 그래프 G4,
Figure 112010087526643-pat00024
Figure 112010087526643-pat00025
와 호환가능하게 하는 튜플 x에 적용한다.
도 19는 3명의 사용자들 A, B 및 C각각에 대한 이러한 시간 순서 및 그 상호작용을 도시한다.
2 명의 사용자들 간에 튜플을 교환하는 이 일반 프로세스는 다음과 같다.
1. 전처리: 송신자는 송신자의 모델링 그래프까지 초기 모델링 그래프에 적용된 모든 편집들로 인한 역 맵핑들의 합성 s-리스트를 생성한다.
2. 송신자는 튜플 및 이 합성 s-리스트를 수신자에게 메일로 보낸다.
3. 후처리:
a. 수신자는 수신자의 모델링 그래프까지 초기 모델링 그래프에 적용된 모든 변화들로 인한 합성 맵핑들을 갖는 합성 s-리스트를 구성한다.
b. 수신자는 결과적으로 발생한 합성 s-리스트를 단순화한다.
c. 수신자는 더 이상 줄일 수 없는 s-리스트를 송신된 튜플에 적용한다.
수신자의 아이덴티티는 송신자의 전처리에 영향을 주지않고 송신자의 아이덴티티는 수신자의 후처리에 영향을 주지않는다는 것을 주목한다. 원 샷으로 모든 설계자들에게 보내기 위한 전처리는 동일하다. 설계자는 다른 설계자들에 의해 보내진 몇가지 관계들을 메일 박스에 보관하고 이들 전부를 원 샷으로 관리할 수도 있다. 주요 포인트는, 이 설계가, 평행론 기술의 표준 전략인 공통 소스로 시작한다는 것이다.
모델링 그래프의 상이한 버전들을 완화하거나 병합하는 문제는 본 발명의 범위가 아니라는 것을 주목한다. 그럼에도 불구하고, 모델링 그래프들 간의 충돌을 해결하기 위한 툴을 고래해 볼 때, 본 발명은 모델링 그래프가 s-리스트들 (즉, 맵핑 리스트들) 을 제공하는 것을 변경시키는 한 자동으로 튜플들을 복구하도록 돕는다.
다음은 본 발명의 기반을 강화하는 정리 (및 그 형식적 증명) 를 위한 것이다. 본 정리는 맵핑들을 제공하기 위한 알고리즘이라기보다는 요약된 결과이다. 그럼에도 불구하고, 본 증명은 주어진 그래프 편집 오퍼레이터의 맵핑들을 조사하는 가이드라인으로서 사용될 수 있다. 이것은, 그래프 이론 및 기본 대수학으로부터 통상적으로 알려진 개념들을 지칭한다. 이 모델링 그래프는 접속된, 단일 루트의 지향성 비순환 그래프인 것으로 생각된다. 이전에 언급한 바와 같이, 다중 루트 그래프에 대한 일반화는 간단하다. 정의에 의해, "리프 노드"는 출력 아크를 갖지 않고 "루트 노드"는 입력 아크를 갖지 않는다. 모델링 그래프를 고려해볼 때, 대응하는 언폴딩된 그래프는 수학적인 "보편적인 커버링 트리"일 뿐이다. 2개의 모델링 그래프들의 "등가적" 개념을 먼저 정의하자.
D1 및 D2를 2개의 모델링 그래프들 및 U(D1), U(D2) 그 각각의 언폴딩된 트리들로 둔다. L(D1) 및 L(D2)는 각각 U(D1), U(D2) 의 리프 노드들의 세트이다. 정의에 의해, D1 및 D2는, L(D1) 로부터 L(D2) 로의 전단사 (bijection) g가 존재한다면, 릴레이션 ρ에 의해 링크된다.
형식적으로 등가이지만 보다 덜 실질적인 정의인 │L(D1)│=│L(D2)│이라는 것을 주목한다. 다른 말로, 언폴딩된 트리들은 동일한 수의 리프 노드들을 갖는다.
관계 ρ는 모델링 그래프들 모두의 세트에 관한 등가 관계가 되는 특성을 갖는다.
다음은 상기 특성의 증명이다. 언폴딩된 그래프의 리프 노드들의 세트는 아이덴티티를 통해 그 자체로 동일 구조이기 때문에 어떤 모델링 그래프는 릴레이션 ρ에 의해 그 자신에 링크된다.
Figure 112010087526643-pat00026
인 경우, L(D1) 내지 L(D2) 에 전단사 g가 존재한다.
Figure 112010087526643-pat00027
은 L(D1) 로부터 L(D2) 로의 전단사 g-1 덕분이다. 최종적으로,
Figure 112010087526643-pat00028
Figure 112010087526643-pat00029
인 경우, L(D1) 로부터 L(D2) 로의 전단사 g가 존재하고 L(D2) 로부터 L(D3) 로의 전단사 h가 존재한다. 그러므로, L(D1) 로부터 L(D3) 로의 전단사 f=hog는 D1 ρD3를 명시한다. 이것은 증명을 종료시킨다.
결과적으로, 2개의 재사용 그래프는, 이들이 릴레이션 ρ를 통해 링크된다면 등가라는 것을 말한다. 이 등가 개념은 최종 사용자 개념의 수학적 변형이다. 그 모델링 그래프가 등가 (부품들의 동일한 형태 및 수) 인 경우 부품들의 2개의 어셈블리들 사이에 시각적 차이가 존재하지 않는다. 따라서, 이러한 어셈블리들은 등가이고 릴레이션은 모델링 구조를 등가의 구조로 변경함으로써 파괴되지 않는다는 것을 주장하는 것은 합리적이다.
D1 및 D2를 2개의 등가 모델링 그래프, 즉, D1 ρD2로 두자. D1의 몇몇 리프 부품들은 D1 아크들의 경로들 상에서 코딩된 튜플들을 통해 함께 접속된다. 그런다음, 고유하고 최소 세트의 맵핑들이 존재하여, 모든 링크들이 D2의 리프 부품들 상에서 자동으로 리라우팅될 수 있다.
다음은 상기 정리의 증명을 제공한다. 증명은 언폴딩된 그래프를 위해 형식적으로 도입된 인덱스들을 이용하여 다루는 방법의 정확한 정의를 요구한다. 요약 세트 A를 고려해볼 때, A의 엘리먼트들의 "형식적 카피들" 또는 "카피들"의 세트 C(A) 는 양의 정수들의 세트 N 및 A의 데카르트 곱 C(A)=AxN이다. 프로젝션 맵 π(·) 은 AxN으로부터 A로 정의되고 커플의 제 1 엘리먼트를 산출한다. 다른 말로,
Figure 112010087526643-pat00030
라면
Figure 112010087526643-pat00031
이다. 엘리먼트 a는 소스이고 (a,i) 는 a의 형식적 카피이다. 물론, (세트 A에서 고유한) 소스 엘리먼트를 생각해 볼 때, 필요에 따라 많은 카피들이 존재한다. 언폴딩된 그래프의 노드들 및 아크들은 각각 노드들의 형식적 카피들 및 모델링 그래프의 아크들이다. 각각의 식별자 x에 대하여 하나의 식별자 (x,i) 만이 존재하도록 플라이 뉴 인덱스들 (fly new indexes) i에 제공하기 위해서 인덱스 발생기가 필요하다. 이 "형식적 카피" 개념은 수학적 목적으로 도입된다. 그래프를 그릴 경우, 노드 또는 아크 식별자들을 반복하는 것은 수학적 무의미이다. 주어진 심볼의 2가지 발생은 상이한 객체들을 나타내므로, 이들은 구별되어야하며, 형식적인 카피을 통해 행해진다. 프로젝션 π(·) 은 다음과 같이 언폴딩된 그래프의 아크들의 경로로 쉽게 확장된다.
Figure 112010087526643-pat00032
이 언폴딩된 아크들의 경로인 경우, 그 프로젝션은,
Figure 112010087526643-pat00033
Figure 112010087526643-pat00034
에 의해 정의된 모델링 그래프의 아크들의 경로이다.
D1 및 D2는 2개의 등가 모델링 그래프들이다. L(D1) 로부터 L(D2) 로의 전단사 g가 존재한다. 각각의
Figure 112010087526643-pat00035
에 있어서, p(x) 를 루트 노드로부터 x 아래의 U(D1) 의 아크들의 경로라 한다. 이 경로는 그래프 U(D1) 이 트리이기 때문에 고유하다.
Figure 112010087526643-pat00036
는 전단사 g를 통한 x의 이미지이다. 이 정의는 맵핑
Figure 112010087526643-pat00037
를 정의한다.
경로 p(g(x)) 는 U(D2) 가 트리이기 때문에 마찬가지로 고유하다. 모든 엘리먼트들
Figure 112010087526643-pat00038
에 대하여 이렇게 함으로써 맵핑
Figure 112010087526643-pat00039
의 세트를 산출한다.
이 세트는 유한인
Figure 112010087526643-pat00040
이지만, 일반적으로 매우 크다: 언폴딩된 그래프의 각각의 리프 노드에 대하여 하나의 맵핑. 대부분의 시간에서, 화살표
Figure 112010087526643-pat00041
의 양 사이드에 관한 식별자들의 체인들은 프리픽스 및/또는 포스트픽스 서브 체인을 공유할 수도 있고, 또는 심지어 동일할 수도 있다. 이러한 프리픽스 또는 포스트픽스 서브 체인들은 제거될 수 있으며, 이는 맵핑 심플러를 만들고 보다 적은 수이다.
Figure 112010087526643-pat00042
를 맵핑들의 최소 세트로 둔다. 이러한 맵핑들을 D1의 리프 부품들 상의 튜플들 내에 임베딩된 경로들에 적용하는 것은 D2의 리프 부품들 상에 정의된 튜플들을 산출한다. 명료하게, 세트
Figure 112010087526643-pat00043
는 입력 객체들: D1, D2 및 g로부터 고유하게 유도된다. 이것은 증명을 종료시킨다.
증명의 원리는 아래의 예로 설명된다. 보다 더 읽기 쉬운 도면들을 위해서, 모델링 그래프의 노드들은 라틴 문자 a,b,c,d,..이고 모델링 그래프들의 아크들은 숫자 1,2,3,...으로 식별된다. 도 20 및 21은 각각 모델링 및 언폴딩된 모델링 그래프들 D1 및 U(D1)을 도시한다.
도 22 및 23은 각각 모델링 그래프 D2 및 연관된 언폴딩된 그래프 U(D2) 를 도시한다. D2가 D1의 다소 수정된 버전이더라도, 이들은 등가이고, 이는 단지 언폴딩된 그래프들 상에서 볼 수 있다는 것을 주목한다. b의 서브 그래프는 변경되지 않지만 D2에서 단지 한번 (즉, 하나의 입력 아크만) 재사용된다는 것을 주목한다.
전단사 g는
Figure 112010087526643-pat00044
에 의해
Figure 112010087526643-pat00045
로부터
Figure 112010087526643-pat00046
로 정의된다.
단순함을 위해서, 제 1 맵핑만을 상세하게 열거한다. 그러므로,
Figure 112010087526643-pat00047
를 이용하여
Figure 112010087526643-pat00048
를 산출한다.
Figure 112010087526643-pat00049
"/"는 심볼 분리기로서 사용된다. U(D2):
Figure 112010087526643-pat00050
의 나머지 리프 노드들에 대하여 이렇게 하는 것은 맵핑들의 다음 세트 S를 형식적으로 산출한다.
Figure 112010087526643-pat00051
Figure 112010087526643-pat00052
이는 S~로 감소한다.
Figure 112010087526643-pat00053
쓸모없는 동일한 체인들은 D1의 변경되지 않은 서브 그래프로 인한 것이다.
다음 실시예는 프리픽스 및 포스트픽스 단순화를 설명하기 위한 것이다. 초기 모델링 및 언폴딩된 그래프들은 도 24 및 도 25에 각각 도시된다. 편집된 모델링 및 언폴딩된 그래프들은 각각 도 26 및 도 27에서와 같다.
분명한 전단사는 맵핑들
Figure 112010087526643-pat00054
의 세트를 도입한다.
맵핑들 둘 모두 상의 공유된 프리픽스 1을 제거하면
Figure 112010087526643-pat00055
가 산출된다.
제 1 맵핑 상의 공유된 포스트픽스 3을 제거하고 제 2 맵핑 상의 4를 제거하면 하나의 맵핑
Figure 112010087526643-pat00056
만이 산출된다.
ε는 빈 체인이다. 체인을 빈 체인에 맵핑하는 것은 튜플로부터 이것을 제거한다. 이것은, 심볼 2가 모델링 그래프의 튜플들의 아크들의 모든 경로들로부터 제거된다는 것을 의미한다. 도 1 내지 도 3의 그래프 상에 코딩된 접속 Connect(1/2/3,1/2/4) 은 제 2 모델링 그래프 상의 Connect(1/3,1/4) 가 된다.
2개의 모델링 그래프들 간의 등가적 정의는 언폴딩된 트리들의 리프 노드들 간의 전단사 g를 수반한다. 이 주요 특성의 결과는 맵핑들의 형식적 구성이다. 그럼에도 불구하고, 재사용 그래프가 등가가 아닌 경우 어떤 것이 완료될 수 있으며, 이는 g가 존재하는 경우이지만 전단사는 아니다. 맵핑 규칙들은 또한
Figure 112010087526643-pat00057
에 의해 정의된다. 그 차이점은, g(x)가 모든
Figure 112010087526643-pat00058
에 대하여 정의될 수 없다는 것과, g(x)가 L(D1)에서의 별개의 x 및 y 에 대해 g(y)와 동일할 수도 있다는 것이다. 이것은, g(x)가 정의되기 위하여 모든
Figure 112010087526643-pat00059
에 있어서 제한된 세트의 맵핑들
Figure 112010087526643-pat00060
이 된다. 동일한 단순화가 유지되고: 공유된 프리픽스 및 포스트픽스 체인들을 제거한다. 존재한다면, 나머지 맵핑은 접속들을 리라우팅하거나 부분적으로 리라우팅하는데 사용된다. 해결되지 않은 접속들은, 설계 의도를 포착하기 위해 피할 수 없는 사용자의 결정을 요구한다.
도 28 및 도 29의 실시예는 이 시나리오를 설명한다. 초기 모델링 및 언폴딩된 그래프들은 도 28 및 도 29에 각각 도시된다.
최종 모델링 및 언폴딩된 그래프들은 각각 도 30 및 도 31 상에 나타내어진 것과 같다. 참조 서브 어셈블리 b는 단일 부품 d로 교체된다. 참조 부품 c는 제거된다. 서브 어셈블리 b의 부품들을 결합하는 이러한 접속은 d의 발생에 관하여 리라우팅되어야 한다.
함수 g는
Figure 112010087526643-pat00061
로 정의되며, 이는 맵핑들
Figure 112010087526643-pat00062
를 포함한다.
정리 증명은 편집 오퍼레이터의 맵핑 규칙들을 설정하기 위한 가이드라인으로서 사용될 수 있다. 알고리즘 설계자에 의해 사용된 이 조사 프로세스는 다음과 같다.
1. 편집 오퍼레이터들이 적용될 수 있는 모델링 그래프 D1을 생성한다.
2. 이 모델링 그래프 상에 편집 오퍼레이터를 형식적으로 적용하고, 이는 새로운 모델링 그래프 D2를 산출한다.
3. 이러한 2개의 모델링 그래프들을 언폴딩하고 전단사 g를 설정한다.
4. 증명에 후속하여, 이러한 객체들로부터 맵핑 규칙들을 획득한다.
동일한 전략을 통해 공간 포지셔닝이 관리될 수 있다. 재사용된 부품 또는 그것의 모 객체에 관한 객체의 상대 위치는 길이-1 경로로 정의된 단지 하나의 객체에 접속된 튜플로서 캡처된다. (루트 곱에 관한 상대 위치들인) 절대 위치들은 아크들의 루트-투-리프 경로들에 의해 정의된 상대 위치들을 조합함으로써 획득된다. 2개의 등가적 모델링 그래프들을 고려해볼 때, 결과로서 얻어진 맵핑규칙들은 상대 위치들에 대한 흥미로운 정보를 제공한다. 모델링 그래프의 아크
Figure 112010087526643-pat00063
를 고려해볼 때, 연관된 상대 위치가 P(ui)로 언급된다. 모델링 그래프
Figure 112010087526643-pat00064
의 2개의 연속 아크들을 고려해볼 때, 그 각각의 상대 위치들의 결합은
Figure 112010087526643-pat00065
로 언급된다. 이 신택스에 후속하여, 맵핑 규칙들은, 만족하는 균등함을 제공한다. 맵핑 규칙
Figure 112010087526643-pat00066
을 고려해 볼 때,
대응하는 포지셔닝 균등은,
Figure 112010087526643-pat00067
이다.
협력 설계의 콘텍스트에서, 다른 통상의 문제점은 2개의 동시에 수정된 모델링 그래프들을 병합하는 것이다. 모델링 그래프들을 병합하는 방법은 본 발명의 범위가 아니다. 본원의 목적은, 그래프들의 병합 결과가 어떻든 간에, 모델링 그래프 수정들과 연관된 맵핑들을 병합하는 것이다. 튜플들이 그래프의 아크들을 통해 전통적으로 캡처된다는 것과 (모델링 그래프에 의해 모델링된) 어셈블리 내의 튜플들이 언뜻 보기에는 "그래프 병합" 프로세스에 의해 관리되어야 한다는 것을 주장하는 이가 있다. 본원의 요점은, 모델링 그래프 내에서 관리된 튜플들은, 종래 기술로부터 알려진 "그래프의 아크들" 포맷에 적합하지 않고 그래프 병합 프로세스에 사용되는 식별자들의 스트링들을 통해, 모델링 그래프의 경로들 또는 아크들 상에서 코딩된다는 것이다. 이와 같이, 종래기술에서, 그래프를 병합할 경우, 일반적으로 릴레이션 및 그 튜플들이 손실된다. 이것은, 전용 처리가 필수인 이유이다.
제 2 어셈블리의 모델링 그래프를 제 3 어셈블리의 모델링 그래프와 병합함으로써 제공된 제 1 어셈블리의 모델링 그래프를 생각한다. 제 2 및 제 3 어셈블리는 동일한 초기 모델링 그래프를 편집한 후 설계된다. 병합 시, 제 1 어셈블리의 모델링 그래프의 각각의 아크는 제 2 어셈블리의 모델링 그래프의 아크 또는 제 3 어셈블리의 모델링 그래프의 아크이다. 제 1 어셈블리에 대한 적어도 하나의 맵핑의 결정 단계는 병합에 따라서 실시된다. 이것은 병합의 결과가 어떻든 간에 2개의 어셈블리들을 병합할 경우 튜플들을 자동으로 적응시키기 위한 툴을 제공한다.
보다 정확하게, 예시적으로 주어진 초기 모델링 그래프 A, 제 2 및 제 3 어셈블리의 모델링인 이 초기 모델링 그래프 B 및 B'의 2개의 수정된 버전 및 제 1 어셈블리의 모델링인 병합된 모델링 그래프
Figure 112010087526643-pat00068
을 고려하면, 본 섹션의 목적은, 초기 그래프로부터 병합된 그래프로의 맵핑
Figure 112010087526643-pat00069
, 그리고 각각의 수정된 그래프로부터 병합된 그래프로의 맵핑
Figure 112010087526643-pat00070
Figure 112010087526643-pat00071
을 결정하기 위해서, 동시 변경
Figure 112010087526643-pat00072
Figure 112010087526643-pat00073
와 연관된 맵핑들을 조합하기 위한 알고리즘을 제공하는 것이다. 이 방법으로, 튜플들은 어떤 환경에서도 업데이트될 수 있다. 이 예시적인 상황을 도 32로 도시한다.
본 발명은 제 1 어셈블리의 모델링 그래프, 제 2 어셈블리의 모델링 그래프, 제 3 어셈블리의 모델링 그래프 그리고 제 2 및 3 어셈블리의 초기 모델링 그래프를 언폴딩하는 단계를 포함할 수도 있다. 이후, 상기 언폴딩된 그래프들의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별된다.
도 32의 실시예를 참고하면,
Figure 112010087526643-pat00074
Figure 112010087526643-pat00075
를 모델링 그래프로부터 각각 획득된 언폴딩된 그래프라 하고,
Figure 112010087526643-pat00076
Figure 112010087526643-pat00077
를 이러한 언폴딩된 그래프들의 노드들의 세트라 한다. 모델링 그래프 X의 언폴딩된 그래프
Figure 112010087526643-pat00078
의 각각의 노드는 그래프 X의 아크들의 경로에 의해 고유하게 식별된다. 이렇게,
Figure 112010087526643-pat00079
의 노드 및 X의 아크들의 연관된 경로를 식별하는데 모호함이 없다. sXY는 모델링 그래프 X의 모델링 그래프 Y의 편집과 연관된 맵핑이라 한다. 이는 언폴딩된 그래프 노드들로부터의 맵핑: sXY:
Figure 112010087526643-pat00080
으로 해석된다. 이 실시예들의 객체들 모두는 도 33의 다이어그램에 따라서 함께 링크된다.
이 방법은 제 2 어셈블리의 언폴딩된 모델링 그래프 내 제 1 대응 노드와 제 3 어셈블리의 언폴딩된 모델링 그래프 내 제 2 대응 노드를 제공하는 단계를 포함할 수도 있고, 상기 대응 노드들은 제 2 및 제 3 어셈블리의 언폴딩된 초기 그래프의 동일한 대응된 노드에 대응한다. 대응 노드들은, 편집 이후 제 2 및 제 3 어셈블리들을 야기하는 대응된 노드의 결과이다. 이 방법은, 제 1 대응 노드가 제 1 어셈블리의 언폴딩된 모델링 그래프에 있는 경우 테스트하는 단계를 더 포함할 수도 있다. 다른 말로, 이 방법은, 대응된 노드 (즉, 제 1 대응 노드) 의 제 2 어셈블리의 변환이 병합된 어셈블리 (즉, 제 1 어셈블리) 에서 유지되는지를 테스트한다. 이 테스트가 긍정적인 결과를 산출한다면, 결정된 맵핑들은 대응된 노드들의 체인으로부터 제 1 대응 노드들로의 맵핑, 그리고 제 2 대응 노드의 체인으로부터 제 1 대응 노드의 체인으로의 맵핑이다.
부정적인 결과의 경우, 제 2 대응 노드에 대하여 비슷한 시험이 실시될 수도 있다. 이 제 2 테스트가 긍정적인 결과를 산출한다면, 결정된 맵핑들은 대응된 노드의 체인으로부터 제 2 대응 노드로이 맵핑, 그리고 제 1 대응 노드의 체인으로부터 제 2 대응 노드의 체인으로의 맵핑이다. 테스트가 다시 한번 부정적이라면, 결정된 맵핑은 제 1 대응 노드의 체인으로부터 빈 체인으로의 맵핑, 그리고 제 2 대응 노드의 체인으로부터 빈 체인으로의 맵핑일 수도 있다.
이것은 초기 모델링 그래프의 객체들에 대응하는 병합된 그래프의 객체들을 포인팅하는 튜플들을 복구하기 위한 맵핑들을 제공하는 방법의 제 1 단계에 해당한다.
제 2 단계에서, 이 방법은 제 1 어셈블리의 모델링 그래프 및 제 2 어셈블리의 모델링 그래프를 언폴딩하는 단계를 포함할 수도 있다. 상기 언폴딩된 그래프들의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별된다. 방법은 또한 언폴딩된 제 2 어셈블리의 모델링 그래프 내 비-대응 노드를 제공하는 단계를 더 포함할 수도 있다. 상기 비-대응 노드는 언폴딩된 제 2 어셈블리의 초기 그래프의 어떤 노드에도 대응하지 않는다. 다른 말로, 비-대응 노드는 초기 모델링 그래프의 편집 이후 생성된 노드이다. 이 방법은 또한, 비-대응 노드가 제 1 어셈블리의 언폴딩된 모델링 그래프 내에 있는지를 테스트할 수도 있다. 다른 말로, 생성된 노드가 병합된 그래프에서 유지되는지를 테스트한다. 이 테스팅이 부정적인 결과를 산출한다면, 결정된 맵핑은 비-대응 노드의 체인으로부터 빈 체인으로의 맵핑이다. 테스팅이 긍정적인 결과를 산출한다면, 맵핑이 요구되지 않고, 따라서 아무것도 행해지지 않는다. 언폴딩된 제 3 어셀블리의 모델링 그래프에서 비-대응 노드들에 대하여 동일하게 실시될 수도 있다.
이것은, 초기 모델링 그래프의 편집 이후 생성된 객체들에 대응하는 병합된 그래프의 객체을 포인팅하는 튜플들을 복구하기 위한 맵핑들을 제공하는 방법의 제 2 단계에 해당한다.
이 방법을 설명하기 위해서, 맵핑들 sAB 및 sAB'를 고려한다. 맵핑들
Figure 112010087526643-pat00081
Figure 112010087526643-pat00082
가 알려지지 않았고, 그 목적은 이전 다이어그램이 가환성이고
Figure 112010087526643-pat00083
의 정의에 의해 의미하는 방식으로 이들을 생성하는 것이다. 도 34 및 도 35에 나타내어진 알고리즘은 2개의 단계들을 통해
Figure 112010087526643-pat00084
Figure 112010087526643-pat00085
를 생성한다. 기호 ε은 빈 체인이고, 아크들의 경로는 아크를 갖지 않는다. 아크들의 지워진 경로를 맵핑하는 것이 사용된다.
제 1 단계는 도 34의 의사 코드에 의해 도시된다. 초기 모델링 그래프
Figure 112010087526643-pat00086
의 각각의 노드 a에 있어서, 알고리즘은 편집된 그래프들:
Figure 112010087526643-pat00087
Figure 112010087526643-pat00088
에서 대응 노드들 b 및 b'을 획득한다. 제 1 경우는 b는 여전히 병합된 그래프에 존재하지만, b'은 병합된 그래프에 존재하지 않는다. 결과적으로,
Figure 112010087526643-pat00089
이고, 가환 원리를 통해,
Figure 112010087526643-pat00090
Figure 112010087526643-pat00091
이다. 제 2 경우는 반대이다: b'가 여전히 병합된 그래프에 존재하고 b는 병합된 그래프에 존재하지 않으므로,
Figure 112010087526643-pat00092
Figure 112010087526643-pat00093
이다. 제 3 경우는 b 및 b'이 병합된 그래프에 존재한다. b 및 b' 모두가 동일한 초기 노드 a의 변환이기 때문에 그리고 (동시 수정들은 독립적이기 때문에) 일 수정된 그래프의 새로운 객체가 다른 수정된 그래프의 새로운 객체와 동일할 수 없기 때문에 b 및 b'는 a와 동일하므로,
Figure 112010087526643-pat00094
Figure 112010087526643-pat00095
이다. 다르게는, 알고리즘이 해결될 수 없는 병합 프로세스에 모호성이 존재한다. 결국, b 및 b'이 병합된 그래프에 존재하지 않는다면 (이들은 둘 모두 병합 프로세스에 의해 제공된다),
Figure 112010087526643-pat00096
Figure 112010087526643-pat00097
이다.
도 34에 의해 도시된 단계는 수정된 그래프
Figure 112010087526643-pat00098
에서 생성된 노드들을 관리하지 않으므로,
Figure 112010087526643-pat00099
에 속하고, 수정된 그래프
Figure 112010087526643-pat00100
에서 생성된 노드들을 관리하지 않으므로,
Figure 112010087526643-pat00101
에 속한다. 그러므로,
Figure 112010087526643-pat00102
는 도 35의 의사 코드에 의해 예시된 바와 같이 그리고 다음의 설명과 같이 완성된다. b가 병합된 그래프에 있는 경우, 즉
Figure 112010087526643-pat00103
인 경우, 이것은
Figure 112010087526643-pat00104
에 추가되었고 여전히
Figure 112010087526643-pat00105
에 존재하므로,
Figure 112010087526643-pat00106
이다. 역으로, b가 병합된 그래프에 있지 않다면, 즉
Figure 112010087526643-pat00107
인 경우, 이것은
Figure 112010087526643-pat00108
에 추가되었고 병합 프로세스 (확실치 않지만, 병합 프로세스의 세부사항은 본 발명의 범위가 아니다) 에 의해 병합된 그래프
Figure 112010087526643-pat00109
로부터 제거되므로,
Figure 112010087526643-pat00110
이다.
앞의 알고리즘 및 언급들은
Figure 112010087526643-pat00111
를 완성하기 위해 대칭적이다.
컴퓨터-지원 설계 시스템은 객체를 저장하는 데이터베이스를 포함할 수도 있다. 시스템은 PLM/CAD (Object LifeCycle Management / Computer Aided Design) 시스템일 수도 있다. 데이터베이스는 부품들의 사양들, 부품들의 어셈블리 등을 저장할 수도 있다. 이 시스템은 또한 상술된 방법으로 복수의 객체들의 어셈블리를 설계하는데 적합한 그래픽 사용자 인터페이스를 포함할 수도 있다. 그래픽 사용자 인터페이스는 양방향성이므로, 설계자는 어셈블리를 그래픽으로 설계하고 시스템으로 하여금 상술된 방법을 백 프로세스로 실시하게 할 수도 있다.
컴퓨터에 의한 실행을 위한 명령들을 포함하는 컴퓨터 프로그램이 제공되고, 예를 들어 컴퓨터 상에 설치될 수도 있으며, 이 명령들은 객체들을 저장하는 데이터베이스를 포함하는 컴퓨터-지원 설계 시스템으로 하여금 상술된 방법을 실시하게 하는 수단을 포함한다. 이러한 프로그램은 통상적으로 알려진 바와 같이 컴퓨터 판독가능 저장 매체 상의 레코드일 수도 있다.
일반적으로, 프로세서는 판독 전용 메모리 및/또는 랜덤 액세스 메모리로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터 프로그램 명령들 및 데이터를 유형적으로 구현하는데 적합한 저장 디바이스들은, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 내부 하드 디스크들 및 착탈식 디스크들와 같은 자기 디스크들; 자기-광학 디스크; 및 CD-ROM 디스크를 비롯한, 모든 형태의 비휘발성 메모리를 포함한다. 상술된 것들 중 어느 것은 특수하게 설계된 ASIC (주문형 집적 회로) 에 의해 보완되거나, ASIC 내에 포함될 수도 있다.
본 발명은 제공된 실시예들로 제한되지 않으며 수정들을 포함한다는 것은 당업자에게 자명하다.
특히, 본 발명은 주로 기계적 어셈블리의 분야를 참고로 하여 설명되었지만, 참조 객체들이 재사용되고 계층적 구조에 함께 링크되고 이 구조가 협력 환경에서 수정되는 어떤 분야에도 적용가능하다. 예를 들어, 본 발명은 비디오 게임 분야에 적용가능하다.
또한, 계층적 구조는 설명의 그래픽 구조를 통해 캡처되었다. 그러나, 본 발명은 객체들 간의 계층적 구조를 캡처하도록 적응된 다른 구조들에 적용가능하다. 특히, 그래프와 등가인 프리픽스 인코딩은, 맵핑들이 프리픽스 인코딩에 적용될 수도 있는 한 본 발명의 범위 내에 있다는 것이 명백하다.

Claims (15)

  1. 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법으로서,
    상기 어셈블리는 노드들 및 아크(arc)들을 갖는 지향성 비순환 모델링 그래프 (directed acyclic modeling graph) 에 의해 모델링되고,
    - 각각의 노드는 상기 어셈블리의 객체를 나타내고,
    - 각각의 아크는 기점 노드 (origin node) 에 의한 종점 노드 (end node) 의 사용을 나타내고, 적어도 하나의 아크는 식별자에 의해 고유하게 식별되고,
    상기 어셈블리는, 적어도 하나의 식별자의 제 1 체인 (first chain) 을 포함하는 적어도 하나의 튜플 (tuple) 을 갖는 적어도 하나의 릴레이션 (relation) 에 의해 또한 모델링되고,
    상기 컴퓨터-구현 방법은,
    적어도 하나의 식별자의 상기 제 1 체인과 제 2 체인 간의 적어도 하나의 맵핑을 결정하는 단계 (s1), 및
    상기 릴레이션의 상기 튜플에서의 상기 제 1 체인의 적어도 하나의 발생을 상기 제 2 체인으로 대체하는 단계 (s2) 를 포함하는, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    상기 지향성 비순환 모델링 그래프는, 초기 모델링 그래프를 편집하는 단계 (s0) 에 의해 제공되고,
    상기 결정하는 단계 (s1) 는, 상기 편집하는 단계 (s0) 에 따라 실시되는, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  3. 제 2 항에 있어서,
    상기 편집하는 단계 (s0) 는,
    - 상기 초기 모델링 그래프의 아크를 삭제하는 단계,
    - 상기 초기 모델링 그래프에 아크를 추가하는 단계, 또는
    - 상기 초기 모델링 그래프의 아크를 리라우팅 (rerouting) 하는 단계를 포함하는, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  4. 제 3 항에 있어서,
    상기 편집하는 단계 (s0) 이전에, 상기 초기 모델링 그래프가 언폴딩되고 (unfolded),
    상기 언폴딩된 초기 모델링 그래프의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별되는, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  5. 제 2 항에 있어서,
    상기 편집하는 단계 (s0) 및 상기 결정하는 단계 (s1) 는 반복되는, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  6. 제 5 항에 있어서,
    상기 결정하는 단계 (s1) 의 각각의 반복시에 결정된 맵핑은 맵핑 리스트를 증분시키고,
    상기 맵핑 리스트는 또한 콤팩트화되는, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  7. 제 1 항에 있어서,
    제 1 어셈블리를 설계하기 위한 것으로서,
    상기 맵핑은 제 2 어셈블리의 설계시에 결정된 맵핑의 역 (inverse) 이고,
    상기 제 2 어셈블리는 제 2 항 내지 제 6 항 중 어느 한 항에 기재된 컴퓨터-구현 방법에 따라 설계되고,
    상기 제 1 어셈블리의 상기 지향성 비순환 모델링 그래프 및 상기 제 2 어셈블리의 초기 모델링 그래프는 동일한, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  8. 제 2 항 내지 제 6 항 중 어느 한 항에 있어서,
    제 1 어셈블리를 설계하기 위한 것으로서,
    상기 맵핑은 제 2 어셈블리의 설계시에 결정된 맵핑의 역으로 또한 합성되고,
    상기 제 2 어셈블리는 제 2 항 내지 제 6 항 중 어느 한 항에 기재된 컴퓨터-구현 방법에 따라 설계되고,
    상기 제 1 어셈블리 및 상기 제 2 어셈블리의 상기 초기 모델링 그래프는 동일한, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  9. 제 1 항에 있어서,
    제 1 어셈블리를 설계하기 위한 것으로서,
    - 상기 제 1 어셈블리의 상기 지향성 비순환 모델링 그래프는, 제 2 항 내지 제 6 항 중 어느 한 항에 기재된 컴퓨터-구현 방법에 따라 설계되는 제 2 어셈블리의 상기 지향성 비순환 모델링 그래프와 제 2 항 내지 제 6 항 중 어느 한 항에 기재된 컴퓨터-구현 방법에 따라 설계되는 제 3 어셈블리의 상기 지향성 비순환 모델링 그래프를 병합함으로써 제공되고, 상기 제 2 어셈블리 및 상기 제 3 어셈블리의 초기 모델링 그래프는 동일하며,
    - 상기 병합은, 상기 제 1 어셈블리의 상기 지향성 비순환 모델링 그래프의 각각의 아크가 상기 제 2 어셈블리의 상기 지향성 비순환 모델링 그래프의 아크 또는 상기 제 3 어셈블리의 상기 지향성 비순환 모델링 그래프의 아크임을 제공하고,
    - 상기 결정하는 단계 (s1) 는 상기 병합에 따라 수행되는, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  10. 제 9 항에 있어서,
    상기 제 1 어셈블리의 상기 지향성 비순환 모델링 그래프, 상기 제 2 어셈블리의 상기 지향성 비순환 모델링 그래프, 상기 제 3 어셈블리의 상기 지향성 비순환 모델링 그래프 그리고 상기 제 2 어셈블리 및 상기 제 3 어셈블리의 상기 초기 모델링 그래프를 언폴딩하는 단계 (s10) 로서, 상기 언폴딩된 그래프들의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별되는, 상기 언폴딩하는 단계 (s10),
    상기 제 2 어셈블리의 상기 언폴딩된 지향성 비순환 모델링 그래프에 제 1 대응 노드를 그리고 상기 제 3 어셈블리의 상기 언폴딩된 지향성 비순환 모델링 그래프에 제 2 대응 노드를 제공하는 단계 (s11) 로서, 상기 대응 노드들은 상기 제 2 어셈블리 및 상기 제 3 어셈블리의 상기 언폴딩된 초기 모델링 그래프의 동일 대응된 노드에 대응하는, 상기 제공하는 단계 (s11), 및
    상기 제 1 대응 노드가 상기 제 1 어셈블리의 상기 언폴딩된 지향성 비순환 모델링 그래프에 있는지 여부를 테스트하는 단계 (s12) 를 더 포함하고,
    상기 테스트하는 단계 (s12) 가 긍정적인 결과를 산출하는 경우, 상기 결정된 맵핑들은, 상기 대응된 노드의 체인으로부터 상기 제 1 대응 노드로의 맵핑, 그리고 상기 제 2 대응 노드의 체인으로부터 상기 제 1 대응 노드의 체인으로의 맵핑인, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  11. 제 9 항에 있어서,
    상기 제 1 어셈블리의 상기 지향성 비순환 모델링 그래프 및 상기 제 2 어셈블리의 상기 지향성 비순환 모델링 그래프를 언폴딩하는 단계 (s10) 로서, 상기 언폴딩된 그래프들의 각각의 노드는 아크의 적어도 하나의 식별자의 체인에 의해 고유하게 식별되는, 상기 언폴딩하는 단계 (s10),
    언폴딩된 상기 제 2 어셈블리의 상기 지향성 비순환 모델링 그래프에 비-대응 노드를 제공하는 단계 (s11) 로서, 상기 비-대응 노드는 언폴딩된 상기 제 2 어셈블리의 상기 초기 모델링 그래프의 임의의 노드에 대응하지 않는, 상기 제공하는 단계 (s11), 및
    상기 비-대응 노드가 상기 제 1 어셈블리의 상기 언폴딩된 지향성 비순환 모델링 그래프에 있는지 여부를 테스트하는 단계 (s12) 를 더 포함하고,
    상기 테스트하는 단계 (s12) 가 부정적인 결과를 산출하는 경우, 상기 결정된 맵핑은, 상기 비-대응 노드의 체인으로부터 빈 (empty) 체인으로의 맵핑인, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  12. 제 1 항에 있어서,
    상기 릴레이션은
    - 기계적 링크,
    - 콘텍스트 링크 (contextual link),
    - 상대적인 포지셔닝,
    - 퍼블리케이션 인터페이스 (publication interface), 또는
    - 조직 트리 (organizing tree) 인, 복수의 객체들의 어셈블리를 설계하는 컴퓨터-구현 방법.
  13. 객체들을 저장하는 데이터베이스; 및
    제 1 항 내지 제 6 항 및 제 12 항 중 어느 한 항에 기재된 컴퓨터-구현 방법을 이용하여 복수의 객체들의 어셈블리를 설계하는데 적합한 그래픽 사용자 인터페이스를 포함하는, 컴퓨터-지원 설계 시스템.
  14. 컴퓨터에 의해 실행하기 위한 명령들을 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 객체들을 저장하는 데이터베이스를 포함하는 컴퓨터-지원 설계 시스템으로 하여금 제 1 항 내지 제 6 항 및 제 12 항 중 어느 한 항에 기재된 컴퓨터-구현 방법을 수행하도록 하는, 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 저장 매체.
  15. 삭제
KR1020100138615A 2009-12-31 2010-12-30 그래프에 의해 모델링되는 어셈블리의 설계 KR101691454B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP09306355A EP2354986A1 (en) 2009-12-31 2009-12-31 Design of an assembly modeled by a graph
EP09306355.0 2009-12-31

Publications (2)

Publication Number Publication Date
KR20110079549A KR20110079549A (ko) 2011-07-07
KR101691454B1 true KR101691454B1 (ko) 2017-01-09

Family

ID=42101567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100138615A KR101691454B1 (ko) 2009-12-31 2010-12-30 그래프에 의해 모델링되는 어셈블리의 설계

Country Status (6)

Country Link
US (1) US8798975B2 (ko)
EP (1) EP2354986A1 (ko)
JP (1) JP5763334B2 (ko)
KR (1) KR101691454B1 (ko)
CN (1) CN102117361B (ko)
CA (1) CA2726413C (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799269B2 (en) 2012-01-03 2014-08-05 International Business Machines Corporation Optimizing map/reduce searches by using synthetic events
CN102708242B (zh) * 2012-05-07 2014-08-06 上海飞机制造有限公司 产品管路件的拆卸路径求解方法及装置
US8898165B2 (en) 2012-07-02 2014-11-25 International Business Machines Corporation Identification of null sets in a context-based electronic document search
US9460200B2 (en) 2012-07-02 2016-10-04 International Business Machines Corporation Activity recommendation based on a context-based electronic files search
US8903813B2 (en) 2012-07-02 2014-12-02 International Business Machines Corporation Context-based electronic document search using a synthetic event
CN102768703B (zh) * 2012-07-03 2014-10-08 河海大学 基于树图模型的水轮发电机组虚拟装配建模方法和系统
US9262499B2 (en) 2012-08-08 2016-02-16 International Business Machines Corporation Context-based graphical database
US8959119B2 (en) * 2012-08-27 2015-02-17 International Business Machines Corporation Context-based graph-relational intersect derived database
US10169446B1 (en) 2012-09-10 2019-01-01 Amazon Technologies, Inc. Relational modeler and renderer for non-relational data
US9251237B2 (en) 2012-09-11 2016-02-02 International Business Machines Corporation User-specific synthetic context object matching
US8620958B1 (en) 2012-09-11 2013-12-31 International Business Machines Corporation Dimensionally constrained synthetic context objects database
US9619580B2 (en) 2012-09-11 2017-04-11 International Business Machines Corporation Generation of synthetic context objects
US9223846B2 (en) 2012-09-18 2015-12-29 International Business Machines Corporation Context-based navigation through a database
US8782777B2 (en) 2012-09-27 2014-07-15 International Business Machines Corporation Use of synthetic context-based objects to secure data stores
US9741138B2 (en) 2012-10-10 2017-08-22 International Business Machines Corporation Node cluster relationships in a graph database
US8931109B2 (en) 2012-11-19 2015-01-06 International Business Machines Corporation Context-based security screening for accessing data
CN103123660B (zh) * 2012-12-31 2016-03-23 清华大学 一种对软硬件系统cad图形化建模的方法
EP2750106B1 (en) * 2012-12-31 2021-09-15 Dassault Systèmes Geometrical elements transformed by rigid motions
US8983981B2 (en) 2013-01-02 2015-03-17 International Business Machines Corporation Conformed dimensional and context-based data gravity wells
US9229932B2 (en) 2013-01-02 2016-01-05 International Business Machines Corporation Conformed dimensional data gravity wells
US8914413B2 (en) 2013-01-02 2014-12-16 International Business Machines Corporation Context-based data gravity wells
US9069752B2 (en) 2013-01-31 2015-06-30 International Business Machines Corporation Measuring and displaying facets in context-based conformed dimensional data gravity wells
US9053102B2 (en) 2013-01-31 2015-06-09 International Business Machines Corporation Generation of synthetic context frameworks for dimensionally constrained hierarchical synthetic context-based objects
US8856946B2 (en) 2013-01-31 2014-10-07 International Business Machines Corporation Security filter for context-based data gravity wells
US9292506B2 (en) 2013-02-28 2016-03-22 International Business Machines Corporation Dynamic generation of demonstrative aids for a meeting
US10152526B2 (en) 2013-04-11 2018-12-11 International Business Machines Corporation Generation of synthetic context objects using bounded context objects
US9348794B2 (en) 2013-05-17 2016-05-24 International Business Machines Corporation Population of context-based data gravity wells
US9195608B2 (en) 2013-05-17 2015-11-24 International Business Machines Corporation Stored data analysis
US9606526B2 (en) 2014-05-28 2017-03-28 Siemens Product Lifecycle Management Software Inc. Intelligent constraint selection for positioning tasks
EP2990970A1 (en) * 2014-08-26 2016-03-02 Dassault Systèmes Execution of sequential update
EP2990969A1 (en) 2014-08-26 2016-03-02 Dassault Systèmes Criterion for sequential update
US10437938B2 (en) 2015-02-25 2019-10-08 Onshape Inc. Multi-user cloud parametric feature-based 3D CAD system
TWI555351B (zh) * 2015-06-17 2016-10-21 國立清華大學 用於非循環網路的網路可靠度計算方法及其系統
US10353916B2 (en) * 2016-03-25 2019-07-16 Bentley Systems, Incorporated Techniques for conversion of CAD descriptions
US11886776B2 (en) * 2018-05-08 2024-01-30 Autodesk, Inc. Techniques for generating graph-based representations of complex mechanical assemblies
CN112598779B (zh) * 2020-11-18 2024-05-31 广东三维家信息科技有限公司 一种节点建模方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245283A1 (en) 2006-04-14 2007-10-18 Allen Robert J Minimum layout perturbation-based artwork legalization with grid constraints for hierarchical designs
JP2009157529A (ja) 2007-12-25 2009-07-16 Hitachi Engineering & Services Co Ltd 3次元cadモデルデータ管理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003056470A1 (en) 2001-12-21 2003-07-10 3Dfacto Aps A method, a computer system, and a computer program product for configuring a virtual representation of an assembly of a plurality of components
CN101421729A (zh) 2006-03-03 2009-04-29 奥多比公司 有效表示和搜索数据库中的有向无环图结构的系统和方法
EP1868149B1 (en) * 2006-06-14 2019-08-07 Dassault Systèmes Improved computerized collaborative work
CN100587666C (zh) 2006-08-15 2010-02-03 国际商业机器公司 模型变换中分析和呈现冲突以及自动协调模型变换的方法和系统
CN101271479A (zh) 2007-03-22 2008-09-24 西北工业大学 机械产品公差统一建模方法
US8572551B2 (en) 2007-12-20 2013-10-29 International Business Machines Corporation Difference log production for model merging

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245283A1 (en) 2006-04-14 2007-10-18 Allen Robert J Minimum layout perturbation-based artwork legalization with grid constraints for hierarchical designs
JP2009157529A (ja) 2007-12-25 2009-07-16 Hitachi Engineering & Services Co Ltd 3次元cadモデルデータ管理装置

Also Published As

Publication number Publication date
US20120004891A1 (en) 2012-01-05
JP5763334B2 (ja) 2015-08-12
EP2354986A1 (en) 2011-08-10
CA2726413C (en) 2019-11-05
KR20110079549A (ko) 2011-07-07
US8798975B2 (en) 2014-08-05
CN102117361B (zh) 2016-03-23
CA2726413A1 (en) 2011-06-30
CN102117361A (zh) 2011-07-06
JP2011138510A (ja) 2011-07-14

Similar Documents

Publication Publication Date Title
KR101691454B1 (ko) 그래프에 의해 모델링되는 어셈블리의 설계
CN106897352B (zh) 在拓展中进行修改的区块链的生成方法及系统
JP6604655B2 (ja) 大規模なコンピュータ支援設計モデルにおける設計変更の漸進的探索のための方法およびシステム
Koch et al. An approach to distributed building modeling on the basis of versions and changes
CN102598002B (zh) 用于产生可编辑的三维模型的系统和方法
EP2783315A1 (en) Massive model visualization with spatial retrieval
JP2011013750A (ja) システムの構成要素の設計アーキテクチャを自動設計する自動設計装置、自動設計方法及び自動設計プログラム
EP2378443A1 (en) Method for converting system model, computer program, and system model conversion device
CN109840359A (zh) 一种三维机加工序模型轻量化组织模式的构建方法
CN102177518B (zh) 实现有限元模型的方法和设备
Nour Manipulating IFC sub-models in collaborative teamwork environments
KR102698734B1 (ko) 제품에 대한 제품 구조의 변형들을 관리하기 위한 모델
JP2008225898A (ja) 変換装置、変換プログラム及び変換方法
US7103515B2 (en) Method for analyzing turbine engine disks
Jha et al. Automatic propagation of feature modification across domains
Reger Better Proof Output for Vampire.
Bidarra et al. Persistent naming through persistent entities
Lecallard et al. Propagating Design Updates to Structured Analysis Meshes
EP3722965A1 (en) Method, apparatus and computer program for synchronizing data between a first repository and a second repository
Eigner et al. Applicability of model-based system lifecycle management for cyber-physical systems
Boneva et al. Simulating multigraph transformations using simple graphs
WO2022158021A1 (ja) 設計成果物管理システムおよび設計成果物管理方法
Stojkovic et al. Existing and New Ideas on Least Change Triple Graph Grammars.
US20220358257A1 (en) Managing iterations and branching in design
Joyce et al. Cloud Based Design Option Control Systems a Discussion and Implementation

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant