3D model placement method and system, computer device, and storage medium

CN118650883BActive Publication Date: 2026-10-30SHANGHAI VOXELDANCE TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410965518.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-07-17
Publication Date
2026-10-30
Estimated Expiration
2044-07-17

AI Technical Summary

Technical Problem

[0006]鉴于以上所述相关技术的缺点,本申请的目的在于提供一种3D模型摆放方法、3D打印方法、3D模型的摆放系统、计算机设备、计算机可读存储介质及计算机程序产品,用以克服上述相关技术中3D模型总体摆放高度过高所导致的摆放效率低下,进一步导致打印耗时的技术问题

Benefits of technology

[0011]本申请的第五方面公开了一种计算机可读存储介质,存储有至少一个程序,所述至少一个程序被计算机的处理器调用并执行时实现如本申请第一方面任一实施例中所述的3D模型摆放方法。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118650883B_ABST
    Figure CN118650883B_ABST
Patent Text Reader

Abstract

The application discloses a 3D model placing method, a 3D printing method, a 3D model placing system, a computer device, a computer readable storage medium and a computer program product. The 3D model placing method comprises the following steps: updating the volume height of a build volume according to the comparison result of the current 3D model to be placed and the residual height in the build volume; determining a collision-free position in the updated build volume, which makes the joint optimization of the placing height and the fitting degree of the 3D model optimal; and determining the placing position of the 3D model based on the collision-free position to place the 3D model into the build volume. The application optimizes the 3D model placing process to reduce the overall placing height, and also improves the placing efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of 3D printing technology, and in particular to a 3D model placement method, a 3D printing method, a 3D model placement system, a computer device, a computer-readable storage medium, and a computer program product. Background Technology

[0002] 3D printing is a rapid prototyping technology. 3D printing equipment uses curable materials such as powdered metals, plastics, and resins to construct objects layer by layer based on the data to be printed. The data to be printed can be, for example, formed by slicing and path planning multiple 3D models arranged in a specific manner.

[0003] In 3D printing using powder materials, such as selective laser sintering (SLS) and binder jetting, the unsintered powder can provide support for the printed object, eliminating the need to set up supports for the object. Therefore, in the 3D model placement stage, multiple 3D models can be arranged in three dimensions within the corresponding construction volume of the printing space.

[0004] The way multiple 3D models are arranged in three dimensions within the corresponding print volume affects placement efficiency, and the placement result affects subsequent printing efficiency. For example, some existing 3D model placement methods do not take into account the final placement height, resulting in an excessively high overall placement height. This further increases the printing time, requiring the printing of excessively high heights to be completed before the printing job can be finished.

[0005] Therefore, how to optimize the 3D model placement process to reduce the overall placement height while improving placement efficiency is a technical problem that urgently needs to be solved by those skilled in the art. Summary of the Invention

[0006] In view of the shortcomings of the above-mentioned related technologies, the purpose of this application is to provide a 3D model placement method, a 3D printing method, a 3D model placement system, a computer device, a computer-readable storage medium, and a computer program product, so as to overcome the technical problem that the overall placement height of the 3D model is too high, resulting in low placement efficiency and further time-consuming printing.

[0007] To achieve the above and other related objectives, a first aspect of this application discloses a 3D model placement method, comprising the following steps: updating the volume height of the construction volume based on a comparison result between the 3D model to be placed and the remaining height in the construction volume; determining a collision-free position in the updated construction volume that makes the placement height and fit of the 3D model jointly optimal; and determining the placement position of the 3D model based on the jointly optimal collision-free position to place the 3D model into the construction volume.

[0008] The second aspect of this application discloses a 3D printing method, comprising: acquiring data to be printed, the data to be printed being obtained based on a construction volume in which 3D models are placed, wherein the 3D models placed in the construction volume are arranged according to the 3D model placement method described in any embodiment of the first aspect of this application; and performing three-dimensional manufacturing based on the data to be printed to form a 3D object corresponding to the placed 3D models.

[0009] A third aspect of this application discloses a 3D model placement system, comprising: a height update module, configured to update the volume height of the construction volume based on a comparison result between the current 3D model to be placed and the remaining height in the construction volume; and a placement position determination module, configured to determine a collision-free position in the updated construction volume that results in the optimal placement height and fit of the 3D model, and to determine the placement position of the 3D model based on the optimal collision-free position to place the 3D model into the construction volume.

[0010] The fourth aspect of this application discloses a computer device, comprising: a storage device for storing at least one program; and a processing device connected to the storage device for implementing the 3D model placement method as described in any embodiment of the first aspect of this application when the at least one program is invoked and executed from the storage device.

[0011] The fifth aspect of this application discloses a computer-readable storage medium storing at least one program, which, when called and executed by a computer processor, implements the 3D model placement method as described in any embodiment of the first aspect of this application.

[0012] The sixth aspect of this application discloses a computer program product that, when run on a computer, causes the computer to execute the 3D model placement method as described in any embodiment of the first aspect of this application.

[0013] In summary, the 3D model placement method, 3D printing method, 3D model placement system, computer equipment, computer-readable storage medium, and computer program product disclosed in this application can reduce the overall placement height and improve placement efficiency by updating the volume height of the construction volume during the 3D model placement process and taking into account both fit and placement height in the 3D model placement.

[0014] Other aspects and advantages of this application will readily be apparent to those skilled in the art from the detailed description below. Only exemplary embodiments of this application are shown and described in the following detailed description. As will be appreciated by those skilled in the art, the content of this application enables them to make modifications to the disclosed specific embodiments without departing from the spirit and scope of the invention to which this application pertains. Accordingly, the descriptions in the accompanying drawings and specification of this application are merely exemplary and not restrictive. Attached Figure Description

[0015] The specific features of the invention involved in this application are shown in the appended claims. The features and advantages of the invention can be better understood by referring to the exemplary embodiments and drawings described in detail below. A brief description of the drawings is as follows:

[0016] Figure 1 The diagram shown is a flowchart illustrating a 3D model placement method in one embodiment of this application.

[0017] Figure 2 The diagram shown is a structural schematic of the build volume in one embodiment of this application.

[0018] Figure 3 The diagram shown is a structural schematic of the construction volume of a preset non-placement area in one embodiment of this application.

[0019] Figure 4 The diagram shown is a structural schematic of the bounding box of a 3D model in one embodiment of this application.

[0020] Figure 5 The flowchart shown is a step S110 of one embodiment of this application.

[0021] Figure 6 This is a schematic diagram showing a comparison of the margin height with the 3D model to be placed in one embodiment of the present application.

[0022] Figure 7 The diagram shown illustrates, in one embodiment of this application, the volume height of the construction volume is increased.

[0023] Figure 8 The diagram shows a flowchart of determining whether to reduce the volume height of the build volume in one embodiment of this application.

[0024] Figure 9 The diagram shown illustrates a reduction in the volume height of the build volume in one embodiment of this application.

[0025] Figure 10 The diagram shown is a schematic representation of step S121 in one embodiment of this application.

[0026] Figure 11 The diagram shown is a flowchart of step S122 in one embodiment of this application.

[0027] Figure 12 The diagram shown is a schematic representation of step 1221 in one embodiment of this application.

[0028] Figure 13 The diagram shown is a schematic representation of step S1222 in one embodiment of this application.

[0029] Figure 14 The diagram shown is a schematic of placing a 3D model into a build volume in one embodiment of this application.

[0030] Figure 15 The diagram shown is a schematic representation of the distance field update of the constructed volume in one embodiment of this application.

[0031] Figure 16 The diagram shown is a flowchart illustrating the optimized distribution in one embodiment of this application.

[0032] Figure 17 The diagram shown illustrates the distance field update of the update range in an optimized distribution according to one embodiment of this application.

[0033] Figure 18 The diagram shown is a flowchart illustrating a printing method according to one embodiment of this application.

[0034] Figure 19 The diagram shown is a block diagram of a 3D model placement system according to one embodiment of this application.

[0035] Figure 20 The diagram shown is a structural schematic of a computer device according to one embodiment of this application. Detailed Implementation

[0036] The following specific embodiments illustrate the implementation of this application. Those skilled in the art can easily understand other advantages and effects of this application from the content disclosed in this specification.

[0037] In the following description, reference is made to the accompanying drawings, which illustrate several embodiments of the present application. It should be understood that other embodiments may also be used, and changes in module or unit composition, electrical and operational aspects may be made without departing from the spirit and scope of this disclosure. The following detailed description should not be considered limiting, and the scope of the embodiments of the present application is defined solely by the claims of the published patents. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the present application.

[0038] While the terms first, second, etc., are used in some instances herein to describe various elements or parameters, these elements or parameters should not be limited by these terms. These terms are used only to distinguish one element or parameter from another. For example, a first scale may be referred to as a second scale, and similarly, a second scale may be referred to as a first scale, without departing from the scope of the various described embodiments. Both first and second scales describe a scale, but they are not the same scale unless the context otherwise clearly indicates otherwise.

