Recovery of 2D wall centerlines from 3D walls

Through computer-implemented methods, the effective edge pairs of 3D walls are automatically identified and merged, and the 2D wall centerline is calculated, which solves the time-consuming wall baseline design problem in the prior art, and improves the construction efficiency and the accuracy of concrete use.

CN120388066APending Publication Date: 2025-07-29DASSAULT SYSTEMES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510130327.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-29
Filing Date
2025-02-05
Publication Date
2025-07-29

AI Technical Summary

Technical Problem

The prior art is time consuming and requires a lot of user input when automatically calculating wall baselines from wall geometry of 3D models, especially for complex buildings, and it is difficult to efficiently design the 2D wall centerline.

Method used

Through computer-implemented methods, the normal vector and directionality of 3D walls are obtained, the edges of faces with opposite directions are identified, and the effective edge pairs are formed, and the centerline of the 2D pair of walls is calculated and merged, and the design process of processing multiple walls is automated.

Benefits of technology

A fast and automated 2D wall centerline design is achieved, which reduces user input, improves the efficiency of construction site planning, and ensures the accuracy of concrete pouring, avoids wall weakness caused by insufficient concrete during pouring.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120388066A_ABST
    Figure CN120388066A_ABST
Patent Text Reader

Abstract

The present disclosure particularly relates to a computer-implemented method for designing a 2D wall centerline from at least one 3D wall of a 3D model representing a building intended to be built. The method comprises: obtaining at least one 3D wall; obtaining a wall direction representing the direction of the wall elevation and being a vector; retrieving, for each 3D wall, a face having their respective negative scalar, the negative scalar having a directionality opposite the directionality of the wall direction; for each edge of each retrieved face, identifying one edge among the edges of the retrieved faces, thereby forming an effective edge pair; calculating a 2D pair wall centerline for each effective pair that has been formed; and calculating a 2D wall centerline of the 3D model by merging the calculated 2D pair wall centerlines of the valid pair.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer programs and systems, and more particularly to methods, systems, and programs for deriving 2D wall centerlines from at least one 3D wall design representing a building intended to be constructed. Background Art

[0002] Many systems and programs are available on the market for the design, engineering, and manufacturing of objects. CAD is an acronym for Computer-Aided Design, for example, which involves software solutions for designing objects. CAE is an acronym for Computer-Aided Engineering, for example, which involves software solutions for simulating the physical behavior of future products. CAM is an acronym for Computer-Aided Manufacturing, for example, which involves software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays an important role in the efficiency of the technology. These technologies can be embedded within a Product Lifecycle Management (PLM) system. PLM refers to a business strategy under the concept of an extended enterprise that helps companies share product data, apply common processes, and leverage corporate knowledge to develop products from the conception of a product to the end of its product life cycle. The PLM solutions provided by Dassault Systèmes (trademarks CATIA, ENOVIA, and DELMIA) provide an engineering hub for organizing product engineering knowledge, a manufacturing hub for managing manufacturing engineering knowledge, and an enterprise hub that allows enterprises to integrate and connect to both the engineering hub and the manufacturing hub. The systems together provide an open object model that links products, processes, and resources to enable dynamic, knowledge-based product creation and decision support, thus driving optimized product definition, manufacturing readiness, production, and services.

[0003] CAD / CAE / CAM can provide solutions dedicated to the design and / or management and / or construction of buildings. For example, the pouring of concrete walls can be planned, for example, the software solution describes which part of the wall will be poured each day and how much concrete is required. For this purpose, the software solution relies on a "wall baseline" representing the wall to be built. The wall baseline represents the wall by wireframe elements.

[0004] Obtain a wall baseline from the 3D geometry of a wall. In particular, a 3D model representing a building to be constructed includes a number of 3D walls. However, the initial 3D geometry of the walls is modified multiple times by various processes involved in their construction, making it impossible to automatically calculate the wall baseline from the 3D geometry of the walls. Additionally, when the wall 3D geometry is only available as-is, retrieving the wall baseline requires more time and computer 3D design skills without its creation history or underlying geometry, neither of which are necessarily available to construction site planners.

[0005] Current methods for restoring the wall baseline include the following steps: i) extract the sides of the wall, ii) calculate the medial surface of the extracted faces using some offset techniques, iii) project the medial surface onto a plane at the bottom of the wall, and iv) repeat these three steps for each wall. This method is time-consuming, especially for buildings with hundreds of walls, and requires many user inputs to correct the output of the method.

[0006] In this case, there is still a need for improved methods for designing a 2D wall centerline from at least one 3D wall of a 3D model representing a building to be constructed. Summary of the Invention

[0007] Accordingly, there is provided a computer-implemented method for designing a 2D wall centerline from at least one 3D wall of a 3D model representing a building to be constructed. The method includes:

[0008] - obtaining at least one 3D volume, each of the 3D volumes representing at least one 3D wall, each of the 3D walls being configured to have faces bounded by edges and connected by vertices forming the edges, each of the faces having a normal vector;

[0009] - obtaining a wall direction that represents the direction of the wall elevation and is a vector;

[0010] - for each of the 3D walls, retrieving the faces having a corresponding negative scalar, the negative scalar having a directionality opposite to the directionality of the wall direction;

[0011] - for each edge of each retrieved face, identifying one of the edges among the edges of the retrieved face, thereby forming a valid edge pair representing a 3D wall in at least one of the 3D walls of the 3D model;

[0012] - for each of the formed valid edge pairs, calculating a 2D pair of wall centerlines; and

[0013] - calculating the 2D wall centerline of the 3D model by merging the calculated 2D pairs of wall centerlines of the valid edge pairs.

[0014] The method may include one or more of the following:

[0015] - Before identifying one of the edges of the retrieved face, merge the retrieved faces by removing internal edges, where an internal edge is an edge connecting two faces that are in contact with each other, and the merged retrieved faces form a domain;

[0016] - Each of the 3D walls has a height representing the elevation of the wall, a length representing the coverage area of the wall on the ground, and a thickness less than half of the length; and for each face of each of the 3D walls, any normal vector on the face has the same direction with respect to the wall direction;

[0017] - The identifying one of the edges of the retrieved face includes: for each edge of each of the retrieved faces, calculating a first line passing through the edge; for each of the other edges of the retrieved face, calculating a second line passing through the corresponding edge of the other edges of the retrieved face; calculating the angle between the first line and the second line; if the calculated angle exceeds a predetermined angle tolerance value θ1° and if the calculated angle is not included in the range [180°; 180° - θ1°], discard the edge of the second line, thereby considering that the edges of the first line and the second line are not a valid edge pair. Preferably, the predetermined angle tolerance value θ1° has a value included in [10°; 30°], and more preferably, the predetermined angle tolerance value θ1° has a value of 25°;

[0018] - For each edge of each of the retrieved faces, obtaining a first center point, a first starting point, and a first ending point of the edge; for each of the other edges of the retrieved face, obtaining a second center point, a second starting point, and a second ending point; and wherein: calculating the first line includes calculating a line passing through the first starting point and the first ending point; and calculating the second line includes calculating a line passing through the second starting point and the second ending point;

[0019] - The identifying one of the edges of the retrieved face further includes: calculating the distance between the first center point and another edge of the second center point or calculating the distance between the second center point and another edge of the first center point; if the calculated distance is lower than a predetermined thickness value T1 of the 3D wall, discard the edge of the second center point, thereby considering that the edges of the first center point and the second center point are not a valid edge pair. Preferably, the predetermined thickness value T1 has a value included in [1 mm; 5 mm], and more preferably, the predetermined thickness value T1 has a value of 1 mm;

[0020] - Identifying one of the edges of the retrieved face further includes: calculating a first distance between the first starting point and the second starting point; calculating a second distance between the first starting point and the second ending point; calculating a third distance between the first ending point and the second starting point; calculating a fourth distance between the first ending point and the second ending point; determining the minimum distance among the first distance, the second distance, the third distance, and the fourth distance, thereby obtaining a pair of points including the two points for which the minimum distance has been calculated; for each point in the pair of points, calculating a vector from the point in the pair of points to the starting point or the ending point of the edge to which the point in the pair of points belongs, thereby obtaining two vectors; calculating the scalar product between the two obtained vectors; and if the calculated scalar product is negative, discarding the corresponding edge among the other edges of the retrieved face;

