WO2019112659A1 - Automatic generation of a detailed design of an object - Google Patents

Automatic generation of a detailed design of an object Download PDF

Info

Publication number
WO2019112659A1
WO2019112659A1 PCT/US2018/048252 US2018048252W WO2019112659A1 WO 2019112659 A1 WO2019112659 A1 WO 2019112659A1 US 2018048252 W US2018048252 W US 2018048252W WO 2019112659 A1 WO2019112659 A1 WO 2019112659A1
Authority
WO
WIPO (PCT)
Prior art keywords
regions
design
detailed
computer
matching
Prior art date
Application number
PCT/US2018/048252
Other languages
French (fr)
Inventor
Suraj Ravi MUSUVATHY
Reed Williams
Thomas Gruenewald
Livio Dalloro
Original Assignee
Siemens Aktiengesellschaft
Siemens Corporation
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 Siemens Aktiengesellschaft, Siemens Corporation filed Critical Siemens Aktiengesellschaft
Publication of WO2019112659A1 publication Critical patent/WO2019112659A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Definitions

  • the present invention relates generally to detailed design geometry of an object to be manufactured, and more specifically, to automatic generation of a detailed design of an object.
  • a computer-implemented method for automatically generating a detailed design of an object to be manufactured includes receiving input indicative of a design of the object, segmenting one or more surfaces of the design of the object into a plurality of functional regions, and labeling the plurality of functional regions with respective labels.
  • the method further includes searching a database of detailed object designs to locate one or more matching regions, where each matching region corresponds to a respective one of the plurality of functional regions, and identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object.
  • the method additionally includes converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions.
  • a system for automatically generating a detailed design of an object to be manufactured includes at least one memory storing computer-executable instructions and at least one processor configured to access the at least one memory and execute the computer- executable instructions to perform a set of operations.
  • the operations include receiving input indicative of a design of the object, segmenting one or more surfaces of the design of the object into a plurality of functional regions, and labeling the plurality of functional regions with respective labels.
  • the operations further include searching a database of detailed object designs to locate one or more matching regions, where each matching region corresponds to a respective one of the plurality of functional regions, and identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object.
  • the operations additionally include converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions.
  • a computer program product for automatically generating a detailed design of an object to be manufactured.
  • the computer program product includes a non-transitory storage medium readable by a processing circuit, the storage medium storing instructions executable by the processing circuit to cause a method to be performed.
  • the method includes receiving input indicative of a design of the object, segmenting one or more surfaces of the design of the object into a plurality of functional regions, and labeling the plurality of functional regions with respective labels.
  • the method further includes searching a database of detailed object designs to locate one or more matching regions, where each matching region corresponds to a respective one of the plurality of functional regions, and identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object.
  • the method additionally includes converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions.
  • FIG. 1 is a schematic hybrid block/data flow diagram illustrating automatic generation of a detailed design of an object to be manufactured in accordance with example embodiments.
  • FIG. 2 is a process flow diagram of an illustrative method for locating regions in a database that match functional regions of one or more surfaces of a design of an object to be manufactured in accordance with example embodiments.
  • FIG. 3 is a process flow diagram of an illustrative method for converting the design of an object into a detailed design of the object in accordance with example embodiments.
  • FIG. 4 is a schematic diagram of an illustrative computing configuration for implementing one or more example embodiments.
  • Example embodiments of the invention relate to, among other things, systems, methods, computer-readable media, techniques, and methodologies for automatically generating a detailed design of an object to be manufactured.
  • a conceptual design of the structure of an object represented, for example, by a wireframe sketch of the object may be received as input to a process for
  • one or more surfaces may be constructed for the conceptual design input. More specifically, in example embodiments, surface skinning techniques may be used to generate one or more surfaces such as, for example, one or more two-dimensional surfaces embedded in a three-dimensional coordinate system (i.e., R 3 ) over the wireframe sketch input.
  • R 3 three-dimensional coordinate system
  • the one or more surfaces may then be segmented into functional regions, which may then be labeled to facilitate searching of a database for regions that match the functional regions.
  • each functional region may correspond to a respective functionality of the object and a label of the functional region may indicate the respective functionality.
  • a stored region in the database may be deemed to match a functional region if a label of the stored region matches the label of the functional region.
  • the matching region(s) may be presented to a user (e.g., a designer). The user may then provide a selection of detailed geometry of one or more of the matching region(s).
  • a deformable registration between the selected detailed geometry and corresponding functional region(s) of the one or more surfaces may be performed to obtain a registration mapping.
  • the registration mapping thus obtained may be used to transfer the selected detailed geometry to the corresponding functional region(s) of the one or more surfaces based at least in part on the registration mapping.
  • the original conceptual design of the object can be converted in an automatic manner to a detailed design of the object. Further, in example embodiments, a determination may be made as to whether the detailed design of the object satisfies one or more functional requirements for the object, and if so, the detailed design may be stored in the database for potential future matching.
  • Example embodiments provide an automated approach for adding geometric details to a conceptual design that is significantly faster than conventional approaches and that considerably reduces the turnaround time from original conceptual design to detailed design of an object. As a result, example embodiments provide the technical effect of enabling exploration of a large number of conceptual design variations without having to manually add detailed geometry to each design variation.
  • any given operation of the method 200 and/or the method 300 may be performed by one or more of the program modules or the like depicted in FIG. 1, whose operation will be described in more detail later in this disclosure.
  • These program modules may be implemented in any combination of hardware, software, and/or firmware.
  • one or more of these program modules may be implemented, at least in part, as software and/or firmware modules that include computer-executable instructions that when executed by a processing circuit cause one or more operations to be performed.
  • a system or device described herein as being configured to implement example embodiments may include one or more processing circuits, each of which may include one or more processing units or nodes.
  • Computer-executable instructions may include computer-executable program code that when executed by a processing unit may cause input data contained in or referenced by the computer-executable program code to be accessed and processed to yield output data.
  • FIG. 1 is a schematic hybrid block/data flow diagram illustrating automatic generation of a detailed design of an object to be manufactured in accordance with example embodiments.
  • FIG. 2 is a process flow diagram of an illustrative method 200 for locating regions in a database that match functional regions of one or more surfaces of a design of an object to be manufactured in accordance with example embodiments.
  • FIG. 3 is a process flow diagram of an illustrative method 300 for converting the design of an object into a detailed design of the object in accordance with example embodiments.
  • a conceptual design of the structure of an object represented, for example, by a wireframe sketch 102 of the object may be received as input to one or more surface skinning modules 104.
  • the wireframe sketch 102 may represent a basic conceptual design of the shape of an object to be manufactured, but surfaces of the object and detailed geometry may be absent from the wireframe sketch 102.
  • computer- executable instructions of the surface skinning module(s) 104 may be executed to generate one or more surfaces 106 based at least in part on the wireframe sketch 102.
  • the surface skinning module(s) 104 may employ various surface skinning techniques to generate two-dimensional surfaces embedded in R 3 as overlays over the wireframe sketch 102.
  • each segmented functional region 110 may represent a portion of the surface(s) that corresponds to a respective function of the object. In certain example embodiments, multiple segmented functional regions may jointly correspond to a given function or a given collection of functionality of the object.
  • computer-executable instructions of the functional segmentation and labeling module(s) 108 may be executed to assign a respective label to each of the segmented functional regions 110.
  • the labels can be used to locate regions stored in a database that match the functional regions 110.
  • region matching modules 112 may be executed to locate, using the labeled functional regions 110, one or more matching regions 116 stored in one or more datastores 114.
  • region matching module(s) may be executed to locate, using the labeled functional regions 110, one or more matching regions 116 stored in one or more datastores 114.
  • the region matching module(s) may be executed to locate, using the labeled functional regions 110, one or more matching regions 116 stored in one or more datastores 114.
  • the region matching module(s) may be executed to locate, using the labeled functional regions 110, one or more matching regions 116 stored in one or more datastores 114.
  • each matching region 116 may be associated with a label that matches a label of a corresponding segmented functional region 110, which may indicate that the matching region 116 provides similar or the same function as the corresponding functional region 110.
  • an indication of the matching region(s) 116 may be presented to a user 118 such as a designer of the conceptual design (e.g., the wireframe sketch 102) of the object.
  • selections of detailed geometry 120 of one or more of the matching region(s) 116 may be received from the user 118.
  • the user 118 may select detailed geometry 120 from one or more of the matching region(s) 116 for addition to corresponding functional region(s) 110 of the surface(s) 106.
  • computer-executable instructions of one or more registration modules 122 may be executed to apply deformable registration between the user-selected detailed geometry 120 of each associated matching region 116 and the corresponding segmented functional region 110 of the surface(s) 106 to obtain a registration mapping 124.
  • computer-executable instructions of one or more detailed design generation modules 126 may be executed to transfer the user-selected detailed geometry 120 of each associated matching region 116 to the corresponding region 110 of the surface(s) 106 based at least in part on the registration mapping 124.
  • the original conceptual design of the object (e.g., the wireframe sketch 102) is ultimately converted into a detailed design of the object 128.
  • computer-executable instructions of one or more functional requirement verification modules 130 may be executed to determine whether the detailed design 128 satisfies one or more functional requirements for the object. Assuming that the functional requirements are satisfied, the detailed design 128, or more specifically, regions of the detailed design 128 and corresponding detailed geometry may be stored in the datastore(s) 114 for potential matching with respect to future designs or future iterations of the detailed design 128 itself.
  • FIG. 4 is a schematic diagram of an illustrative computing configuration for implementing one or more example embodiments of the invention.
  • FIG. 4 depicts one or more detailed design generation servers 402 configured to implement one or more example embodiments. While the server(s) 402 may be described herein in the singular, it should be appreciated that multiple servers 402 may be provided, and functionality described herein may be distributed across multiple such servers 402.
  • the detailed design generation server 402 may include one or more processors (processor(s)) 404, one or more memory devices 306 (generically referred to herein as memory 406), one or more input/output (“I/O”) interface(s) 408, one or more network interfaces 410, and data storage 414.
  • the detailed design generation server 402 may further include one or more buses 412 that functionally couple various components of the detailed design generation server 402.
  • the bus(es) 412 may include at least one of a system bus, a memory bus, an address bus, or a message bus, and may permit the exchange of information (e.g., data (including computer-executable code), signaling, etc.) between various components of the detailed design generation server 402.
  • the bus(es) 412 may include, without limitation, a memory bus or a memory controller, a peripheral bus, an accelerated graphics port, and so forth.
  • the bus(es) 412 may be associated with any suitable bus architecture including, without limitation, an Industry Standard Architecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA (EISA), a Video Electronics Standards Association (VESA) architecture, an Accelerated Graphics Port (AGP) architecture, a Peripheral Component Interconnects (PCI) architecture, a PCI-Express architecture, a Personal Computer Memory Card International Association (PCMCIA) architecture, a Universal Serial Bus (USB) architecture, and so forth.
  • ISA Industry Standard Architecture
  • MCA Micro Channel Architecture
  • EISA Enhanced ISA
  • VESA Video Electronics Standards Association
  • AGP Accelerated Graphics Port
  • PCI Peripheral Component Interconnects
  • PCMCIA Personal Computer Memory Card International Association
  • USB Universal Serial Bus
  • the memory 406 may include volatile memory (memory that maintains its state when supplied with power) such as random access memory (RAM) and/or non volatile memory (memory that maintains its state even when not supplied with power) such as read-only memory (ROM), flash memory, ferroelectric RAM (FRAM), and so forth.
  • volatile memory memory that maintains its state when supplied with power
  • non volatile memory memory that maintains its state even when not supplied with power
  • ROM read-only memory
  • flash memory flash memory
  • FRAM ferroelectric RAM
  • Persistent data storage may include non-volatile memory.
  • volatile memory may enable faster read/write access than non-volatile memory.
  • certain types of non-volatile memory e.g., FRAM may enable faster read/write access than certain types of volatile memory.
  • the memory 406 may include multiple different types of memory such as various types of static random access memory (SRAM), various types of dynamic random access memory (DRAM), various types of unalterable ROM, and/or writeable variants of ROM such as electrically erasable programmable read-only memory (EEPROM), flash memory, and so forth.
  • the memory 406 may include main memory as well as various forms of cache memory such as instruction cache(s), data cache(s), translation lookaside buffer(s) (TLBs), and so forth.
  • cache memory such as a data cache may be a multi-level cache organized as a hierarchy of one or more cache levels (Ll, L2, etc.).
  • the data storage 414 may include removable storage and/or non-removable storage including, but not limited to, magnetic storage, optical disk storage, and/or tape storage.
  • the data storage 414 may provide non-volatile storage of computer-executable instructions and other data.
  • the memory 406 and the data storage 414, removable and/or non-removable, are examples of computer-readable storage media (CRSM) as that term is used herein.
  • CRSM computer-readable storage media
  • the data storage 414 may store computer-executable code, instructions, or the like that may be loadable into the memory 406 and executable by the processor(s) 404 to cause the processor(s) 404 to perform or initiate various operations.
  • the data storage 414 may additionally store data that may be copied to memory 406 for use by the processor(s) 404 during the execution of the computer-executable instructions.
  • output data generated as a result of execution of the computer-executable instructions by the processor(s) 404 may be stored initially in memory 406 and may ultimately be copied to data storage 414 for non-volatile storage.
  • the data storage 414 may store one or more operating systems (O/S) 416; one or more database management systems (DBMS) 418 configured to access the memory 406 and/or one or more datastores 432; and one or more program modules, applications, engines, managers, computer-executable code, scripts, or the like such as, for example, one or more surface skinning modules 420; one or more functional segmentation and labeling modules 422; one or more region matching modules 424; one or more registration modules 426; one or more detailed design generation modules 428; and one or more functional requirement verification modules 430. Any of the operating systems (O/S) 416; one or more database management systems (DBMS) 418 configured to access the memory 406 and/or one or more datastores 432; and one or more program modules, applications, engines, managers, computer-executable code, scripts, or the like such as, for example, one or more surface skinning modules 420; one or more functional segmentation and labeling modules 422; one or more region matching modules 424;
  • components depicted as being stored in data storage 414 may include any combination of software, firmware, and/or hardware.
  • the software and/or firmware may include computer-executable instructions (e.g., computer-executable program code) that may be loaded into the memory 406 for execution by one or more of the processor(s) 404 to perform any of the corresponding operations described earlier.
  • the data storage 414 may further store various types of data utilized by components of the detailed design generation server 402 (e.g., data stored in the datastore(s) 432). Any data stored in the data storage 414 may be loaded into the memory 406 for use by the processor(s) 404 in executing computer- executable instructions. In addition, any data stored in the data storage 414 may potentially be stored in the external datastore(s) 432 and may be accessed via the DBMS 418 and loaded in the memory 406 for use by the processor(s) 404 in executing computer-executable instructions.
  • the processor(s) 404 may be configured to access the memory 406 and execute computer-executable instructions loaded therein.
  • the processor(s) 404 may be configured to execute computer-executable instructions of the various program modules, applications, engines, managers, or the like of the detailed design generation server 402 to cause or facilitate various operations to be performed in accordance with one or more embodiments of the disclosure.
  • the processor(s) 404 may include any suitable processing unit capable of accepting data as input, processing the input data in accordance with stored computer-executable instructions, and generating output data.
  • the processor(s) 404 may include any type of suitable processing unit including, but not limited to, a central processing unit, a microprocessor, a Reduced Instruction Set Computer (RISC) microprocessor, a Complex Instruction Set Computer (CISC) microprocessor, a microcontroller, an Application Specific Integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA), a System-on-a-Chip (SoC), a digital signal processor (DSP), and so forth. Further, the processor(s) 404 may have any suitable microarchitecture design that includes any number of constituent components such as, for example, registers, multiplexers, arithmetic logic units, cache controllers for controlling read/write operations to cache memory, branch predictors, or the like. The microarchitecture design of the processor(s) 404 may be capable of supporting any of a variety of instruction sets.
  • the O/S 416 may be loaded from the data storage 414 into the memory 406 and may provide an interface between other application software executing on the detailed design generation server 402 and hardware resources of the distortion
  • the O/S 416 may include a set of computer- executable instructions for managing hardware resources of the detailed design generation server 402 and for providing common services to other application programs.
  • the O/S 416 may include or otherwise control the execution of one or more of the program modules, engines, managers, or the like depicted as being stored in the data storage 414.
  • the O/S 416 may include any operating system now known or which may be developed in the future including, but not limited to, any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system.
  • the DBMS 418 may be loaded into the memory 406 and may support functionality for accessing, retrieving, storing, and/or manipulating data stored in the memory 406, data stored in the data storage 414, and/or data stored in external datastore(s) 432.
  • the DBMS 418 may use any of a variety of database models (e.g., relational model, object model, etc.) and may support any of a variety of query languages.
  • the DBMS 418 may access data represented in one or more data schemas and stored in any suitable data repository.
  • data stored in the datastore(s) 432 may include, for example, data indicative of the surfaced topology 106; data indicative of the segmented functional regions 110; data indicative of stored regions eligible for matching; the registration mapping 124; and so forth.
  • External datastore(s) 432 that may be accessible by the detailed design generation server 402 via the DBMS 418 may include, but are not limited to, databases (e.g., relational, object-oriented, etc.), file systems, flat files, distributed datastores in which data is stored on more than one node of a computer network, peer-to-peer network datastores, or the like.
  • the input/output (I/O) interface(s) 408 may facilitate the receipt of input information by the detailed design generation server 402 from one or more I/O devices as well as the output of information from the detailed design generation server 402 to the one or more I/O devices.
  • the I/O devices may include any of a variety of components such as a display or display screen having a touch surface or touchscreen; an audio output device for producing sound, such as a speaker; an audio capture device, such as a microphone; an image and/or video capture device, such as a camera; a haptic unit; and so forth. Any of these components may be integrated into the detailed design generation server 402 or may be separate.
  • the I/O devices may further include, for example, any number of peripheral devices such as data storage devices, printing devices, and so forth.
  • the I/O interface(s) 408 may also include an interface for an external peripheral device connection such as universal serial bus (USB), FireWire, Thunderbolt, Ethernet port or other connection protocol that may connect to one or more networks.
  • USB universal serial bus
  • FireWire FireWire
  • Thunderbolt Thunderbolt
  • Ethernet port or other connection protocol that may connect to one or more networks.
  • the I/O interface(s) 408 may also include a connection to one or more antennas to connect to one or more networks via a wireless local area network (WLAN) (such as Wi Fi) radio, Bluetooth, and/or a wireless network radio, such as a radio capable of communication with a wireless communication network such as a Long Term Evolution (LTE) network, WiMAX network, 3G network, etc.
  • WLAN wireless local area network
  • LTE Long Term Evolution
  • the detailed design generation server 402 may further include one or more network interfaces 410 via which the detailed design generation server 402 may communicate with one or more other devices or systems via one or more networks.
  • network(s) may include, but are not limited to, any one or more different types of communications networks such as, for example, cable networks, public networks (e.g., the Internet), private networks (e.g., frame-relay networks), wireless networks, cellular networks, telephone networks (e.g., a public switched telephone network), or any other suitable private or public packet- switched or circuit-switched networks.
  • Such network(s) may have any suitable communication range associated therewith and may include, for example, global networks (e.g., the Internet), metropolitan area networks (MANs), wide area networks (WANs), local area networks (LANs), or personal area networks (PANs).
  • network(s) may include communication links and associated networking devices (e.g., link-layer switches, routers, etc.) for transmitting network traffic over any suitable type of medium including, but not limited to, coaxial cable, twisted-pair wire (e.g., twisted-pair copper wire), optical fiber, a hybrid fiber-coaxial (HFC) medium, a microwave medium, a radio frequency communication medium, a satellite
  • program modules/engines depicted in FIG. 4 as being stored in the data storage 414 are merely illustrative and not exhaustive and that processing described as being supported by any particular module may alternatively be distributed across multiple modules, engines, or the like, or performed by a different module, engine, or the like.
  • various program module(s), script(s), plug-in(s), Application Programming Interface(s) (API(s)), or any other suitable computer- executable code hosted locally on the detailed design generation server 402 and/or other computing devices accessible via one or more networks may be provided to support functionality provided by the modules depicted in FIG. 4 and/or additional or alternate functionality.
  • functionality may be modularized in any suitable manner such that processing described as being performed by a particular module may be performed by a collection of any number of program modules, or functionality described as being supported by any particular module may be supported, at least in part, by another module.
  • program modules that support the functionality described herein may be executable across any number of cluster members in accordance with any suitable computing model such as, for example, a client-server model, a peer-to-peer model, and so forth.
  • any of the functionality described as being supported by any of the modules depicted in FIG. 4 may be implemented, at least partially, in hardware and/or firmware across any number of devices.
  • the detailed design generation server 402 may include alternate and/or additional hardware, software, or firmware components beyond those described or depicted without departing from the scope of the disclosure. More particularly, it should be appreciated that software, firmware, or hardware components depicted as forming part of the detailed design generation server 402 are merely illustrative and that some components may not be present or additional components may be provided in various embodiments. While various illustrative modules have been depicted and described as software modules stored in data storage 414, it should be appreciated that functionality described as being supported by the modules may be enabled by any combination of hardware, software, and/or firmware.
  • each of the above-mentioned modules may, in various embodiments, represent a logical partitioning of supported functionality. This logical partitioning is depicted for ease of explanation of the functionality and may not be representative of the structure of software, hardware, and/or firmware for implementing the functionality. Accordingly, it should be appreciated that functionality described as being provided by a particular module may, in various embodiments, be provided at least in part by one or more other modules. Further, one or more depicted modules may not be present in certain embodiments, while in other embodiments, additional program modules and/or engines not depicted may be present and may support at least a portion of the described functionality and/or additional functionality.
  • One or more operations of the method 200 and/or the method 300 may be performed by a detailed design generation server 402 having the illustrative configuration depicted in FIG. 4, or more specifically, by one or more program modules, engines, applications, or the like executable on such a device. It should be appreciated, however, that such operations may be implemented in connection with numerous other device configurations.
  • the operations described and depicted in the illustrative method of FIG. 2 and/or the illustrative method of FIG. 3 may be carried out or performed in any suitable order as desired in various example embodiments of the disclosure. Additionally, in certain example embodiments, at least a portion of the operations may be carried out in parallel. Furthermore, in certain example embodiments, less, more, or different operations than those depicted in FIG. 2 and/or FIG. 3 may be performed.
  • the present disclosure may be a system, a method, and/or a computer program product.
  • the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
  • the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
  • the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read-only memory
  • EPROM or Flash memory erasable programmable read-only memory
  • SRAM static random access memory
  • CD-ROM compact disc read-only memory
  • DVD digital versatile disk
  • memory stick a floppy disk
  • a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
  • a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
  • Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
  • the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
  • a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
  • Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages.
  • the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • electronic circuitry including, for example, programmable logic circuitry, field- programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
  • These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures.
  • two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Systems, methods, and computer-readable media are described for automatically generating a detailed design of an object to be manufactured. A conceptual design of the structure of an object represented, for example, by a wireframe sketch of the object is received as input to a process for automatically generating a detailed design of the object. One or more surfaces constructed over the wireframe sketch input. The one or more surfaces are segmented into functional regions which are then labeled. A database of stored regions having corresponding detailed geometry is search to locate one or more regions that match one or more of the functional regions. A registration is performed between the matching region(s) and the corresponding functional regions to obtain a registration mapping. Detailed geometry of the matching region(s) is then transferred to the corresponding functional regions using the registration mapping to generate a detailed design.