[0039] Furthermore, as used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context indicates otherwise. It should be further understood that the terms “comprising,” “including,” indicate the presence of the stated feature, step, operation, element, component, item, kind, and / or group, but do not preclude the presence, occurrence, or addition of one or more other features, steps, operations, elements, components, items, kinds, and / or groups. The terms “or” and “and / or” as used herein are to be interpreted inclusively, or mean any one or any combination thereof. Thus, “A, B, or C” or “A, B, and / or C” means “any one of: A; B; C; A and B; A and C; B and C; A, B, and C.” Exceptions to this definition occur only when combinations of elements, functions, steps, or operations are inherently mutually exclusive in some way.

[0040] In view of the technical problems mentioned in the background art, this application discloses a 3D model placement method, a 3D printing method, a 3D model placement system, a computer device, a computer-readable storage medium, and a computer program product. By updating the volume height of the construction volume during the 3D model placement process and taking into account both fit and placement height in the 3D model placement, the overall placement height can be reduced and the placement efficiency can be improved.

[0041] To more significantly emphasize the independence of the operation of functional units, many of the functional units described in this specification have been designated as modules. For example, a module may be implemented as a hardware circuit, including custom VLSI circuitry, gate arrays, or off-the-shelf semiconductors (e.g., logic chips, transistors, or other discrete components). Modules may also be implemented within programmable hardware devices, such as field-programmable gate arrays, programmable array logic, programmable logic devices, or similar devices.

[0042] Modules can also be implemented in software running on different types of processors. For example, a module of executable code may include one or more physical or logical blocks of computer instructions organized as objects, programs, or functions. However, the executable files of a module do not necessarily have to be physically located together, but may include different commands stored in different locations that, when logically connected together, encompass the module and implement its specified objectives.

[0043] Of course, the executable code module can be one or more instructions, and can even be distributed across several different code segments, different programs, and multiple storage devices. Similarly, computational data can be identified and represented within the module, and can be embodied in any suitable form and organized in any suitable data structure. The computational data can be collected as a single dataset, or can be distributed across different locations (including different storage devices), and can exist at least partially as electrical signals within a system or network. When the module or a portion thereof is implemented in software, the software portion is stored on one or more computer-readable media.

[0044] This application provides a 3D model placement method in some embodiments. The 3D model placement method can be executed by a computer device configured with a 3D model placement system. The 3D model placement system is a software tool or software module that can process data. It executes the 3D model placement method with the help of the hardware devices and / or the operating environment provided by the operating system in the computer device.

[0045] In one embodiment, the computer device may be configured as an electronic device, that is, the 3D model placement method is executed by the electronic device. For example, the electronic device includes a desktop computer, a laptop computer, a tablet computer, a smart TV, a smartphone, a tablet, an industrial control computer, etc. The electronic device may also be an electronic device consisting of a host with multiple virtual machines and human-computer interaction devices (such as touch screen, keyboard and mouse) corresponding to each virtual machine.

[0046] In one embodiment, the computer device may be configured as a server, that is, the server executes the 3D model placement method. The server can be deployed on one or more physical servers based on factors such as functionality and load. In some examples, the server may be a cloud-based server, referring to a cloud computing platform provided by a cloud computing provider, which can provide services such as IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service). The cloud computing platform includes public cloud, private cloud, and hybrid cloud. In some examples, the server may consist of a distributed or centralized server cluster. For example, the server cluster consists of at least one physical server. Each physical server is configured with multiple virtual servers, each virtual server runs at least one functional module of the system, and the virtual servers communicate with each other via a network.

[0047] Please see Figure 1 The figure shows a flowchart of a 3D model placement method according to one embodiment of this application. As shown, the 3D model placement method includes steps S110, S120, and S130. The following description of each embodiment is based on the example of the 3D model placement method being executed by a computer device.

[0048] It should be noted that, in order to facilitate data processing of the 3D model and the construction volume, the computer device voxels the 3D model and the construction volume respectively before step S110. In other words, the 3D model and the construction volume operated on in the subsequent steps are each composed of multiple voxels, and each voxel corresponds to a basic unit. For example, a basic unit is a cube that fills the space of the 3D model or the construction volume.

[0049] The build volume refers to the spatial volume used to place the 3D models. It needs to be compatible with the shape and size of the 3D printing platform to ensure that all 3D models placed within the build volume can be manufactured within the printing platform. Please refer to [link / reference]. Figure 2The figure shows a schematic diagram of the construction volume 30 in one embodiment of this application. As shown, the construction volume 30 has a predefined bottom surface A in the XY plane and a volume height H in the Z direction. The adaptation of the construction volume 30 to the shape and size of the printing platform can mean that the shape and size of the predefined bottom surface A are adapted to the shape and size of the printing platform. This adaptation only requires ensuring that the predefined bottom surface A can be contained within the printing platform (e.g., the printing surface of the printing platform). This allows the 3D model arranged in the construction volume 30 to be manufactured within the printing platform. It does not require that the shape and size of the predefined bottom surface A of the construction volume necessarily be consistent with or inconsistent with the shape and size of the printing platform. Figure 2 The example shown uses a predefined quadrilateral base A. In other examples, the predefined base A can also be configured as a circle, ellipse, triangle, pentagon, or more polygonal or irregular shapes.

[0050] Furthermore, in this embodiment, the volume height of the construction volume is not limited. In other words, the volume height of the construction volume changes before all 3D models are placed. Before placing the first 3D model to be placed, the volume height can be configured to 0. During the loop execution... Figure 1 In steps S110 to S130, during the placement of all the 3D models to be placed, the volume height will be updated each time, and the final volume height will be determined after all the 3D models have been placed.

[0051] Considering that non-processing areas are set on the printing platform, such as the edges or corners of the printing platform where the energy radiation mechanism or system cannot reach or has poor radiation effect, printing is not expected to be performed in these locations. Furthermore, some 3D models may be printed in specific locations on the printing platform; for example, users may want to place the 3D model corresponding to a part with high precision requirements in the central area of ​​the printing platform. In some embodiments, the 3D model placement method proposed in this application further includes a step of pre-setting a non-placement area in the build volume, performed before step S110. This non-placement area is configured as either a reserved non-processing area or a designated model placement position, or both. Please refer to [link to relevant documentation]. Figure 3 The figure shows a structural diagram of the construction volume of the pre-defined non-placement area in one embodiment of this application. As shown in the figure, the construction volume 30 has a pre-defined non-placement area 300. The non-placement area 300 occupies part of the space volume inside the construction volume 30 in a filling manner. In the subsequent execution steps S110 to S130, the non-placement area 300 is no longer used as the position for 3D placement.

[0052] Please continue reading. Figure 1In step S110, the computer device updates the volume height of the construction volume based on the comparison result between the current 3D model to be placed and the remaining height in the construction volume.

[0053] In one embodiment, the 3D model to be placed is selected from all available 3D models for this placement. All available 3D models can be pre-stored in a model library, from which they are selected for placement within the build volume each time. Therefore, step S110 includes determining the 3D model to be placed currently.

[0054] In one embodiment, before step S110, the computer device may sort all the 3D models to be placed, and the current 3D model to be placed can be determined based on the sorting result. For example, the computer device may sort all the 3D models to be placed by the product of their volume and height, or by their volume. The volume and height of each 3D model are configured as the volume and height corresponding to the bounding box of the 3D model, such as a bounding box with its axis parallel to the coordinate axis of the constructed volume, i.e., an AABB bounding box. Please refer to [link to relevant documentation]. Figure 4 The diagram shows a schematic diagram of the bounding box structure of a 3D model in one embodiment of this application. The XYZ coordinate axes in the diagram correspond to the coordinate axes of the construction volume. The length, width, and height of the bounding box 20 of the 3D model 10 are parallel to the X-axis, Y-axis, and Z-axis of the XYZ coordinate axis, respectively. The volume of the 3D model 10 is the product of the length, width, and height of the bounding box 20. The height of the 3D model 10 is the height of the bounding box 20. The product of the volume and height of the 3D model 10 is the product of the length, width, and height of the bounding box 20 multiplied by the height.

[0055] To improve the space utilization and placement speed of the constructed volume, the sorting can be, for example, from largest to smallest. That is, the sorting result is a ranking of all 3D models to be placed from largest to smallest. The current 3D model to be placed is determined by selecting the highest-ranking model among the remaining 3D models. For example, sorting by the product of the volume and height of all 3D models to be placed results in all models being sorted from largest to smallest according to this product value. In step S110, the highest-ranking 3D model (i.e., the 3D model with the largest product of volume and height) is first selected as the current 3D model to be placed. Then, the second-highest-ranking 3D model among the remaining models becomes the highest-ranking 3D model and will be selected in the next step of determining the current 3D model to be placed. It should be understood that the ranking from largest to smallest is only an example; in other examples, ranking from smallest to largest or other predefined sorting methods can also be used. This application does not limit the sorting method.

[0056] It should be noted that the above embodiments for calculating the volume and height of all 3D models to be placed and sorting them do not consider the pose changes of the 3D models. In some embodiments where the pose changes of the 3D models need to be considered, it is only necessary to rotate the 3D models by a preset angle, and then select the pose at one of the rotation angles based on a preset selection rule for calculating the volume, height, or sorting. In the example where the sorting is based on the product of the volume and height of the 3D models, the preset selection rule can be configured to select the rotation angle with the minimum height. That is, for each 3D model to be placed, the pose at the rotation angle with the minimum height is selected to determine the volume, height, and sorting of the product of the volume and height of the 3D model.