[0021] - Identifying one of the edges of the retrieved face further includes: calculating a line segment connecting the first center point and the second center point; if no intersection is detected between the calculated line segment and the domain, discarding the corresponding edge among the other edges of the retrieved face;

[0022] - Calculating a reference minimum distance by summing the determined minimum distance, the first distance, the second distance, and the distance between the first center point and the second center point; storing the corresponding edge among the other edges of the retrieved face together with the calculated reference minimum distance of the corresponding edge as a valid candidate in a valid candidate list; and selecting the valid candidate having the minimum calculated reference minimum distance in the list, thereby selecting a valid edge pair;

[0023] - Identifying one of the edges of the retrieved face further includes: calculating a distance D1 between the first line and the second line; obtaining a length L1 of the edge supporting the first line; obtaining a length L2 of the edge supporting the second line; if the distance D1 is greater than the length L1 and / or the length L2, discarding the edge of the first line and the edge of the second line, thereby considering that the edge of the first line and the edge of the second line are not a valid edge pair;

[0024] -Calculating the 2D pair of wall centerlines includes: calculating a first line segment between the first starting point and the second starting point, and a second line segment between the first ending point and the second ending point; calculating a first midpoint of the first line segment and a second midpoint of the second line segment; calculating a line segment connecting the first midpoint and the second midpoint, thereby obtaining the 2D pair of wall centerlines of the effective edge pair; calculating an average wall line segment pair thickness from the thickness of each wall line segment pair of each 2D pair of wall centerlines in the 2D pair of wall centerlines; comparing the length of each 2D pair of wall centerlines of each effective edge pair with the calculated average wall line segment pair thickness; and discarding the 2D pair of wall centerlines if the length of one 2D pair of wall centerlines in the 2D pair of wall centerlines is less than the calculated average wall line segment pair thickness;

[0025] -At least one 3D wall includes at least one non-planar surface, and calculating the 2D pair of wall centerlines includes: calculating a first line segment between the first starting point and the second starting point, and a second line segment between the first ending point and the second ending point; calculating a first midpoint of the first line segment and a second midpoint of the second line segment; calculating an isoparametric curve connecting the first midpoint and the second midpoint, thereby obtaining the 2D pair of wall centerlines of the effective edge pair.

[0026] -Calculating the 2D pair of wall centerlines of the 3D model further includes: retrieving the lowest vertex among the vertices of the 3D wall in the wall direction; calculating a plane including the lowest vertex and having the wall direction as the normal; projecting each 2D pair of wall centerlines onto the calculated plane, performing the projection according to the wall direction, thereby obtaining a set of projected 2D pairs of wall centerlines; merging the projected 2D pairs of wall centerlines; and removing vertices that are starting points and / or ending points and / or not on sharp corners on the merged projected 2D pairs of wall centerlines, thereby obtaining the 2D wall centerlines of the 3D model;

[0027] - Projecting each of the 2D pair of wall centerlines on the calculated plane further includes: detecting an overlap between at least two projected 2D pair of wall centerlines; if the entirety of one projected 2D pair of wall centerlines overlaps with another projected 2D pair of wall centerlines, then: selecting one point from the nearest starting point and ending point of the at least two projected 2D pair of wall centerlines that overlap; calculating a first cutting line passing through the nearest starting point and perpendicular to the projection plane, and a second cutting line passing through the nearest ending point and perpendicular to the projection plane; using the two cutting lines to cut the 2D pair of wall centerlines of the other projection; and stitching the 2D pair of wall centerlines of the one projection to the 2D pair of wall centerlines of the other projection; if a part of the 2D pair of wall centerlines of the one projection overlaps with the 2D pair of wall centerlines of the other projection, then: selecting one point from the nearest starting point or ending point of the at least two projected 2D pair of wall centerlines that overlap; calculating a third cutting line passing through the nearest starting point and perpendicular to the projection plane; using the third cutting line to cut the 2D pair of wall centerlines of the other projection; and stitching the 2D pair of wall centerlines of the one projection to the 2D pair of wall centerlines of the other projection;

[0028] - For the domain: retrieving the starting point and ending point of the 2D wall centerlines of the 3D model and the respective tangent directions of the starting point and the ending point; for each starting point: calculating a semi-infinite line, using the starting point as the start of the semi-infinite line and the tangent direction of the starting point as the self-direction of the semi-infinite line; calculating the intersection point of the semi-infinite line and the 2D wall centerlines of the 3D model; calculating the distance between the intersection point and the starting point; if the calculated distance is less than the average thickness, then segmenting the semi-infinite line, thereby connecting the starting point and the intersection point with a line segment; for each ending point: calculating a semi-infinite line, the semi-infinite line using the ending point as the start of the semi-infinite line and the tangent direction of the ending point as the self-direction of the semi-infinite line; calculating the intersection point of the semi-infinite line and the 2D wall centerlines of the 3D model; calculating the distance between the intersection point and the ending point; if the calculated distance is less than the average thickness, then segmenting the semi-infinite line, thereby connecting the ending point and the intersection point with a line segment; calculating the 2D wall centerlines of the 3D model by combining the calculated 2D pair of wall centerlines of the valid edge pairs and the calculated line segments.

[0029] There is also provided a computer program including instructions for performing the method.

[0030] There is also provided a computer-readable storage medium having a computer program recorded thereon.

[0031] There is also provided a system that includes a processor coupled to a memory and a graphical user interface, and a computer program is recorded on the memory. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] Non-limiting examples will now be described with reference to the accompanying drawings, where:

[0033] Figure 1 A flowchart showing an example of the method is shown;

[0034] Figure 2 An example of the graphical user interface of the system is shown;

[0035] Figure 3 An example of the system is shown;

[0036] Figures 4 to 37 An example of the method is shown. DETAILED DESCRIPTION

[0037] With reference to Figure 1 the flowchart, a computer-implemented method is presented for designing a 2D wall centerline from at least one 3D wall of a 3D model representing a building to be constructed. The method includes obtaining at least one 3D volume, where each 3D volume represents at least one 3D wall. Each 3D wall is constructed with faces bounded by edges and connected by vertices forming the edges, and each face has a normal vector. The method also includes obtaining a wall direction representing the wall elevation direction, which is a vector. The wall direction is the same for all 3D walls. For each 3D wall, the faces are retrieved; the retrieved faces have their respective negative scalars, which have a directionality opposite to that of the wall direction. The method also includes, for each edge of each face among the retrieved faces, identifying one of the edges among the edges of the retrieved face, thereby forming a valid edge pair for one of the 3D walls in the at least one 3D wall of the 3D model. Next, the method also includes calculating a 2D pair of wall centerlines for each valid pair that has been formed. Then, the method includes calculating the 2D wall centerline of the 3D model by merging the calculated 2D pairs of wall centerlines of the valid pairs.

[0038] This method improves the design of the 2D wall centerline from at least one 3D wall of a 3D model representing a building to be constructed. Notably, the method is fully automated and requires no user input (e.g., correction) after the parameter input step. Additionally, the method does not require knowledge of the history of the 3D walls; the 2D wall centerline of the 3D model is calculated without knowing any past operations that may have been performed on the 3D walls (such as the geometry of the 3D walls).

[0039] Further advantages will become more apparent in the following description. Notably, with the wireframe algorithm, many walls can be managed together, and openings in the walls are considered. The wireframe algorithm is also much faster than standard surface-based prior art.

[0040] The present invention has a direct impact on the construction of walls: the exact amount of concrete required for casting the walls can be determined, thus avoiding situations where there is not enough concrete available during the casting process, which may lead to weakening of the walls in the construction.

[0041] The method is computer-implemented. This means that the steps (or all steps) of the method are performed by at least one computer or any system, etc. Thus, the steps of the method are performed by a computer, possibly fully automatically or semi-automatically. In an example, at least some steps of the method can be triggered by user-computer interaction (e.g., the step of inputting parameters). The level of user-computer interaction required can depend on the level of automation foreseen and be balanced with the need to achieve the user's wishes. In an example, the level can be user-defined and / or pre-defined.

[0042] A typical example of the computer implementation of the method is to use a system suitable for this purpose to execute the method. The system can include a processor coupled to a memory and a graphical user interface (GUI), and a computer program including instructions for executing the method is recorded on the memory. The memory can also store a database. The memory is any hardware suitable for such storage and may include several physically different parts (e.g., one for the program and possibly one for the database).