Description

AUTOMATIC GENERATION OF A DETAILED DESIGN OF AN OBJECT
BACKGROUND
[01] The present invention relates generally to detailed design geometry of an object to be manufactured, and more specifically, to automatic generation of a detailed design of an object.
[02] Conceptual design of an object occurs during early stages of the design process where various alternative shapes and structure are explored. During a detailed design phase, finer scale geometric features are typically added to the conceptual design model to satisfy various functional requirements. Often, the detailed design reveals design issues that require multiple iterations of the conceptual design.
SUMMARY
[03] In one or more example embodiments, a computer-implemented method for automatically generating a detailed design of an object to be manufactured is disclosed. The method includes receiving input indicative of a design of the object, segmenting one or more surfaces of the design of the object into a plurality of functional regions, and labeling the plurality of functional regions with respective labels. The method further includes searching a database of detailed object designs to locate one or more matching regions, where each matching region corresponds to a respective one of the plurality of functional regions, and identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object. The method additionally includes converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions.
[04] In one or more other example embodiments, a system for automatically generating a detailed design of an object to be manufactured is disclosed. The system includes at least one memory storing computer-executable instructions and at least one processor configured to access the at least one memory and execute the computer- executable instructions to perform a set of operations. The operations include receiving input indicative of a design of the object, segmenting one or more surfaces of the design of the object into a plurality of functional regions, and labeling the plurality of functional regions with respective labels. The operations further include searching a database of detailed object designs to locate one or more matching regions, where each matching region corresponds to a respective one of the plurality of functional regions, and identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object. The operations additionally include converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions.
[05] In one or more other example embodiments, a computer program product for automatically generating a detailed design of an object to be manufactured is disclosed. The computer program product includes a non-transitory storage medium readable by a processing circuit, the storage medium storing instructions executable by the processing circuit to cause a method to be performed. The method includes receiving input indicative of a design of the object, segmenting one or more surfaces of the design of the object into a plurality of functional regions, and labeling the plurality of functional regions with respective labels. The method further includes searching a database of detailed object designs to locate one or more matching regions, where each matching region corresponds to a respective one of the plurality of functional regions, and identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object. The method additionally includes converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions. BRIEF DESCRIPTION OF THE DRAWINGS
[06] The detailed description is set forth with reference to the accompanying drawings. The drawings are provided for purposes of illustration only and merely depict example embodiments of the disclosure. The drawings are provided to facilitate understanding of the disclosure and shall not be deemed to limit the breadth, scope, or applicability of the disclosure. In the drawings, the left-most digit(s) of a reference numeral identifies the drawing in which the reference numeral first appears. The use of the same reference numerals indicates similar, but not necessarily the same or identical components. However, different reference numerals may be used to identify similar components as well. Various embodiments may utilize elements or components other than those illustrated in the drawings, and some elements and/or components may not be present in various embodiments. The use of singular terminology to describe a component or element may, depending on the context, encompass a plural number of such components or elements and vice versa.
[07] FIG. 1 is a schematic hybrid block/data flow diagram illustrating automatic generation of a detailed design of an object to be manufactured in accordance with example embodiments.
[08] FIG. 2 is a process flow diagram of an illustrative method for locating regions in a database that match functional regions of one or more surfaces of a design of an object to be manufactured in accordance with example embodiments.
[09] FIG. 3 is a process flow diagram of an illustrative method for converting the design of an object into a detailed design of the object in accordance with example embodiments.
[010] FIG. 4 is a schematic diagram of an illustrative computing configuration for implementing one or more example embodiments.
DETAIFED DESCRIPTION [01 1 ] Example embodiments of the invention relate to, among other things, systems, methods, computer-readable media, techniques, and methodologies for automatically generating a detailed design of an object to be manufactured. In example embodiments, a conceptual design of the structure of an object represented, for example, by a wireframe sketch of the object may be received as input to a process for
automatically generating a detailed design of the object. In example embodiments, one or more surfaces may be constructed for the conceptual design input. More specifically, in example embodiments, surface skinning techniques may be used to generate one or more surfaces such as, for example, one or more two-dimensional surfaces embedded in a three-dimensional coordinate system (i.e., R3) over the wireframe sketch input.
[012] In example embodiments, the one or more surfaces may then be segmented into functional regions, which may then be labeled to facilitate searching of a database for regions that match the functional regions. In example embodiments, each functional region may correspond to a respective functionality of the object and a label of the functional region may indicate the respective functionality. In example embodiments, a stored region in the database may be deemed to match a functional region if a label of the stored region matches the label of the functional region.
[013] In example embodiments, upon locating one or more matching regions stored in the database, the matching region(s) may be presented to a user (e.g., a designer). The user may then provide a selection of detailed geometry of one or more of the matching region(s). In example embodiments, upon receiving the user selection of detailed geometry from one or more of the matching region(s), a deformable registration between the selected detailed geometry and corresponding functional region(s) of the one or more surfaces may be performed to obtain a registration mapping. In example embodiments, the registration mapping thus obtained may be used to transfer the selected detailed geometry to the corresponding functional region(s) of the one or more surfaces based at least in part on the registration mapping. In this manner, the original conceptual design of the object can be converted in an automatic manner to a detailed design of the object. Further, in example embodiments, a determination may be made as to whether the detailed design of the object satisfies one or more functional requirements for the object, and if so, the detailed design may be stored in the database for potential future matching.
[014] Conventional detailed design methodologies involve manual addition of detailed geometry to an initial conceptual design, which is a time-consuming process. Example embodiments provide an automated approach for adding geometric details to a conceptual design that is significantly faster than conventional approaches and that considerably reduces the turnaround time from original conceptual design to detailed design of an object. As a result, example embodiments provide the technical effect of enabling exploration of a large number of conceptual design variations without having to manually add detailed geometry to each design variation.
[015] Illustrative methods in accordance with example embodiments of the invention will now be described. It should be noted that any given operation of the method 200 and/or the method 300 may be performed by one or more of the program modules or the like depicted in FIG. 1, whose operation will be described in more detail later in this disclosure. These program modules may be implemented in any combination of hardware, software, and/or firmware. In certain example embodiments, one or more of these program modules may be implemented, at least in part, as software and/or firmware modules that include computer-executable instructions that when executed by a processing circuit cause one or more operations to be performed. A system or device described herein as being configured to implement example embodiments may include one or more processing circuits, each of which may include one or more processing units or nodes. Computer-executable instructions may include computer-executable program code that when executed by a processing unit may cause input data contained in or referenced by the computer-executable program code to be accessed and processed to yield output data.
[016] FIG. 1 is a schematic hybrid block/data flow diagram illustrating automatic generation of a detailed design of an object to be manufactured in accordance with example embodiments. FIG. 2 is a process flow diagram of an illustrative method 200 for locating regions in a database that match functional regions of one or more surfaces of a design of an object to be manufactured in accordance with example embodiments. FIG. 3 is a process flow diagram of an illustrative method 300 for converting the design of an object into a detailed design of the object in accordance with example embodiments.
[017] Referring now to FIG. 2 in conjunction with FIG. 1 , at block 202 of the method 200 a conceptual design of the structure of an object represented, for example, by a wireframe sketch 102 of the object may be received as input to one or more surface skinning modules 104. In example embodiments, the wireframe sketch 102 may represent a basic conceptual design of the shape of an object to be manufactured, but surfaces of the object and detailed geometry may be absent from the wireframe sketch 102.
[018] At block 204 of the method 200, in example embodiments, computer- executable instructions of the surface skinning module(s) 104 may be executed to generate one or more surfaces 106 based at least in part on the wireframe sketch 102. For instance, in example embodiments, the surface skinning module(s) 104 may employ various surface skinning techniques to generate two-dimensional surfaces embedded in R3 as overlays over the wireframe sketch 102.
[019] At block 206 of the method 200, computer-executable instructions of one or more functional segmentation and labeling modules 108 may be executed to segment the surface(s) 106 into multiple functional regions 110. In particular, in example
embodiments, each segmented functional region 110 may represent a portion of the surface(s) that corresponds to a respective function of the object. In certain example embodiments, multiple segmented functional regions may jointly correspond to a given function or a given collection of functionality of the object. At block 208 of the method 200, computer-executable instructions of the functional segmentation and labeling module(s) 108 may be executed to assign a respective label to each of the segmented functional regions 110. In example embodiments, the labels can be used to locate regions stored in a database that match the functional regions 110. [020] At block 210 of the method 200, computer-executable instructions of one or more region matching modules 112 may be executed to locate, using the labeled functional regions 110, one or more matching regions 116 stored in one or more datastores 114. In particular, in example embodiments, the region matching module(s)
112 may utilize the labels assigned to the segmented functional regions 110 to locate one or more matching regions 116 stored in the datastore(s) 114 that are associated with matching labels. That is, in example embodiments, each matching region 116 may be associated with a label that matches a label of a corresponding segmented functional region 110, which may indicate that the matching region 116 provides similar or the same function as the corresponding functional region 110.
[021 ] At block 212 of the method 200, an indication of the matching region(s) 116 may be presented to a user 118 such as a designer of the conceptual design (e.g., the wireframe sketch 102) of the object. At block 214 of the method 200, selections of detailed geometry 120 of one or more of the matching region(s) 116 may be received from the user 118. In particular, in example embodiments, the user 118 may select detailed geometry 120 from one or more of the matching region(s) 116 for addition to corresponding functional region(s) 110 of the surface(s) 106.
[022] Referring now to FIG. 3 in conjunction with FIG. 1, at block 302 of the method 300, computer-executable instructions of one or more registration modules 122 may be executed to apply deformable registration between the user-selected detailed geometry 120 of each associated matching region 116 and the corresponding segmented functional region 110 of the surface(s) 106 to obtain a registration mapping 124. Then, at block 304 of the method 300, computer-executable instructions of one or more detailed design generation modules 126 may be executed to transfer the user-selected detailed geometry 120 of each associated matching region 116 to the corresponding region 110 of the surface(s) 106 based at least in part on the registration mapping 124. In this manner, the original conceptual design of the object (e.g., the wireframe sketch 102) is ultimately converted into a detailed design of the object 128. [023] Upon generating the detailed design of the object 128, at block 306 of the method 300, computer-executable instructions of one or more functional requirement verification modules 130 may be executed to determine whether the detailed design 128 satisfies one or more functional requirements for the object. Assuming that the functional requirements are satisfied, the detailed design 128, or more specifically, regions of the detailed design 128 and corresponding detailed geometry may be stored in the datastore(s) 114 for potential matching with respect to future designs or future iterations of the detailed design 128 itself.
[024] One or more illustrative embodiments of the disclosure are described herein. Such embodiments are merely illustrative of the scope of this disclosure and are not intended to be limiting in any way. Accordingly, variations, modifications, and equivalents of embodiments disclosed herein are also within the scope of this disclosure. For example, the data key generation process described herein in accordance with example embodiments can be expanded to use multiple data seeds to produce one set of unique and reproducible data for each data seed.
[025] FIG. 4 is a schematic diagram of an illustrative computing configuration for implementing one or more example embodiments of the invention. In particular, FIG. 4 depicts one or more detailed design generation servers 402 configured to implement one or more example embodiments. While the server(s) 402 may be described herein in the singular, it should be appreciated that multiple servers 402 may be provided, and functionality described herein may be distributed across multiple such servers 402.
[026] In an illustrative configuration, the detailed design generation server 402 may include one or more processors (processor(s)) 404, one or more memory devices 306 (generically referred to herein as memory 406), one or more input/output (“I/O”) interface(s) 408, one or more network interfaces 410, and data storage 414. The detailed design generation server 402 may further include one or more buses 412 that functionally couple various components of the detailed design generation server 402. [027] The bus(es) 412 may include at least one of a system bus, a memory bus, an address bus, or a message bus, and may permit the exchange of information (e.g., data (including computer-executable code), signaling, etc.) between various components of the detailed design generation server 402. The bus(es) 412 may include, without limitation, a memory bus or a memory controller, a peripheral bus, an accelerated graphics port, and so forth. The bus(es) 412 may be associated with any suitable bus architecture including, without limitation, an Industry Standard Architecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA (EISA), a Video Electronics Standards Association (VESA) architecture, an Accelerated Graphics Port (AGP) architecture, a Peripheral Component Interconnects (PCI) architecture, a PCI-Express architecture, a Personal Computer Memory Card International Association (PCMCIA) architecture, a Universal Serial Bus (USB) architecture, and so forth.
[028] The memory 406 may include volatile memory (memory that maintains its state when supplied with power) such as random access memory (RAM) and/or non volatile memory (memory that maintains its state even when not supplied with power) such as read-only memory (ROM), flash memory, ferroelectric RAM (FRAM), and so forth. Persistent data storage, as that term is used herein, may include non-volatile memory. In certain example embodiments, volatile memory may enable faster read/write access than non-volatile memory. However, in certain other example embodiments, certain types of non-volatile memory (e.g., FRAM) may enable faster read/write access than certain types of volatile memory.
[029] In various implementations, the memory 406 may include multiple different types of memory such as various types of static random access memory (SRAM), various types of dynamic random access memory (DRAM), various types of unalterable ROM, and/or writeable variants of ROM such as electrically erasable programmable read-only memory (EEPROM), flash memory, and so forth. The memory 406 may include main memory as well as various forms of cache memory such as instruction cache(s), data cache(s), translation lookaside buffer(s) (TLBs), and so forth. Further, cache memory such as a data cache may be a multi-level cache organized as a hierarchy of one or more cache levels (Ll, L2, etc.).
[030] The data storage 414 may include removable storage and/or non-removable storage including, but not limited to, magnetic storage, optical disk storage, and/or tape storage. The data storage 414 may provide non-volatile storage of computer-executable instructions and other data. The memory 406 and the data storage 414, removable and/or non-removable, are examples of computer-readable storage media (CRSM) as that term is used herein.
[031 ] The data storage 414 may store computer-executable code, instructions, or the like that may be loadable into the memory 406 and executable by the processor(s) 404 to cause the processor(s) 404 to perform or initiate various operations. The data storage 414 may additionally store data that may be copied to memory 406 for use by the processor(s) 404 during the execution of the computer-executable instructions. Moreover, output data generated as a result of execution of the computer-executable instructions by the processor(s) 404 may be stored initially in memory 406 and may ultimately be copied to data storage 414 for non-volatile storage.
[032] More specifically, the data storage 414 may store one or more operating systems (O/S) 416; one or more database management systems (DBMS) 418 configured to access the memory 406 and/or one or more datastores 432; and one or more program modules, applications, engines, managers, computer-executable code, scripts, or the like such as, for example, one or more surface skinning modules 420; one or more functional segmentation and labeling modules 422; one or more region matching modules 424; one or more registration modules 426; one or more detailed design generation modules 428; and one or more functional requirement verification modules 430. Any of the
components depicted as being stored in data storage 414 may include any combination of software, firmware, and/or hardware. The software and/or firmware may include computer-executable instructions (e.g., computer-executable program code) that may be loaded into the memory 406 for execution by one or more of the processor(s) 404 to perform any of the corresponding operations described earlier.
[033] Although not depicted in FIG. 4, the data storage 414 may further store various types of data utilized by components of the detailed design generation server 402 (e.g., data stored in the datastore(s) 432). Any data stored in the data storage 414 may be loaded into the memory 406 for use by the processor(s) 404 in executing computer- executable instructions. In addition, any data stored in the data storage 414 may potentially be stored in the external datastore(s) 432 and may be accessed via the DBMS 418 and loaded in the memory 406 for use by the processor(s) 404 in executing computer-executable instructions.
[034] The processor(s) 404 may be configured to access the memory 406 and execute computer-executable instructions loaded therein. For example, the processor(s) 404 may be configured to execute computer-executable instructions of the various program modules, applications, engines, managers, or the like of the detailed design generation server 402 to cause or facilitate various operations to be performed in accordance with one or more embodiments of the disclosure. The processor(s) 404 may include any suitable processing unit capable of accepting data as input, processing the input data in accordance with stored computer-executable instructions, and generating output data. The processor(s) 404 may include any type of suitable processing unit including, but not limited to, a central processing unit, a microprocessor, a Reduced Instruction Set Computer (RISC) microprocessor, a Complex Instruction Set Computer (CISC) microprocessor, a microcontroller, an Application Specific Integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA), a System-on-a-Chip (SoC), a digital signal processor (DSP), and so forth. Further, the processor(s) 404 may have any suitable microarchitecture design that includes any number of constituent components such as, for example, registers, multiplexers, arithmetic logic units, cache controllers for controlling read/write operations to cache memory, branch predictors, or the like. The microarchitecture design of the processor(s) 404 may be capable of supporting any of a variety of instruction sets.
[035] Referring now to other illustrative components depicted as being stored in the data storage 414, the O/S 416 may be loaded from the data storage 414 into the memory 406 and may provide an interface between other application software executing on the detailed design generation server 402 and hardware resources of the distortion
compensation server 402. More specifically, the O/S 416 may include a set of computer- executable instructions for managing hardware resources of the detailed design generation server 402 and for providing common services to other application programs. In certain example embodiments, the O/S 416 may include or otherwise control the execution of one or more of the program modules, engines, managers, or the like depicted as being stored in the data storage 414. The O/S 416 may include any operating system now known or which may be developed in the future including, but not limited to, any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system.
[036] The DBMS 418 may be loaded into the memory 406 and may support functionality for accessing, retrieving, storing, and/or manipulating data stored in the memory 406, data stored in the data storage 414, and/or data stored in external datastore(s) 432. The DBMS 418 may use any of a variety of database models (e.g., relational model, object model, etc.) and may support any of a variety of query languages. The DBMS 418 may access data represented in one or more data schemas and stored in any suitable data repository. As such, data stored in the datastore(s) 432 may include, for example, data indicative of the surfaced topology 106; data indicative of the segmented functional regions 110; data indicative of stored regions eligible for matching; the registration mapping 124; and so forth. External datastore(s) 432 that may be accessible by the detailed design generation server 402 via the DBMS 418 may include, but are not limited to, databases (e.g., relational, object-oriented, etc.), file systems, flat files, distributed datastores in which data is stored on more than one node of a computer network, peer-to-peer network datastores, or the like.
[037] Referring now to other illustrative components of the detailed design generation server 402, the input/output (I/O) interface(s) 408 may facilitate the receipt of input information by the detailed design generation server 402 from one or more I/O devices as well as the output of information from the detailed design generation server 402 to the one or more I/O devices. The I/O devices may include any of a variety of components such as a display or display screen having a touch surface or touchscreen; an audio output device for producing sound, such as a speaker; an audio capture device, such as a microphone; an image and/or video capture device, such as a camera; a haptic unit; and so forth. Any of these components may be integrated into the detailed design generation server 402 or may be separate. The I/O devices may further include, for example, any number of peripheral devices such as data storage devices, printing devices, and so forth.
[038] The I/O interface(s) 408 may also include an interface for an external peripheral device connection such as universal serial bus (USB), FireWire, Thunderbolt, Ethernet port or other connection protocol that may connect to one or more networks.
The I/O interface(s) 408 may also include a connection to one or more antennas to connect to one or more networks via a wireless local area network (WLAN) (such as Wi Fi) radio, Bluetooth, and/or a wireless network radio, such as a radio capable of communication with a wireless communication network such as a Long Term Evolution (LTE) network, WiMAX network, 3G network, etc.
[039] The detailed design generation server 402 may further include one or more network interfaces 410 via which the detailed design generation server 402 may communicate with one or more other devices or systems via one or more networks. Such network(s) may include, but are not limited to, any one or more different types of communications networks such as, for example, cable networks, public networks (e.g., the Internet), private networks (e.g., frame-relay networks), wireless networks, cellular networks, telephone networks (e.g., a public switched telephone network), or any other suitable private or public packet- switched or circuit-switched networks. Such network(s) may have any suitable communication range associated therewith and may include, for example, global networks (e.g., the Internet), metropolitan area networks (MANs), wide area networks (WANs), local area networks (LANs), or personal area networks (PANs). In addition, such network(s) may include communication links and associated networking devices (e.g., link-layer switches, routers, etc.) for transmitting network traffic over any suitable type of medium including, but not limited to, coaxial cable, twisted-pair wire (e.g., twisted-pair copper wire), optical fiber, a hybrid fiber-coaxial (HFC) medium, a microwave medium, a radio frequency communication medium, a satellite
communication medium, or any combination thereof.
[040] It should be appreciated that the program modules/engines depicted in FIG. 4 as being stored in the data storage 414 are merely illustrative and not exhaustive and that processing described as being supported by any particular module may alternatively be distributed across multiple modules, engines, or the like, or performed by a different module, engine, or the like. In addition, various program module(s), script(s), plug-in(s), Application Programming Interface(s) (API(s)), or any other suitable computer- executable code hosted locally on the detailed design generation server 402 and/or other computing devices accessible via one or more networks, may be provided to support functionality provided by the modules depicted in FIG. 4 and/or additional or alternate functionality. Further, functionality may be modularized in any suitable manner such that processing described as being performed by a particular module may be performed by a collection of any number of program modules, or functionality described as being supported by any particular module may be supported, at least in part, by another module. In addition, program modules that support the functionality described herein may be executable across any number of cluster members in accordance with any suitable computing model such as, for example, a client-server model, a peer-to-peer model, and so forth. In addition, any of the functionality described as being supported by any of the modules depicted in FIG. 4 may be implemented, at least partially, in hardware and/or firmware across any number of devices.
[041 ] It should further be appreciated that the detailed design generation server 402 may include alternate and/or additional hardware, software, or firmware components beyond those described or depicted without departing from the scope of the disclosure. More particularly, it should be appreciated that software, firmware, or hardware components depicted as forming part of the detailed design generation server 402 are merely illustrative and that some components may not be present or additional components may be provided in various embodiments. While various illustrative modules have been depicted and described as software modules stored in data storage 414, it should be appreciated that functionality described as being supported by the modules may be enabled by any combination of hardware, software, and/or firmware. It should further be appreciated that each of the above-mentioned modules may, in various embodiments, represent a logical partitioning of supported functionality. This logical partitioning is depicted for ease of explanation of the functionality and may not be representative of the structure of software, hardware, and/or firmware for implementing the functionality. Accordingly, it should be appreciated that functionality described as being provided by a particular module may, in various embodiments, be provided at least in part by one or more other modules. Further, one or more depicted modules may not be present in certain embodiments, while in other embodiments, additional program modules and/or engines not depicted may be present and may support at least a portion of the described functionality and/or additional functionality.
[042] One or more operations of the method 200 and/or the method 300 may be performed by a detailed design generation server 402 having the illustrative configuration depicted in FIG. 4, or more specifically, by one or more program modules, engines, applications, or the like executable on such a device. It should be appreciated, however, that such operations may be implemented in connection with numerous other device configurations. [043] The operations described and depicted in the illustrative method of FIG. 2 and/or the illustrative method of FIG. 3 may be carried out or performed in any suitable order as desired in various example embodiments of the disclosure. Additionally, in certain example embodiments, at least a portion of the operations may be carried out in parallel. Furthermore, in certain example embodiments, less, more, or different operations than those depicted in FIG. 2 and/or FIG. 3 may be performed.
[044] Although specific embodiments of the disclosure have been described, one of ordinary skill in the art will recognize that numerous other modifications and alternative embodiments are within the scope of the disclosure. For example, any of the functionality and/or processing capabilities described with respect to a particular system, system component, device, or device component may be performed by any other system, device, or component. Further, while various illustrative implementations and architectures have been described in accordance with embodiments of the disclosure, one of ordinary skill in the art will appreciate that numerous other modifications to the illustrative
implementations and architectures described herein are also within the scope of this disclosure. In addition, it should be appreciated that any operation, element, component, data, or the like described herein as being based on another operation, element, component, data, or the like may be additionally based on one or more other operations, elements, components, data, or the like. Accordingly, the phrase“based on,” or variants thereof, should be interpreted as“based at least in part on.”
[045] The present disclosure may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
[046] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
[047] Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
[048] Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field- programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
[049] Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
[050] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
[051 ] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
[052] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