[0057] Furthermore, the above method of determining the current 3D model to be placed by sorting results is only one example. In other embodiments, the computer device may also randomly select from all 3D models to be placed to determine the current 3D model to be placed. This application does not limit the determination method.

[0058] After determining the 3D model to be placed, step S110 updates the volume height of the construction volume based on the 3D model. The following is combined with... Figures 5 to 9 An example is provided to illustrate the process of updating the volume height of the constructed volume in step S110.

[0059] Please see Figure 5 The figure shows a flowchart of step S110 in one embodiment of this application. As shown, step S110 further includes steps S111 and S112. In step S111, the computer device performs the process of obtaining the current placement height and current volume height of the build volume to determine the margin height.

[0060] The remaining height refers to the height remaining in the building volume, which can be determined by subtracting the current placement height from the current volume height of the building. Please refer to [link / reference]. Figure 6 The diagram shows a comparison of the remaining height with the 3D model to be placed in one embodiment of this application. Figure 6 The margin height Δh1 is also shown in the figure. The current placement height of the construction volume 31 refers to the height occupied by the 3D models already placed in the current construction volume 31 on the Z-axis. Figure 6 The current placement height is indicated by h1. The current volume height of build volume 31 refers to the height corresponding to the current spatial volume of build volume 31. Figure 6 The current volume height is represented by H1. The margin height Δh1 is the current volume height minus the current placement height, that is, Δh1 = H1 - h1.

[0061] In step S112, the computer device compares the margin height with the height of the 3D model at a first scale to update the volume height of the constructed volume. Figure 6 For example, the remaining height Δh1 is the current volume height H1 minus the current placement height h1, and the 3D model is the 3D model 11 to be placed.

[0062] In this embodiment, to ensure sufficient space for placing the 3D model, the computer device first performs a step of scaling up the height of the 3D model to be placed by a first ratio, and then performs a step of comparing the height at the first ratio with the remaining height of the construction volume. Figure 6 As shown, the height of the 3D model 11 to be placed refers to the height m of the 3D model 11 in the Z-axis direction, which can be configured as the height on the Z-axis corresponding to the bounding box of the 3D model 11. The embodiment using the bounding box is similar to that used for... Figure 4 The description is similar and will not be repeated here. The height of the 3D model at the first scale is configured as the first scale α multiplied by the height m. The computer device compares the height m of the 3D model 11 multiplied by the first scale α with the margin height Δh1. The first scale α can be configured to any value from approximately 1.2 to 1.6. For example, the first scale α can be configured to approximately 1.2, 1.3, 1.4, 1.5, or 1.6, etc. Preferably, it can be configured to 1.2.

[0063] It should be noted that, Figure 6 The illustrated embodiment uses a 3D model 11 to be placed in... Figure 6 The pose shown in the example illustrates the height and should not be construed as a limitation on the height of the 3D model. In some embodiments, to reduce the frequency of volume height updates for the constructed volume, the height of the 3D model to be placed is further configured as its highest height on the Z-axis under a preset rotation rule. In other words, the 3D model to be placed can be rotated under a preset rotation rule, and each rotated pose has a height on the Z-axis. The highest height is selected as the height of the 3D model 11 to be placed and scaled up by a first ratio for comparison with the margin height. Examples of preset rotation rules in this embodiment may include any one or more of the following: rotation with the Z-axis as the rotation center, rotation with the X-axis as the rotation center, rotation with the Y-axis as the rotation center, and traversing all rotation directions and angles, etc. This application does not limit the rotation rules.

[0064] In one embodiment, when the allowance height is determined to be equal to the height of the 3D model at the first scale after comparing it with the height of the 3D model to be placed, the volume height of the construction volume remains unchanged. Figure 6Taking the example shown, when comparing the remaining height Δh1 with the height of the 3D model 11 to be placed at the first scale (i.e., α×m), if it is determined that the remaining height Δh1 = α×m, then the current volume height H1 of the construction volume 31 remains unchanged. In other words, the remaining height Δh1 corresponding to the current volume height H1 of the construction volume 31 is sufficient to place the 3D model 11 to be placed, and there is no need to adjust the volume height H1 of the construction volume 31 at present.

[0065] In one embodiment, the volume height of the build volume is increased when the allowance height is determined to be less than the height of the 3D model at the first scale after comparing it with the height of the 3D model to be placed at the first scale. Please refer to [link to relevant documentation]. Figure 7 The diagram shows a schematic of increasing the volume height of the construction volume in one embodiment of this application, as shown below. Figure 7 As shown, when comparing the remaining height Δh1 with the height of the 3D model 11 to be placed at the first scale (i.e., α×m), if it is determined that the remaining height Δh1 is less than the height α×m of the 3D model 11 to be placed at the first scale, it means that the remaining height Δh1 corresponding to the current volume height H1 of the construction volume 31 is insufficient to place the 3D model 11 to be placed. The current volume height H1 of the construction volume 31 needs to be adjusted to H2. The adjusted volume height is as follows: Figure 7 The dashed lines in the diagram illustrate this. For example, in this embodiment, adjusting the volume height of the construction volume is achieved by superimposing the height α×m of the 3D model 11 to be placed at the first scale onto the current placement height h1 as the volume height H2 of the construction volume. That is, the adjusted volume height H2 of the construction volume is h1 + α×m.

[0066] In one embodiment, after comparing the allowance height with the height of the 3D model at a first scale and determining that the allowance height is greater than the height of the 3D model to be placed at the first scale, it is further determined whether to reduce the volume height of the build volume. This avoids unnecessary and frequent adjustments to the volume height of the build volume. For example, even if the current allowance height is sufficient to place the 3D model to be placed and leaves room, if the volume height of the build volume is directly reduced without further consideration simply to ensure that the 3D model can be placed just right, and if any of the remaining 3D models to be placed later are taller, the reduced volume height will need to be increased again. This increases the number of times the build volume needs to be adjusted, reducing the placement rate.

[0067] In view of this, please refer to Figure 8The figure shows a flowchart illustrating the process of determining whether to reduce the volume height of the build volume in one embodiment of this application. As shown, the step of determining whether to reduce the volume height of the build volume when the margin height is greater than the height at the first scale further includes steps S1121 and S1122. Specifically, when the margin height is greater than the height of the 3D model at the first scale, the computer device further considers the maximum height of all unplaced 3D models when determining whether to reduce the volume height of the build volume, thus avoiding the aforementioned problem of frequent adjustments reducing the placement rate.

[0068] Specifically, in step S1121, when the remaining height is greater than the height of the 3D model at the first scale, the computer device determines the maximum height among all the unplaced 3D models. Here, all unplaced 3D models include the currently placed 3D model and the remaining 3D models to be placed. Figure 6 Taking the example shown, when comparing the remaining height Δh1 with the height of the 3D model 11 to be placed at the first scale (i.e., α×m), if it is determined that the remaining height Δh1 > α×m, then it is necessary to further determine the maximum height between the height of the 3D model 11 to be placed and the height of the remaining 3D models to be placed. It should be noted that, similar to the aforementioned height for the 3D models to be placed, the height of all unplaced 3D models in this embodiment can also be configured as the height in the Z-axis direction corresponding to the bounding box of the 3D model. The embodiment using the bounding box is similar to that for... Figure 4 The description is similar, so I will not repeat it here.

[0069] In one embodiment, the height of each unplaced 3D model is configured as the height of each 3D model on the Z-axis in a default pose, such as the initial pose stored in the 3D model or a specified pose. The computer device determines the maximum height from the heights of each 3D model.

[0070] In another embodiment, the height of each unplaced 3D model is configured as its highest height on the Z-axis under a preset rotation rule. In other words, all unplaced 3D models can be rotated individually under the preset rotation rule, and each 3D model selects its highest height on the Z-axis as its height. The computer device determines the maximum height from the heights of each 3D model. Examples of preset rotation rules in this embodiment include any one or more of the following: rotation centered on the Z-axis, rotation centered on the X-axis, rotation centered on the Y-axis, and traversing all rotation directions and angles, etc. This application does not limit the rotation rules. In other embodiments, the height of all unplaced 3D models can be configured partly as the height on the Z-axis of the default pose and partly as the highest height on the Z-axis under the preset rotation rule. The computer device can determine the maximum height from the heights of each 3D model.

[0071] In step S1122, the computer device compares the remaining height with the maximum height under the second ratio to determine whether to reduce the volume height of the build volume. The second ratio is configured to be no less than the first ratio. For example, the second ratio can be configured to any value from approximately 1.2 to 2, such as approximately 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, etc., preferably 2.0.

[0072] In one embodiment, in step S1122, the computer device first performs a step of scaling up the maximum height by a second ratio, and then performs a step of comparing the maximum height under the second ratio with the remaining height of the construction volume. The maximum height determined in step S1121 is denoted as n, and the maximum height under the second ratio is configured as the second ratio β multiplied by the maximum height n, combined with... Figure 6 As shown, the computer device first multiplies the second ratio β by the maximum height n, and then compares β×n with the remaining height Δh1. It should be understood that since all unplaced 3D models include the currently placed 3D model 11, there is a possibility that the maximum height n is equal to the height m of the currently placed 3D model 11. The maximum height n is only an identifier and is not a restriction on its value.