[0043] The method generally manipulates 3D modeling objects, and 3D volumes each represent at least one 3D wall. A modeling object is any object defined by data, such as data stored in a database. By extension, the expression "modeling object" specifies the data itself. Depending on the type of system, modeling objects can be defined by different kinds of data. The system can actually be any combination of CAD systems, CAE systems, CAM systems, PDM systems, and / or PLM systems. In those different systems, modeling objects are defined by the corresponding data. Thus, one can speak of CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not mutually exclusive, as modeling objects can be defined by data corresponding to any combination of these systems. Thus, the system can be both a CAD system and a PLM system, as will be apparent from the definitions of such systems provided below.

[0044] In the context of CAD systems, it additionally means any system that is at least suitable for designing modeling objects based on a graphical representation of the modeling objects, such as CATIA. In this case, the data defining the modeling objects includes data that allows for the representation of the modeling objects. A CAD system can provide a representation of a CAD modeling object, for example, using edges or lines (in some cases using faces or surfaces). The lines, edges, or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications according to which geometries can be generated, which in turn allows for the generation of representations. The specifications of the modeling objects can be stored in a single CAD file or multiple CAD files. The typical size of a file representing a modeling object in a CAD system is in the range of one megabyte per part. And the modeling objects can typically be assemblies of thousands of parts.

[0045] In the context of CAD, the modeling objects can typically be 3D modeling objects, such as representing a product, such as a part or an assembly of parts, or perhaps an assembly of a product. By "3D modeling object", it means any object modeled by data that allows for its 3D representation. The 3D representation allows for viewing the part from all angles. For example, when 3D represented, a 3D modeling object can be manipulated and rotated about any of its axes or about any axis in the screen on which the representation is displayed. This clearly excludes 2D icons that are not 3D modeled. The display of the 3D representation facilitates design (i.e., increases the speed at which the designer statistically completes their task). This accelerates the manufacturing process in the industry because the design of the product is part of the manufacturing process.

[0046] The 3D modeling object can represent the geometry of a product, a wall that is to be manufactured (i.e., constructed) in the real world after the virtual design of the product, the wall has been completed using, for example, a CAD software solution or a CAD system. The CAD software solution allows for the design of products in various and infinite industrial fields, including: aerospace, architecture, construction, consumer goods, high-tech devices, industrial equipment, transportation, ships, and / or offshore oil / gas production or transportation. Thus, the 3D modeling objects manipulated by this method represent industrial products, walls.

[0047] A CAD system can be history-based. In this case, the modeled object is further defined by data including the history of geometric features. The modeled object can actually be designed by a physical person (i.e., the designer / user) using standard modeling features (e.g., extrusion, revolution, cutting, and / or round) and / or standard surfacing features (e.g., sweeping, blending, lofting, filling, deforming, and / or smoothing). Many CAD systems that support such modeling capabilities are history-based systems. This means that the creation history of the design features is typically saved through an acyclic data flow that links the geometric features together through input and output links. Since the 1980s, the history-based modeling paradigm has been well-known. The modeled object is described by two persistent data representations: the history and the B-rep (i.e., boundary representation). The B-rep is the result of calculations defined in the history. When representing the modeled object, the shape of the part displayed on the computer screen is the B-rep (e.g., tessellation). The history of the part is the design intent. Basically, the history collects information about the operations that the modeled object has undergone. The B-rep can be saved together with the history to make it easier to display complex parts. The history can be saved together with the B-rep to allow design changes to the part according to the design intent.

[0048] In terms of a PLM system, it additionally means any system suitable for managing modeled objects representing physical manufactured products (or products to be manufactured). Thus, in a PLM system, the modeled object is defined by data suitable for manufacturing a physical object. These can typically be dimension values and / or tolerance values. It is indeed better to have such values for the correct manufacturing of the object.

[0049] In terms of a CAM solution, it additionally means any solution, software for hardware, suitable for managing the manufacturing data of a product. The manufacturing data typically includes data related to the product to be manufactured, the manufacturing process, and the required resources. The CAM solution is used to plan and optimize the entire manufacturing process of the product. For example, it can provide the CAM user with information about feasibility, the duration of the manufacturing process, or the quantity of resources (such as a specific robot) that can be used at a specific step of the manufacturing process; and thus allows decisions about management or required investments. CAM is a subsequent process after the CAD process and a potential CAE process. Such a CAM solution is provided by Dassault Systèmes under the trademark

[0050] In terms of CAE solutions, it also means any solution, software for hardware, suitable for analyzing the physical behavior of a modeling object. A well-known and widely used CAE technique is the Finite Element Method (FEM), which generally involves dividing a modeling object into elements whose physical behavior can be calculated and simulated by equations. This CAE solution is provided by Dassault Systèmes under the trademark Another developed CAE technique involves the modeling and analysis of complex systems consisting of multiple components from different physical fields without CAD geometry data. CAE solutions allow the simulation and thus the optimization, improvement, and validation of the product to be manufactured. This CAE solution is provided by Dassault Systèmes under the trademark

[0051]

[0052] PDM stands for Product Data Management. In terms of PDM solutions, it means any solution, software for hardware, suitable for managing all types of data related to a specific product. PDM solutions can be used by all participants involved in the product life cycle: mainly engineers, but also project managers, finance personnel, salespeople, and purchasers. PDM solutions are generally based on a product-oriented database. It allows participants to share consistent data about their products and thus prevents participants from using different data. This PDM solution is provided by Dassault Systèmes under the trademark

[0053] Figure 2 An example of the GUI of the system is shown, where the system is a CAD system.

[0054] The GUI 2100 can be a typical CAD-like interface, having standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. As is known in the art, such menus and toolbars contain a set of user-selectable icons, each icon being associated with one or more operations or functions. Some of these icons are associated with software tools, suitable for editing and / or processing the 3D modeling object 2000 displayed in the GUI 2100. The software tools can be grouped into multiple workbenches. Each workbench includes a subset of the software tools. In particular, one of the workbenches is an editing workbench suitable for editing the geometric features of the modeled product 2000. In operation, the designer can, for example, pre-select a part of the object 2000 and then initiate an operation (e.g., change dimensions, color, etc.) or edit geometric constraints by selecting an appropriate icon. For example, a typical CAD operation is the modeling of stamping or folding of a 3D modeling object displayed on the screen. The GUI can, for example, display data 2500 related to the product 2000 being displayed. In the example of this figure, the data 2500 shown as a "feature tree" and its 3D representation 2000 relate to a braking assembly including a brake caliper and a brake disc. The GUI can also show various types of graphical tools 2130, 2070, 2080, for example, for facilitating the 3D orientation of the object, for triggering the simulation of operations on the edited product or for rendering various attributes of the product 2000 being displayed. The cursor 2060 can be controlled by a haptic device to allow the user to interact with the graphical tools.

[0055] Figure 3 An example of the system is shown, where the system is a client computer system, such as the user's workstation.

[0056] The client computer of this example includes a central processing unit (CPU) 1010 connected to an internal communication bus (BUS) 1000, and a random access memory (RAM) 1070 also connected to the BUS. The client computer may also be provided with a graphics processing unit (GPU) 1110 associated with a video random access memory 1100 connected to the BUS. The video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to a mass storage device such as a hard disk drive 1030. Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including for example semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks. Any of the foregoing may be supplemented or incorporated by a specially designed application specific integrated circuit (ASIC). A network adapter 1050 manages access to a network 1060. The client computer may also include a haptic device 1090 such as a cursor control device or a keyboard, etc. A cursor control device is used in the client computer to allow a user to selectively position a cursor at any desired location on a display 1080. In addition, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes a plurality of signal generating devices for inputting control signals to the system. Generally, the cursor control device may be a mouse, and the buttons of the mouse are used to generate signals. Optionally or additionally, the client computer system may include a touchpad and / or a touch screen.

