Method and system for converting an s3d structural model into a surface model in ansys
By automatically identifying and converting floor slabs and wall objects in the S3D model to form intermediate files for the Ansys analysis model, the problem of low conversion efficiency and large errors in the conversion from S3D to Ansys models is solved, achieving efficient and accurate model conversion.
Patent Information
- Application Number
- CN202211590989.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-12
- Publication Date
- 2026-03-20
- Estimated Expiration
- 2042-12-12
AI Technical Summary
S3D software cannot be directly applied to Ansys analysis software, which means that manual modeling is required in nuclear power plant design, wasting time and easily introducing human error.
By identifying floor slabs and wall objects in the S3D 3D design model, extracting mid-surfaces and extending them, the intermediate file of the Ansys analysis model is automatically generated, supporting different component modeling methods and complex situations.
It enables automatic conversion from S3D models to Ansys models, improving design efficiency, reducing human error, and supporting flexible adjustment of accuracy and speed.
Smart Images

Figure CN115730379B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to a kind of graphic processing and conversion of three-dimensional model to two-dimensional model, in particular to a kind of graphic conversion and processing method and system of S3D three-dimensional structure model to Ansys analysis model. BACKGROUND
[0002] S3D (Smart 3D) is a widely used three-dimensional design software. S3D software as an integrated, multi-professional participation three-dimensional plant modeling software, can quickly help various professional designers to carry out three-dimensional modeling and design checking, greatly improving work efficiency and design quality. In chemical and energy industry, S3D software has been widely used and has had countless successful cases.
[0003] In the process of nuclear power design, in order to ensure the safety of nuclear power plant design, the load bearing and stress of structure need to be calculated and analyzed to ensure that the current structure can bear the corresponding weight of nuclear power plant, so as to ensure the safety of the whole nuclear power design. In the process of nuclear power plant component stress analysis, the most commonly used software is Ansys analysis software, which can quickly and efficiently help analysts to complete analysis and calculation work.
[0004] S3D software does not provide mature and available Ansys analysis software interface, and the three-dimensional design model of S3D cannot be directly applied to the calculation and analysis of Ansys software, so in order to use Ansys software for structure analysis, designers must manually build the corresponding Ansys analysis model according to the three-dimensional model in S3D software. For the huge design of nuclear power plant, this part of modeling work will occupy a lot of working time of analysts. At the same time, a large number of secondary modeling is easy to bring human error, which will affect the accuracy of subsequent analysis and calculation results. SUMMARY
[0005] In view of the deficiencies of the prior art, the purpose of the present application is to provide a method and system for converting S3D structure model into Ansys surface model.
[0006] In order to achieve the above purpose, the present application is realized by the following technical scheme:
[0007] In the first aspect, the present application provides a method for converting S3D structure model into Ansys surface model, as follows:
[0008] Identify the floor and wall items of the room inside the S3D three-dimensional design model,
[0009] Carry out surface extraction of floor and wall items;
[0010] After the extracted mid-surface is extended to form a closed space, the corresponding spatial coordinate information is extracted,
[0011] An intermediate file for Ansys import is automatically formed and output to form an Ansys analysis calculation model.
[0012] The specific steps are as follows:
[0013] S1, obtaining all room object sets in the S3D three-dimensional design model;
[0014] S2, looping through the room object set, and entering S8 after the loop is completed, otherwise entering S3;
[0015] S3, obtaining the component object set of the current room;
[0016] S4, looping through the component object set, and entering S6 after the loop is completed, otherwise entering S5;
[0017] S5, analyzing the component object, creating a corresponding mid-surface object according to the obtained information, and returning to S4 after completion;
[0018] S6, processing all mid-surface objects obtained by the current room component to form a mid-surface model corresponding to the entire room;
[0019] S7, extracting key information of the room mid-surface model and storing it in a result file, and returning to S2;
[0020] S8, outputting the result file and ending.
[0021] As a further technical solution, the S3 obtains the component object list of the current room, including the following steps:
[0022] S3.1, checking all collision object lists corresponding to the current room object;
[0023] S3.2, looping through the collision object list, and entering S3.4 after completion, otherwise entering S3.3;
[0024] S3.3, whether the current collision object is a floor object or a wall object, if yes, put it into the building object list, otherwise return to S3.2;
[0025] S3.4, outputting the component object list and ending.
[0026] As a further technical solution, when the S5 judges the component object, if the object is a floor object, the following steps are taken for processing:
[0027] S5.2, finding the plane set in all outer surfaces of the floor object;
[0028] S5.3, find the plane with the normal vector closest to the vertical upward direction from all the exterior surface plane set as the upper surface;
[0029] S5.4, find the plane with the normal vector closest to the vertical downward direction from all the exterior surface plane set as the lower surface, S5.5, get the direction vector of the upper surface pointing to the lower surface;
[0030] S5.6, translate the upper surface along the direction vector obtained in S5.5 by half the thickness of the floor to obtain a new plane, which is the mid-plane of the floor;
[0031] S5.7, output the mid-plane of the floor together with the thickness of the floor, the room number, and other information as a floor mid-plane type object.
[0032] As a further technical solution, when the judging component object of S5 is an object of a wall object constructed in 2d form, the following steps are taken:
[0033] S5.9, find all the non-cutting surface set of the current wall;
[0034] S5.10, find a series of planes that are planes and have the normal vector closest to the vertical upward direction in all the non-cutting surface set to form an upper surface plane set;
[0035] S5.11, find a series of planes that are planes and have the normal vector closest to the vertical downward direction in all the non-cutting surface set to form a lower surface plane set;
[0036] S5.12, remove the planes in the upper surface plane set and the lower surface plane set from all the non-cutting surface set, and the remaining set is the surface set constituting the side of the wall;
[0037] S5.13, loop through the surface set in S5.12, classify the surface set into a first side surface set and a second side surface set of the wall, if the classification is successful, go to S5.19, otherwise go to S5.36;
[0038] S5.19, find the plane with the highest elevation in the upper surface plane set as the upper surface of the current wall, and remove the boundary of the upper surface to make it an infinite plane;
[0039] S5.20, find the plane with the lowest elevation in the lower surface plane set as the lower surface of the current wall, and remove the boundary of the lower surface of the current wall to make it an infinite plane;
[0040] S5.21, get the direction vector of the upper surface of the current wall pointing to the lower surface of the current wall as the subsequent projection vector;
[0041] S5.22, establish the midline straight line set of the wall, see the number of curved surfaces in the first side surface set in S5.18, if greater than or equal to 1, enter S5.23; otherwise, enter S5.32;
[0042] S5.23, obtain the first projection line set of all curved surfaces in the first side surface set in S5.18 on the upper surface plane of the current wall;
[0043] S5.24, obtain the second projection line set of all curved surfaces in the second side surface set in S5.18 on the upper surface plane of the current wall;
[0044] S5.25, establish the midline set of the projection line of the current wall;
[0045] S5.26, loop through the first projection line set, and enter S5.29 after the loop is completed; otherwise, take out the current projection line;
[0046] S5.27, find the curve corresponding to the current projection line from the second projection line set, and the determination condition is that the distance from each point in the shorter curve between the found curve and the current projection line to the other curve is the same. If there are multiple such curves, find the curve closest to the current projection line; the found curve is the second projection line;
[0047] S5.28, find the mid-curve of the current projection line and the second projection line, which is the same distance from each point on the curve to the other two curves. After finding, put it into the temporary midline set and return to S5.26;
[0048] S5.29, loop through the temporary midline set, and enter S5.35 if the loop is completed, otherwise enter S5.30;
[0049] S5.30, if the current midline is a curve, discretize it into a straight line according to a preset threshold, enter S5.31, otherwise directly enter S5.31;
[0050] S5.31, see if there are other midlines in the temporary midline set. If not, it means there is only one midline, which is directly put into the midline set and returned to S5.29. Otherwise, see if the current midline is connected to other midlines in the midline set. If not, extend until it intersects with the nearest midline. After completion, store it in the midline set and return to S5.29;
[0051] S5.32, the midline of the current wall is the construction line of the wall. Loop through the curved surface set, and enter S5.34 after the loop is completed. Otherwise, take out the current curve and enter S5.33;
[0052] S5.33, if the curve is a straight line, directly put it into the midline set and return to S5.32. Otherwise, discretize it into a straight line according to a preset threshold and return to S5.32;
[0053] S5.34, check if the line in the middle line set is on the lower surface of the current wall, if yes, reverse the software vector direction, enter S5.35, otherwise directly enter S5.35;
[0054] S5.35, construct the wall middle surface object output with the middle line set, together with the software vector, wall thickness, room number and other information, and end;
[0055] S5.36, error reporting exit, end.
[0056] As a further technical solution, S5.13 in the loop traverses the face set in S5.12, and classifies the face set into a first side face set and a second side face set of the wall, including the following steps:
[0057] S5.13.1, construct the object set of the face set, enter S5.13.2;
[0058] S5.13.2, loop through the face set, enter S5.13.7 if the traversal is successful, otherwise take out the current object and enter S5.13.3;
[0059] S5.13.3, find all face objects in the face set that intersect with the current object to form a current face set, enter S5.13.4;
[0060] S5.13.4, loop through the object set of the face set to check if there is a face set object containing any face in the current face set in S5.13.3, if yes, take out this face set to form an actual face set, enter S5.13.5, otherwise enter S5.13.6;
[0061] S5.13.5, put all face objects in the current face set into the actual face set, remove duplicate face objects during the process, and return to S5.13.2 after completion;
[0062] S5.13.6, directly combine the current object into the object set of the face set in S5.13.1, and return to S5.13.2 after completion;
[0063] S5.13.7, check if the number of face sets in the object set of the face set in S5.13.1 is exactly 2, if not, exit with an error, otherwise enter S5.13.8;
[0064] S5.13.8, put the face objects in the two face set objects into the first face set and the second face set respectively, and enter S5.13.9 after completion;
[0065] S5.13.9, end.
[0066] As a further technical solution, if the object is a wall object constructed in 3D form, the judgment component of S5 is processed according to the following steps:
[0067] S5.14, find all surfaces of the current wall, and filter out all planes to form a plane set;
[0068] S5.15, find a series of planes in the plane set whose outer normal vectors are closest to the vertical downward direction to form an upper surface plane set;
[0069] S5.16, find a series of planes in the plane set whose outer normal vectors and V2 have the smallest included angle to form a lower surface plane set;
[0070] S5.17, find the curve set corresponding to the arrangement path of the current wall;
[0071] S5.18, find the surface set of the current wall after removing the upper surface plane set and the lower surface plane set, and arrange the first side surface set and the second side surface set of the wall according to the curve set and the surface set;
[0072] S5.19, find the plane with the highest elevation in the upper surface plane set as the upper surface of the current wall, and remove the boundary of the upper surface to make it an infinite plane;
[0073] S5.20, find the plane with the lowest elevation in the lower surface plane set as the lower surface of the current wall, and remove the boundary of the lower surface of the current wall to make it an infinite plane;
[0074] S5.21, obtain the direction vector of the upper surface of the current wall pointing to the lower surface of the current wall as the subsequent projection vector;
[0075] S5.22, establish the center line straight line set of the wall, and check the number of curved surfaces in the first side surface set in S5.18. If it is greater than or equal to 1, enter S5.23; otherwise, enter S5.32;
[0076] S5.23, obtain the first projection line set of all curved surfaces in the first side surface set in S5.18 on the upper surface plane of the current wall;
[0077] S5.24, obtain the second projection line set of all curved surfaces in the second side surface set in S5.18 on the upper surface plane of the current wall;
[0078] S5.25, establish the projection line center line set of the current wall;
[0079] S5.26, loop through the first projection line set, and enter S5.29 after the loop is completed; otherwise, take out the current projection line;
[0080] S5.27, find the curve corresponding to the current projection line from the second projection line set, the condition is that the distance from each point in the shorter curve between the found curve and the current projection line to the other curve is the same, if there are multiple such curves, find the curve closest to the current projection line; the found curve is the second projection line;
[0081] S5.28, find the middle curve of the current projection line and the second projection line, which is the same distance from each point on the curve to the other two curves, and put it into the temporary set of middle lines after finding it, return to S5.26;
[0082] S5.29, loop through the temporary set of middle lines, if the loop is completed, go to S5.35, otherwise go to S5.30;
[0083] S5.30, if the current middle line is a curve, it is discretized into a straight line according to a predetermined threshold, go to S5.31, otherwise go directly to S5.31;
[0084] S5.31, check if there are other middle lines in the temporary set of middle lines, if not, it means there is only one middle line, directly put it into the middle line set and return to S5.29; otherwise, check if the current middle line is connected to other middle lines in the middle line set, if not, extend it until it intersects with the nearest middle line, then store it in the middle line set and return to S5.29;
[0085] S5.32, the middle line of the current wall is the construction line of the wall, loop through the curve set, if the loop is completed, go to S5.34, otherwise take out the current curve and go to S5.33;
[0086] S5.33, if the curve is a straight line, directly put it into the middle line set and return to S5.32, otherwise discretize it into a straight line according to a predetermined threshold and return to S5.32;
[0087] S5.34, check if the straight line in the middle line set is on the lower surface of the current wall, if it is on the lower surface of the current wall, reverse the direction of the software vector, go to S5.35, otherwise go directly to S5.35;
[0088] S5.35, construct the wall surface object with the middle line set, together with the software vector and information such as wall thickness and room number, and output, end;
[0089] S5.36, error exit, end.
[0090] As a further technical solution, the S6 processes all the middle surface items obtained by the corresponding components of the current room, so that it can form a middle surface model corresponding to the entire room, including the following steps:
[0091] S6.1, find the maximum thickness of the floor surface object set and the wall surface object set obtained in S5, and add the threshold set in advance as the subsequent extension length;
[0092] S6.2, loop through the wall surface object set, and enter S6.9 after the loop is completed, otherwise extract the current wall surface object and enter S6.3;
[0093] S6.3, create a wall surface plane set for each wall surface object, and create a wall plane set and a subsequent extension plane set;
[0094] S6.4, loop through the centerline set of the wall surface object, and enter S6.6 after the loop is completed, otherwise take the current centerline;
[0095] S6.5, move the projection of the wall surface to the end point of the centerline to form a scan line, and take the centerline as a track line to form a scan surface, and store the scan surface in the wall plane set, and return to S6.4 after completion;
[0096] S6.6, loop through the wall plane set, and enter S6.8 after the loop is completed, otherwise take the current wall plane and enter S6.7;
[0097] S6.7, extend the current wall plane along the outer contour of the wall plane and the wall plane set by the extension length, and store it in the extended wall plane set, and return to S6.6;
[0098] S6.8, store the extended wall plane set in the current wall surface object, and return to S6.2;
[0099] S6.9, create an extended floor plane set;
[0100] S6.10, loop through the floor surface object set, and enter S6.12 after the loop is completed, otherwise obtain the current floor surface object and enter S6.11;
[0101] S6.11, extend the plane of the current floor surface along the boundary line to form a new extended plane, and store it in the extended plane set, and return to S6.10;
[0102] S6.12, if there is only one object in the wall surface object set, enter S6.13, otherwise enter S6.16;
[0103] S6.13, check whether the planes in the extended wall plane set of the current wall are closed, and if not, report an error and exit, otherwise enter S6.14;
[0104] S6.14, loop through the extended wall plane set, and enter S6.32 if the loop is completed, otherwise obtain the current plane and enter S6.15;
[0105] S6.15, get the intersection line set of the current plane and other planes in the extended wall plane set and the planes in the extended floor plane set, build a new plane with these intersection lines as boundaries, and store it in the wall surface plane set of the current wall center line, return to S6.14;
[0106] S6.16, loop through the wall surface object set to check if all planes in the extended wall plane set of a single wall are connected and closed, if so, report an error and exit, otherwise create a wall surface plane set and a real plane set;
[0107] S6.17, loop through the wall surface object set, if the loop is completed, go to S6.19, otherwise take out the current wall surface object and create a wall surface plane set for it, go to S6.18;
[0108] S6.18, find all planes in the extended wall plane set of the wall surface that intersect with the planes in the extended wall plane set of other wall surface objects in the wall surface set, and store them in the real plane set, return to S6.17;
[0109] S6.19, loop through the wall surface object set, if the loop is completed, go to S6.21, otherwise take out the current wall surface object, go to S6.20;
[0110] S6.20, remove all planes in the extended wall plane set of the current wall surface that only have single-sided intersection with other planes in the extended wall plane set, and put the remaining planes into the real plane set, return to S6.19;
[0111] S6.21, loop through the real plane set, if the loop is completed, go to S6.32; otherwise, take out the current real plane and go to S6.22;
[0112] S6.22, get all the boundary lines of the current real plane and store them in the current plane boundary line set;
[0113] S6.23, find the wall surface object corresponding to the real plane; S6.24, find whether the real plane intersects with other planes in the real plane set, if it does and the intersecting planes do not belong to the extended wall plane set of the wall surface, record the plane and the intersection line into the intersection line target set, if the intersecting planes belong to the extended wall plane set of the wall surface, only record the plane and the intersection line into the intersection line target set if the intersection line is located on the boundary of the real plane, and then go to S6.25;
[0114] S6.25, build an intersection line set, check the intersection line target set, if the number in the set is greater than 2, go to S6.26, otherwise directly put all the intersection lines in the set into the intersection line set, and go to S6.27;
[0115] S6.26, check the number of intersection lines of each plane in the intersection line target set and the planes in the other real plane set, if the number is two, put the current intersection line into the intersection line set and go to S6.27;
[0116] S6.27, create a boundary line set, check the number of straight lines in the intersection line set, if the number is not a multiple of 2, report an error and exit; otherwise, if the number in the intersection line set is exactly 2, directly put it into the boundary line set and go to S6.29; otherwise, go to S6.28;
[0117] S6.28, find a vertical boundary line in the current plane boundary line set, sort all straight lines in the intersection line set according to the distance from the boundary line, and form a straight line set for each two, and store it in the boundary line set;
[0118] S6.29, create a plane intersection line set, find the intersection line of each plane in the real plane and the extended floor plane set, and put the intersection line into the plane intersection line set;
[0119] S6.30, loop through the straight line set in the boundary line set, if the loop is completed, return to S6.21; otherwise, get the current wall intersection line set, and put the straight line in the plane intersection line set into the wall intersection line set;
[0120] S6.31, extend the intersection of the straight line in the wall intersection line set, and then construct the current middle surface using the extended intersection straight line as the boundary line of the plane, if the construction is successful, put it into the wall middle surface set of the corresponding wall middle line object, return to S6.30, otherwise, report an error and exit;
[0121] S6.32, loop through the extended plane set, and end after processing is completed, otherwise, get the current plane, and intersect the plane in the wall middle surface plane set of each middle surface object in the wall middle surface set, and construct a new floor middle surface using the obtained intersection line as the boundary line of the new plane, and then store it as the plane of the current floor middle surface in the floor middle surface object.
[0122] As a further technical solution, the S7 extracts the key information of the room middle surface model and stores it in the result file, including the following steps:
[0123] S7.1, loop through the wall middle surface object set, and go to S7.3 after the loop is completed, otherwise, get the current wall middle surface object and go to S7.2;
[0124] S7.2, get the coordinates of the four boundary points of all planes in the plane set of the current wall middle surface object and add the corresponding serial number, as well as the room number, material and wall thickness of the corresponding wall of the current wall middle surface object, as key information output to the intermediate file, and return to S7.1;
[0125] S7.3, loop through the floor surface object set in the floor, and enter S7.6 after the loop is completed, or take out the current floor surface and enter S7.4;
[0126] S7.4, obtain the plane of the current floor surface, obtain the boundary line of the plane, and obtain all the key point coordinates on the boundary line and add the corresponding serial numbers, and enter S7.5 after completion;
[0127] S7.5, output the key point serial numbers and coordinates together with the room number corresponding to the current floor surface, the thickness of the floor, and the material to the intermediate file, and return to S7.3;
[0128] S7.6, output the intermediate file, and end.
[0129] In a second aspect, the present application further provides a system for converting an S3D structure model into an Ansys surface model, comprising:
[0130] A recognition model configured to recognize the floor and wall items constituting the rooms in the S3D three-dimensional design model,
[0131] An intermediate extraction model configured to extract the surface of the floor and wall items;
[0132] An extension model configured to extract the corresponding space coordinate information after extending the extracted surface to form a closed space, and an output model configured to automatically form and output an intermediate file for Ansys import to form an Ansys analysis and calculation model.
[0133] Compared with the prior art, the present application has the following beneficial effects:
[0134] 1. The S3D three-dimensional design model automatic conversion method for Ansys analysis and calculation model provided by the present application can automatically convert the S3D three-dimensional model into an intermediate file supported by Ansys software, realizes automatic conversion of the arrangement model into an Ansys analysis and calculation model, avoids labor waste caused by secondary modeling, and greatly improves design efficiency and quality.
[0135] 2. The S3D three-dimensional design model automatic conversion method for Ansys analysis and calculation model provided by the present application supports flexible threshold setting to adjust the accuracy of plane fitting to curved surface, and facilitates users to control the speed and accuracy of subsequent Ansys analysis and calculation model generation.
[0136] 3. The S3D three-dimensional design model automatic conversion method for Ansys analysis and calculation model provided by the present application can support all component modeling methods in S3D, and has strong robustness.
[0137] 4. The application provides a method for automatically converting an S3D three-dimensional design model into an Ansys analysis and calculation model, which can automatically identify common walls and rooms in a room component process, and has a wide application range. BRIEF DESCRIPTION OF DRAWINGS
[0138] The accompanying drawings, which form a part of this specification, are included to provide a further understanding of the application and are incorporated in and constitute a part of this specification. The embodiments of these drawings are set to explain the application, and do not constitute an improper limitation to the application.
[0139] Figure 1 A flowchart of the method for automatically converting an S3D three-dimensional design model into an Ansys analysis and calculation model according to the preferred embodiment of the application;
[0140] Figure 2 Several typical constitutions of S3D walls;
[0141] Figure 3 A flowchart of dividing a boundary surface set into two categories according to the preferred embodiment of the application. DETAILED DESCRIPTION
[0142] It should be noted that the following detailed description is exemplary and is intended to provide further explanation of the application. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs.
[0143] It should be noted that the terms used herein are only for the purpose of describing specific embodiments, and are not intended to limit the exemplary embodiments according to the application. As used herein, unless otherwise explicitly stated in the application, the singular form is also intended to include the plural form, and in addition, it should be understood that when the terms "comprise" and / or "include" are used in the specification, they mean the presence of a feature, step, operation, device, component and / or combination thereof;
[0144] In a typical embodiment of the application, the embodiment provides a method for automatically converting an S3D three-dimensional design model into an Ansys analysis and calculation model, which first identifies the floor and wall items constituting the room inside the S3D three-dimensional design model, then extracts the middle surface of the items, after completion, extends the middle surface to form a closed space, then extracts the corresponding space coordinate information, and finally automatically forms an intermediate file that can be imported into Ansys to form an Ansys analysis and calculation model, eliminating the need for design and analysis personnel to manually create a middle surface model by observing the specific floor and wall arrangement in the design model, greatly improving work efficiency, and the fully automatic model conversion work can eliminate human error caused by manual secondary modeling, further improving the quality of related work.
[0145] The specific technical solution is as follows:
[0146] The embodiment provides a method for automatically converting an S3D three-dimensional design model into an Ansys analysis and calculation model, and comprises the following steps:
[0147] S1, obtaining all room object sets in the S3D three-dimensional design model, and entering S2;
[0148] S2, circularly traversing the room object set, and entering S8 after the traversal is completed, or entering S3;
[0149] S3, obtaining a component set of a current room, and entering S4;
[0150] S4, circularly traversing the component set, and entering S6 after the traversal is completed, or entering S5;
[0151] S5, analyzing a component object, creating a corresponding middle surface object according to obtained information, and returning to S4 after the operation is completed;
[0152] S6, processing all middle surface objects obtained by the current room component, so that the middle surface objects can form a middle surface model of the entire room, and entering S7;
[0153] S7, extracting key information of the room middle surface model, storing the key information into a result file, and returning to S2;
[0154] S8, outputting the result file, and entering S9;
[0155] S9, ending.
[0156] Preferably, the S3 comprises the following steps of obtaining a component object list of the current room:
[0157] S3.1, checking all collision object lists corresponding to the current room object, and entering S3.2;
[0158] S3.2, circularly traversing the collision object list, and entering S3.4 after the traversal is completed, or entering S3.3;
[0159] S3.3, checking whether the current collision object is a floor object or a wall object, and if yes, putting the current collision object into the component object list, or returning to S3.2;
[0160] S3.4, outputting the component object list, and ending.
[0161] Preferably, the S5 comprises the following steps of analyzing the component object and creating a corresponding middle surface object according to obtained information:
[0162] S5.1, analyzing a component type, and dividing the component type into two types of wall and floor, and if the component type is a floor object, entering S5.2, or if the component type is a wall object, entering S5.8;
[0163] S5.2, because the upper and lower surfaces of the floor must be planar, find the set of planes in all the outer surfaces of the floor object, go to S5.3;
[0164] S5.3, find the plane with the outer normal vector closest to the vertical upward direction from the set of all outer surface planes as the upper surface, go to S5.4;
[0165] S5.4, find the plane with the outer normal vector closest to the vertical downward direction from the set of all outer surface planes as the lower surface, go to S5.5;
[0166] S5.5, obtain the direction vector of the upper surface pointing to the lower surface, go to S5.6;
[0167] S5.6, translate the upper surface along the direction vector obtained in S5.5 by half the thickness of the floor to obtain a new plane, which is the mid-plane of the floor, go to S5.7;
[0168] S5.7, output the floor mid-plane together with the thickness of the floor, the room number, and other information such as the name as a floor mid-plane type object, go to S5.35;
[0169] S5.8, determine whether the current wall is constructed in 2D form or 3D form, if it is constructed in 2D form, go to S5.9, otherwise go to S5.14;
[0170] S5.9, find all the non-cutting surface set of the current wall topologyPortList, go to S5.10;
[0171] S5.10, find the set of planes in topologyPortList that are planar and have the outer normal vector closest to the vertical upward direction, form the upper surface plane set topPortCol, go to S5.11;
[0172] S5.11, find the set of planes in topologyPortList that are planar and have the outer normal vector closest to the vertical downward direction, form the lower surface plane set bottomPortCol, go to S5.12;
[0173] S5.12, remove the planes in topPortCol and bottomPortCol from topologyPortList, the remaining set is the surface set that constitutes the side surface of the wall, go to S5.13;
[0174] S5.13, loop through sideSurfaceCol, classify sideSurfaceCol into two side face sets oneSideFaceCol and otherSideFaceCol of the wall, if the classification succeeds, go to S5.19, otherwise go to S5.36;
[0175] S5.14, find all surfaces of the current wall, and filter out all planes from the surfaces to form a plane set planeCol, go to S5.15;
[0176] S5.15, find a series of planes in planeCol whose outer normal vectors are closest to the vertical downward direction, form an upper surface plane set topPortCol, go to S5.16;
[0177] S5.16, find a series of planes in planeCol whose outer normal vectors and V2 have the smallest included angle, form a lower surface plane set bottomPortCol, go to S5.17;
[0178] S5.17, find a curve set curveCol corresponding to the layout path of the current wall, go to S5.18;
[0179] S5.18, find a surface set surfaceCol of the current wall after removing topPortCol and bottomPortCol, arrange two side face sets oneSideFaceCol and otherSideFaceCol of the wall according to curveCol and surfaceCol, go to S5.19;
[0180] S5.19, find a plane with the highest elevation in topPortCol as the upper surface topPlane of the current wall, and remove the boundary of topPlane to make it an infinite plane, go to S5.20;
[0181] S5.20, find a plane with the lowest elevation in bottomPortCol as the lower surface bottomPlane of the current wall, and remove the boundary of bottomPlane to make it an infinite plane, go to S5.21;
[0182] S5.21, obtain a direction vector of topPlane pointing to bottomPlane as a subsequent projection vector projectVector, go to S5.22;
[0183] S5.22, establish the middle line set MiddleLineCol of the wall, check the number of surfaces in oneSideFaceCol, if it is greater than or equal to 1, enter S5.23; otherwise enter S5.32;
[0184] S5.23, obtain the traceProjBoundaryCol of the projection line set of all surfaces in oneSideFaceCol on the topPlane plane, enter S5.24;
[0185] S5.24, obtain the otherTraceProjBoundaryCol of the projection line set of all surfaces in otherSideFaceCol on the topPlane plane, enter S5.25;
[0186] S5.25, establish the middle curve set middleCurveTempCol of the projection line of the current wall, enter S5.26;
[0187] S5.26, loop through traceProjBoundaryCol, enter S5.29 after the loop is completed; otherwise, take out the current projection line traceProjCurve, enter S5.27;
[0188] S5.27, find the curve corresponding to traceProjCurve from otherTraceProjBoundaryCol, the determination condition is that the distance from each point in the shorter curve between the found curve and traceProjCurve to the other curve is the same, if there are multiple such curves, find the curve closest to traceProjCurve. The found curve is otherTraceProjCurve. Enter S5.28;
[0189] S5.28, find the middle curve of traceProjCurve and otherTraceProjCurve, the distance from each point on the curve to the other two curves is the same, after finding, put it into middleCurveTempCol, return to S5.26;
[0190] S5.29, loop through the middle line set middleCurveTempCol, enter S5.35 if the loop is completed, otherwise enter S5.30;
[0191] S5.30, if the current middle line is a curve, discretize it into a straight line according to a preset threshold, enter S5.31, otherwise directly enter S5.31;
[0192] S5.31, check if there is any other middle line in middleCurveTempCol, if not, it means there is only one middle line, put it into MiddleLineCol directly, return to S5.29; otherwise, check if the current middle line is connected with other middle lines in middleCurveTempCol, if not, extend it until it intersects with the nearest middle line, then store it into MiddleLineCol, return to S5.29;
[0193] S5.32, the middle line of the current wall is the construction line of the wall, loop through curveCol, and enter S5.34 after the loop is completed, otherwise, take out the current curve and enter S5.33;
[0194] S5.33, if the curve is a straight line, put it directly into middleLineCol, return to S5.32, otherwise, discretize it into straight lines according to the preset threshold and return to S5.32;
[0195] S5.34, check if the straight line in middleLineCol is on the bottomPlane, if it is on the bottomPlane, reverse the direction of projectVector, enter S5.35, otherwise, enter S5.35 directly;
[0196] S5.35, construct the wall surface object with middleLineCol, projectVector, wall thickness, room number, and other information, output the wall surface object, and end;
[0197] S5.36, error reporting and exit, end.
[0198] Preferably, the loop of S5.13 traverses sideSurfaceCol, and classifies sideSurfaceCol into two side face collections oneSideFaceCol and otherSideFaceCol, including the following steps:
[0199] S5.13.1, construct the surface object collection surfaceColColIectio, enter S5.13.2;
[0200] S5.13.2, loop through sideSurfaceCol, enter S5.13.7 after the loop is completed, otherwise, take out the current object currentSurface, enter S5.13.3;
[0201] S5.13.3, find all the surface objects in sideSurfaceCol intersecting with currentSurface, form a surface collection currentSurfaceCol, go to S5.13.4;
[0202] S5.13.4, loop through surfaceCol Collection, check if there is any surface collection object in it containing any surface object in currentSurfaceCol, if yes, take out this surface collection existSurfaceCol, go to S5.13.5, otherwise go to S5.13.6;
[0203] S5.13.5, put all the surface objects in currentSurfaceCol into existSurfaceCol, remove the duplicated surface objects during the process, after completion, return to S5.13.2;
[0204] S5.13.6, directly put currentSurfaceCol into surfaceCol Collection, after completion, return to S5.13.2;
[0205] S5.13.7, check if the number of surface collections in surfaceCol Collection is exactly 2, if not, report an error and exit, otherwise go to S5.13.8;
[0206] S5.13.8, put the surface objects in the two surface collection objects into onSideFaceCol and otherSideFaceCol respectively, after completion, go to S5.13.9;
[0207] S5.13.9, end.
[0208] Preferably, the S5.18 finds all the surface collections in the current wall after removing topPortCol and bottomPortCol, and arranges two side surface collections oneSideFaceCol and otherSideFaceCol of the wall according to curveCol and surfaceCol, including the following steps:
[0209] S5.18.1, loop through all the surfaces in surfaceCol, after completion, go to S5.18.3, otherwise get the current surface currentSurface, go to S5.18.2;
[0210] S5.18.2, check if any curve in curveCol is contained in currentSurface, if yes put it into oneSideFaceCol, go to S5.18.1, otherwise go to S5.18.1 directly;
[0211] S5.18.3, loop through all surfaces in surfaceCol, go to S5.18.5 if loop is finished, otherwise get current surface currentSurface, go to S5.18.4;
[0212] S5.18.4, if currentSurface is in oneSideFaceCol, go to S5.18.3 directly, check if currentSurface intersects with any surface in oneSideFaceCol, if yes go to S5.18.3 directly, otherwise put it into otherSideFaceCol, go to S5.18.3;
[0213] S5.18.5, end.
[0214] Preferably, the S5.23 includes the following steps:
[0215] S5.23.1, loop through oneSideFaceCol, go to S5.23.5 if loop is finished, otherwise get current surface sideSurface, go to S5.23.2;
[0216] S5.23.2, get the contour line set tracePlaneCurveCol of sideSurface by intersecting sideSurface with other surfaces of the wall, go to S5.23.3 when finished;
[0217] S5.23.3, loop through the contour line set, move projectVector to one end point of the contour line, take it as a scan line, construct a scan surface with the contour line as a trace line, then the intersection of the current scan surface and topPlane is the projection line of the current contour line on topPlane, thus get the projection line set projCurveCol of all contour lines on topPlane, go to S5.23.4;
[0218] S5.23.4, loop through each projected line in projCurveCol, remove the overlapping part between projected lines and connect all projected lines together, finally get the complete projected boundary line set traceCST of the surface on topPlane and put it into traceProjBoundaryCol, go back to S5.23.1;
[0219] S5.23.5, end.
[0220] Preferably, the S5.28 finds the intermediate curve of traceProjCurve and otherTraceProjCurve, which is the same distance to the other two curves at each point, including the following steps:
[0221] S5.28.1, get the end point traceCSStartPos of traceProjCurve, take traceCSStartPos as the center, the wall thickness of the current wall as the radius, and the tangent direction of traceProjCurve at traceCSStartPos as the normal vector, make a circle Circle1, go to S5.28.2;
[0222] S5.28.2, form a boundary plane tracePlane with Circle1 as the boundary, take tracePlane as the scanning surface to scan a surface set traceSurfaceCol along traceProjCurve, go to S5.28.3;
[0223] S5.28.3, get the end point otherTraceCSStartPos of otherTraceProjCurve, take otherTraceCSStartPos as the center, the wall thickness of the current wall as the radius, and the tangent direction of otherTraceProjCurve at otherTraceCSStartPos as the normal vector, make a circle Circle2, go to S5.28.4;
[0224] S5.28.4, form a boundary plane otherTracePlane with Circle2 as the boundary, take otherTracePlane as the scanning surface to scan a surface set otherTraceSurfaceCol along otherTraceProjCurve, go to S5.28.5;
[0225] S5.28.5, remove the planes in traceSurfaceCol and otherTraceSurfaceCol, the curves left in the two sets intersect, get two curves as the intersection, enter S5.28.6;
[0226] S5.28.6, find the endpoints of the two curves, take the endpoint closest to sa of the two endpoints of curve B as sb, take the line segment formed by sa and sb as the sweep line, sweep the sweepPlane along curve B, enter S5.28.7;
[0227] S5.28.7, intersect sweepPlane and topPlane, the intersection is the center line of traceProjCurve and otherTraceProjCurve, end.
[0228] Preferably, the S6 process obtains all the center surface items corresponding to the components of the current room, so that it can form a center surface model corresponding to the entire room, including the following steps: S6.1, find the maximum thickness in the floor center surface object set and the wall center surface object set obtained in S5, and add a threshold set in advance as the subsequent extension length extengLength, enter S6.2;
[0229] S6.2, loop through the wall center surface object set, enter S6.9 after the traversal is completed, otherwise extract the current wall center surface object wallMiddle, enter S6.3;
[0230] S6.3, create a wallMiddlePlaneCol set of planes for each wallMiddle object, and create a wall plane set wallPlaneCol and a subsequent extension plane set wallExtendPlaneCol, enter S6.4;
[0231] S6.4, loop through the middleLineCol of wallMiddle, enter S6.6 after the traversal is completed; otherwise, take out the current middle line middl eLine, enter S6.5;
[0232] S6.5, move the projectVector of wallMiddle to the endpoint of middleLine to form a sweep line sweepLine, take middleLine as a trace line to form a sweep surface sweepSurface, and put sweepSurface into wallPlaneCol, then return to S6.4;
[0233] S6.6, loop through wallPlaneCol, if loop is finished, go to S6.8, otherwise get the current wall plane, go to S6.7;
[0234] S6.7, extend the wallPlane along the outer contour of wallPlane and wallPlaneCol by extendLength, and store the result in wallExtendPlaneCol, go to S6.6;
[0235] S6.8, store the wallExtendPlaneCol in the current wall middle object wallMiddie, go to S6.2;
[0236] S6.9, create a plane set extendSlabPlaneCol, go to S6.10;
[0237] S6.10, loop through the slab middle object set, if loop is finished, go to S6.12, otherwise get the current slab middle object slabMiddie, go to S6.11;
[0238] S6.11, extend the middle plane of slabMiddie by extendLength along the boundary line to form a new plane extendPlane, store the result in extendSlabPlaneCol, go to S6.10;
[0239] S6.12, if there is only one object in the wall middle object set, go to S6.13, otherwise go to S6.16;
[0240] S6.13, check if the planes in the wallExtendPlaneCol set of the current wall are closed, if not, report an error and exit, go to S6.35, otherwise go to S6.14;
[0241] S6.14, loop through wallExtendPlaneCol, if loop is finished, go to S6.32, otherwise get the current plane wallExtendPlane, go to S6.15;
[0242] S6.15, get the intersection set of other planes in wall ExtendPlaneCoI and wall ExtendPlaneCoI and planes in extendSlabPlaneCoI, build a new plane currentMiddlePlane with these intersection lines as boundary, store it in wallMiddlePlaneCoI of current wallMiddle, go to S6.14;
[0243] S6.16, loop through wallMiddleCoI, check if all planes in wall ExtendPlaneCoI of a single wall are connected and closed, if yes go to S6.35, report error and exit, otherwise create wallMiddlePlaneCoI and realPlaneCoI, go to S6.17;
[0244] S6.17, loop through wallMiddleCoI, if finished go to S6.19, otherwise get current wallMiddle, create wallMiddlePlaneCoI for it, go to S6.18;
[0245] S6.18, find all planes in wall ExtendPlaneCoI of wallMiddle that intersect with planes in wall ExtendPlaneCoI of other wallMiddle objects in wallMiddleCoI, store them in realPlaneCoI, go to S6.17;
[0246] S6.19, loop through wallMiddleCoI, if finished go to S6.21, otherwise get current wallMiddle, go to S6.20;
[0247] S6.20, remove all planes in wall ExtendPlaneCoI of current wallMiddle that only have one side intersection with other planes in wall ExtendPlaneCoI (excluding planes already in realPlaneCoI), put the rest of the planes in realPlaneCoI, go to S6.19;
[0248] S6.21, loop through real PlaneCol, and go to S6.32 if the loop is finished; otherwise, get the current real Plane, and go to S6.22;
[0249] S6.22, get all the boundary lines of the current real Plane and store them in the set currentPlaneBoundaryLineCol, and go to S6.23;
[0250] S6.23, find the wallMiddle object corresponding to the real Plane, and go to S6.24;
[0251] S6.24, find whether the real Plane intersects with other real PlaneCol, and if the intersected Plane does not belong to the wallExtendPlaneCol of the wallMiddle, record the Plane and the intersecting line into the set intersectObjCol, and if the intersected Plane belongs to the wallExtendPlaneCol of the wallMiddle, only record the Plane and the intersecting line into the set intersectObjCol if the intersecting line is located on the boundary of the real Plane, and go to S6.25 after the process is finished;
[0252] S6.25, create the set intersectLineCol of straight lines, and check the intersectObjCol set, and go to S6.26 if the number of the set is greater than 2, or directly put the intersecting lines in the set into intersectLineCol, and go to S6.27;
[0253] S6.26, check the number of the intersecting lines of each Plane in the intersectObjCol set and other real PlaneCol, and put the current intersecting line into intersectLineCol if the number is two, and go to S6.27;
[0254] S6.27, create the set boundaryLineColCol of straight line sets, and check the number of straight lines in intersectLineCol, and exit with an error if the number is not a multiple of two, and go to S6.35; otherwise, directly put the intersectLineCol into boundaryLineColCol if the number of intersectLineCol is exactly two, and go to S6.29; or go to S6.28;
[0255] S6.28, find a vertical boundary line vectica l Line in currentPl aneBoundaryLineCo l, sort all lines in intersectLineCo l by distance to vectica l Line, each two lines form a line set, store in boundaryLineCo lCo l, then go to S6.29;
[0256] S6.29, create a line set s l abI ntersectLineCo l, find the intersection line of each plane in realPl ane and extendSl abPl aneCo l, put the intersection line into s l abI ntersectLineCo l, then go to S6.30;
[0257] S6.30, loop through the line set in boundaryLineCo lCo l, if the loop is completed, go to S6.21; otherwise, get the current line set wa l l I ntersectLineCo l, put the lines in s l abI ntersectLineCo l into wa l l I ntersectLineCo l, then go to S6.31;
[0258] S6.31, extend the intersection of the lines in wa l l I ntersectLineCo l, then construct a plane currentMidd lePl ane with the extended intersection lines as the boundary lines of the plane, if the construction is successful, put it into the wa l lMidd lePl aneCo l of the corresponding wa l lMidd le object, return to S6.30, otherwise, report an error and exit, then go to S6.35;
[0259] S6.32, loop through the set of extendS l abPl aneCo l, if the loop is completed, go to S6.34, otherwise, get the current plane currentS l abPl ane, then go to S6.33;
[0260] S6.33, intersect the currentS l abPl ane with the planes in the wa l lMidd lePl aneCo l of each wa l lMidd le object in wa l lMidd leCo l, construct a new plane sl abMidd lePl ane with the intersection lines as the boundary lines of the plane, then store it as the middle plane of the current sl abMidd le in the sl abMidd le object, and return to S6.32;
[0261] S6.34, end.
[0262] S6.35, error exit.
[0263] Preferably, the key information of the S7 extraction room model is stored in the result file, including the following steps:
[0264] S7.1, loop through the wall middle object set wallMidd leCo l, and enter S7.3 after the loop is completed, otherwise, the current wall middle object wallMidd le is taken out and enters S7.2;
[0265] S7.2, get the four boundary point coordinates of all planes in wallMidd lePl aneCo l of wallMidd le and add the corresponding serial number, as well as the room number, material, and wall thickness of the wall corresponding to wallMidd le, as key information output to the intermediate file, and return to S7.1;
[0266] S7.3, loop through the floor middle object set s l abMidd leCo l, and enter S7.6 after the loop is completed, otherwise, the current floor middle s l abMidd le is taken out and enters S7.4;
[0267] S7.4, get s l abMidd lePl ane of s l abMidd le, get the boundary line of s l abMidd lePl ane and get all the key point coordinates on the boundary line and add the corresponding serial number, and enter S7.5 after completion;
[0268] S7.5, output the key point serial number and coordinates together with the room number corresponding to s l abMidd le, the thickness and material of the floor to the intermediate file, and return to S7.3;
[0269] S7.6, output the intermediate file and enter S7.7;
[0270] S7.7, end.
[0271] Further, based on the above method, the embodiment also provides a system for converting an S3D structure model into an Ansys middle surface model, including: a recognition model configured to recognize floor and wall items constituting a room inside an S3D three-dimensional design model, an intermediate extraction model configured to extract middle surfaces of the floor and wall items; an extension model configured to extract corresponding spatial coordinate information after extending the extracted middle surfaces to form a closed space; and an output model configured to automatically form and output an intermediate file for Ansys import to form an Ansys analysis and calculation model.
[0272] The specific data processing method corresponding to each model is described above and will not be described here.
[0273] The method for automatically converting the S3D three-dimensional design model into the Ansys analysis and calculation model can automatically convert the S3D three-dimensional model into an intermediate file supported by the Ansys software, realizes automatic conversion of the arrangement model into the Ansys analysis and calculation model, avoids labor waste caused by secondary modeling, and greatly improves design efficiency and quality. The method for automatically converting the S3D three-dimensional design model into the Ansys analysis and calculation model supports flexible setting of a threshold to adjust the accuracy of plane-to-surface fitting, and facilitates users to control the speed and accuracy of subsequent generation of the Ansys analysis and calculation model. The method for automatically converting the S3D three-dimensional design model into the Ansys analysis and calculation model can support all component modeling methods in S3D, and has strong robustness. The method for automatically converting the S3D three-dimensional design model into the Ansys analysis and calculation model can automatically identify complex situations such as common walls and houses-in-houses in the room component process, and has a wide application range.
[0274] The above only describes the preferred embodiments of the present application and is not intended to limit the present application. The present application can be variously changed and modified for those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A method for converting an S3D structural model into an Ansys surface model, characterized in that, as follows: Identify the floor slabs and walls that make up the interior of a room in an S3D 3D design model. Extract the mid-surface of floor slabs and walls; After extending the extracted mid-surface to form a closed space, the corresponding spatial coordinate information is extracted. It automatically generates and outputs intermediate files for Ansys to import into and form Ansys analysis and calculation models; Includes the following steps: S1, retrieves the collection of all room objects in the S3D 3D design model; S2: Loop through the collection of room objects. If the loop is complete, proceed to S8; otherwise, proceed to S3. S3, retrieve the set of components that make up the current room; S4: Loop through the component set. If the traversal is complete, proceed to S6; otherwise, proceed to S5. S5, analyze the component object, create the corresponding mid-surface object based on the obtained information, and return to S4 after completion; S6, process all mid-surface objects obtained from the corresponding components of the current room, so that they can form a mid-surface model corresponding to the entire room; S7, extract key information from the room's surface model, save it to the result file, and return to S2; S8, output the result file, end.
2. The method for converting an S3D structural model into an Ansys surface model as described in claim 1, characterized in that, Includes the following steps: The step S3 of obtaining the set of components of the current room includes the following steps: S3.1, View the list of all collision objects corresponding to the current room object; S3.2, loop through the list of collision objects, and proceed to S3.4 if the process is complete, otherwise proceed to S3.3; S3.3, whether the current collision object is a floor slab object or a wall object. If it is, add it to the list of objects to be constructed; otherwise, return to S3.
2. S3.4 Output the list of component objects, then end.
3. The method for converting an S3D structural model into an Ansys surface model as described in claim 1, characterized in that, When S5 determines the component object, if the object is a floor slab object, the following steps are performed: S5.2, find the set of planes on all the outer surfaces of the floor slab object; S5.3, find the plane whose outer normal vector is closest to the vertical upward direction from all the outer surface plane sets and take it as the upper surface; S5.4, from the set of all outer surface planes, find the plane whose outer normal vector is closest to the vertically downward direction and designate it as the lower surface. S5.5, obtain the direction vector from the upper surface to the lower surface; S5.6, translate the upper surface along the direction vector obtained in S5.5 by half the thickness of the floor slab to obtain a new plane, which is the mid-surface plane of the floor slab; S5.7 outputs the floor slab mid-plane plane along with the floor slab thickness, room number and name information as a floor slab mid-plane plane type object.
4. The method for converting an S3D structural model into an Ansys surface model as described in claim 1, characterized in that, When S5 determines the component object, if the object is a wall object constructed in 2D form, then the following steps are performed: S5.9, find the set of all non-cut surfaces of the current wall; S5.10, find a set of planes in the set of all non-cut surfaces that are planes and whose external normal vectors are closest to the vertical upward direction, and form the set of upper surface planes; S5.11, find a set of planes in the set of all non-cut surfaces that are planes and whose external normal vector is closest to the vertical downward direction, and form the set of lower surface planes; S5.12, Remove the planes from the upper surface plane set and the lower surface plane set from all non-cut surface sets, and the remaining set is the set of faces that constitute the side of the wall. S5.13: Iterate through the face set in S5.12 and classify the face set into the first side face set and the second side face set of the wall. If the classification is successful, proceed to S5.19; otherwise, proceed to S5.
36. S5.19, find the plane with the highest elevation in the set of upper surface planes as the upper surface of the current wall, and remove the boundary of the upper surface to make it an infinite plane; S5.20, find the plane with the lowest elevation in the set of lower surface planes as the lower surface of the current wall, and remove the boundary of the lower surface of the current wall to make it an infinite plane; S5.21, Obtain the direction vector from the upper surface of the current wall to the lower surface of the current wall as the subsequent projection vector; S5.22, establish the set of centerline lines of the wall, check the number of surfaces in the first side set, if it is greater than or equal to 1, proceed to S5.23; otherwise, proceed to S5.32; S5.23, obtain the first set of projection lines of all curved surfaces in the first side set on the upper surface plane of the current wall; S5.24, obtain the set of second projection lines of all surfaces in the second side set on the upper surface plane of the current wall; S5.25, Establish the set of projection line centerlines for the current wall; S5.26, loop through the first set of projection lines, and proceed to S5.29 after the loop is complete; otherwise, retrieve the current projection line; S5.27 Find the curve corresponding to the current projection line from the second set of projection lines. The determination condition is that the distance from each point of the shorter curve between the found curve and the current projection line to the other curve is the same. If there are multiple such curves, find the curve that is closest to the current projection line. The found curve is the second projection line. S5.28, find the midpoint curve between the current projection line and the second projection line. Every point on this curve is equidistant from the other two curves. Once found, add it to the midpoint temporary set and return to S5.
26. S5.29, loop through the temporary set of the middle line. If the traversal is complete, proceed to S5.35; otherwise, proceed to S5.
30. S5.30, If the current centerline is a curve, then discretize it into a straight line according to the preset threshold and proceed to S5.31; otherwise, proceed directly to S5.
31. S5.31, check if there are any other medians in the temporary median set. If not, it means there is only one median, so put it directly into the median set and return to S5.29; otherwise, check if the current median is connected to other medians in the median set. If they are not connected, extend it until it intersects with the nearest median. After completion, store it in the median set and return to S5.
29. S5.32 indicates that the centerline of the current wall is the construction line of the wall. Iterate through the set of curves. If the iteration is complete, proceed to S5.34; otherwise, retrieve the current curve and proceed to S5.
33. S5.33, If the curve is a straight line, put it directly into the midline set and return to S5.32; otherwise, discretize it into a straight line according to the preset threshold and return to S5.
32. S5.34, check if the straight line in the centerline set is on the lower surface of the current wall. If it is on the lower surface of the current wall, reverse the software vector direction and proceed to S5.35; otherwise, proceed directly to S5.
35. S5.35, combine the centerline set with the software vector, wall thickness, and room number information to construct the wall mid-surface object and output it, then finish; S5.36, error message, exit, end; The specific steps for classifying the face set into a first face set and a second face set of walls are as follows: S5.14, find all surfaces of the current wall, filter out all planes to form a plane set, and proceed to S5.15; S5.15, find a set of planes in the plane set whose outward normal vectors are closest to the vertical downward direction, form the upper surface plane set, and proceed to S5.16; S5.16, find a set of planes in the upper surface plane set whose outward normal vectors have the smallest angle with V2, form the lower surface plane set, and proceed to S5.17; S5.17, find the set of curves corresponding to the current wall layout path, and proceed to S5.18; S5.18 Find all surface sets in the current wall after removing the upper and lower surface plane sets, and organize the first and second side sets of the wall according to the curve set and all surface sets.
5. The method for converting an S3D structural model into an Ansys surface model as described in claim 4, characterized in that, In S5.13, the face set in S5.12 is iterated through and classified into the first face set and the second face set of the wall. This includes the following steps: S5.13.1, construct the object set of the face set, then proceed to S5.13.2; S5.13.2, loop through the face set. If the traversal is successful, proceed to S5.13.7; otherwise, retrieve the current object and proceed to S5.13.
3. S5.13.3, find all face objects in the face set that intersect with the current object, form a current face set, and proceed to S5.13.4; S5.13.4: Loop through the set of face objects and check if there is a face set object that contains any face of the current face set in S5.13.
3. If it does, take out the face set to form the actual face set and proceed to S5.13.5; otherwise, proceed to S5.13.
6. S5.13.5: Add all face objects in the current face set to the actual face set, removing duplicate face objects during the process, and then return to S5.13.
2. S5.13.6 directly combines the current object with the object set of the face set in S5.13.1, and returns to S5.13.2 after completion; S5.13.7 Check if the number of face sets in the object set of the face set in S5.13.1 is exactly 2. If not, report an error and exit; otherwise, proceed to S5.13.
8. S5.13.8: Place the face objects from the two face sets into the first face set and the second face set respectively. After completion, proceed to S5.13.
9. S5.13.9, End.
6. The method for converting an S3D structural model into an Ansys surface model as described in claim 1, characterized in that, When S5 determines the component object, if the object is a wall object constructed in 3D, then the following steps are performed: S5.14, find all surfaces of the current wall and filter out all planes to form a plane set; S5.15, find a set of planes in the plane set whose outward normal vectors are closest to the vertical downward direction, forming the upper surface plane set; S5.16, find a set of planes in the plane set whose external normal vectors and V2 have the smallest angle, and form the lower surface plane set; S5.17, find the set of curves corresponding to the current wall layout path; S5.18, find all surface sets in the current wall after removing the upper and lower surface plane sets, and organize the first and second side sets of the wall according to the curve set and all surface sets; S5.19, find the plane with the highest elevation in the set of upper surface planes as the upper surface of the current wall, and remove the boundary of the upper surface to make it an infinite plane; S5.20, find the plane with the lowest elevation in the set of lower surface planes as the lower surface of the current wall, and remove the boundary of the lower surface of the current wall to make it an infinite plane; S5.21, Obtain the direction vector from the upper surface of the current wall to the lower surface of the current wall as the subsequent projection vector; S5.22, establish the set of centerline lines of the wall, check the number of surfaces in the first side set in S5.18, if it is greater than or equal to 1, proceed to S5.23; otherwise, proceed to S5.32; S5.23, obtain the first projection line set of all curved surfaces in the first side set in S5.18 on the upper surface plane of the current wall; S5.24, obtain the set of second projection lines of all curved surfaces in the second side set in S5.18 on the upper surface plane of the current wall; S5.25, Establish the set of projection line centerlines for the current wall; S5.26, loop through the first set of projection lines, and proceed to S5.29 after the loop is complete; otherwise, retrieve the current projection line; S5.27 Find the curve corresponding to the current projection line from the second set of projection lines. The determination condition is that the distance from each point of the shorter curve between the found curve and the current projection line to the other curve is the same. If there are multiple such curves, find the curve that is closest to the current projection line. The found curve is the second projection line. S5.28, find the midpoint curve between the current projection line and the second projection line. Every point on this curve is equidistant from the other two curves. Once found, add it to the midpoint temporary set and return to S5.
26. S5.29, loop through the temporary set of the middle line. If the traversal is complete, proceed to S5.35; otherwise, proceed to S5.
30. S5.30, If the current centerline is a curve, then discretize it into a straight line according to the preset threshold and proceed to S5.31; otherwise, proceed directly to S5.
31. S5.31, check if there are any other medians in the temporary median set. If not, it means there is only one median, so put it directly into the median set and return to S5.29; otherwise, check if the current median is connected to other medians in the median set. If they are not connected, extend it until it intersects with the nearest median. After completion, store it in the median set and return to S5.
29. S5.32 indicates that the centerline of the current wall is the construction line of the wall. Iterate through the set of curves. If the iteration is complete, proceed to S5.34; otherwise, retrieve the current curve and proceed to S5.
33. S5.33, If the curve is a straight line, put it directly into the midline set and return to S5.32; otherwise, discretize it into a straight line according to the preset threshold and return to S5.
32. S5.34, check if the straight line in the centerline set is on the lower surface of the current wall. If it is on the lower surface of the current wall, reverse the software vector direction and proceed to S5.35; otherwise, proceed directly to S5.
35. S5.35, combine the centerline set with the software vector, wall thickness, and room number information to construct the wall mid-surface object and output it, then finish; S5.36, error message, exit, end.
7. The method for converting an S3D structural model into an Ansys surface model as described in claim 1, characterized in that, The process S6, which processes all mid-surface items obtained from the corresponding component of the current room to form a mid-surface model corresponding to the entire room, includes the following steps: S6.1 Find the maximum thickness in the set of floor slab surface objects and wall surface objects obtained in S5, and add the pre-set threshold as the subsequent extension length. S6.2, loop through the collection of wall face objects. If the loop is complete, proceed to S6.9; otherwise, extract the current wall face object and proceed to S6.
3. S6.3, create a set of wall mid-face planes for each wall mid-face object, and create a set of wall planes and subsequent extended plane sets; S6.4: Loop through the set of centerlines of the wall face objects. Once the loop is complete, proceed to S6.6; otherwise, retrieve the current centerline. S6.5, move the projection of the wall mid-plane to the endpoint of the midline to form a scan line, use the midline as a trajectory line to form a scan surface, put the scan surface into the wall plane set, and return to S6.4 after completion; S6.6, loop through the set of wall planes. If the loop is complete, proceed to S6.8; otherwise, retrieve the current wall plane and proceed to S6.
7. S6.7, extend the current wall plane along the outer contour that coincides with the wall plane set by a certain length and store it in the extended wall plane set, then return to S6.6; S6.8, store the extended wall plane set into the current wall face object, and return to S6.2; S6.9, Create an extended floor plan set; S6.10: Loop through the collection of floor slab surface objects. If the loop is complete, proceed to S6.12; otherwise, obtain the current floor slab surface object and proceed to S6.
11. S6.11, extend the plane of the current floor slab outward along the boundary line to form a new extended plane, store it in the extended plane set, and return to S6.10; S6.12 If there is only one object in the set of objects in the wall, proceed to S6.13; otherwise, proceed to S6.
16. S6.13 Check if the planes in the set of extended wall planes of the current wall are closed. If they are not closed, report an error and exit. Otherwise proceed to S6.14; S6.14, iterate through the set of extended wall planes. If the iteration is complete, proceed to S6.32; otherwise, obtain the current plane and proceed to S6.
15. S6.15, obtain the set of intersection lines of the current plane and other planes in the extended wall plane set and the planes in the extended floor plane set, construct a new plane with these intersection lines as the boundary, store it in the wall center plane set of the current wall center line, and return to S6.14; S6.16, loop through the collection of wall face objects, check if there is a case where all planes in the extended wall plane collection of a single wall are connected and closed. If there is, exit with an error; otherwise, create the wall face plane collection and the real plane collection. S6.17, loop through the collection of wall face objects. If the loop is complete, proceed to S6.19; otherwise, retrieve the current wall face object and create a collection of wall face planes for it, then proceed to S6.
18. S6.18 Find all planes in the set of extended wall planes of the wall mid-face that intersect with planes in the set of extended wall planes of other wall mid-face objects in the set of wall mid-faces, store them in the set of real planes, and return to S6.
17. S6.19, loop through the collection of wall face objects. If the traversal is complete, proceed to S6.21; otherwise, retrieve the current wall face object and proceed to S6.
20. S6.20, Remove all planes in the set of extended wall planes of the current wall that intersect with only one side and other planes in the set of extended wall planes, put the remaining planes into the set of real planes, and return to S6.19; S6.21, loop through the set of true planes, and proceed to S6.32 after the loop is complete; otherwise, retrieve the current true plane and proceed to S6.
22. S6.22, obtain all boundary lines of the current real plane and store them in the current plane boundary line set; S6.23, find the wall face object corresponding to the actual plane; S6.24, find whether the real plane intersects with the planes in other sets of real planes. If they intersect and the intersecting planes do not belong to the set of extended wall planes of the wall in the middle, then record the planes and the intersection lines together into the target set of intersection lines. If the intersecting planes belong to the set of extended wall planes of the wall in the middle, then only if the intersection lines are located on the boundary of the real planes will the planes and the intersection lines together be recorded into the target set of intersection lines. After completion, proceed to S6.
25. S6.25, Establish the intersection line set, check the target set of intersection lines. If the number in the set is greater than 2, proceed to S6.26; otherwise, directly add all the intersection lines in the set to the intersection line set and proceed to S6.
27. S6.26, check the number of intersection lines between each plane in the target set of intersecting lines and the planes in the set of other real planes. If the number is two, add the current intersection line to the set of intersecting lines and proceed to S6.
27. S6.27, Create a boundary line set, check the number of lines in the intersecting line set. If the number is not a multiple of 2, report an error and exit; otherwise, if the number in the intersecting line set is exactly 2, add it directly to the boundary line set and proceed to S6.29; otherwise, proceed to S6.
28. S6.28, find a vertical boundary line in the current set of planar boundary lines, sort all the lines in the set of intersecting lines according to their distance from the boundary line, group every two lines into a set of lines, and store them in the set of boundary lines; S6.29, Create a set of intersecting planes, find the intersection line of each plane in the set of real planes and extended floor planes, and put the intersection line into the set of intersecting planes; S6.30: Loop through the set of lines in the boundary line set. If the traversal is complete, return to S6.21; otherwise, get the current set of wall intersection lines and add the lines in the set of planar intersection lines to the set of wall intersection lines. S6.31 extends the straight lines in the wall intersection line set to intersect, and then uses these extended intersecting straight lines as the boundary lines of the plane to construct the current mid-surface. If the construction is successful, it is added to the wall mid-surface set of the corresponding wall midline object, and the process returns to S6.30; otherwise, an error is reported and the process exits. S6.32, loop through the extended plane set, end when processing is complete, otherwise get the current plane, intersect the current plane with the plane in the wall mid-plane set of each mid-plane object in the wall mid-plane set, use the obtained intersection line as the boundary line of the new plane to construct a new floor mid-plane, and then store it as the plane of the current floor mid-plane in the floor mid-plane object.
8. The method for converting an S3D structural model into an Ansys surface model as described in claim 1, characterized in that, The key information of the wall surface model extracted in S7 and stored in the result file includes the following steps: S7.1, loop through the collection of wall surface objects, and proceed to S7.3 after the loop is complete; otherwise, retrieve the current wall surface object and proceed to S7.
2. S7.2, retrieve the coordinates of the four boundary points of all planes in the plane set of the current wall surface object, add the corresponding serial number, room number, material, and wall thickness of the wall corresponding to the current wall surface object, output them as key information to the intermediate file, and return to S7.1; S7.3, loop through the collection of floor slab face objects. If the loop is complete, proceed to S7.6; otherwise, retrieve the current floor slab face and proceed to S7.
4. S7.4, obtain the plane of the current floor slab, obtain the boundary line of the plane and obtain the coordinates of all key points on the boundary line and add the corresponding number. After completion, proceed to S7.
5. S7.5 outputs the key point number and coordinates along with the room number corresponding to the current floor slab, the floor slab thickness and material to the intermediate file, and returns to S7.3; S7.6, output intermediate file, end.
9. A system for converting an S3D structural model into an Ansys mid-surface model, used to implement the method for converting an S3D structural model into an Ansys mid-surface model as described in any one of claims 1-8, characterized in that, include: The recognition model is configured to identify floor slabs and wall objects that constitute rooms within the S3D 3D design model. The intermediate extraction model is configured to extract the mid-surface of floor slabs and wall objects; The extended model is configured to extend the extracted mid-surface to form a closed space and then extract the corresponding spatial coordinate information. The output model is configured to automatically generate and output intermediate files for Ansys to import into, forming Ansys analysis and calculation models.
Citation Information
Patent Citations
Method and device for converting PDMS model into ANSYS model
CN115017780A