[0073] In one embodiment, when the remaining height is determined to be equal to or less than the maximum height under the second ratio, the volume height of the build volume is not reduced; that is, the volume height of the build volume remains unchanged. Combined with... Figure 6As shown, when the remaining height Δh1 is compared with the maximum height (i.e., β×n) under the second scale, and it is determined that Δh1 is less than or equal to β×n, the volume height H1 of the constructed volume 31 remains unchanged. In other words, even if the remaining height Δh1 corresponding to the current volume height H1 of the constructed volume 31 may still have some margin after placing the 3D model 11 to be placed, the volume height H1 of the constructed volume will not be reduced at present to avoid frequent adjustments due to the existence of taller 3D models later.

[0074] In one embodiment, when the remaining height is determined to be greater than the maximum height under the second ratio, the volume height of the constructed volume is reduced to the maximum height under the second ratio plus the current placement height. Please refer to [link / reference]. Figure 9 The figure shows a schematic diagram of reducing the volume height of the build volume in one embodiment of this application. As shown, when the margin height Δh1 is determined to be greater than the maximum height under the second ratio (i.e., β×n), it means that the margin height Δh1 corresponding to the current volume height H1 of the build volume 31 is sufficient to place the tallest 3D model among all the unplaced 3D models and leaves a margin. Therefore, the current volume height H1 of the build volume 31 needs to be reduced to H3, as shown in the figure. Figure 9 The dashed line in the figure indicates the adjusted volume height H3. For example, the reduced volume height H3 is the current placement height h1 plus the maximum height β×n under the second ratio, that is, H3 = h1 + β×n.

[0075] Please continue reading. Figure 1 In step S120, the computer device determines the collision-free position within the updated build volume that optimally combines the placement height and fit of the 3D model. The 3D model is the currently placed 3D model from step S110. In other words, step S120 requires determining all collision-free positions of the currently placed 3D model within the updated build volume, and then determining a collision-free position from these positions that optimally combines the placement height and fit of the 3D model at that position.

[0076] Here, a collision-free position refers to a position where the 3D model can be completely placed within the construction volume without colliding with the existing set of objects within the construction volume. The existing set of objects within the construction volume refers to all objects currently existing within the construction volume, and may include 3D models already placed within the construction volume, such as... Figure 5 The 3D model placed at the current placement height h1 within the construction volume 31 can also include pre-defined non-placement areas within the construction volume, such as... Figure 3 The pre-filled non-placement area is 300.

[0077] As described in the previous embodiments, the 3D model and the construction volume are voxelized before step S110. In other words, the operation based on the 3D model and the construction volume in step S120 can be based on the voxelized meshes corresponding to the 3D model and the construction volume, respectively. In subsequent embodiments of step S120, the 3D model and the construction volume will be represented as voxelized meshes for explanation. Those skilled in the art should not understand this as a limitation on the 3D model and the construction volume.

[0078] In one embodiment, step S120 includes step S121, which is the step of performing a placement search on the 3D model (i.e., the 3D model to be placed) within the updated build volume to determine all collision-free positions. For example, step S121 can be performed by calculating the collision degree at each position of the voxelized mesh using a brute-force method, or by training a neural network using deep learning methods, or by using the No-Fit Polygon (NFP) method.

[0079] To reduce computational complexity and improve computational speed, in one embodiment, step S121 can be performed using the Fast Fourier Transform method. Please refer to [link to previous document]. Figure 10 The figure shows a schematic diagram of step S121 in one embodiment of this application. As shown, the 3D model 12 to be placed and the updated construction volume 320 have been divided into voxels. That is, the 3D model 12 to be placed and the updated construction volume 320 are represented by voxelized meshes, where one mesh represents one voxel. Figure 10 The 3D model 12 to be placed is represented by the voxelized mesh corresponding to its bounding box. Unfilled meshes indicate that the 3D model 12 to be placed does not occupy that voxel within the bounding box, while meshes with a fill of 1 indicate that the 3D model 12 to be placed occupies that voxel within the bounding box. In the updated build volume 320, unfilled meshes indicate that the voxel is not occupied within the build volume 320 and represents valid space, while meshes with a fill of 1 indicate that the voxel is occupied by an object within the build volume 320.

[0080] exist Figure 10 The placement search for the currently unplaced 3D model 12 within the updated build volume 320 is performed by convolving the two. Based on the convolution result, all collision-free positions can be determined. Specifically, Figure 10Hollow voxels (corresponding to unfilled meshes) are assigned a value of 0, while occupied voxels (corresponding to meshes with a fill of 1) are assigned a value of 1. The 3D model 12 to be placed is used as the convolution kernel, with a stride of one mesh. Convolution calculation is performed between the 3D model 12 to be placed and the construction volume 320, resulting in a convolution result 40. This convolution result 40 reflects the collision situation of the 3D model 12 to be placed at various positions within the construction volume 320. In the convolution result 40, meshes with non-zero numbers represent collision locations, meshes with a result of N represent meshes with no calculation results, which are also collision locations, and meshes with a result of 0 represent collision-free locations.

[0081] It should be noted that in the aforementioned or subsequent embodiments involving voxels, the placement of the 3D model is based on or referenced to the position occupied by the voxel whose bounding box is closest to the origin of the construction volume coordinates in its placement posture. That is, the various positions of the 3D model within the construction volume are based on (or referenced to) the position of the voxel whose bounding box is closest to the origin of the construction volume coordinates. Therefore, the positions within the construction volume mentioned above or subsequently refer to the positions of the voxels whose bounding boxes are closest to the origin of the construction volume coordinates. In the calculation of collision-free positions, fit, and placement height, these positions also correspond to filling the voxel or mesh occupied by the voxel whose bounding box is closest to the origin of the construction volume coordinates. Figure 10 As shown in the example, in the convolution result 40, the grid in the second row and second column (based on the bottom left grid as the first row and first column) filled with 0 represents a collision-free position, meaning that the 3D model 12 to be placed is in... Figure 10 The position that the voxel in the lower left corner of its bounding box (the grid with a fill of 1 in the lower left corner) should be placed in under the given posture, so that no collision will occur.

[0082] It should be understood that, Figure 10 For ease of description and demonstration, a two-dimensional view is used for illustration. Those skilled in the art can extend the description in the two-dimensional view to a three-dimensional view based on the description in this application, simply by corresponding each grid to a cube.

[0083] Step S120 further includes step S122, which is to determine, among all collision-free positions, a collision-free position that optimally combines the placement height and fit of the 3D model to be placed. Here, the placement height of the 3D model refers to its height within the construction volume when placed, and the fit of the 3D model refers to the degree of closeness (also known as the degree of fit or proximity) between the 3D model and surrounding objects when placed within the construction volume. Similar to the existing set of objects within the construction volume, the surrounding objects may include, for example, the 3D model already placed within the construction volume and a pre-defined non-placement area within the construction volume.

[0084] Please see Figure 11 The figure shows a flowchart of step S122 in one embodiment of this application. As shown, step S122 includes steps S1221, S1222, and S1223. In step S1221, a computer device performs a determination of the fit of the 3D model at various positions in the updated build volume based on the distance field of the updated build volume.

[0085] In one embodiment, the distance field of the updated build volume is configured based on the distance field obtained when the previous 3D model was placed into the build volume. In some examples, such as embodiments where step S110 updates the volume height of the build volume without adjusting the volume height of the build volume (or maintaining the volume height of the build volume), the distance field of the updated build volume is configured based on the distance field obtained when the previous 3D model was placed into the build volume. In some examples, such as embodiments where step S110 updates the volume height of the build volume by increasing or decreasing the volume height of the build volume, step S110 further increases the distance field of the increased portion or decreases the distance field of the decreased portion based on the distance field obtained when the previous 3D model was placed into the build volume to form the distance field of the updated build volume.

[0086] The distance field of the construction volume is used to indicate the shortest distance from each position in the construction volume to the objects already placed therein. The determination of the distance field when arranging 3D models into the construction volume will be described in detail later after the 3D models to be placed are arranged. It will not be elaborated here.

[0087] Please see Figure 12 The diagram shows step 1221 in one embodiment of this application, wherein the 3D model 12 to be placed is... Figure 10 Completely consistent with Figure 12 The updated build volume of 321 and Figure 10It is also divided into voxels, but the difference is that the number filled in each grid is used to represent the distance field of the updated build volume 321. In the updated build volume 321, the number filled in each grid is specifically the number between that grid and its nearest occupied voxel (corresponding to...). Figure 10 The distance (of a grid filled with 1s) is calculated using Manhattan distance. For example, Figure 12 The grid fill value in the upper right corner of the 321-volume structure is 3 because the nearest occupied voxel to that grid corresponds to 3. Figure 10 The third row and fourth column of the grid (based on the bottom left corner as the first row and first column) is filled with a grid of 1, and the Manhattan distance between the two is 3 grids.

[0088] exist Figure 12 The fit of the 3D model 12 at various positions within the updated construction volume 321 can be determined by performing convolution calculations between the 3D model 12 and the distance field of the updated construction volume 321. Specifically, the 3D model 12 is used as the convolution kernel, with a stride of one grid cell, to perform convolution calculations between the 3D model 12 and the distance field of the construction volume 321, resulting in a convolution result 41. The convolution result 41 reflects, or can be considered as, the fit of the 3D model at various positions within the updated construction volume. In the convolution result 41, a grid filled with N indicates no calculation result, and the number filled in each grid cell represents the fit of the 3D model at that grid cell position. A smaller number indicates a higher fit at that position (which can be understood as tighter or closer to surrounding objects), while a larger number indicates a lower fit at that position (which can be understood as looser or farther from surrounding objects).