[0057] A computer program may include instructions executable by a computer, the instructions including units for causing the above system to execute the method. The program may be recorded on any data storage medium, including the memory of the system. The program may be implemented, for example, in digital electronic circuitry or in computer hardware, firmware, software, or combinations thereof. The program may be implemented as an apparatus, such as a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The steps of the method may be performed by the programmable processor executing the instruction program to perform the functions of the method by operating on input data and generating output. Thus, the processor may be programmable and coupled to receive data and instructions from, and to send data and instructions to, a data storage system, at least one input device, and at least one output device. If desired, the application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language. In any case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. The application of the program on the system in any case produces instructions for executing the method. Optionally, the computer program may be stored and executed on a server in a cloud computing environment, the server communicating with one or more clients via a network. In this case, the processing unit executes the instructions included in the program, thereby causing the method to be executed on the cloud computing environment.

[0058] "Deriving a 2D wall centerline from at least one 3D wall design representing a building intended to be constructed" designates any action or series of actions that form at least part of the process of refining a 3D modeling object, such as a wall. Thus, the method may include creating the 3D modeling object from scratch. Optionally, the method may include providing a previously created 3D modeling object and then modifying the 3D modeling object.

[0059] The method may include, during a manufacturing process, which may include producing a physical product corresponding to the modeling object, such as constructing a wall, after the method has been executed. In any case, the modeling object designed by the method may represent a manufacturing object. Thus, the modeling object may be a modeling entity (i.e., a modeling object representing an entity). The manufacturing object may be a product, such as a component or an assembly of components. Since the method improves the design of the modeling object, the method also improves the manufacturing of the product, thereby increasing the productivity of the manufacturing process.

[0060] Return reference Figure 1, S10, obtain at least one 3D volume. "Obtain" means that data for representing and / or manipulating the 3D volume is available to the system performing the method, e.g., stored in the memory of a CAD system. Each 3D volume represents at least one 3D wall; a 3D wall is an object to be constructed. Each 3D wall is constructed with (i.e., includes) faces bounded by edges and connected by vertices forming the edges. In addition, each face has a normal vector. The normal vector can be obtained together with other data about the 3D wall or can be calculated by the system.

[0061] Referring to Figure 4 , shows a 3D wall that can be displayed on the Figure 2 GUI shown. The 3D wall has a geometry that defines the 3D volume and includes, in this example, eight vertices, twelve edges, and six faces in this example. The volume is bounded by the faces, the faces themselves are bounded by the edges, and the edges themselves are bounded by the vertices.

[0062] Now referring to Figure 5 , shows an example of the input parameters of the 3D wall, and examples of the input parameters of the 3D wall include the thickness of the 3D wall, the length of the 3D wall, and the height of the 3D wall. The definition of the thickness of the 3D wall is self-explanatory: the thickness is the gap between the two sides of the wall. The height of the 3D wall represents the elevation of the 3D wall. The length of the 3D wall is the length of the area covered by the wall on the ground (as seen by the system and as performed when constructing the wall).

[0063] In the example, the thickness of the wall can be less than the length divided by 2. This ensures that the 3D wall has the shape of a wall encountered in the real world and not, for example, a cylinder.

[0064] Thus, in the example, each 3D wall can have, as input parameters, a height representing the elevation of the wall, a length representing the area covered by the wall on the ground, and a thickness less than half the length, as well as faces such that any normal vector on the faces has the same direction with respect to the wall direction.

[0065] In the example, one or more 3D walls can include an opening, as shown in Figure 6 . The opening describes the volume required to insert a door, window,... inside the wall. Geometrically, the opening can be considered a hole in the wall in the thickness direction. In these examples, the opening can be defined by four flat surfaces, which is the most common case in a building. In these examples, the opening can be a bull’s eye window; preprocessing of this type of opening is performed by considering the opening as a cut along a plane perpendicular to the wall direction, which is made at the widest part of the bull’s eye window.

[0066] As shown in Figure 7As shown on the left side of, the 3D volume represents a 3D wall; two volumes are shown here, and each volume represents a 3D wall. At Figure 7 On the right side of, a single 3D volume represents two walls.

[0067] Returning to Figure 1 the flowchart of, S20, obtaining the wall direction. The wall direction represents the direction of the wall elevation and is a vector. In the example, a single wall direction can be obtained for all 3D volumes; in practice, the walls of a building all have the same wall elevation. In the example, a wall direction can be provided for one or more (but not all) 3D volumes; in this case, the next steps of the method will use the wall direction associated with one or more (but not all) 3D volumes when performing operations (such as calculations) on the 3D walls of the 3D volumes. Having a single wall direction or two or more wall directions does not change the method of the present invention. The wall direction (or wall directions) is obtained, for example, provided with data for representing and / or manipulating 3D volumes. In the example, the wall direction can be inferred from the geometry of the 3D volume, for example, automatically detecting the wall direction from the 3D volume.

[0068] The wall direction can be used to define (or infer) the direction of the height of the 3D wall. In this case, the other dimensions ("length" and "thickness") of the 3D wall are defined relative to the wall direction, as Figure 8 shown on.

[0069] It will be understood that step S10 can be performed before step S20 and can be performed conversely or simultaneously.

[0070] Now discussing further examples of providing 3D walls in the input of the (obtained) method, and the use of the normal vector and the wall direction associated with each face of the 3D wall. In the example, only walls that do not contain a "face undercut" in the specified wall direction can be obtained. That is, for each face of the 3D wall geometry, a face should not include both a normal vector pointing in the same direction as the wall direction and another normal vector pointing in the opposite direction. This is shown, for example, in Figure 10 where the two faces on the left and in the middle of the figure have any normal vectors pointing in the same direction. For the face represented on the Figure 10 right side of, this is not the case, where the two normal vectors have opposite directions. If the wall contains a "face undercut", the method can be stopped, or the algorithm can ignore the face. If it is ignored, a warning can be displayed to the user to notify the user that there is at least one "face undercut".

[0071] The 3D wall can contain non-planar faces as long as they comply with the previous rules. This is shown inFigure 9 is shown above, where any normal vector on the non-planar surface will have the same direction.

[0072] The input of the algorithms already elaborated with reference to S10 and S20 is now discussed for step S30. The following calculations are performed for each 3D wall. A 3D wall can be represented by a volume, or two or more 3D walls can be part of a volume, as discussed with reference to Figure 7 what has been discussed.

[0073] For each 3D wall, retrieve the faces that define the wall, where each retrieved face has a corresponding negative scalar that has a directionality opposite to the directionality of the wall direction. This allows defining which faces of the wall are "downward", i.e., facing the ground. These faces can be stored in a list named "downward faces". Figure 11 An example of four identified faces with negative scalars having a directionality opposite to the directionality of the wall direction is shown.

[0074] In the example, S30 can be implemented as follows. For each face of the obtained 3D wall, calculate the center point of the face, e.g., the centroid of the face. Then, evaluate the normal vector of the face, pointing outside the volume. If the scalar product between this vector and the wall direction is negative, retain the face, e.g., it can be added to the list of "downward faces".

[0075] In the example, the following processing can be performed on the faces that have been added to the list of "downward faces", i.e., on the faces of the retrieved 3D wall. The retrieved faces can be "stitched" together such that consecutive faces are merged into a single face. This operation allows removing internal edges and simplifying external edges.

[0076] This is shown in Figure 12 above, Figure 12 showing three 3D walls for each of which a face 120, 122, 124 has been retrieved. The three retrieved faces are merged by removing the internal edges 126, 128. An internal edge is an edge that connects two faces that are in contact with each other. Thus, an internal edge is shared by two faces. Once the faces are merged, they form a new single face called domain 129. It will be understood that a domain is formed by a set of connected edges that altogether enclose the new single face; this set of connected edges is also called a band.

[0077] Figure 14 Three domains, namely domain 1, domain 2, and domain 3, are shown, and each domain includes a set of edges that form a band.

[0078] Figure 13It is a close-up view of faces 122, 124 and inner edge 126. The left side of this figure shows a part of the domain due to the removal of inner edge 126. The right side shows an example of the simplified edge of the band obtained due to the removal of inner edge 126. The simplified edge can be obtained by merging two consecutive and connected edges, for example, by removing the points (vertices) of inner edge 126 that are shared with one edge belonging to the band. For example, vertex 123 is retained because vertex 123 is shared by two edges forming the band (and also shared with inner edge 126).

[0079] Back to Figure 1 , at S40, identify valid edge pairs. A pair of valid edges is a pair of edges on each side of a segment of a 3D wall. The so-called valid edge pairs contribute to the length of the wall but not to the thickness of the wall. In other words, a pair of valid edges includes the edges of the 3D wall that contribute to the coverage area of the 3D wall on the ground. Based on a pair of valid edges, the coverage area of the 3D wall can be determined.