Claims

CLAIMS What is claimed is:
1. A computer- implemented method for automatically generating a detailed design of an object to be manufactured, the method comprising: receiving input indicative of a design of the object; segmenting one or more surfaces of the design of the object into a plurality of functional regions; labeling the plurality of functional regions with respective labels; searching a database of detailed object designs to locate one or more matching regions, wherein each matching region corresponds to a respective one of the plurality of functional regions; identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object; and converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions.
2. The computer-implemented method of claim 1, wherein the input indicative of the design of the object is a wireframe sketch representing a conceptual design of the object.
3. The computer- implemented method of claim 2, further comprising applying one or more surface skinning techniques to generate the one or more surfaces comprising two-dimensional surfaces embedded in a three-dimensional coordinate system over the wireframe sketch.
4. The computer-implemented method of claim 1, wherein identifying the detailed geometry comprises: presenting an indication of the one or more matching regions to a user; and receiving, from the user, a selection of the detailed geometry of the at least one of the one or more matching regions for transfer to the design of the object.
5. The computer- implemented method of claim 1, further comprising applying deformable registration between the detailed geometry of the at least one of the one or more matching regions and the one or more corresponding regions of the plurality of functional regions to obtain a registration mapping.
6. The computer-implemented method of claim 5, wherein transferring the detailed geometry of the at least one of the one or more matching regions to the one or more corresponding regions of the plurality of functional regions comprises transferring the detailed geometry based at least in part on the registration mapping.
7. The computer-implemented method of claim 1, further comprising: determining that the detailed design of the object satisfies one or more functional requirements of the object; and storing the detailed geometry of the detailed design of the object in the database.
8. A system for automatically generating a detailed design of an object to be manufactured, the system comprising: at least one memory storing computer-executable instructions; and at least one processor, wherein the at least one processor is configured to access the at least one memory and execute the computer-executable instructions to: receiving input indicative of a design of the object; segmenting one or more surfaces of the design of the object into a plurality of functional regions; labeling the plurality of functional regions with respective labels; searching a database of detailed object designs to locate one or more matching regions, wherein each matching region corresponds to a respective one of the plurality of functional regions; identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object; and converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions.
9. The system of claim 8, wherein the input indicative of the design of the object is a wireframe sketch representing a conceptual design of the object.
10. The system of claim 9, wherein the at least one processor is further configured to execute the computer-executable instructions to apply one or more surface skinning techniques to generate the one or more surfaces comprising two-dimensional surfaces embedded in a three-dimensional coordinate system over the wireframe sketch.
11. The system of claim 8, wherein the at least one processor is configured to identify the detailed geometry by executing the computer-executable instructions to: present an indication of the one or more matching regions to a user; and receive, from the user, a selection of the detailed geometry of the at least one of the one or more matching regions for transfer to the design of the object.
12. The system of claim 8, wherein the at least one processor is further configured to execute the computer-executable instructions to apply deformable registration between the detailed geometry of the at least one of the one or more matching regions and the one or more corresponding regions of the plurality of functional regions to obtain a registration mapping.
13. The system of claim 12, wherein the at least one processor is configured to transfer the detailed geometry of the at least one of the one or more matching regions to the one or more corresponding regions of the plurality of functional regions by executing the computer-executable instructions to transfer the detailed geometry based at least in part on the registration mapping.
14. The system of claim 8, wherein the at least one processor is further configured to execute the computer-executable instructions to: determine that the detailed design of the object satisfies one or more functional requirements of the object; and store the detailed geometry of the detailed design of the object in the database.
15. A computer program product for automatically generating a detailed design of an object to be manufactured, the computer program product comprising a computer readable storage medium readable by a processing circuit, the computer readable storage medium storing instructions executable by the processing circuit to cause a method to be performed, the method comprising: receiving input indicative of a design of the object; segmenting one or more surfaces of the design of the object into a plurality of functional regions; labeling the plurality of functional regions with respective labels; searching a database of detailed object designs to locate one or more matching regions, wherein each matching region corresponds to a respective one of the plurality of functional regions; identifying detailed geometry of at least one of the one or more matching regions for transfer to the design of the object; and converting the design of the object into a detailed design of the object at least in part by transferring the detailed geometry of the at least one of the one or more matching regions to one or more corresponding regions of the plurality of functional regions.
16. The computer program product of claim 15, wherein the input indicative of the design of the object is a wireframe sketch representing a conceptual design of the object.
17. The computer program product of claim 16, the method further comprising applying one or more surface skinning techniques to generate the one or more surfaces comprising two-dimensional surfaces embedded in a three-dimensional coordinate system over the wireframe sketch.
18. The computer program product of claim 15, wherein identifying the detailed geometry comprises: presenting an indication of the one or more matching regions to a user; and receiving, from the user, a selection of the detailed geometry of the at least one of the one or more matching regions for transfer to the design of the object.
19. The computer program product of claim 8, the method further comprising applying deformable registration between the detailed geometry of the at least one of the one or more matching regions and the one or more corresponding regions of the plurality of functional regions to obtain a registration mapping.
20. The computer program product of claim 19, wherein transferring the detailed geometry of the at least one of the one or more matching regions to the one or more corresponding regions of the plurality of functional regions comprises transferring the detailed geometry based at least in part on the registration mapping.
PCT/US2018/048252 2017-12-05 2018-08-28 Automatic generation of a detailed design of an object WO2019112659A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762594789P 2017-12-05 2017-12-05
US62/594,789 2017-12-05