[0089] It should be understood that, with Figure 10 Similarly, Figure 12 The illustration is also based on a two-dimensional view. Those skilled in the art can extend the three-dimensional view based on the description in the two-dimensional view by simply corresponding each grid to a cube.

[0090] Please continue reading. Figure 11 In step S1222, the computer device performs the operation of associating the placement height of the 3D model (i.e., the 3D model to be placed) at each position with the fit, thereby obtaining the combination value at each position. In some examples, the combination method can be a mathematical operation, such as multiplication, addition, or multiplication or addition after setting weights.

[0091] In one embodiment, the placement height of the 3D model to be placed at each position is correlated with the fit degree by multiplying the fit degree corresponding to each position by the placement height. See also... Figure 13The diagram shown is a schematic representation of step S1222 in one embodiment of this application. Figure 13 The convolution result 41 is Figure 12 The convolution result obtained can be considered as the fit of the 3D model to be placed at various positions in the updated build volume. The build volume 322 corresponds to... Figure 12 The build volume is 311, the difference is that... Figure 13 The numbers filled in each grid of the construction volume 322 represent the placement height of the 3D model to be placed at that position. In this embodiment, the placement height is the lowest height of the 3D model to be placed at that position on the Z-axis. Figure 12 In the 3D model 12, the placement height is represented by the height of its lower left corner on the Z-axis. Its placement height is 0 wherever it is placed in the first row of the construction volume 322, 1 whenever it is placed in the second row, 2 whenever it is placed in the third row, and 3 whenever it is placed in the fourth row. Specifically, the combination value at each position is obtained by multiplying the numbers filled in each grid of the construction volume 322 with the corresponding numbers filled in each grid of the convolution result 41. Figure 13 The combined value grid 42 is used in the representation. The larger the number, the worse the overall effect of the 3D model's fit and placement height at that position. The smaller the number, the better the overall effect of the 3D model's fit and placement height at that position.

[0092] Please continue reading. Figure 11 In step S1223, the computer device selects the position with the smallest combined value from all collision-free positions as the joint optimal collision-free position.

[0093] In one embodiment, all collision-free positions are determined according to step S121. The combined value refers to the combined value of the placement height and fit at each position, which is determined by steps S1211 and S1222. It should be noted that steps S121, S1221, and S1222 do not necessarily have a sequential relationship. Those skilled in the art can, with the help of the various embodiments provided in this application, choose to first execute step S121 to determine all collision-free positions, and then execute steps S1221 and S1222 to obtain the combined value of the placement height and fit of the 3D model at each position. Alternatively, steps S1221 and S1222 can be executed first to obtain the combined value of the placement height and fit of the 3D model at each position, and then step S121 can be executed to determine all collision-free positions.

[0094] In one embodiment, the computer device can first determine the combined values ​​of placement height and fit for all collision-free positions, and then select the position with the smallest combined value as the jointly optimal collision-free position. (Please refer to...) Figure 10 and Figure 13 ,in Figure 10 The convolution result 40 and Figure 13 The meshes in the combined value mesh 42 are in one-to-one correspondence. The computer device can find the part in the combined value mesh 42 that corresponds to the mesh in the convolution result 40 that is filled with 0 (indicating no collision position). For ease of illustration and explanation, Figure 13 The grid is filled with gray, and then the grid with the smallest combination value is selected from the gray-filled grid as the jointly optimal collision-free location, i.e. Figure 13 In the mesh 42 with a joint value of 3, in embodiments where there are multiple jointly optimal collision-free locations, for example... Figure 13 If there are two grids with a combination value of 3, then one of them can be randomly selected or selected according to a preset selection rule as the joint optimal collision position.

[0095] To achieve better placement results, step S120 includes rotating the 3D model to be placed in a preset set of directions to determine the collision-free position in the updated build volume that makes the placement height and fit of the 3D model to be placed in each rotation direction jointly optimal.

[0096] In one embodiment, the preset set of directions may include multiple rotational directions with a central axis parallel to the X-axis, Y-axis, or Z-axis of the construction volume as the rotation axis. The multiple rotational directions may be, for example, 2, 4, 6, 8, 12, or 24 rotational directions. Specifically, 2 rotational directions correspond to a rotation of 180° each time, 4 rotational directions correspond to a rotation of 90° each time, 6 rotational directions correspond to a rotation of 60° each time, 8 rotational directions correspond to a rotation of 45° each time, 12 rotational directions correspond to a rotation of 30° each time, and 24 rotational directions correspond to a rotation of 15° each time. The selection of the rotation axis and the number of rotational directions above are merely examples and should not be construed as limiting this application.

[0097] In one embodiment, the computer device performs the following steps on the current 3D model to be placed in each rotational direction: Figures 10 to 13 The various embodiments included in step S120, as described in the relevant description, can determine the collision-free position that optimally combines the placement height and fit of the current 3D model to be placed in each rotation direction. Specifically, for each 3D model to be placed in each rotation direction, the following steps are performed: Figures 10 to 13 The various embodiments included in step S120 and its related descriptions can be found in the foregoing descriptions of such embodiments. Figure 1 , Figures 10 to 13 Any embodiments relating to step S120 and related steps, as described herein, will not be repeated here. The only difference is that the state of the 3D model to be placed changes, for example... Figure 10 , Figure 12 ,as well as Figure 13 The 3D model 12 to be placed as shown in the figure will no longer be presented in the state shown in the figure, but will be presented in the state corresponding to each rotation direction. In this state, all collision-free positions, the fit of each position, and the combined value of fit and placement height of each position will be determined. In this way, the collision-free position that makes the placement height and fit of the 3D model to be placed optimal in each rotation direction can be determined.

[0098] Taking a 3D model with two rotational directions around its central Z-axis as an example, rotate the model to be placed 180° around its central Z-axis. Then, in this state, execute the following... Figures 10 to 13 The various embodiments included in step S120, as described in the relevant section, can obtain the joint optimal collision-free position in the first rotation direction. Continue by rotating the currently placed 3D model 180° around the central axis on the Z-axis. In this state, execute the following... Figures 10 to 13 The various embodiments included in step S120 of the description can obtain the joint optimal collision-free position in the second rotation direction.

[0099] It should be noted that determining the joint optimal collision-free position for the current 3D model to be placed under each rotation direction can be done in parallel or in serial manner, and this application does not impose any restrictions on this.

[0100] Furthermore, after determining the jointly optimal collision-free position, the computer device also performs step S130, such as... Figure 1 As shown, in step S130, the placement position of the 3D model is determined based on the jointly optimal collision-free position so that the 3D model is placed into the construction volume. Here, the 3D model is the currently placed 3D model described in the previous embodiment, and the construction volume is the updated construction volume described in the previous embodiment.

[0101] According to the embodiment of determining the jointly optimal collision-free position in step S120 above, the jointly optimal collision-free position is associated with the pose of the 3D model to be placed. Therefore, after determining the placement position of the 3D model to be placed based on the jointly optimal collision-free position in step S130, that is, determining the pose in which the 3D model to be placed will be placed in the construction volume.

[0102] Taking an example where the 3D model to be placed does not require a preset set of rotations, step S120 determines only a jointly optimal collision-free position. Step S130 uses this jointly optimal collision-free position as the placement position, and the 3D model to be placed is placed into the construction volume in the state calculated in step S120 (also called the no-rotation state or the current state). Please refer to [link to relevant documentation]. Figure 14 The diagram shown is a schematic of placing a 3D model into a build volume in one embodiment of this application. Figure 14 Lieutenant General Figure 13 The position corresponding to the grid with a joint value of 3 in the second row and second column of the joint value grid 42 is taken as the joint optimal collision-free position. The 3D model 12 to be placed is then positioned using this position. Figure 10 and Figure 12 The pose shown is placed into the build volume 320.

[0103] Taking the example of rotating the 3D model to be placed in a preset set of directions, step S120 can determine the joint optimal collision-free position under each rotation direction. In step S120, the joint optimal collision-free position with the smallest value will be selected as the placement position. The 3D model to be placed will be placed in the construction volume with the posture corresponding to the rotation direction with the smallest value. For example, if the joint optimal collision-free position with the smallest value is the rotation direction with the central axis parallel to the Z-axis of the construction volume as the rotation axis, then this will be selected as the placement position. The 3D model to be placed will be placed in the construction volume with the posture after the 180° rotation as the posture under this rotation direction.

[0104] Furthermore, step S130 further includes updating the effective space and distance field of the construction volume when placing the currently placed 3D model into the updated construction volume. Here, the effective space refers to the space within the construction volume that is not occupied by objects, for example... Figure 10 The unfilled mesh within the 320-volume structure represents the effective space.

[0105] In one embodiment, such as Figure 14 As shown, when the 3D model 12 to be placed is placed into the construction volume 320, the effective space of the construction volume 320 is updated. Specifically, when the 3D model 12 is placed into the construction volume 320, the mesh occupied by the 3D model 12 is filled with 1, as shown in the figure. Figure 14 The updated build volume of effective space shown is 320'.