[0080] To find those valid edge pairs, each edge of each retrieved face is tested as follows. For each edge of one of the retrieved faces (which is also called the "reference edge" when being tested), identify an edge among the other edges of the retrieved face such that the reference edge and the edge selected among the other edges form a valid edge pair of a 3D wall in at least one 3D wall representing the 3D model. The output of S40 provides edge pairs of the domain, and each edge pair defines a 3D wall. Thus, each edge of the retrieved face is tested with the other edges (i.e., it is the reference edge).

[0081] Finding these pairs can be complex, especially when the building to be constructed has many small rooms, corners and crevices, closets... Now discuss examples of the algorithm. One or more of these examples can be combined. The following examples will be discussed with reference to Figure 15 an example of the domain of

[0082] In the example, identifying an edge among the other edges of the retrieved face can rely on the comparison of the angles between two edges. An angle tolerance is used for this purpose. The angle tolerance defines the maximum angle at which two segments can be matched together to define a pair of valid edges representing a 3D wall. The angle tolerance (denoted as θ1) can be provided at the start of the method, before S30 or at the start of the execution of this example. The value of the angle tolerance can be provided upon user action or automatically provided with a default value. In these examples, good values for this parameter can include being in the range of [10°; 30°]. In the example, the angle tolerance can have a value substantially equal to 25°; this value shows the best result in the experiments conducted by the inventors.

[0083] In these examples, two lines can be calculated, one line for the reference edge and one line for each of the other edges of the retrieved face being tested. Thus, for each edge (reference edge) of each retrieved face, a first line passing through the edge is calculated; for each of the other edges of the retrieved face to be tested, a second line passing through the other edge being tested is also calculated. It will be understood that the second line is calculated for each other edge. The expression "passing through" means that the first line is parallel to the reference edge and the second line is parallel to the other edge being tested. Thus, "passing through" can be interpreted as the first line and the second line merging with their respective edges, or merging substantially with the edges (e.g., near the edges) and being parallel to the edges.

[0084] Then, the angle between the first line and the second line can be calculated.

[0085] Next, it can be determined whether the calculated angle exceeds (is greater than) a predetermined angular tolerance θ1°, and whether the calculated angle is not included in the range [180°; 180° - θ1°]. If so, the edge of the second line (the edge associated with the second line) is discarded. Thus, the system knows that the edges (associated with the first line and the second line) of the first line and the second line are not a valid edge pair.

[0086] Still in the example of angle comparison between two edges, points (i.e., vertices) can be obtained on the reference edge. The first point located at the center of the reference edge is called the first center point, one of the two vertices of the reference edge is selected as the first starting point, and the second of the two vertices of the reference edge is selected as the first ending point. This is shown in Figure 16 where, Figure 16 the edge 150 of the face of the 3D wall of the domain of

[0087] has been selected as the reference edge. This edge includes two vertices 151, 153 that are respectively selected as the first starting point and the first ending point. A center point 152 is added at the center of the edge 150. It will be understood that the center point 152 is not a new vertex of the edge and the original edge 150 is not subdivided. The starting point, the ending point, and the center point are logical points for performing the angle comparison. Figure 17 For each of the other edges of the retrieved face, a second center point, a second starting point, and a second ending point are obtained. This is performed in the same manner as for the edge 150, as shown in

[0088] Then, as shown in Figure 18As shown in the figure, the first line 154 is calculated. The first line is calculated such that the first line includes a first starting point 151 and a first ending point 153. It will be understood that the first line also includes the center point 152 of the edge 150. Thus, the first line passes through the first starting point and the first ending point.

[0089] Similarly, still referring to Figure 18 , the second line 155 is calculated, and the second line 155 passes through the second starting point and the second ending point.

[0090] Next, the angle between the first line and the second line is calculated in order to decide whether to retain or discard another edge, as discussed above.

[0091] As Figure 19 shown above, the value of the angle is 0°, and in this example, it is lower than the predetermined angular tolerance θ1° with a value of 25°. The two edges form a valid edge pair.

[0092] In Figure 20 the example, the reference edge 150 is tested with another edge 190 for which the corresponding second starting point, second ending point, and second center point have been calculated. The value of the angle is 90°, which is higher than the predetermined angular tolerance θ1° (25° in this example) and is not included in the range [180°; 180° - θ1°], which involves the discarding of the edge 190.

[0093] The use of the starting point, center point, and ending point ensures that the calculated line merges with the edge. In addition, other algorithms to be discussed rely on these specific points.

[0094] It will be understood that the choice of which vertex of the edge will be the starting point or the ending point is an arbitrary choice and does not change the result of the algorithm.

[0095] In the example, identifying one of the other edges of the retrieved face can depend on the thickness of the wall. In these examples, the distance between the first center point of the reference edge and another edge of the second center point can be calculated. Optionally, the distance between the second center point of the other edge and the reference edge associated with the first center point can be calculated. In other words, the distance between one of the two center points and the opposite edge is measured. If the calculated distance is lower than the predetermined thickness value T1 of the 3D wall, the edge of the second center point (the edge associated with the second center point) is discarded. Thus, the system knows that the edges of the first line and the second line (the edges associated with the first line and the second line) do not form a valid edge pair.

[0096] The measurement of the distance can be performed by using an orthogonal line starting from the center point of one of the two edges and intersecting the opposite edge, and the measurement is made between the center point and the intersection point.

[0097] In these examples, the predetermined thickness value T1 may have a value included between [1 mm; 5 mm], and more preferably, the predetermined thickness value T1 has a value of 1 mm; this value shows the best result in the experiments conducted by the inventors.

[0098] Figure 21 An example of measuring the distance between the central edge of another edge 190 and the reference edge 150 is shown. The measured distance exceeds the predetermined thickness value T1, and the edge 190 is retained. The edge 150 and the edge 190 thus form a valid edge pair.

[0099] Figure 22 An example of measuring the distance between the center of the reference edge 210 of the face of the 3D wall and the center point 212 of another edge 211 is shown. When the measured distance (0 mm) is lower than the predetermined thickness value T1, the edge 211 is discarded.

[0100] In the example, identifying one of the other edges of the retrieved face may depend on the orientation of the reference edge and another edge. In these examples, the tested edge includes a starting point, an ending point, and a center point; the reference edge includes a first starting point, a first ending point, and a center point; another edge includes a second starting point, a second ending point, and a center point. Four distances between the reference edge and another edge among the edges of the face of the 3D wall are calculated, namely:

[0101] - The first distance between the first starting point and the second starting point;

[0102] - The second distance between the first starting point and the second ending point;

[0103] - The third distance between the first ending point and the second starting point; and

[0104] - The fourth distance between the first ending point and the second ending point.

[0105] After calculating the four distances, determine the minimum distance among these four distances. The two points for which the minimum distance has been calculated form a pair of points.

[0106] Next, calculate vectors for each point in the pair of points. The first vector starts from the first point of the two points in the pair of points to the starting point or the ending point of the edge to which the first point of the pair belongs. The second vector starts from the second point in the pair of points to the starting point or the ending point of the edge to which the second point in the pair belongs. Thus, two vectors are obtained.

[0107] Then, calculate the scalar product between the two obtained vectors. If the scalar product is negative, discard the other edge; the reference edge and the other edge do not form a valid edge pair representing a 3D wall in at least one 3D wall of the 3D model.

[0108] Figure 23 An example of the recognition of one of the edges under discussion is shown. Two edges are tested to determine if they together form a valid edge pair, namely the reference edge 150 and another edge 190. A pair of points 151, 191 has the closest distance. In this example, points 153, 193 have a distance equal to the distance measured for the pair of points 151, 191; when this occurs, one of the two pairs of potential points is selected, here the pair of points 151, 191. Two vectors are obtained. The first vector extends from point 151 to point 153, and the second vector extends from point 191 to point 193. The scalar product is positive, so the other edge 190 is retained: edge 150 and edge 190 form a valid edge pair.

[0109] Figure 24 Another example of recognizing one of the other edges depending on the orientation of the edges being compared is shown. In this example, the reference edge is 240, and the edge being tested is 241. Points 243 and point 242 form a pair of points. The vector of the reference edge 240 extends from point 243 to point 245, and the vector of the tested edge extends from point 242 to point 244. The directions of the two vectors are opposite, and the scalar product is negative. Therefore, the other edge 241 is discarded.

