Recovering 2d wall center line from 3D wall

A computer-implemented method automates the calculation of 2D wall centerlines from 3D models, addressing time and user input issues in existing methods, enhancing construction efficiency and accuracy.

JP2025118558APending Publication Date: 2025-08-13DASSAULT SYSTEMES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025013084
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-29
Filing Date
2025-01-29
Publication Date
2025-08-13

AI Technical Summary

Technical Problem

Current methods for designing 2D wall centerlines from 3D models of buildings are time-consuming and require significant user input, especially for buildings with numerous walls, as they rely on manual operations and complex calculations.

Method used

A computer-implemented method that automatically calculates 2D wall centerlines by identifying valid edge pairs, merging them, and projecting onto a plane, without requiring user input or knowledge of the 3D wall's history.

Benefits of technology

The method significantly reduces design time and user intervention, allowing efficient management of multiple walls and ensuring accurate concrete pouring quantities, thus preventing construction weaknesses.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025118558000001_ABST
    Figure 2025118558000001_ABST
Patent Text Reader

Abstract

To provide a computer-implemented method, system and program for designing a 2D wall center line from at least one 3D wall of a 3D model representing a building intended to be built.SOLUTION: A method comprises: obtaining at least one 3D wall; obtaining a wall direction representing a direction of a wall elevation and being a vector; for each 3D wall, obtaining faces having their respective negative scalars with a direction opposite to the wall direction; for each edge of each of the obtained faces, identifying one edge among edges of the obtained faces, thereby forming a valid pair of edges; for each of the valid pairs formed, computing a 2D pair wall center line; and computing the 2D wall center line of the 3D model by merging the computed 2D pair wall center lines of the valid pairs.SELECTED DRAWING: Figure 1
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 designing a 2D wall centerline from at least one 3D wall of a 3D model representing a to-be-constructed building. [Background technology]

[0002] Numerous systems and programs for designing, engineering, and manufacturing objects are available on the market. CAD is an acronym for Computer-Aided Design, which refers to software solutions for designing objects. CAE is an acronym for Computer-Aided Engineering, which refers to software solutions for simulating the physical behavior of future products. CAM is an acronym for Computer-Aided Manufacturing, which refers to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, graphical user interfaces play a key role in the efficiency of the technology. These technologies can be incorporated into product lifecycle management (PLM) systems. PLM refers to a business strategy that helps companies share product data, apply common processes, and leverage enterprise knowledge to develop products from conception to the end of the product's lifecycle across the extended enterprise concept. Dassault Systèmes' PLM solutions (under the trademarks CATIA, ENOVIA, and DELMIA) provide an engineering hub that organizes product engineering knowledge, a manufacturing hub that manages manufacturing engineering knowledge, and an enterprise hub that enables the company to integrate and connect to both the engineering and manufacturing hubs. Together, all systems provide an open object model that links products, processes, and resources, enabling dynamic, knowledge-based product creation and decision support, driving optimized product definition, manufacturing preparation, production, and service.

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

[0004] Wall baselines are obtained from the 3D geometry of walls. In particular, a 3D model representing a to-be-constructed building comprises multiple 3D walls. However, the initial 3D geometry of a wall is modified many times by various manual operations involved in its construction, making it impossible to automatically calculate wall baselines from the 3D geometry of the wall. Furthermore, if the 3D geometry of a wall is only available as is, without its construction history or base geometry, obtaining the wall baselines requires more time and computer 3D design skills, neither of which are always available to the construction site planner.

[0005] Current methods for recovering a wall baseline involve: i) extracting the wall's side faces, ii) calculating the mid-plane of the extracted faces using some offset technique, iii) projecting the mid-plane onto the plane of the wall's base, and iv) repeating the above three steps for each wall. This method is time-consuming, especially for buildings with hundreds of walls, and requires a lot of user input to correct the method's output. Summary of the Invention [Problem to be solved by the invention]

[0006] In this context, there remains a need for an improved method for designing a 2D wall centerline from at least one 3D wall of a 3D model representing a building to be constructed. [Means for solving the problem]