[0106] In one embodiment, the computer device updates the distance field based on the effective space after the build volume update. Further, to reduce computational load, the distance field update includes determining the update range and updating the distance field within that range. Specifically, determining the update range can be defined as extending at least to the midpoint of the boundary of the 3D model from the bounding box within the build volume. Updating the distance field within the update range involves performing regional distance field updates along each diagonal direction of the 3D model's bounding box, starting from the initial angle of that diagonal direction and ending at the boundary of the update range. The center position of the bounding box from the boundary of the build volume includes the center positions of each surface of the bounding box from the boundary of the build volume. Thus, when updating the distance field each time a 3D model is placed, it is equivalent to updating only the area affected by the currently placed 3D model. Areas far from the currently placed 3D model do not require updating because their distance field is unaffected, reducing computational load and significantly improving the placement speed.

[0107] It's important to note that the midpoint of the bounding box of the 3D model from the boundary of the building volume does not necessarily point directly to the centerline of the bounding box relative to the boundary of the building volume. When the centerline is between two rows or columns of voxels, that position is used as the midpoint. When the centerline occupies only one row or column of voxels, the centerline is moved outward to a position encompassing that row or column of voxels, which is then used as the midpoint. In other words, if the bounding box of the 3D model has an even number of rows or columns of voxels from the boundary of the building volume, the update starts from the bounding box and proceeds to half of the even-numbered rows or columns. If the bounding box has an odd number of rows or columns of voxels, the update starts from the bounding box and rounds up to the half-numbered odd-numbered rows or columns as the endpoint.

[0108] Please see Figure 15 The diagram shown is a schematic representation of the distance field update of the constructed volume in one embodiment of this application. Figure 15 The volume of the structure is 321. Figure 12 The fill number shown represents the construction volume of the distance field, 321, as... Figure 14 As shown, when the 3D model 12 is placed in the designated location, its bounding box occupies the area shown. Figure 15 The area is filled with a gray grid. First, determine the update range, within... Figure 15In the context of the bounding box, the distance between the bounding box and the boundary of the building volume 321 is two grid rows from the top surface, one grid row from the bottom surface, one grid column from the left surface, and two grid columns from the right surface. Therefore, the midpoint of the bounding box relative to the building volume 321 is one grid row above the top surface, one grid row below the bottom surface, one grid column to the left of the left surface, and one grid column to the right of the right surface. In other words, the update range is... Figure 15 The area outlined in bold includes the grid occupied by the bounding box in the construction volume 321, as well as the grids one row above, one row below, one column to the left, and one column to the right of the bounding box.

[0109] The update of the range field can only update, such as Figure 15 The update scope, specifically, is within the bounding box (see reference). Figure 15 The distance field is updated in regions along each diagonal direction of the grid filled with gray, starting from the diagonal starting angle and ending at the boundary of the update range. In other words, the update range is divided into regions, with each region updated along its diagonal direction from the diagonal starting angle to the boundary of the update range. Figure 15 As shown, the four corners of the bounding box are labeled as corner C, corner D, corner E, and corner F, respectively. It has four diagonal directions: the first diagonal direction (C towards E), the second diagonal direction (D towards F), the third diagonal direction (E towards C), and the fourth diagonal direction (F towards D). The distance field update for each region includes: [The text abruptly ends here, likely due to an incomplete sentence or missing information.] Figure 15 The update process involves four regions: L1, L2, L3, and L4. Specifically, the distance field update for L1 begins at the first corner (C) and ends at the boundary of the update range, following the direction of the dashed arrow within L1. Similarly, the update for L2 begins at the second corner (D) and ends at the boundary of the update range, following the direction of the dashed arrow within L2. The update for L3 begins at the third corner (E) and ends at the boundary of the update range, following the direction of the dashed arrow within L3. Finally, the update for L4 begins at the fourth corner (F) and ends at the boundary of the update range. After updating these four regions, they are merged to obtain the final updated distance field, which is displayed in construction volume 321'. The gray mesh in construction volume 321' represents the updated portion during this placement.

[0110] It should be understood that, in order to increase speed, Figure 15The update processes for the four regions can be performed in parallel, although they can also be performed sequentially in other examples; this application does not impose any restrictions on this. When merging the update results for the four regions, for examples where different values ​​appear in the same grid, the smaller value is taken as the fill value after merging.

[0111] in addition, Figure 15 The example provided is based on a two-dimensional perspective. In practice, the bounding box is configured as a cuboid. Only the distance field of eight regions needs to be updated along the eight diagonal directions corresponding to the four diagonals of the cuboid, starting from the initial angle of each diagonal direction and ending at the boundary of the update range. This differs from... Figure 15 The key feature is that the eight regions are three-dimensional regions, which those skilled in the art can understand. Figure 15 The description from a two-dimensional perspective inspires us to extend the three-dimensional view based on the two-dimensional view, which will not be elaborated here.

[0112] Through such Figures 1 to 15 The process described in any embodiment of the above-described procedure can complete the placement of the currently selected 3D model. Further, to complete the placement of all selected 3D models, in one embodiment, the 3D model placement method further includes repeatedly executing steps S110 to S130 until all selected 3D models are placed into the construction volume. It should be understood that during each placement, the volume height of the construction volume is updated via step S110, and after all selected 3D models are placed, the volume height of the construction volume is determined.

[0113] The following describes, in conjunction with the foregoing embodiments, the process of the computer device repeatedly executing steps S110 to S130 to place all the 3D models to be placed into the construction volume.

[0114] Before step S110, the computer device sorts all 3D models to be placed from largest to smallest by the product of their volume and height. The computer device first executes step S110 to update the volume height of the construction volume in the first loop. Specifically, it selects the 3D model at the highest position as the first 3D model to be placed (also called the first 3D model, which is the current 3D model to be placed in the first loop). At this time, the volume height value H of the construction volume is 0, the placement height value h1 is 0, and the margin height Δh1 is 0. The computer device determines that the margin height is less than the product of the height m1 of the first 3D model and the first ratio α, and then increases the volume height H of the construction volume to 0 + α × m1. Next, the computer device executes the aforementioned steps S120 and S130 on the first 3D model to determine its placement position and place it into the construction volume, thus completing the placement of the first 3D model.

[0115] In the second cycle, the computer device first executes step S110 to update the volume height of the constructed volume. Specifically, it selects the 3D model currently at the highest position (i.e., the highest position among the 3D models excluding the first 3D model) as the second 3D model to be placed (also called the second 3D model, which is the 3D model to be placed in the second cycle). At this time, the volume height value of the constructed volume H = 0 + α × m1, the placement height value h2 = m1 (taking the height m1 occupied by the first 3D model on the Z-axis as an example, the placement height at this time is m1), and the margin height Δh2 = α × m1 - m1. The computer device further compares the margin height Δh2 = α × m1 - m1 with the product value α × m2 of the height m2 of the second 3D model and the first proportion α, and determines the placement height based on the comparison results and the following criteria: Figures 5 to 9 The provided embodiments select an appropriate method to update the volume height H of the construction volume. Then, the computer device performs the aforementioned steps S120 and S130 on the second 3D model to determine the placement position of the second 3D model and place the second 3D model into the construction volume, thus completing the placement of the second 3D model.

[0116] The computer equipment then performs a third round of volume updates and places the third 3D model in a similar manner, followed by a fourth round of volume updates and placement of the fourth 3D model, and so on, until the final round of volume updates and placement of the last 3D model is completed. The volume height of the final updated volume is the final height.

[0117] To avoid the problem of uneven distribution of 3D models within the construction volume due to their dense distribution on one side, in one embodiment, the 3D model placement method provided in this application further includes a step of optimizing the distribution after all the 3D models to be placed have been placed.

[0118] Please see Figure 16 The figure shows a flowchart illustrating the optimized distribution in one embodiment of this application. As shown, the optimized distribution steps include steps S141, S142, and S143. In step S141, a computer device extracts a 3D model from the constructed volume and updates the effective spatial and distance fields of the constructed volume.

[0119] The construction volume refers to the construction volume after all the 3D models to be placed have been placed. The extraction can be understood as taking the 3D model out of the construction volume. For example, the 3D model can be randomly extracted from the construction volume, or it can be extracted according to the order in which it was placed, or it can be extracted according to a preset extraction rule. This application does not limit the extraction method.

[0120] In one implementation, step S141 updates the effective space and distance field of the construction volume during 3D model extraction. In this embodiment, the effective space update can be performed using the method of updating the effective space of the construction volume included in step S130; please refer to [link to relevant documentation] for details. Figure 14 The embodiments described herein, and their related embodiments, differ only in that, Figure 14 The update is performed after the 3D model is inserted. In this embodiment, the update is performed after the 3D model is extracted. In this embodiment, it can be understood that the build volume before the update is 320' and the build volume after the update is 320. The specific update process will not be described in detail here.

[0121] In one embodiment, the distance field update during 3D model extraction in step S141 includes determining an update range based on the bounding box of the extracted 3D model to perform a distance field update on the update range. In one example, determining the update range based on the bounding box of the extracted 3D model includes defining the update range within the construction volume as a position extending at least from the midpoint of the bounding box's distance from the boundary of the construction volume, centered on the bounding box of the extracted 3D model. In this example, the method for determining the update range can adopt the method used in step S130 for distance field update of the construction volume; please refer to the section on... Figure 15 And any of the embodiments related to determining the scope of the update as described in the relevant description.