[0110] In the example, the recognition of one of the other edges of the retrieved face can depend on the detection of the presence of a part of the domain between the edges being tested. In these examples, the edges being tested at least include the center points; it is to be understood that they can additionally include the starting point and the ending point. In these examples, a line segment connecting the first center point of the reference edge and the second center point of the other edge is calculated. Next, if no intersection between the calculated line segment and the domain is detected, the other edge is discarded, and the two edges do not form a valid edge pair.

[0111] Figure 25 An example of recognition depending on the detection of the presence of a part of the domain between the edges being tested is shown. Edge 150 is the reference edge, and edge 190 is the other edge. The two edges respectively have center points 152 and 194. A line segment connecting center points 152, 194 is calculated, and this line segment does not intersect the domain. Edge 190 is therefore discarded.

[0112] Figure 26 Another example of recognition depending on the detection of the presence of a part of the domain between the edges being tested is shown. The reference edge 150 and the other edge 190 are on either side of a 3D wall: the line segment connecting center points 152, 194 intersects the domain. The other edge 190 is not discarded.

[0113] In these examples, the detection can include detecting whether the midpoint of a line segment connecting a first center point of a reference edge and a second center point of another edge is calculated. This improves the intersection detection.

[0114] In an example, a reference minimum distance can be calculated. The reference minimum distance is obtained by summing:

[0115] - The minimum distances obtained in the same way as discussed with reference Figure 23 and Figure 24 : Four distances are calculated between the reference edge and another edge among the edges of the face of the 3D wall:

[0116] -- A first distance between a first starting point and a second starting point;

[0117] -- A second distance between the first starting point and a second ending point;

[0118] -- A third distance between the first ending point and the second starting point; and

[0119] -- A fourth distance between the first ending point and the second ending point;

[0120] And the minimum (shortest) distance between these four distances is determined;

[0121] - The first distance;

[0122] - The second distance; and

[0123] - The distance between the first center point and the second center point.

[0124] Once the sum has been calculated, the other edge is stored in the valid candidate list as a valid candidate together with its previously calculated reference minimum distance. Finally, one of the other edges in the list is selected, and this one edge has the minimum reference minimum distance. The reference edge and the selected other edge form a valid edge pair.

[0125] In an example, identifying one of the other edges of the retrieved face can include filtering out edge pairs that define the wall in the thickness direction, as Figure 27 shown above. In fact, a combination of one or more previous algorithms results in identifying edge 270 and edge 272 as forming a valid edge pair. It may be required to discard these edge pairs even if they are invalid.

[0126] The identification of unvalidated edge pairs can include calculating the distance D1 between a first line and a second line. This is equivalent to calculating the distance D1 between the reference edge and another edge. It will be understood that the first line and the second line (or edge) may not be parallel, such that the distance D1 can vary depending on the measurement location; the distance D1 can be the average of several measurements.

[0127] Next, obtain the length L1 of the edge supporting the first line and the length L2 of the edge supporting the second line.

[0128] Then perform the following. If the distance D1 is greater than the length L1 and / or the length L2, discard the edge of the first line and the edge of the second line; the edge of the first line and the edge of the second line are considered not to be a valid edge pair.

[0129] This is shown in Figure 28 Reference edge 150 includes two vertices 151, 153 that coincide with the start / end points of edge 150. Another edge 194 includes two vertices 191, 193 that coincide with the start / end points of edge 194. Obtain the distance L1 between vertices 151, 153 and the distance L2 between vertices 191, 193. Calculate the distance D1 between edges 150, 194. The distance D1 can be obtained as discussed in the example where identifying one of the other edges of the retrieved face can depend on the thickness of the wall. Optionally, D1 can be measured between the first line and the second line, where the first line passes through the first start point and the first end point of the reference edge 150, and the second line passes through the second start point and the second end point of the other edge 194. Since D1 is less than L1 and / or L2, edges 150, 194 are used for a pair of valid edges.

[0130] Figure 29 An opposite example of the example shown in Figure 28 is shown. The measured distance D1 is greater than the distance L1 and / or L2. Therefore, the reference edge and the other edge are not a valid edge pair.

[0131] At this step of the method, one or more algorithms have been executed that are used to identify, for each edge of each face in the retrieved faces, one of the edges among the edges of the retrieved faces, thereby forming a valid edge pair for a 3D wall in at least one 3D wall representing the 3D model. In the example, all these algorithms are combined and executed in the same order in which they have been presented.

[0132] Returning to reference Figure 1 , S50, now discuss calculating the centerline for each valid pair that has been previously formed.

[0133] Now referring to Figure 30Discuss an example of calculating the 2D pair wall centerline. A first line segment 300 can be calculated between the first starting point 151 of the reference edge 150 and the second starting point 191 of another edge 190. A second line segment 302 can be calculated between the first ending point 153 of the reference edge 150 and the second ending point 193 of another edge 190. The calculation of the first and second line segments depends on an arbitrary choice of which points of each edge are the starting / ending points. Thus, and optionally, the first line segment 300 can be calculated by choosing one of the two vertices 151 of the reference edge 150, determining the nearest vertex of the other edge (191 in this example), and the same for the second vertex 153 of the reference edge 150 used to calculate the second line segment 302.

[0134] Having calculated the two line segments, a first midpoint 301 of the first line segment can be calculated, and a second midpoint 303 of the second line segment can be calculated.

[0135] Next, a line segment 304 connecting the first midpoint 301 and the second midpoint 303 can be calculated. The line segment 304 is the 2D pair wall centerline of the valid pair.

[0136] In these examples of calculating the 2D pair wall centerline, the following verification can be performed to discard invalid small edge pairs that may still exist. This operation is performed once all the 2D pair wall centerlines of the valid pairs have been calculated.

[0137] Calculate the average wall segment pair thickness based on the thickness of each wall segment pair of each 2D pair wall centerline. The wall segment pair thickness of the 2D pair wall centerline is obtained by calculating the average length of the first line segment 300 and the second line segment 302.

[0138] Having obtained the wall segment pair thickness of each 2D pair wall centerline, compare the length of each valid pair with the average wall segment pair thickness. This comparison has been performed, and if the length of one of the 2D pair wall centerlines is less than the calculated average wall segment pair thickness, then discard the 2D pair wall centerline. The invalid small edge pairs are thus filtered and removed.

[0139] Return reference Figure 1 , S60, calculate the 2D wall centerline of the 3D model. This is performed by merging the 2D pair wall centerlines that have been calculated; it is to be understood that the 2D pair wall centerlines that have been discarded are not part of the merging process. Merging means connecting or stitching two consecutive 2D wall centerlines to form a band of the domain.

[0140] In the example, calculating the 2D pair wall centerline of the 3D model can also be performed on the plane on which the 2D pair wall centerline is projected, thus ensuring the correct definition of the domain.

[0141] In these examples, the lowest vertex in the wall direction among the vertices of the 3D wall is retrieved. Here, the lowest vertex is determined with respect to the wall direction that represents the wall elevation direction and is a vector.

[0142] Once retrieved, the plane including the lowest vertex is calculated and has the wall direction as its normal. These two parameters are sufficient to calculate the plane.

[0143] Then, each 2D pair of wall centerlines is projected onto the calculated plane. The projection is performed according to the wall direction. Thus, all 2D pairs of wall centerlines are on the plane and form a set of projected 2D pairs of wall centerlines.

[0144] Next, the projected 2D pairs of wall centerlines are merged. This is performed as already discussed.

[0145] Then vertex processing is performed on the merged (and projected) 2D pairs of wall centerlines. It includes removing vertices that are starting points and / or end points and / or not at sharp angles. A sharp angle is the connection point of two vertices where there is an angular turn, i.e., the two edges do not have the same tangential direction at the connection point.

[0146] Figure 31 The projected 2D pairs of wall centerlines are shown. Vertex 310 is removed because it is a starting point or an end point. Vertex 312 is retained because the angle between the two edges connected to vertex 312 is a sharp angle.