[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 to-be-constructed building, the method comprising: - obtaining at least one 3D volume, each 3D volume representing at least one 3D wall, each 3D wall being composed of faces bounded by edges and connected by vertices forming the edges, each face having a normal vector; - obtaining the wall direction, which is a vector representing the direction of the wall elevation; - for each 3D wall, obtaining the face with its respective negative scalar that has an orientation opposite to that of the wall direction; - for each edge of each of the acquisition surfaces, identifying one edge from among the edges of the acquisition surface, thereby forming a valid pair of edges representing a 3D wall of the at least one 3D wall of the 3D model; - calculating the 2D pair wall centerline for each valid pair formed; and - Calculating 2D wall centerlines for 3D models by merging the calculated 2D pair wall centerlines of valid pairs Equipped with.

[0008] The method may comprise one or more of the following: -Merge the acquired faces by removing the internal edges before identifying one of the edges of the acquired faces, where an internal edge is an edge connecting two faces that are in contact with each other, and the merged acquired faces form a domain. Each 3D wall has a height representing the elevation of the wall, a length representing the footprint of the wall on the ground, and a thickness that is less than the length divided by 2, and for each face of each 3D wall, any normal vector on the face has the same direction relative to the wall direction. - identifying one of the edges of the acquisition surface comprises: calculating, for each edge of the acquisition surface, a first line passing through said edge; calculating, for each other edge of the acquisition surface, a second line passing through the other edge of the acquisition surface; calculating the angle between the first line and the second line; and discarding the edge of the second line if the calculated angle exceeds a predetermined angular tolerance θ1° and the calculated angle is not included in the range [180°; 180°-θ1°], thereby considering the edges of the first and second line to be not a valid pair of edges (preferably the predetermined angular tolerance θ1° has a value included in [10°; 30°], more preferably the predetermined angular tolerance θ1° has a value of 25°). - further comprising obtaining, for each edge of each of the acquisition surfaces, a first center point, a first start point, and a first end point, and obtaining, for each other edge of the acquisition surfaces, a second center point, a second start point, and a second end point, wherein calculating the first line includes calculating a line passing through the first start point and the first end point, and calculating the second line includes calculating a line passing through the second start point and the second end point. - identifying one of the edges of the acquisition surface further comprises calculating a distance between the first center point and another edge of the second center point, or calculating a distance between the second center point and another edge of the first center point, and discarding the edge of the second center point if the calculated distance is less than a predetermined thickness value T1 of the 3D wall, thereby considering the edges of the first and second center points not to be a valid pair of edges (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). - identifying one of the edges of the acquisition 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 smallest distance among the first, second, third and fourth distances, thereby obtaining a pair of points comprising the two points for which the smallest distance was calculated, calculating for each point of the pair of points a vector from the point of the pair to the start point or the end point of the edge to which the point of the pair belongs, thereby obtaining two vectors, calculating a scalar product of the two obtained vectors, and discarding the respective other edge of the acquisition surface if the calculated scalar product is negative. - Identifying one of the edges of the acquisition surface further includes calculating a line segment connecting the first center point and the second center point, and discarding each of the other edges of the acquisition surface if no intersection is detected between the calculated line segment and the domain. - Calculate 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, store each edge of the other edges of the acquisition surface together with its calculated reference minimum distance as a valid candidate in a list of valid candidates, and select the valid candidate, i.e., the valid pair of edges, in the list that has the smallest calculated reference minimum distance. - Identifying one edge of the edges of the acquired surface 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, and 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 the edges of the first and second lines not to be a valid pair of edges. calculating a first line segment between a first start point and a second start point, a second line segment between a first end point and a second end 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 a valid pair of 2D paired wall centerlines, calculating an average wall line segment pair thickness from each wall line segment pair thickness of each of the 2D paired wall centerlines, comparing a length of the 2D paired wall centerline of each valid pair with the calculated average wall line segment pair thickness, and discarding the 2D paired wall centerline if the length of any of the 2D paired wall centerlines is less than the calculated average wall line segment pair thickness. - at least one 3D wall comprises at least one non-planar face, and calculating the 2D paired wall centerlines includes calculating a first line segment between a first start point and a second start point, a second line segment between a first end point and a second end point, calculating a first midpoint of the first line segment and a second midpoint of the second line segment, and calculating an isoparametric curve connecting the first midpoint and the second midpoint, thereby obtaining a valid pair of 2D paired wall centerlines. - calculating the 2D paired wall centerlines of the 3D model further includes obtaining the lowest vertex among the 3D wall vertices in the wall direction, calculating a plane having the lowest vertex and normal to the wall direction, projecting each 2D paired wall centerline onto the calculated plane, the projection being performed according to the wall direction, thereby obtaining a set of projected 2D paired wall centerlines, merging the projected 2D paired wall centerlines, and deleting vertices that are start points and / or end points and / or vertices that are not acute on the merged projected 2D paired wall centerlines, thereby obtaining 2D wall centerlines of the 3D model. - projecting each 2D pair wall centerline onto the calculated plane further includes detecting overlap between at least two projected 2D pair wall centerlines; if the entirety of one projected 2D pair wall centerline overlaps another projected 2D pair wall centerline, selecting one of the closest start points and end points of the at least two overlapping projected 2D pair wall centerlines; calculating a first cutting line that passes through the closest start point and is perpendicular to the projection plane, and a second cutting line that passes through the closest end point and is perpendicular to the projection plane; and using the two cutting lines to project the other projected 2D pair wall centerlines. cutting and stitching one projected 2D paired wall centerline with another projected 2D paired wall centerline; if a portion of one projected 2D paired wall centerline overlaps with another projected 2D paired wall centerline, selecting one of the nearest start points or end points of the at least two overlapping projected 2D paired wall centerlines; calculating a first cutting line that passes through the nearest start point and is perpendicular to the projection plane; cutting the other projected 2D paired wall centerlines using the cutting line; and stitching one projected 2D paired wall centerline with the other projected 2D paired wall centerlines. For the domain, obtain the start and end points of the 2D wall centerlines of the 3D model and their respective tangent directions; for each start point, calculate a semi-infinite line using the start point as the start of the line and taking the tangent direction of the start point as its own direction; calculate the intersection point of the semi-infinite line with the 2D wall centerline of the 3D model; calculate the distance between the intersection point and the start point; if the calculated distance is smaller than the average thickness, split the semi-infinite line, thereby connecting the start point and the intersection point with a line segment; for each end point, calculate a semi-infinite line using the end point as the start of the line and taking the tangent direction of the end point as its own direction; calculate the intersection point of the semi-infinite line with the 2D wall centerline of the 3D model; calculate the distance between the intersection point and the end point; if the calculated distance is smaller than the average thickness, split the semi-infinite line, thereby connecting the end point and the intersection point with a line segment; merge the calculated 2D pair wall centerlines of the valid pairs with the calculated line segment to calculate the 2D wall centerlines of the 3D model.

[0009] Further provided is a computer program comprising instructions for carrying out the method.

[0010] Additionally, a computer readable storage medium having a computer program recorded thereon is provided.

[0011] Additionally, a system is provided that includes a processor and a graphical user interface coupled to a memory, the memory having a computer program recorded thereon. [Brief explanation of the drawings]

[0012] Non-limiting examples will now be described with reference to the accompanying drawings.

[0013] [Figure 1] 1 shows a flowchart of an example method. [Figure 2] 1 shows an example of a graphical user interface of the system. [Figure 3] An example of a system is shown. [Figure 4] An example of the method is shown below. [Figure 5] An example of the method is shown below. [Figure 6] An example of the method is shown below. [Figure 7] An example of the method is shown below. [Figure 8] An example of the method is shown below. [Figure 9] An example of the method is shown below. [Figure 10] An example of the method is shown below. [Figure 11] An example of the method is shown below. [Figure 12] An example of the method is shown below. [Figure 13] An example of the method is shown below. [Figure 14] An example of the method is shown below. [Figure 15] An example of the method is shown below. [Figure 16] An example of the method is shown below. [Figure 17] An example of the method is shown below. [Figure 18] An example of the method is shown below. [Figure 19] An example of the method is shown below. [Figure 20] An example of the method is shown below. [Figure 21] An example of the method is shown below. [Figure 22] An example of the method is shown below. [Figure 23] An example of the method is shown below. [Figure 24] An example of the method is shown below. [Figure 25] An example of the method is shown below. [Figure 26] An example of the method is shown below. [Figure 27] An example of the method is shown below. [Figure 28] An example of the method is shown below. [Figure 29] An example of the method is shown below. [Figure 30] An example of the method is shown below. [Figure 31] An example of the method is shown below. [Figure 32] An example of the method is shown below. [Figure 33] An example of the method is shown below. [Figure 34] An example of the method is shown below. [Figure 35] An example of the method is shown below. [Figure 36] An example of the method is shown below. [Figure 37] An example of the method is shown below. DETAILED DESCRIPTION OF THE INVENTION

[0014] With reference to the flowchart of FIG. 1 , a computer-implemented method for designing a 2D wall centerline from at least one 3D wall of a 3D model representing a to-be-constructed building is proposed. The method comprises acquiring at least one 3D volume, each 3D volume representing at least one 3D wall. Each 3D wall is constructed with faces bounded by edges and connected by vertices forming the edges, each face having a normal vector. The method further comprises acquiring a wall direction, which is a vector representing a direction of wall elevation. The wall direction is the same for all 3D walls. For each 3D wall, a face is acquired, the acquired face having its respective negative scalar oriented opposite to the orientation of the wall direction. The method also comprises, for each edge of each of the acquired faces, identifying one edge from among the edges of the acquired face, thereby forming valid pairs of edges representing the 3D wall of the at least one 3D wall of the 3D model. Then, the method further comprises calculating a 2D pair of wall centerlines for each of the formed valid pairs. The method then comprises calculating 2D wall centerlines of the 3D model by merging the calculated 2D paired wall centerlines of the valid pairs.

[0015] Such a method improves the design of a 2D wall centerline from at least one 3D wall of a 3D model representing a to-be-constructed building. In particular, the method is fully automatic and does not require user input (e.g., modifications) after the parameter input step. Furthermore, the method does not require history with the 3D wall, and the 2D wall centerline of the 3D model is calculated without requiring knowledge of the 3D wall, e.g., any past operations that may have been performed on the 3D wall's geometry.

[0016] Further advantages will become more apparent in the following description: in particular, the wireframe algorithm allows many walls to be managed together and takes openings in the walls into account. The wireframe algorithm is also much faster than standard surface-based background techniques.

[0017] The invention has a direct impact on the construction of walls, being able to determine the exact amount of concrete needed to be poured into the wall, thus avoiding situations where not enough concrete is available during the pouring process, which could weaken the wall during construction.

[0018] The method is computer-implemented. This means that the steps of the method (or all steps) are performed by at least one computer, or any similar system. Thus, the method steps are performed by a computer, possibly fully automatically or semi-automatically. In an example, at least some of the method steps may be triggered by user-computer interaction, e.g., parameter input steps. The required level of user-computer interaction may depend on the level of automation balanced with the need to anticipate and implement user wishes. In an example, this level may be user-defined and / or predefined.

[0019] A typical example of a computer implementation of the method is performing the method using a system adapted for this purpose. The system may include a processor and a graphical user interface (GUI) coupled to a memory having recorded thereon a computer program comprising instructions for carrying out the method. The memory may also store a database. The memory is any hardware suitable for such storage, possibly comprising multiple physically distinct parts (e.g., one for the program and possibly one for the database).

[0020] The method generally manipulates 3D modeled objects, where each 3D volume represents at least one 3D wall. A modeled object is any object defined by data, e.g., stored in a database. By extension, the term "modeled object" refers to the data itself. Depending on the type of system, a modeled object may be defined by various types of data. A system may in fact be any combination of a CAD system, a CAE system, a CAM system, a PDM system, and / or a PLM system. In these various systems, a modeled object is defined by corresponding data. Thus, it may be referred to as a CAD object, a PLM object, a PDM object, a CAE object, a CAM object, CAD data, PLM data, PDM data, CAM data, or CAE data. However, these systems are not mutually exclusive; a modeled object may be defined by data corresponding to any combination of these systems. Thus, a system may fully be both a CAD system and a PLM system, as will be apparent from the definition of such systems provided below.

[0021] A CAD system also refers to any system, such as CATIA, adapted to design a modeled object based on at least a graphical representation of the modeled object. In this case, data defining the modeled object comprises data enabling the representation of the modeled object. A CAD system may provide a representation of a CAD modeled object, for example, using edges or lines, and in certain cases, faces or surfaces. Lines, edges, or surfaces may be represented in various ways, for example, with non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications from which geometry may be generated, and then a representation may be generated. The specifications of a modeled object may be stored in a single CAD file or in multiple CAD files. Typical sizes of files representing modeled objects in a CAD system are in the range of one megabyte per part. Also, a modeled object may typically be an assembly of thousands of parts.

[0022] In the context of CAD, a modeled object may typically be a 3D modeled object, representing, for example, a part or assembly of parts, or perhaps a product such as an assembly of products. "3D modeled object" means any object modeled by data that allows for its 3D representation. In a 3D representation, the part can be viewed from any angle. For example, a 3D modeled object, when represented in 3D, can be manipulated and rotated about any of its axes or about any axis within the screen on which the representation is displayed. Notably, this does not include 2D icons that are not 3D modeled. Displaying 3D representations facilitates design (i.e., it statistically increases the speed at which designers accomplish their tasks). Because product design is part of the manufacturing process, this speeds up the manufacturing process in industry.

[0023] The 3D modeled object may represent the geometry of a product, i.e., a wall, that is manufactured (built) in the real world after completing its virtual design using, for example, a CAD software solution or CAD system. CAD software solutions enable the design of products in a variety of unlimited industrial sectors, including aerospace, architecture, construction, consumer goods, high-tech devices, industrial equipment, transportation, marine, and / or offshore oil and gas production or transportation. The 3D modeled object manipulated in this manner thus represents an industrial product, a wall.

[0024] CAD systems can be history-based. In this case, the modeled object is further defined by data comprising the history of its geometric features. The modeled object may actually be designed by a real person (i.e., a designer / user) using standard modeling functions (e.g., extrude, revolve, cut, and / or round) and / or standard surfacing functions (e.g., sweep, blend, loft, fill, deform, and / or smooth). Many CAD systems that support such modeling functions are history-based. This means that the creation history of design features is typically preserved through acyclic data flows that link said geometric features together via input and output links. The history-based modeling paradigm has been well-known since the early 1980s. The modeled object is described by two persistent data representations: its history and a B-rep (i.e., a boundary representation). The B-rep is the result of the calculations defined in the history. The shape of the part displayed on a computer screen when the modeled object is represented is its B-rep (e.g., its tessellation). The history of the part is the design intent. Essentially, history collects information about the operations that a modeled object has undergone. B-reps can be stored with history to facilitate the display of complex parts. History can be stored with B-reps to allow design changes to parts according to design intent.

[0025] A PLM system further refers to any system suitable for managing modeled objects that represent physically manufactured products (or products to be manufactured). In a PLM system, modeled objects are therefore defined by data suitable for manufacturing physical objects. These may typically be dimensional values and / or tolerances. It is indeed better to have such values to correctly manufacture the object.

[0026] CAM solution also refers to any solution, such as software or hardware, adapted to manage the manufacturing data of a product. Manufacturing data generally includes data about the product to be manufactured, the manufacturing process, and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, they can provide CAM users with information about the feasibility of the manufacturing process, the required time, or the number of resources, such as specific robots, that can be used in a particular step of the manufacturing process, thus enabling decisions regarding management or necessary investments. CAM is a subsequent process after the CAD process and possibly the CAE process. Such CAM solutions are offered by Dassault Systèmes under the trademark DELMIA®.

[0027] CAE solutions also refer to any solution, such as software or hardware, adapted to analyze the physical behavior of a modeled object. A well-known and widely used CAE technique is the finite element method (FEM), which typically involves dividing a modeled object into elements whose physical behavior can be calculated and simulated with equations. Such CAE solutions are offered by Dassault Systèmes under the trademark SIMULIA®. Another growing CAE technology involves the modeling and analysis of complex systems consisting of multiple components from various physical disciplines without CAD geometry data. CAE solutions enable the simulation and therefore optimization, improvement, and validation of manufactured products. Such CAE solutions are offered by Dassault Systèmes under the trademark DYMOLA®.

[0028] PDM stands for Product Data Management. A PDM solution is any software or (of) hardware solution adapted to manage all types of data related to a specific product. PDM solutions can be used by all stakeholders involved in the product's lifecycle (mainly engineers, but also project managers, finance personnel, sales personnel, and buyers). PDM solutions are generally based on a product-oriented database. They allow stakeholders to share consistent data about their products, eliminating the need for inconsistent data between stakeholders. Such PDM solutions are offered by Dassault Systèmes under the trademark ENOVIA®.

[0029] Figure 2 shows an example of the GUI of a system, which is a CAD system.

[0030] The GUI 2100 may be a typical CAD-like interface with standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. Such menus and toolbars include a set of user-selectable icons, each associated with one or more operations or functions, as known in the art. Some of these icons are associated with software tools suitable for editing and / or working with the 3D modeled object 2000 displayed in the GUI 2100. The software tools may be grouped into workbenches. Each workbench comprises a subset of software tools. In particular, one workbench is an editing workbench suitable for editing geometric features of the modeled product 2000. During operation, a designer may, for example, pre-select a portion of the object 2000 and then select the appropriate icon to initiate an operation (e.g., changing dimensions, color, etc.) or edit geometric constraints. For example, a typical CAD operation is modeling a punch or folding a 3D modeled object displayed on the screen. The GUI may, for example, display data 2500 related to the displayed product 2000. In the illustrated example, data 2500 displayed as a "feature tree" and its 3D representation 2000 relate to a brake assembly including a brake caliper and disc. The GUI may further display various types of graphic tools 2130, 2070, 2080, for example, to facilitate 3D orientation of objects, to trigger simulations of manipulation of the edited product, or to render various attributes of the displayed product 2000. A cursor 2060 may be controlled by a haptic device to allow a user to interact with the graphic tools.

[0031] FIG. 3 shows an example of a system, which may be a client computer system, such as a user's workstation.

[0032] The client computer in this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, and a random access memory (RAM) 1070 also connected to the bus. The client computer also includes 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 controller 1020 manages access to mass storage devices, such as a hard drive 1030. Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, such as semiconductor storage devices, e.g., EPROM, EEPROM, and flash memory devices, magnetic disks, e.g., internal hard disks and removable disks, and magneto-optical disks. Any of the above may be supplemented by or incorporated in specially designed application-specific integrated circuits (ASICs). A network adapter 1050 manages access to a network 1060. The client computer may also include a cursor control device, a keyboard, and other haptic devices 1090. A cursor control device is used in the client computer to allow a user to selectively position a cursor anywhere on the display 1080. Additionally, the cursor control device allows a user to select various commands and input control signals. The cursor control device includes a number of signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, with signals generated using buttons on the mouse. Alternatively, or in addition, the client computer system may include a sensitive pad and / or a sensitive screen.

[0033] A computer program may comprise computer-executable instructions, which comprise means for causing the system to perform the method. The program may be recordable on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuitry, or computer hardware, firmware, software, or a combination thereof. The program may be implemented as an apparatus, such as an article of manufacture tangibly embodied in a machine-readable storage device, executed by a programmable processor. The method steps may be performed by a programmable processor executing a program of instructions that performs the functions of the method by operating on input data and generating output. The processor is thus programmable and may be coupled to receive data and instructions from, and transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language, as appropriate. In either case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. In either case, applying the program to a system generates instructions for performing the method. The computer program may alternatively be stored and executed on a server in a cloud computing environment, the server communicating with one or more clients via a network, in which case the processing unit executes the instructions contained in the program, thereby performing the method in the cloud computing environment.

[0034] "Designing a 2D wall centerline from at least one 3D wall of a 3D model representing a to-be-constructed building" refers to any action or series of actions that are at least part of a process of creating a 3D modeled object (e.g., a wall). Thus, the method may comprise creating the 3D modeled object from scratch. Alternatively, the method may comprise providing a previously created 3D modeled object and subsequently modifying the 3D modeled object.

[0035] The method may be included in a manufacturing process, which may comprise, after performing the method, manufacturing a physical product corresponding to the modeled object (e.g., building a wall). In either case, the modeled object designed by the method may represent a manufactured object. Thus, the modeled object may be a modeled solid (i.e., a modeled object representing a solid). The manufactured object may be a product, such as a part or an assembly of parts. Because the method improves the design of the modeled object, the method also improves the manufacturing of the product, thus increasing the productivity of the manufacturing process.

[0036] Returning to S10 of FIG. 1 , at least one 3D volume is acquired. By "acquired," we mean that data for representing and / or manipulating the 3D volume is made available to the system executing the method, e.g., stored in the memory of a CAD system. Each 3D volume represents at least one 3D wall, and the 3D wall is the object to be constructed. Each 3D wall is constructed (i.e., composed of) faces bounded by edges and connected by vertices that form the edges. Furthermore, each face has a normal vector. The normal vector may be acquired along with other data about the 3D wall, or it may be calculated by the system.

[0037] Referring to Figure 4, a 3D wall is depicted as it might appear in the GUI shown in Figure 2. A 3D wall has geometry that defines a 3D volume, which in this example comprises 8 vertices, 12 edges, and 6 faces. The volume is bounded by the faces, the faces are bounded by the edges, and the edges are bounded by the vertices.

[0038] Referring to Figure 5, an example of input parameters for a 3D wall is shown, comprising 3D wall thickness, 3D wall length, and 3D wall height. The definition of 3D wall thickness is self-explanatory; thickness is the gap between the two sides of the wall. 3D wall height represents the elevation of the 3D wall. 3D wall length is the length of the wall's footprint on the ground (as perceived by the system and executed when building the wall).

[0039] In an example, the thickness of a wall may be less than its length divided by 2, so that the 3D wall has the shape of a wall found in the real world and is not, for example, a pillar.

[0040] Thus, in an example, each 3D wall may have as input parameters a height representing the elevation of the wall, a length representing the footprint of the wall on the ground, and a thickness that is less than the length divided by two, and a surface such that any normal vector on the surface is in the same direction as the wall direction.

[0041] In the examples, one or more 3D walls may have openings, as shown in Figure 6. An opening represents the volume required to insert a door, window, etc. inside the wall. Geometrically speaking, an opening can be considered as a hole in the thickness of the wall. In these examples, the opening may be defined by four planes, which is the most common case in buildings. In these examples, the opening may be a bull's-eye window, and the preparation of this type of opening is performed by considering the opening as a cut along a plane perpendicular to the wall direction, with the cut being made at the widest part of the bull's-eye window.

[0042] As shown in the left part of Figure 7, one 3D volume represents one 3D wall, where two volumes are shown, each representing a 3D wall. In the right part of Figure 7, one single 3D volume represents two walls.

[0043] Returning to S20 of the flowchart of FIG. 1 , wall directions are obtained. The wall direction represents the direction of wall elevation and is a vector. In an example, one single wall direction may be obtained for all 3D volumes, and in fact, all walls of a building have the same wall elevation. In an example, wall directions may be provided for one or more (but not all) 3D volumes, and in this situation, the next step of the method uses the wall directions associated with one or more (but not all) 3D volumes when performing operations (e.g., calculations) on the 3D walls of the 3D volumes. Whether one single wall direction or two or more wall directions is used does not change the method of the present invention. The wall direction is obtained, for example, by being provided along with data for representing and / or manipulating the 3D volume(s). In an example, the wall direction may be inferred from the geometry of the 3D volume, for example, it is automatically detected from the 3D volume.

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

[0045] It should be understood that step S10 can be performed before S20, vice versa, or simultaneously.

[0046] Next, we will discuss further examples of 3D walls provided (obtained) in the method's input, as well as the use of normal vectors associated with each face of the 3D wall and wall direction. In the example, only walls that do not contain "face undercuts" in the specified wall direction may be obtained. That is, for all faces of the 3D wall geometry, a face must not contain 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 FIG. 10, where both the left and center faces in the figure have only normal vectors pointing in the same direction. This is not the case for the face depicted on the right side of FIG. 10, where the two normal vectors point in opposite directions. If a wall contains a "face undercut," the method can be stopped, or the face can be ignored by the algorithm. If ignored, a warning can be displayed to the user to inform them that at least one "face undercut" exists.

[0047] 3D walls can contain non-planar faces as long as they respect the previous rules. This is shown in Figure 9, where the normal vectors on non-planar faces have the same direction.

[0048] Having described the inputs to the algorithm with reference to S10 and S20, step S30 will now be described. The following calculations are performed for each 3D wall. A 3D wall may be represented by a single volume, or two or more 3D walls may be part of a single volume, as discussed with reference to FIG. 7.

[0049] For each 3D wall, the faces that define the wall are obtained, and each obtained face has a respective negative scalar that has an orientation opposite to the wall direction. This allows us to define which faces of the wall are "downward," i.e., facing the ground. These faces can be stored in a list named "downward-facing faces." Figure 11 shows an example of four identified faces with negative scalars that have an orientation opposite to the wall direction.

[0050] In an example, S30 may be implemented as follows: For each face of the obtained 3D wall, the center point of the face (e.g., the centroid of the face) is calculated. Then, the normal vector of the face is evaluated, pointing outside the volume. If the scalar product between this vector and the wall direction is negative, the face may be kept and, for example, added to a list of "downward-facing faces."

[0051] In the example, the following processing may be performed on the faces added to the list of "downward facing faces", i.e., the acquired faces of the 3D wall: The acquired faces may be "stitched" together, thereby merging consecutive faces into one single face. This operation may remove internal edges and simplify external edges.

[0052] This is illustrated in FIG. 12, which shows three 3D walls (each with one face 120, 122, 124) that have been acquired. The three acquired faces are merged by removing the interior edges 126, 128. An interior edge is an edge that connects two faces that are in contact with each other. Thus, an interior edge is shared by two faces. When the faces are merged, they form a new single face, referred to as a domain 129. It should be understood that a domain is formed by the set of connecting edges that all together enclose the new single face; this set of connecting edges is also referred to as a belt.

[0053] FIG. 14 shows three domains, domain 1, domain 2 and domain 3, each with a set of edges that form a belt.

[0054] Figure 13 shows a close-up view of faces 122, 124 and an interior edge 126. The left side of the figure shows a part of the domain as a result of removing the interior edge 126. The right side shows an example of a simplified edge of a belt obtained as a result of removing the interior edge 126. A simplified edge can be obtained by merging two consecutively connected edges, for example by removing a point (vertex) of the interior edge 126 that is shared with an edge that belongs to the belt. For example, vertex 123 is kept because it is shared by the two edges that form the belt (and is also shared with the interior edge 126).

[0055] Returning to FIG. 1 , in S40, pairs of valid edges are identified. A pair of valid edges is a pair of edges on each side of one piece of the 3D wall. A so-called valid edge contributes to the length of the wall, but not to its thickness. In other words, a pair of valid edges comprises the edges of the 3D wall that contribute to the footprint of the 3D wall on the ground. From the pairs of valid edges, the footprint of the 3D wall can be determined.

[0056] To find these pairs of valid edges, each face of each of the acquisition faces is tested as follows: For each edge of one of the acquisition faces (this edge is also referred to as the "reference edge" during testing), one edge is identified from among the other edges of the acquisition face, thereby identifying the reference edge and an edge selected from the other edges from the valid pairs of edges that represent a 3D wall of at least one 3D wall of the 3D model. The output of S40 provides pairs of edges of the domain, each pair of edges defining a 3D wall. Thus, each edge of the acquisition face is tested with the other edges (i.e., it is the reference edge).

[0057] Finding these pairs can be complicated, especially if the building being constructed has many small rooms, nooks, closets, etc. Examples of algorithms are described below. One or more of these examples may be combined. The following examples are described with reference to the example domain in Figure 15.

[0058] In the example, identifying one edge among other edges of the acquisition surface may depend on comparing the angle between the two edges. An angle tolerance is used for this purpose. The angle tolerance defines the maximum angle that two line segments can match to define a valid pair of edges representing a 3D wall. The angle tolerance, denoted θ1, may be provided at the beginning of the method, before step S30, or at the beginning of execution of the example. The angle tolerance value may be provided upon user action or automatically by default. In these examples, a suitable value for this parameter may be in the range [10°; 30°]. In the example, the angle tolerance may have a value approximately equal to 25°, which has shown the best results in experiments conducted by the inventors.

[0059] In these examples, two lines may be calculated, one for the reference edge and one for each other edge of the acquisition surface of the test object. Thus, for each edge (reference edge) of the acquisition surface, a first line passing through that edge is calculated, and for each other edge of the test object of the acquisition surface, a second line passing through the other edge of the test object is calculated. It should be understood that a 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 of the test object. Therefore, "passing through" can be interpreted as the first line and the second line being merged with their respective edges or substantially merged (e.g., near the edges) and parallel to the edges.

[0060] The angle between the first and second lines can then be calculated.

[0061] It may then be determined whether the calculated angle exceeds (is greater than) a predetermined angle tolerance θ1° and whether the calculated angle is not within the range [180°; 180°-θ1°]. If yes, the edge associated with the second line is discarded. Thus, the system recognizes that the edges associated with the first and second lines are not a valid pair of edges.

[0062] In an example of an angle comparison between two edges, a point (i.e., a vertex) may be obtained on the reference edge. A first point at the center of the reference edge is referred to as a first center point, one of the two vertices of the reference edge is selected as a first start point, and the second vertex is selected as a first end point. This is shown in FIG. 16 with an edge 150 of a 3D wall face of the domain in FIG. 16 selected as the reference edge. The edge has two vertices 151 and 153 selected as the first start point and the first end point, respectively. A center point 152 is added to the center of the edge 150. It should be understood that the center point 152 is not a new vertex of the edge (the original edge 150 is not divided). The start point, end point, and center point are logical points used to perform the angle comparison.

[0063] For each of the other edges of the acquisition surface, a second center point, a second start point, and a second end point are obtained. This is performed in the same manner as for edge 150, as shown in Figure 17. It should be understood that for each of the other edges of the acquisition surface (the edges being tested to determine whether one of them can form a valid edge pair with the reference edge), a second start point and a second end point are obtained, respectively.

[0064] Next, a first line 154 is calculated as shown in Figure 18. The first line is calculated to comprise a first starting point 151 and a first ending point 153. It should be understood that the first line also comprises a center point 152 of the edge 150. Thus, the first line passes through the first starting point and the first ending point.

[0065] Similarly, referring to FIG. 18, a second line 155 is calculated that passes through the second starting point and the second ending point.

[0066] The angle between the first and second lines is then calculated to determine whether to keep or discard the other edge as described above.

[0067] As shown in Figure 19, the angle value is 0°, which is less than the predetermined angle tolerance θ1°, which in this example has a value of 25°. Both edges form a valid pair of edges.

[0068] 20, the reference edge 150 is tested with another edge 190, for which each second start point, second end point, and second center point have been calculated. The angle value is 90°, which exceeds the predetermined angle tolerance θ1° (25° in this example) and is not included in the range [180°; 180°-θ1°], so edge 190 is discarded.

[0069] The use of start, center, and end points ensures that the calculated line will merge with the edge, and further algorithms described below rely on these specific points.

[0070] It should be understood that the choice of which vertices of an edge to start or end at is an arbitrary choice and does not change the outcome of the algorithm.

[0071] In some examples, identifying one edge from other edges of the acquisition surface may depend on the thickness of the wall. In these examples, the distance between the first center point of the reference edge and the other edge of the second center point may be calculated. Alternatively, the distance between the second center point of the other edge and the reference edge associated with the first center point may be calculated. In other words, the distance is measured between one of the two center points and the opposite edge. If the calculated distance is less than a predetermined thickness value T1 of the 3D wall, the edge associated with the second center point is discarded. Thus, the system recognizes that the edges associated with the first line and the second line do not form a valid pair of edges.

[0072] Distance measurements may be performed using an orthogonal line that starts at the center point of one of the two edges and intersects the opposite edge, with the measurement being taken between the center point and the intersection point.

[0073] In these examples, the predetermined thickness value T1 may have a value between [1 mm; 5 mm], more preferably the predetermined thickness value T1 has a value of 1 mm, which has shown the best results in experiments by the inventors.

[0074] 21 shows an example of measuring the distance between the center point of another edge 190 and the reference edge 150. Edge 190 is retained because the measured distance exceeds a predetermined thickness value T1. Edges 150 and 190 therefore form a valid pair of edges.

[0075] 22 shows an example of measuring the distance between a reference edge 210 and the center point 212 of another edge 211 of a face of a 3D wall. The edge 211 is discarded because the measured distance (0 mm) is less than a predetermined thickness value T1.

[0076] In examples, identifying one edge from other edges of the acquisition surface may depend on the orientation of the reference edge and the other edges. In these examples, the tested edge has a start point, an end point, and a center point, the reference edge has a first start point, an end point, and a center point, and the other edges have a second start point, an end point, and a center point. Four distances between the reference edge and other edges of the 3D wall surface are calculated. That is, a first distance between the first starting point and the second starting point; a second distance between the first starting point and the second ending point; a third distance between the first end point and the second start point; and - A fourth distance between the first end point and the second end point.

[0077] Once the four distances have been calculated, the minimum of these four distances is determined. The two points with the minimum distance calculated form a point pair.

[0078] Next, vectors are calculated for each point in the point pair. The first vector starts from the first of the two points in the point pair and extends to the start or end of the edge to which the first point belongs. The second vector starts from the second point in the point pair and extends to the start or end of the edge to which the second point belongs. The result is two vectors.

[0079] The scalar product between the two resulting vectors is then calculated: if the scalar product is negative, the other edge is discarded, and the reference edge and the other edge do not form a valid pair of edges representing a 3D wall of at least one 3D wall of the 3D model.

[0080] FIG. 23 shows an example of identifying an edge, as described. Two edges are tested to determine whether they together form a valid edge pair: reference edge 150 and other edge 190. The distance between point pair 151 and 191 is closest. In this example, the distance between points 153 and 193 is equal to the distance measured between point pair 151 and 191. When this situation occurs, one of the two possible point pairs is selected, here point pair 151 and 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. Because the scalar product is positive, the other edge 190 is retained, and edges 150 and 190 form a valid edge pair.

[0081] Figure 24 shows another example of identifying one of the other edges depending on the direction of the compared edge. In this example, the reference edge is 240 and the tested edge is 241. Points 243 and 242 form a point pair. The vector of the reference edge 240 runs from point 243 to 245, and the vector of the tested edge runs from point 242 to 244. The directions of the two vectors are opposite, and their scalar product is negative. As a result, the other edge 241 is discarded.

[0082] In some examples, identifying one edge among the other edges of the acquisition surface may depend on detecting the presence of a portion of a domain between the tested edges. It should be understood that in these examples, the tested edges have at least a center point, and may further have a start point and an end point. In these examples, a line segment is calculated connecting a first center point of the reference edge and a second center point of the other edge. If no intersection is detected between the calculated line segment and the domain, the other edge is discarded, and the two edges do not form a valid pair of edges.

[0083] Figure 25 shows an example of identification that relies on detecting the presence of a portion of a domain between the tested edges. Edge 150 is the reference edge, and edge 190 is the other edge. Both edges have center points 152 and 194, respectively. A line segment connecting center points 152 and 194 is calculated, but it does not intersect with the domain. Therefore, edge 190 is discarded.

[0084] Figure 26 shows another example of identification that relies on detecting the presence of a portion of a domain between the tested edges. The reference edge 150 and the other edge 190 are on either side of a 3D wall, and the line segment connecting the center points 152, 194 intersects the domain. The other edge 190 is not discarded.

[0085] In these examples, the detection may comprise detecting whether the midpoint of a line segment connecting a first center point of the reference edge and a second center point of the other edge is calculated, thereby improving the intersection detection.

[0086] In an example, a reference minimum distance may be calculated: The reference minimum distance is given by the sum: the minimum distance obtained in the same way as described with reference to Figures 23 and 24 (four distances between the reference edge and other edges of the faces of the 3D wall, namely a first distance between the first start point and the second start point, a second distance between the first start point and the second end point, a third distance between the first end point and the second start point, and a fourth distance between the first end point and the second end point, are calculated, and the minimum (shortest) distance of these four distances is determined). - the first distance, - the second distance, and - The distance between the first center point and the second center point.

[0087] Once the sum is calculated, the other edge is saved as a valid candidate in a list of valid candidates along with its previously calculated reference minimum distance. Finally, the edge in this list with the smallest reference minimum distance is selected. The reference edge and the selected other edge form a valid pair of edges.

[0088] In an example, as shown in Figure 27, identifying one edge from among other edges of the acquisition surface may comprise excluding pairs of edges that delimit the thickness of a wall. Indeed, combining one or more of the aforementioned algorithms may lead to the identification of edges 270, 272 that form valid pairs of edges. It may be necessary to discard these edge pairs, i.e., invalidate these edge pairs.

[0089] Identifying an edge pair as invalid may comprise calculating a distance D1 between the first line and the second line. This means that the distance D1 between the reference edge and the other edge is calculated. It should be understood that the first line (or edge) and the second line (or edge) may not be parallel, so the distance D1 may vary depending on the position of the measurement, and the distance D1 may be an average of multiple measurements.

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

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

[0092] This is shown in FIG. 28. The reference edge 150 has two vertices 151 and 153 that coincide with the start and end points of the edge 150. The other edge 194 has two vertices 191 and 193 that coincide with the start and end points of the edge 190. The distance L1 between the vertices 151 and 153 and the distance L2 between the vertices 191 and 193 are obtained. The distance D1 between the edges 150 and 190 is calculated. The distance D1 can be obtained as described above with reference to the example where identifying one edge from other edges of the acquisition surface may depend on the wall thickness. Alternatively, D1 can be measured between a first line and a second line, where the first line passes through the first start and first end points of the reference edge 150 and the second line passes through the second start and second end points of the other edge 190. Because D1 is smaller than L1 and L2, the edges 150 and 191 are a valid pair of edges.

[0093] Figure 29 shows an example of the opposite of Figure 28. The measured distance D1 is greater than the distances L1 and / or L2. Therefore, the reference edge and the other edge are not a valid pair of edges.

[0094] In this step of the method, for each edge of each of the acquisition surfaces, one or more algorithms are executed to identify an edge from among the edges of the acquisition surface, thereby forming a valid pair of edges that represents a 3D wall from at least one 3D wall of the 3D model. In the example, all these algorithms are combined and executed in the same order as they are presented.

[0095] Returning to S50 in FIG. 1, a centerline is calculated for each valid pair previously formed.

[0096] An example of calculating a 2D paired wall centerline will now be described with reference to FIG. 30 . A first line segment 300 can be calculated between a first starting point 151 of the reference edge 150 and a second starting point 191 of the other edge 190. A second line segment 302 can be calculated between a first ending point 153 of the reference edge 150 and a second ending point 193 of the other edge 190. The calculation of the first and second line segments depends on arbitrarily selecting which points on each edge are the starting and ending points. Thus, alternatively, the first line segment 300 can be calculated by selecting one of the two vertices 151 of the reference edge 150, determining the closest vertex of the other edge (191 in this example), and doing the same for the second vertex 153 of the reference edge 150 to calculate the second line segment 302.

[0097] Once the two line segments have been calculated, a first midpoint 301 of the first line segment may be calculated, and a second midpoint 303 of the second line segment may be calculated.

[0098] Next, a line segment 304 may be calculated that connects the first midpoint 301 and the second midpoint 303. The line segment 304 is the 2D pair wall centerline of the valid pair.

[0099] In these examples of 2D paired wall centerline calculations, the following verification may be performed to discard invalid pairs of small edges that may still exist: This is performed after all 2D paired wall centerlines of valid pairs have been calculated.

[0100] An average wall segment pair thickness is calculated from each wall segment pair thickness of each of the 2D pair wall centerlines. The wall segment pair thickness of a 2D pair wall centerline is obtained by calculating the average length of the first line segment 301 and the second line segment 303.

[0101] Once the wall segment pair thickness of each 2D pair wall centerline is obtained, the length of each valid pair is compared with the average wall segment pair thickness. After this comparison is performed, if the length of any of the 2D pair wall centerlines is less than the calculated average wall segment pair thickness, the 2D pair wall centerline is discarded. Thus, invalid pairs of small edges are filtered and removed.

[0102] Returning to S60 in Figure 1, the 2D wall centerlines of the 3D model are calculated. It should be understood that this is performed by merging the calculated 2D paired wall centerlines, and discarded 2D paired wall centerlines are not subject to the merging process. Merging means that two consecutive 2D wall centerlines are connected or stitched together to form a belt of domains.

[0103] In an example, the calculation of the 2D pair wall centerlines of the 3D model may further be performed on a plane onto which the 2D pair wall centerlines are projected, thus ensuring a correct definition of the domain.

[0104] In these examples, the lowest vertex of the 3D wall in the wall direction is taken, where the lowest vertex is determined relative to the wall direction, which is a vector representing the direction of the wall elevation.

[0105] Once obtained, the plane with the lowest vertex is calculated and the wall direction is the normal. These two parameters are sufficient to calculate the plane.

[0106] Then, each 2D paired wall centerline is projected onto the calculated plane. The projection is performed according to the wall direction. As a result, all 2D paired wall centerlines lie on the plane, forming a set of projected 2D paired wall centerlines.

[0107] Next, the projected 2D pair wall centerlines are merged, which is performed as previously described.

[0108] Next, the merged (and projected) 2D pair wall centerlines are subjected to vertex processing, which consists of removing vertices that are start and / or end points, and / or vertices that are not sharp angles. A sharp angle is a connection point of two vertices with an angle break, i.e., the two edges do not have the same tangent direction at the connection point.

[0109] Figure 31 shows the projected 2D pair wall centerlines. Vertex 310 is removed because it is the start or end point. Vertex 312 is kept because the angle between the two edges connected to vertex 312 is acute.

[0110] An example of the present invention has been described with reference to FIG. 1. The output of the present method thus provides a 3D model representing a building to be constructed, aligned with the 2D wall centerlines of the 3D model. The output can be directly used to calculate the exact amount of concrete to be poured into one or more walls of the 3D model. Wall construction is therefore improved because the wall can be poured in a single operation without having to wait for additional concrete. Therefore, the need for set retarders to prevent the concrete from drying out is eliminated. Furthermore, concrete waste is avoided because the lifespan of concrete shipped from a cement plant is not only limited in time but also depends on various factors, such as temperature, humidity, harsh environmental conditions, and transportation. Engineers and construction professionals must adhere to proper methods for mixing, transporting, pouring, and curing concrete to ensure its durability and long-term performance. The present invention therefore contributes to the construction of more durable walls with improved long-term performance.

[0111] Further examples are described. In an example, at least one 3D wall may have at least one non-planar surface, as shown in FIG. 32. The examples described herein still apply. The calculation of the baseline of a wall line segment may be modified for non-planar surfaces. Instead of using the midline algorithm described with reference to FIG. 30, the algorithm may use a more sophisticated method to calculate the baseline of a wall line segment. Instead of creating midpoints in the line segment at the start and end points of the edges, a blend surface is created to fill the space defined by the line segment and the edges. Blend surfaces are familiar to CAD and 3D modeling engineers. A blend surface creates isoparametric curves between two edges, and each isoparametric curve slowly transforms Edge 1 into Edge 2 as it approaches Edge 2, as shown in FIG. 33.

[0112] Thus, a first line segment between the first start point and the second start point is calculated, and a second line segment between the first end point and the second end point is calculated. Next, a first midpoint of the first line segment and a second midpoint of the second line segment are calculated. Next, an isoparametric curve is connected. The isoparametric curve connects the first midpoint and the second midpoint, thereby obtaining a valid pair of 2D paired wall centerlines. The resulting isoparametric curve is then considered as the baseline for the wall line segment. Figure 34 shows the resulting isoparametric curve, which becomes the 2D wall centerline of a valid pair of 3D wall edges.

[0113] Next, a further example of projecting each 2D paired wall centerline onto the calculated plane will be described. In some patterns, such as the "T" wall pattern, some gaps may be created after projecting the 2D paired wall centerlines onto the 2D plane, as shown in Figure 35. These gaps may need to be filled. Next, an example of implementation will be described.

[0114] For each domain, or at least the domain with the gap to be filled, the start and end points of the 2D wall centerlines of the 3D model and their respective tangent directions are obtained.

[0115] Next, the following steps are performed for each start point: A semi-infinite line is calculated. The semi-infinite line extends from the start point and has the tangent direction of the start point as its direction. The intersection of the semi-infinite line with the 2D wall centerline of the 3D model is calculated. Next, the distance between the calculated intersection and the start point is calculated. This distance is compared to the average thickness. The average thickness may be the average wall line segment pair thickness described with reference to S50. If the calculated distance is zero or less than the average thickness, the semi-infinite line is split into line segments connecting the start point and the intersection point. Thus, the gap is filled.

[0116] Next, or simultaneously, the same steps are performed for each end point. A semi-infinite line is calculated extending from the end point and having the tangent direction of the end point (as its own direction). The intersection of the semi-infinite line with the 2D wall centerline of the 3D model is calculated. Next, the distance between the calculated intersection and the end point is calculated. This distance is compared to the average thickness. If the calculated distance is less than the average thickness, the semi-infinite line is split into line segments connecting the end point and the intersection.

[0117] Once the gap-filling line segments are obtained, the 2D wall centerlines of the 3D model may be calculated, which may be performed as described with reference to S60, except that the calculated line segments are used in addition to the calculated 2D paired wall centerlines of the valid pairs in the merging.

[0118] FIG. 36 shows an implementation that describes the starting point case.

[0119] In an example, the projection of each 2D paired wall centerline onto the calculated plane may include a situation where there is an overlap of the projected 2D paired wall centerlines. This is shown in Figure 37. Four 2D paired wall centerlines have been calculated for the 3D wall. When projected onto the projection plane, two overlaps occur: the entirety of line 1 overlaps with a portion of line 2, and a portion of line 4 overlaps with a portion of line 2. To address the overlaps, in an example, the following algorithm may be used:

[0120] First, overlaps are detected between at least two projected 2D pair wall centerlines.

[0121] Next, two cases can be considered: the first is when the entire projected 2D paired wall centerline overlaps with another projected 2D paired wall centerline, and the second is when a part of the projected 2D paired wall centerline overlaps with another projected 2D paired wall centerline.

[0122] If one projected 2D paired wall centerline entirely overlaps another projected 2D paired wall centerline, the following steps are performed.

[0123] Among at least two projected 2D pair wall centerlines, one with the closest start and end points that overlap with another projected 2D pair wall centerline is selected. For example, in Figure 37, line 1 overlaps with line 2, and the closest start and end points are those of line 1.

[0124] A first cutting line is calculated, which passes through the nearest start point and is perpendicular to the projection plane. A second cutting line is also calculated, which passes through the nearest end point and is perpendicular to the projection plane. In Figure 37, the first and second cutting lines are 370 and 371.

[0125] Using the two cutting lines, a cut is performed on another projected 2D pair wall centerline, for example, cutting projected line 2 in FIG. 37, removing the portion of projected line 2 that is between the first cutting line 370 and the second cutting line 371.

[0126] Then, one projected 2D pair wall centerline is stitched with the other projected 2D pair wall centerline. For example, in Figure 37, projected line 1 is stitched with the remaining two parts of line 2.

[0127] If a portion of one projected 2D paired wall centerline overlaps with another projected 2D paired wall centerline, the following steps are performed.

[0128] The closest start or end point of one of at least two projected 2D paired wall centerlines that overlaps with another projected 2D paired wall centerline is selected. For example, in Figure 37, line 4 overlaps with line 2, and the closest start point is the left end of line 4.

[0129] A first cutting line is calculated that passes through the closest starting point and is perpendicular to the projection plane. The first cutting line of the closest starting point of line 4 is labeled 372 in FIG.

[0130] The cutting line is used to perform cutting of the other projected 2D pair wall centerlines. Continuing to refer to Figure 37, line 2 is cut by cutting line 372. The portion of line 2 to the right of the cutting line (i.e., the portion of line 2 that overlaps with line 4) is deleted.

[0131] One projected 2D pair wall centerline is then stitched with the other projected 2D pair wall centerline. In Figure 37, projected line 4 is stitched with the remaining part of line 2.

Claims

1. 1. A computer-implemented method for designing a 2D wall centerline from at least one 3D wall of a 3D model representing a to-be-constructed building, comprising: - obtaining at least one 3D volume, each 3D volume representing at least one 3D wall, each 3D wall being made up of faces bounded by edges and connected by vertices forming said edges, each face having a normal vector; - obtaining the wall direction, which is a vector and represents the direction of the wall elevation; - for each 3D wall, obtaining the face with its respective negative scalar oriented opposite to the orientation of the wall direction; - for each edge of each of the acquisition surfaces, identifying one edge from among the edges of said acquisition surface, thereby forming a valid pair of edges representing a 3D wall of said at least one 3D wall of said 3D model; - calculating the 2D pair wall centerlines for each valid pair formed; and - calculating the 2D wall centerlines of the 3D model by merging the calculated 2D pair wall centerlines of the valid pairs; A computer-implemented method comprising:

2. before identifying one of the edges of the acquisition surface; - further comprising merging acquired faces by removing internal edges, said internal edges being edges connecting two faces that are in contact with each other, said merged acquired faces forming a domain; The computer-implemented method of claim 1 .

3. each 3D wall has a height representing an elevation of said wall, a length representing a footprint of said wall on the ground, and a thickness that is less than said length divided by two; For each face of each 3D wall, any normal vector on that face has the same direction relative to the wall direction.

3. The computer-implemented method of claim 1 or 2.

4. Identifying one of the edges of the acquisition surface comprises: - calculating, for each edge of each of said acquisition surfaces, a first line passing through said edge; - calculating, for each of said other edges of said acquisition surface, a second line passing through said other edge of said acquisition surface; - calculating the angle between said first line and said second line; and - the calculated angle is within a predetermined angle tolerance θ 1 °, and the calculated angle is in the range [180°; 180°-θ 1 °], discarding the edge of said second line, thereby considering said edges of said first and second lines not to be a valid pair of edges, preferably within said predetermined angular tolerance θ 1 has a value included in [10°; 30°], and more preferably, the predetermined angle tolerance θ 1 ° has a value of 25° The computer-implemented method of any one of claims 1 to 3, comprising:

5. - obtaining a first center point, a first start point, and a first end point for each of said edges of each of said acquisition surfaces; and - obtaining a second center point, a second start point, and a second end point for each of the other edges of the acquisition surface; Furthermore, - calculating the first line comprises calculating a line passing through the first starting point and the first ending point; - calculating the second line comprises calculating a line passing through the second starting point and the second ending point; The computer-implemented method of claim 4.

6. Identifying one of the edges of the acquisition surface 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; - the calculated distance is less than a predetermined thickness value T of the 3D wall 1 if the predetermined thickness value T is less than 1 / 2, discard the edge of the second center point, thereby deeming the edges of the first and second center points not to be a valid pair of edges; 1 preferably has a value included in the range [1 mm; 5 mm], more preferably the predetermined thickness value T 1 has a value of 1 mm, The computer-implemented method of claim 5 further comprising:

7. Identifying one of the edges of the acquisition surface comprises: - calculating a first distance between said first starting point and said second starting point; - calculating a second distance between said first starting point and said second ending point; - calculating a third distance between said first end point and said second start point; - calculating a fourth distance between said first end point and said second end point; - determining the smallest distance among said first, second, third and fourth distances, thereby obtaining the point pair comprising the two points for which said smallest distance is calculated; - for each point of said pair of points, calculating a vector from said point of said pair to said start point or end point of said edge to which said point of said pair belongs, thereby obtaining two vectors; - calculating the scalar product of the two vectors obtained; and - discarding said edge of each of said other edges of said acquisition surface if said calculated scalar product is negative. The computer-implemented method of claim 5 or 6, further comprising:

8. Identifying one of the edges of the acquisition surface comprises: - calculating a line segment connecting said first center point and said second center point; and - discarding each of the other edges of the acquisition surface if no intersection is detected between the calculated line segment and the domain. The computer-implemented method of claim 7 in combination with claim 2, further comprising:

9. - 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 said edge of each of said other edges of said acquisition surface together with its calculated reference minimum distance as a valid candidate in a list of valid candidates; and - selecting the valid candidate, i.e. the valid pair of edges, in the list that has the smallest calculated reference minimum distance; The computer-implemented method of claim 7 or 8, further comprising:

10. Identifying one of the edges of the acquisition surface comprises: the distance D between the first and second lines 1 Calculating the length L of the edge supporting the first line 1 To obtain the length L of the edge supporting the second line 2 and - the distance D 1 is the length L 1 and / or the length L 2 if greater, discarding the edge of the first line and the edge of the second line, thereby deeming the edges of the first and second lines not a valid pair of edges. The computer-implemented method of any one of claims 5 to 9, further comprising:

11. Calculating the 2D pair wall centerlines comprises: - calculating a first line segment between said first start point and said second start point, and a second line segment between said first end point and said second end point; - calculating a first midpoint of said first line segment and a second midpoint of said second line segment; - calculating a line segment connecting said first intermediate point and said second intermediate point, thereby obtaining said 2D pair wall centerline of said valid pair; - calculating an average wall segment pair thickness from each wall segment pair thickness of each of said 2D pair wall centerlines; - comparing the length of the 2D paired wall centerline of each valid pair with the calculated average wall line pair thickness; and - discarding said 2D pair wall centerlines if the length of any of said 2D pair wall centerlines is less than said calculated average wall line pair thickness; The computer-implemented method of any one of claims 5 to 10, comprising:

12. At least one 3D wall comprises at least one non-planar face, and calculating the 2D pair wall centerlines comprises: - calculating a first line segment between said first start point and said second start point, and a second line segment between said first end point and said second end point; - calculating a first midpoint of said first line segment and a second midpoint of said second line segment; and - calculating an isoparametric curve connecting said first intermediate point and said second intermediate point, thereby obtaining said 2D pair wall centerline of said valid pair; The computer-implemented method of any one of claims 5 to 11, comprising:

13. Calculating the 2D pair wall centerlines of the 3D model comprises: - obtaining the lowest vertex of the vertices of the 3D wall in the wall direction; - calculating a plane comprising said lowest vertex and normal to said wall direction; - projecting each 2D paired wall centerline onto said calculated plane, said projection being performed according to said wall direction, thereby obtaining a set of projected 2D paired wall centerlines; - merging said projected 2D pair wall centerlines; and - removing the starting and / or ending vertices and / or non-acute vertices on the merged projected 2D pair wall centerlines, thereby obtaining the 2D wall centerlines of the 3D model; The computer-implemented method of any one of claims 5 to 10, further comprising:

14. Projecting each 2D pair wall centerline onto the calculated plane comprises: - detecting overlap between at least two projected 2D pair wall centerlines; - if one projected 2D pair wall centerline entirely overlaps with another projected 2D pair wall centerline, selecting one of the closest start and end points of said at least two overlapping projected 2D pair wall centerlines; - calculating a first cutting line passing through said closest start point and perpendicular to the projection plane, and a second cutting line passing through said closest end point and perpendicular to said projection plane; --using the two cutting lines to cut other projected 2D pair wall centerlines; and --stitching said one projected 2D pair wall centerline with said other projected 2D pair wall centerline; - if a portion of said one projected 2D paired wall centerline overlaps with said other projected 2D paired wall centerline, selecting one of the closest start or end points of said at least two overlapping projected 2D pair wall centerlines; - calculating a first cutting line passing through said closest starting point and perpendicular to said projection plane; --using said cutting line to cut said other projected 2D pair wall centerlines; and --Stitching said one projected 2D pair wall centerline with said other projected 2D pair wall centerline. The computer-implemented method of claim 13 further comprising:

15. About the domain - obtaining the start and end points of the 2D wall centerlines of the 3D model and their respective tangent directions; - for each starting point, --using said starting point as the start of said line, and calculating a semi-infinite line whose direction is the tangent direction of said starting point; --calculating the intersection of the semi-infinite line with the 2D wall centerline of the 3D model; --calculating the distance between said intersection point and said starting point; --if the calculated distance is less than the average thickness, splitting the semi-infinite line, thereby connecting the starting point and the intersection point with a line segment; - for each end point, --using said end point as the start of said line and calculating a semi-infinite line whose direction is the tangent direction of said end point; --calculating the intersection of the semi-infinite line with the 2D wall centerline of the 3D model; --calculating the distance between said intersection point and said end point; --if the calculated distance is less than the average thickness, splitting the semi-infinite line, thereby connecting the end point and the intersection point with a line segment; - merging the calculated 2D pair wall centerlines of the valid pairs with the calculated line segments to calculate the 2D wall centerlines of the 3D model; A computer implemented method according to any one of claims 5 to 14 in combination with claim 2.

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

17. 17. A computer readable medium having stored thereon the computer program of claim 16.

18. A system comprising a processing unit and a graphical user interface communicatively coupled to a memory, said memory having stored thereon a computer program according to any one of claims 1 to 15.