[0122] Further, step S141 requires performing a distance field update on the update range. In this embodiment, performing a distance field update on the update range includes updating the distance field using the starting angle of each diagonal direction of the update range as the starting point and the ending angle as the ending point. Please refer to [link to previous text]. Figure 17 The diagram shows a distance field update of the update range in an optimized distribution according to one embodiment of this application. Figure 17 The volume of the structure is 321. Figure 15 The constructed volume shown is 321', where the numbers representing the distance field are used as follows. Figure 14 The 3D model 12 shown is the 3D model to be placed. Taking this as an example, it needs to be extracted from the construction volume 321' for distance field update. The determined update range is... Figure 17 The area outlined by the thickened line in the constructed volume.

[0123] Specifically, the four corners of the update range are labeled as the first corner P, the second corner Q, the third corner S, and the fourth corner R, respectively. It has four diagonal directions: the first diagonal direction (P towards S), the second diagonal direction (Q towards R), the third diagonal direction (S towards P), and the fourth diagonal direction (R towards Q). The distance field update of the update range includes: update process N1 (the process of updating the distance field of the update range starting from the first corner P and ending at the third corner S, according to the direction of the dashed arrow in N1), update process N2 (the process of updating the distance field of the update range starting from the second corner Q and ending at the fourth corner R, according to the direction of the dashed arrow in N2), update process N3 (the process of updating the distance field of the update range starting from the third corner S and ending at the first corner P, according to the direction of the dashed arrow in N3), and update process N4 (the process of updating the distance field of the update range starting from the fourth corner R and ending at the second corner Q, according to the direction of the dashed arrow in N4).

[0124] Furthermore, the distance field update for the updated range also includes merging the update results in each diagonal direction. Specifically, in examples where different values ​​appear for the same grid, the smaller value is taken as the fill value after merging. After merging, the final updated distance field is obtained, which is presented in the construction volume 321". The grid filled with gray in the construction volume 321" represents the part that has been extracted, optimized, and updated in this process.

[0125] In step S142, a computer device performs a determination of the fit of the extracted 3D model at each collision-free location within the constructed volume based on the updated effective space and distance field. In this embodiment, the updated effective space and distance field is the same as the effective space and distance field updated in step S141.

[0126] In one embodiment, step S142 includes placing the extracted 3D model in the updated effective space of the construction volume to determine all collision-free locations, and determining the fit of the extracted 3D model at each location in the construction volume based on the updated distance field. In one example, placing the extracted 3D model in the updated effective space of the construction volume to determine all collision-free locations can be performed using the method employed in step S121. For details, please refer to the section on... Figure 10 The embodiments relating to determining all collision-free locations are understood in the context of the above, and will not be elaborated further here. In one example, determining the fit of the extracted 3D model at various locations within the construction volume based on the updated distance field can be achieved using the method employed in step S1221 of step S122. For details, please refer to the documentation for... Figure 12 The embodiments relating to determining fit are understood in the context of the relevant examples and will not be repeated here.

[0127] Furthermore, step S142 also includes determining the fit at the corresponding collision-free location from the fit at each location in the built volume based on all collision-free locations. Figure 10 and Figure 12 The process will be illustrated by example, where the extracted 3D model can be considered as... Figure 10 and Figure 12 The computer device can find the part of the 3D model to be placed in the convolution result 41 that corresponds to the mesh in the convolution result 40 that is filled with 0 (indicating no collision position) in the convolution result 40, which represents the fit. Figure 12 The grids in the second row and second column, the second row and fourth column, the third row and second column, the fourth row and second column, the fourth row and third column, and the fourth row and fourth column (based on the bottom left grid as the first row and first column) of the convolution result 41 correspond to the fitting degree at each collision-free position.

[0128] In step S143, the computer device determines the collision-free position corresponding to the maximum fit as the repositioning position of the extracted 3D model. Continuing... Figure 10 and Figure 12 To illustrate this step, the computer device selects the minimum value among the fit values ​​at various collision-free locations. Specifically, it selects the grid corresponding to the minimum fill value from the grids in the second row, second column, second row, fourth column, third row, second row, second column, fourth row, third column, and fourth row, fourth column of the convolution result 41. This is the grid with a fill value of 3. In embodiments where multiple minimum values ​​exist, for example… Figure 12 If there are two grids with a fill value of 3, one of them can be randomly selected or selected according to a preset selection rule as the repositioning position.

[0129] In one embodiment, the distribution optimization step further includes cyclically executing the above steps S141, S142, and S143 until all 3D models in the construction volume have been traversed.

[0130] This application also provides a 3D printing method in some embodiments, which can be performed by a printing device configured to perform 3D printing using powder materials, such as selective laser sintering or binder jetting. The printing device includes at least a printing platform on which a 3D object is generated from a build material (e.g., powder) on the surface of the printing platform.

[0131] Please see Figure 18The figure shows a flowchart of a printing method according to one embodiment of this application. As shown, the printing method includes steps S210 and S220. In step S210, the printing device acquires data to be printed. In some embodiments, the data to be printed is obtained based on the volume of a build on which the 3D model is placed.

[0132] The build volume is adapted to the printing platform of the printing equipment, and the placed 3D models are the 3D objects to be printed. Each 3D model can be placed in the build volume according to the 3D model placement method provided in any of the foregoing embodiments of this application. For details, please refer to the foregoing embodiments. Figures 1 to 16 Any embodiments thereof described herein will not be repeated here.

[0133] In step S220, the printing device performs 3D manufacturing based on the data to be printed to form a 3D object corresponding to the placed 3D model. Specifically, the printing device uses building materials to perform layer-by-layer 3D manufacturing on the printing platform, thereby printing the 3D object corresponding to the 3D model placed in the building volume.

[0134] This application also provides a 3D model placement system in some embodiments, which can be deployed, for example, in a computer device, as a software tool or module capable of processing data. It performs the placement of 3D models using the hardware and / or operating system provided by the computer device. The specific structure and function of the computer device can be found in the description of the embodiments of the 3D model placement method in this application, and will not be repeated here.

[0135] Please see Figure 19 The figure shows a block diagram of a 3D model placement system according to one embodiment of this application. As shown, the 3D model placement system 5 includes a height update module 50 and a placement position determination module 51. The height update module 50 updates the height of the construction volume based on a comparison between the current 3D model to be placed and the remaining height in the construction volume. The placement position determination module 51 determines a collision-free position in the updated construction volume that optimally combines the placement height and fit of the 3D model, and determines the placement position of the 3D model based on the optimal collision-free position to place the 3D model into the construction volume.

[0136] In one embodiment, the height update module 50 and the placement position determination module 51 coordinately execute the 3D model placement method disclosed in any of the foregoing embodiments of this application according to the functions described above. Please refer to the documentation for... Figures 1 to 16The embodiments described herein, and their related embodiments, will not be repeated here. Additionally, in some embodiments, the height update module 50 and the placement position determination module 51 operate cyclically until all 3D models to be placed are placed.

[0137] In one embodiment, the 3D model placement system further includes an optimized distribution module for performing distribution optimization after all 3D models to be placed have been placed. The optimized distribution module performs the distribution optimization steps in the embodiments of the 3D model placement method of this application according to its function; please refer to the [reference needed for the 3D model placement method]. Figures 16 to 17 Any embodiments thereof described herein will not be repeated here.

[0138] This application also provides a computer device, which, in an embodiment, is used to implement the 3D model placement method described in any of the above embodiments. In one embodiment, the computer device is a device capable of performing digital calculations, logical processing, and information processing on data, including but not limited to: personal computers, industrial control computers, tablets, smartphones, servers, server clusters, smart terminals, cloud-based server systems, etc.

[0139] Please see Figure 20 The image shows a schematic diagram of a computer device 6 according to one embodiment of this application. The computer device 6 includes a storage device 60 and a processing device 61 connected to the storage device 60. Furthermore, the computer device also includes an interface device 62.

[0140] In some embodiments, the storage device 60 is used to store at least one program that can be executed by the processing device 61 to coordinate the storage device 60 in implementing the 3D model placement method described in any of the above embodiments. Here, the storage device 60 includes, but is not limited to, read-only memory (ROM), random access memory (RAM), and nonvolatile RAM (NVRAM). For example, the storage device 60 includes flash memory or other nonvolatile solid-state storage devices. In some embodiments, the storage device 60 may also include memory located remotely from one or more processing devices 61, such as network-attached memory accessed via RF circuitry or external ports and communication networks, wherein the communication network may be the Internet, one or more intranets, local area networks, wide area networks, storage area networks, etc., or suitable combinations thereof. A memory controller can control access to the memory by other components of the device, such as the CPU and peripheral interfaces.

[0141] In some embodiments, the processing device 61 includes one or more processors. The processing device 61 is operatively capable of performing data read and write operations with the storage device 60. The processing device 61 includes one or more general-purpose microprocessors, one or more application-specific integrated circuits (ASICs), one or more digital signal processors (DSPs), one or more field-programmable gate arrays (FPGAs), or any combination thereof.