Publications (1)

Publication Number Publication Date
WO2019112659A1 true WO2019112659A1 (en) 2019-06-13

Family

ID=63668015

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/048252 WO2019112659A1 (en) 2017-12-05 2018-08-28 Automatic generation of a detailed design of an object

Country Status (1)

Country Link
WO (1) WO2019112659A1 (en)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
J. LEE ET AL: "Sketch-based search and composition of 3D models", EUROGRAPHICS WORKSHOP ON SKETCH-BASED INTERFACES AND MODELING, 11 June 2008 (2008-06-11), pages 97 - 104, XP055314919, ISSN: 1812-3503, ISBN: 978-3-905674-25-5, DOI: 10.2312/SBM/SBM08/097-104 *
R. G. SCHNEIDER ET AL: "Example-Based Sketch Segmentation and Labeling Using CRFs", ACM TRANSACTIONS ON GRAPHICS (TOG), vol. 35, no. 5, 28 July 2016 (2016-07-28), US, pages 1 - 9, XP055522649, ISSN: 0730-0301, DOI: 10.1145/2898351 *
Z. HUANG ET AL: "Data-driven segmentation and labeling of freehand sketches", ACM TRANSACTIONS ON GRAPHICS (TOG), ACM, US, vol. 33, no. 6, 19 November 2014 (2014-11-19), pages 1 - 10, XP058060863, ISSN: 0730-0301, DOI: 10.1145/2661229.2661280 *