[0147] has been referred to Figure 1 Examples of the present invention have been discussed. Thus, the output of the method provides a representation of the 3D model of the building intended to be constructed for the 2D wall centerlines of the 3D model. The output can be directly used for the purpose of calculating the exact amount of concrete for pouring one or more walls of the 3D model. Thus, the construction of the walls is improved because the walls can be poured in a single operation without having to wait for further delivery of concrete. Thus, there is no longer a need to use setting retarders to prevent the concrete from setting. In addition, this avoids waste of concrete because the life of the concrete leaving the cement factory is limited in time but also depends on various factors including temperature, humidity, harsh environmental conditions, transportation... Engineers and construction professionals need to follow proper practices in concrete mixing, transportation, pouring, and curing to ensure its durability and long-term performance. Thus, the present invention helps in constructing more durable walls, i.e., walls with improved long-term performance.

[0148] Now further examples are discussed. In the example, at least one 3D wall can include at least one non-planar face, as Figure 32 shown. The examples discussed still apply. The calculation of the wall segment baseline can be modified with non-planar faces. Instead of using the referenceFigure 30 The described midline algorithm, which can use more advanced methods to calculate the baseline of the wall segment. Instead of creating intermediate points on the segment at the starting and ending points of the edge, a blended surface is created to fill the space defined by the segment and the edge. Blended surfaces are well-known to those of ordinary skill in the CAD and 3D modeling arts. The blended surface will create isoparametric curves between the two edges, and each isoparametric curve will slowly transform Edge 1 into Edge 2 as it gets closer to Edge 2, as Figure 33 shown.

[0149] Accordingly, calculate the first segment between the first starting point and the second starting point, and the second segment between the first ending point and the second ending point. Next, calculate the first intermediate point of the first segment and the second intermediate point of the second segment. Then, connect the isoparametric curves. The isoparametric curves connect the first intermediate point and the second intermediate point, thereby obtaining a 2D pair of wall centerlines for the valid pair. Then, consider the resulting isoparametric curve as the wall segment baseline. Figure 34 The resulting isoparametric curve is shown, which will be the 2D wall centerline for a valid pair of edges of the 3D wall.

[0150] Now discuss a further example of projecting each 2D pair of wall centerlines onto the calculated plane. In some patterns, such as the "T" wall pattern, some gaps may have been created after projecting the 2D pair of wall centerlines onto the 2D plane, as Figure 35 shown above. These gaps may need to be filled. Now discuss examples of implementation.

[0151] For each domain, or at least for the domain including the gap to be filled, retrieve the starting and ending points of the 2D wall centerline of the 3D model and their respective tangent directions.

[0152] Then, perform the following steps for each starting point. Calculate a semi-infinite line. The semi-infinite line extends from the starting point and has the tangent direction of the starting point as its own direction. Calculate the intersection point of the semi-infinite line of the 3D model and the 2D wall centerline. Then, calculate the distance between the calculated intersection point and the starting point. Compare this distance with the average thickness. The average thickness can be the average wall segment pair thickness discussed with reference to S50. If the calculated distance is zero or less than the average thickness, divide the semi-infinite line into a line segment connecting the starting point and the intersection point. The gap is thus filled.

[0153] Next or simultaneously, perform the same steps for each ending point. Calculate a semi-infinite line that extends from the ending point and has the tangent direction of the ending point (as its own direction). Calculate the intersection point of the semi-infinite line of the 3D model and the 2D wall centerline. Then, calculate the distance between the calculated intersection point and the ending point. Compare this distance with the average thickness. If the calculated distance is less than the average thickness, divide the semi-infinite line into a line segment connecting the ending point and the intersection point.

[0154] Once the line segments for filling the gaps have been obtained, the 2D wall centerlines of the 3D model can be calculated. The calculation can be performed as discussed with reference to S60, except that when merging, in addition to using the 2D pair wall centerlines of the calculated valid pairs, the calculated line segments are also used.

[0155] Figure 36 An implementation discussed for the case of the starting point is shown.

[0156] In the example, the projection of each 2D pair wall centerline on the calculation plane may include a case where there is an overlap of the 2D pair wall centerlines with projections. This is shown in Figure 37 Four 2D pair wall centerlines have been calculated for the 3D wall. When projected onto the projection plane, two overlaps occur. The entire line 1 overlaps with a part of line 2, and a part of line 4 overlaps with a part of line 2. To handle the overlaps, in the example, the following algorithm can be used.

[0157] First, detect the overlap between at least two projected 2D pair wall centerlines.

[0158] Then, two cases can be considered. The first case is that the whole of one projected 2D pair wall centerline overlaps with another projected 2D pair wall centerline. The second case is that a part of one projected 2D pair wall centerline overlaps with another projected 2D pair wall centerline.

[0159] If the whole of one projected 2D pair wall centerline overlaps with another projected 2D pair wall centerline, the following steps are performed.

[0160] Select the nearest starting point and ending point of the 2D pair wall centerline of one of the at least two projected 2D pair wall centerlines that overlaps with the 2D pair wall centerline of another projection. For example, in Figure 37 line 1 overlaps with line 2, and the nearest starting point and ending point t are the starting point and ending point of line 1.

[0161] Calculate a first cutting line that passes through the nearest starting point and is perpendicular to the projection plane. Also calculate a second cutting line that passes through the nearest ending point and is perpendicular to the projection plane. In Figure 37 the first cutting line and the second cutting line are 370 and 371.

[0162] Use the two cutting lines to perform a cut on the 2D pair wall centerline of another projection. For example, cut Figure 37 the projected line 2, and remove the part of the projected line 2 that is included between the first cutting line 370 and the second cutting line 371.

[0163] Next, stitch the center line of a projected 2D pair of walls with the center line of another projected 2D pair of walls. For example, in Figure 37 the remaining two parts of projection line 1 are stitched with line 2.

[0164] If a part of the center line of a projected 2D pair of walls overlaps with the center line of another projected 2D pair of walls, perform the following steps.

[0165] Select one of the nearest starting points or ending points of a 2D pair of walls center line in at least two projected 2D pairs of walls center lines that overlap with the center line of another projected 2D pair of walls. For example, in Figure 37 line 4 overlaps with line 2, and the nearest starting point is the left edge of line 4.

[0166] Calculate the first cutting line passing through the nearest starting point and perpendicular to the projection plane. The first cutting line of the nearest starting point of line 4 is marked as 372 in Figure 37 .

[0167] Perform cutting on the center line of another projected 2D pair of walls by using the cutting line. Still referring to Figure 37 line 2 is cut by the cutting line 372. Remove the part of line 2 on the right side of the cutting line (i.e., the part of line 2 that overlaps with line 4).

[0168] Then, stitch the center line of this projected 2D pair of walls with the center line of another projected 2D pair of walls. In Figure 37 projection line 4 is stitched with the remaining part of line 2.

Claims

1. A computer-implemented method for deriving 2D wall centerlines from at least one 3D wall design of a 3D model representing a building to be constructed, comprising: - obtaining at least one 3D volume, each said 3D volume representing at least one 3D wall, each said 3D wall being configured to have faces bounded by edges and connected by vertices forming said edges, each said face having a normal vector; - obtaining a wall direction that represents the direction of the wall elevation and is a vector; - for each said 3D wall, retrieving the faces with corresponding negative scalars, said negative scalars having a directionality opposite to the directionality of said wall direction; - for each edge of each retrieved face, identifying one of the edges among the edges of the retrieved face, thereby forming a valid edge pair for one 3D wall of said at least one 3D wall of said 3D model; - for each said valid edge pair that has been formed, calculating a 2D pair of wall centerlines; and - calculating the 2D wall centerlines of said 3D model by merging the calculated 2D pairs of wall centerlines of said valid edge pairs.

2. The computer-implemented method according to claim 1, further comprising, before said identifying one of the edges among the edges of the retrieved face: - Merging the retrieved faces by removing internal edges, wherein, An internal edge is an edge connecting two faces that are in contact with each other, and the merged retrieved faces form a domain.

3. The computer-implemented method according to claim 1 or 2, wherein, Each said 3D wall has a height representing the wall elevation, a length representing the coverage area of the wall on the ground, and a thickness less than half of said length; and wherein, for each face of each said 3D wall, any normal vector on the face has the same direction with respect to said wall direction.