[0142] In some embodiments, the interface device 62 includes at least one interface unit, each interface unit being used to output a visual interface, receive human-computer interaction events generated according to the operation of a technician, etc. For example, the interface device 62 includes, but is not limited to, serial interfaces such as HDMI interfaces or USB interfaces, or parallel interfaces, etc. In one embodiment, the interface device 62 further includes a network communication unit, which is a device for data transmission using wired or wireless networks, examples of which include, but are not limited to, integrated circuits including network cards, local area network modules such as WiFi modules or Bluetooth modules, and wide area network modules such as mobile networks, etc.

[0143] This application also provides a computer-readable storage medium storing at least one program that, when called and executed by a computer's processor, implements the 3D model placement method as described in any of the above embodiments.

[0144] This application also provides a computer program product that, when run on a computer, causes the computer to perform the aforementioned related steps to implement the 3D model placement method in any of the above embodiments.

[0145] If the method is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to enable a computer device with the storage medium installed to execute all or part of the steps of the methods described in the various embodiments of this application.

[0146] In the embodiments provided in this application, the provided computer storage medium may include read-only memory, random access memory, EEPROM, CD-ROM or other optical disc storage devices, disk storage devices or other magnetic storage devices, flash memory, USB flash drive, portable hard drive, or any other medium capable of storing desired program code in the form of instructions or data structures and accessible by a computer. Additionally, any connection may be appropriately referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. However, it should be understood that computer storage medium and data storage medium do not include connections, carrier waves, signals, or other transient media, but are intended for non-transient, tangible storage media. The disks and optical discs used in the application include compact optical discs (CDs), laser optical discs, optical discs, digital multifunction optical discs (DVDs), floppy disks, and Blu-ray discs, where disks typically copy data magnetically, while optical discs use lasers to copy data optically.

[0147] In summary, the 3D model placement method, 3D printing method, 3D model placement system, computer equipment, computer-readable storage medium, and computer program product disclosed in this application can reduce the overall placement height and improve placement efficiency by updating the volume height of the construction volume during the 3D model placement process and taking into account both fit and placement height in the 3D model placement.

[0148] Furthermore, during the process of updating the volume height of the build volume, if the remaining height is greater than the height of the 3D model to be placed at the first scale, the remaining 3D models to be placed will be considered to determine whether to perform a reduction operation, thereby reducing the number of times the volume height of the build volume is adjusted and further improving the placement speed.

[0149] Furthermore, by using a diagonal scan method when placing the 3D model into the construction volume, starting from the placement position of the 3D model and ending at the midpoint between the 3D model and the boundary of the construction volume, the distance field can be updated only in the area affected by the placement of the 3D model, greatly reducing the amount of computation.

[0150] Furthermore, by optimizing the distribution after all the 3D models to be placed have been placed, the problem of densely distributing the 3D models on one side of the construction volume is avoided, resulting in a more uniform placement effect.

[0151] The above embodiments are merely illustrative of the principles and effects of this application and are not intended to limit this application. Any person skilled in the art can modify or alter the above embodiments without departing from the spirit and scope of this application. Therefore, all equivalent modifications or alterations made by those skilled in the art without departing from the spirit and technical concept disclosed in this application should still be covered by the claims of this application.

Claims

1. A method for arranging 3D models, characterized in that, Includes the following steps: The volume height of the construction volume is updated based on the comparison between the current 3D model to be placed and the remaining height in the construction volume. Determining the collision-free position in the updated build volume that best combines the placement height and fit of the 3D model includes: performing a placement search on the updated build volume to determine all collision-free positions; determining the fit of the 3D model at each position in the updated build volume based on the distance field of the updated build volume; correspondingly combining the placement height of the 3D model at each position with the fit to obtain a combination value at each position; and selecting the position with the smallest combination value among all collision-free positions as the best collision-free position. Determining the placement position of the 3D model based on the joint optimal collision-free position to place the 3D model into the construction volume includes: updating the effective space and distance field of the construction volume when placing the 3D model into the construction volume; Repeat the above steps until all the 3D models to be placed are placed into the build volume.

2. The 3D model placement method according to claim 1, characterized in that, The step of updating the volume height of the construction volume based on the comparison between the current 3D model to be placed and the remaining height in the construction volume includes: Obtain the current placement height and current volume height of the constructed volume to determine the margin height; and The remaining height is compared with the height of the 3D model at a first scale to update the volume height of the build volume.

3. The 3D model placement method according to claim 2, characterized in that, The step of comparing the margin height with the height of the 3D model at a first scale to update the volume height of the build volume includes: increasing the volume height of the build volume when the margin height is less than the height at the first scale; or keeping the volume height of the build volume unchanged when the margin height is equal to the height at the first scale; or determining whether to decrease the volume height of the build volume when the margin height is greater than the height at the first scale.

4. The 3D model placement method according to claim 3, characterized in that, The step of increasing the volume height of the construction volume when the remaining height is less than the height at the first ratio includes: superimposing the height of the 3D model at the first ratio onto the current placement height as the volume height of the construction volume.

5. The 3D model placement method according to claim 3, characterized in that, The step of determining whether to reduce the volume height of the construction volume when the remaining height is greater than the height under the first ratio includes: When the allowance height is greater than the height of the 3D model at the first scale, the maximum height among all the unplaced 3D models is determined; and The remaining height is compared with the maximum height under the second ratio to determine whether to reduce the volume height of the build volume.

6. The 3D model placement method according to claim 5, characterized in that, The step of comparing the remaining height with the maximum height under the second ratio to determine whether to reduce the volume height of the building volume includes: when the remaining height is greater than the maximum height under the second ratio, reducing the volume height of the building volume to the maximum height under the second ratio plus the current placement height.

7. The 3D model placement method according to claim 1, characterized in that, The step of determining the collision-free position in the updated build volume that makes the placement height and fit of the 3D model jointly optimal includes: rotating the 3D model to be placed in a preset set of directions to determine the collision-free position in the updated build volume that makes the placement height and fit of the 3D model to be placed in each rotation direction jointly optimal.

8. The 3D model placement method according to claim 7, characterized in that, The step of determining the placement position of the 3D model based on the jointly optimal collision-free position to place the 3D model into the construction volume further includes: selecting the jointly optimal collision-free position with the smallest value under all rotation directions as the placement position.

9. The 3D model placement method according to claim 1, characterized in that, The steps for updating the distance field of the constructed volume include: The update range is defined as the area centered on the bounding box of the 3D model and extending at least to the midpoint of the bounding box's distance from the boundary of the construction volume. Distance field updates are performed in different regions along each diagonal direction of the bounding box of the 3D model, starting from the starting angle of the diagonal direction and ending at the boundary of the update range.

10. The 3D model placement method according to claim 1, characterized in that, It also includes the step of pre-setting a non-placement area in the construction volume.

11. The 3D model placement method according to claim 10, characterized in that, The non-placement area is configured as a reserved non-processing area and / or a designated model placement position.

12. The 3D model placement method according to claim 1, characterized in that, It also includes a step of distribution optimization after all the 3D models to be placed have been placed.

13. The 3D model placement method according to claim 12, characterized in that, The steps of distribution optimization include: Extract one of the 3D models from the constructed volume and update the effective space and distance field of the constructed volume; The fit of the extracted 3D model at each collision-free location within the constructed volume is determined based on the updated effective space and distance field; and The collision-free position corresponding to the maximum fit is determined as the repositioning position of the extracted 3D model.

14. A 3D printing method, characterized in that, include: Obtain data to be printed, the data to be printed being based on a construction volume containing 3D models, wherein the 3D models in the construction volume are arranged according to any one of the 3D model placement methods described in claims 1 to 13; and Based on the data to be printed, 3D manufacturing is performed to form a 3D object corresponding to the placed 3D model.

15. A 3D model placement system, characterized in that, include: The height update module is used to update the volume height of the construction volume based on the comparison result between the current 3D model to be placed and the remaining height in the construction volume; as well as The placement position determination module is used to determine the collision-free position in the updated build volume that makes the placement height and fit of the 3D model jointly optimal. This includes: performing a placement search on the 3D model within the updated build volume to determine all collision-free positions; determining the fit of the 3D model at each position in the updated build volume based on the distance field of the updated build volume; correspondingly combining the placement height of the 3D model at each position with the fit to obtain a combination value at each position; and selecting the position with the smallest combination value among all collision-free positions as the jointly optimal collision-free position. The placement position determination module is further configured to determine the placement position of the 3D model based on the joint optimal collision-free position so as to place the 3D model into the construction volume, including: updating the effective space and distance field of the construction volume when placing the 3D model into the construction volume; The height update module and the placement position determination module work in a loop until all the 3D models to be placed are placed.

16. A computer device, characterized in that, include: Storage device for storing at least one program; as well as A processing device, connected to the storage device, is configured to implement the 3D model placement method as described in any one of claims 1 to 13 when it calls and executes the at least one program from the storage device.

17. A computer-readable storage medium, characterized in that, The system stores at least one program that, when called and executed by a computer's processor, implements the 3D model placement method as described in any one of claims 1 to 13.

18. A computer program product, characterized in that, When the computer program product is run on a computer, the computer performs the 3D model placement method as described in any one of claims 1 to 13.

Citation Information

Patent Citations

  • Placement method and device for 3D models, storage medium and 3D printer

    CN111976135A

  • Part model placing method in 3D printing and related device

    CN113021900A