Similar Documents

Publication Publication Date Title
US11106567B2 (en) Combinatoric set completion through unique test case generation
US11263116B2 (en) Champion test case generation
US11294943B2 (en) Distributed match and association of entity key-value attribute pairs
US20200242012A1 (en) Fault detection and localization to generate failing test cases using combinatorial test design techniques
US20210183097A1 (en) Spare Part Identification Using a Locally Learned 3D Landmark Database
US11222277B2 (en) Enhancing robustness of pseudo-relevance feedback models using query drift minimization
US11010282B2 (en) Fault detection and localization using combinatorial test design techniques while adhering to architectural restrictions
US20190281407A1 (en) Group-based sequential recommendations
US10664390B2 (en) Optimizing execution order of system interval dependent test cases
US11861480B2 (en) Orientation detection in overhead line insulators
US10761856B2 (en) Instruction completion table containing entries that share instruction tags
US10901743B2 (en) Speculative execution of both paths of a weakly predicted branch instruction
US10656938B2 (en) External comment storage and organization
US9800403B1 (en) Message processing using extended output functions
US10963366B2 (en) Regression test fingerprints based on breakpoint values
WO2019103778A1 (en) Missing label classification and anomaly detection for sparsely populated manufacturing knowledge graphs
US10824943B2 (en) High precision low bit convolutional neural network
US10754630B2 (en) Build-time code section-specific compiler selection
WO2019112661A1 (en) Predicting and compensating for manufacturing distortion of a designed geometry of an object
WO2019112659A1 (en) Automatic generation of a detailed design of an object
US10581593B2 (en) Message padding for bit-oriented and bit-reversed input messages
US20190377577A1 (en) Dynamic adjustment of issue-to-issue delay between dependent instructions
US11153366B2 (en) Lightweight web font customization integrated with glyph demanding assessment
US10949416B2 (en) Workload management across multiple data sites capable of providing active services
US10754763B2 (en) Bypassing user-selected functions during test case generation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18773691

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18773691

Country of ref document: EP

Kind code of ref document: A1