4. The computer-implemented method according to any one of claims 1 to 3, wherein, Said identifying one of the edges among the edges of the retrieved face comprises: - for each edge of each said retrieved face, calculating a first line passing through the edge; - for each edge among the other edges of the retrieved face, calculating a second line passing through the corresponding edge among the other edges of the retrieved face; - calculating the angle between said first line and said second line; - if the calculated angle exceeds a predetermined angle tolerance value θ1° and if the calculated angle is not included in the range [180°; 180° - θ1°], discarding the edge of the second line, thereby considering the edges of said first line and said second line not to be a valid edge pair, preferably, said predetermined angle tolerance value θ1° has a value included in [10°; 30°], more preferably, said predetermined angle tolerance value θ1° has a value of 25°.

5. The computer-implemented method according to claim 4, further comprising: - for each edge of each said retrieved face, obtaining a first center point, a first starting point, and a first ending point; - for each edge among the other edges of the retrieved face, obtaining a second center point, a second starting point, and a second ending point; and wherein: - calculating said first line includes calculating a line passing through said first starting point and said first ending point; and - calculating said second line includes calculating a line passing through said second starting point and said second ending point.

6. The computer-implemented method according to claim 5, wherein Identifying one of the edges of the retrieved surface further includes: - Calculating the distance between the first center point and the other edge of the second center point or calculating the distance between the second center point and the other edge of the first center point; - If the calculated distance is less than the predetermined thickness value T1 of the 3D wall, discard the edge of the second center point, so as to consider that the edges of the first center point and the second center point are not a valid edge pair. Preferably, the predetermined thickness value T1 has a value included in [1 mm; 5 mm]. More preferably, the predetermined thickness value T1 has a value of 1 mm.

7. The computer-implemented method according to claim 5 or 6, wherein, Identifying one of the edges of the retrieved surface further includes: - Calculating a first distance between the first start point and the second start point; - Calculating a second distance between the first start point and the second end point; - Calculating a third distance between the first end point and the second start point; - Calculating a fourth distance between the first end point and the second end point; - Determining the minimum distance among the first distance, the second distance, the third distance, and the fourth distance, so as to obtain a pair of points including the two points for which the minimum distance has been calculated; - For each point in the pair of points, calculating a vector from the point in the pair of points to the start point or end point of the edge to which the point in the pair of points belongs, so as to obtain two vectors; - Calculating the scalar product between the two obtained vectors; and - If the calculated scalar product is negative, discard the corresponding edge among the other edges of the retrieved surface.

8. The computer-implemented method according to claim 7 in combination with claim 2, wherein, Identifying one of the edges of the retrieved surface further includes: - Calculating the line segment connecting the first center point and the second center point; - If no intersection is detected between the calculated line segment and the domain, discard the corresponding edge among the other edges of the retrieved surface.

9. The computer-implemented method according to claim 7 or 8, further comprising: - Calculating a reference minimum distance by summing the determined minimum distance, the first distance, the second distance, and the distance between the first center point and the second center point; - Storing the corresponding edge among the other edges of the retrieved surface together with the calculated reference minimum distance of the corresponding edge as a valid candidate in the valid candidate list; And - Selecting, from the list, the valid candidate having the minimum calculated reference minimum distance, i.e., the valid edge pair.

10. The computer-implemented method according to any one of claims 5 to 9, wherein, Identifying one of the edges of the retrieved surface further includes: - Calculating the distance D1 between the first line and the second line; - Obtaining the length L1 of the edge supporting the first line; - Obtaining the length L2 of the edge supporting the second line; - If the distance D1 is greater than the length L1 and / or the length L2, discard the edge of the first line and the edge of the second line, so as to consider that the edge of the first line and the edge of the second line are not a valid edge pair.

11. The computer-implemented method according to any one of claims 5 to 10, wherein, Calculating the 2D pair wall center line includes: - Calculate a first line segment between the first starting point and the second starting point, and a second line segment between the first ending point and the second ending point; - Calculate a first midpoint of the first line segment and a second midpoint of the second line segment; - Calculate a line segment connecting the first midpoint and the second midpoint, thereby obtaining the 2D pair of wall centerlines of the valid edge pair; - Calculate an average wall line segment pair thickness from the thickness of each wall line segment pair of each 2D pair of wall centerlines in the 2D pair of wall centerlines; - Compare the length of the 2D pair of wall centerlines of each of the valid edge pairs with the calculated average wall line segment pair thickness; and - If the length of one of the 2D pairs of wall centerlines in the 2D pair of wall centerlines is less than the calculated average wall line segment pair thickness, discard the 2D pair of wall centerlines.

12. The computer-implemented method according to any one of claims 5 to 11, wherein, At least one 3D wall includes at least one non-planar surface, and the calculating the 2D pair of wall centerlines includes: - Calculate a first line segment between the first starting point and the second starting point, and a second line segment between the first ending point and the second ending point; - Calculate a first midpoint of the first line segment and a second midpoint of the second line segment; - Calculate an isoparametric curve connecting the first midpoint and the second midpoint, thereby obtaining the 2D pair of wall centerlines of the valid edge pair.

13. The computer-implemented method according to any one of claims 5 to 10, wherein, The calculating the 2D pair of wall centerlines of the 3D model further includes: - Retrieve the lowest vertex among the vertices of the 3D wall in the wall direction; - Calculate a plane including the lowest vertex and having the wall direction as the normal; - Project each of the 2D pairs of wall centerlines onto the calculated plane, performing the projection according to the wall direction, thereby obtaining a set of projected 2D pairs of wall centerlines; - Merge the projected 2D pairs of wall centerlines; and - On the merged projected 2D pairs of wall centerlines, remove vertices that are starting points and / or ending points and / or not on sharp corners, thereby obtaining the 2D wall centerlines of the 3D model.

14. The computer-implemented method according to claim 13, wherein, The projecting each of the 2D pairs of wall centerlines onto the calculated plane further includes: - Detect an overlap between at least two projected 2D pairs of wall centerlines; - If the whole of one projected 2D pair of wall centerlines overlaps with another projected 2D pair of wall centerlines, then: -- Select one point from the nearest starting point and ending point of the at least two overlapping projected 2D pairs of wall centerlines; -- Calculate a first cutting line passing through the nearest starting point and perpendicular to the projection plane, and a second cutting line passing through the nearest ending point and perpendicular to the projection plane; -- Cut the other projected 2D pair of wall centerlines using these two cutting lines; and -- Stitch the one projected 2D pair of wall centerlines with the other projected 2D pair of wall centerlines; - If a part of the one projected 2D pair of wall centerlines overlaps with the other projected 2D pair of wall centerlines, then: -- Select one point from the nearest starting point or ending point of the at least two overlapping projected 2D pairs of wall centerlines; -- Calculate a third cutting line passing through the nearest starting point and perpendicular to the projection plane; -- Cut the 2D pair of wall centerlines of the other projection using the third cutting line; and -- Stitch the 2D pair of wall centerlines of the one projection with the 2D pair of wall centerlines of the other projection.

15. The computer-implemented method according to any one of claims 5 to 14 in combination with claim 2, wherein, For the domain: - Retrieve the starting and ending points of the 2D wall centerlines of the 3D model and the respective tangent directions of the starting and ending points; - For each starting point: -- Calculate a semi-infinite line that uses the starting point as the start of the semi-infinite line and the tangent direction of the starting point as the self-direction of the semi-infinite line; -- Calculate the intersection point of the semi-infinite line and the 2D wall centerlines of the 3D model; -- Calculate the distance between the intersection point and the starting point; -- If the calculated distance is less than the average thickness, divide the semi-infinite line so as to connect the starting point and the intersection point with a line segment; - For each ending point: -- Calculate a semi-infinite line that uses the ending point as the start of the semi-infinite line and the tangent direction of the ending point as the self-direction of the semi-infinite line; -- Calculate the intersection point of the semi-infinite line and the 2D wall centerlines of the 3D model; -- Calculate the distance between the intersection point and the ending point; -- If the calculated distance is less than the average thickness, divide the semi-infinite line so as to connect the ending point and the intersection point with a line segment; - Calculate the 2D wall centerlines of the 3D model by combining the calculated 2D pairs of wall centerlines of the valid edge pairs and the calculated line segments.

16. A computer program comprising instructions which, when executed by a computer, cause the computer to perform the method according to any one of claims 1 to 15.

17. A computer-readable medium storing the computer program according to claim 16.

18. A system comprising a processing unit communicatively coupled to a memory and a graphical user interface, the computer program according to claim 16 being recorded on the memory.