CN109934923A - Model layers and track fill method suitable for biomaterial 3D printing - Google Patents

Model layers and track fill method suitable for biomaterial 3D printing Download PDF

Info

Publication number
CN109934923A
CN109934923A CN201711344975.6A CN201711344975A CN109934923A CN 109934923 A CN109934923 A CN 109934923A CN 201711344975 A CN201711344975 A CN 201711344975A CN 109934923 A CN109934923 A CN 109934923A
Authority
CN
China
Prior art keywords
index
triangle
scatterplot
points
scan line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711344975.6A
Other languages
Chinese (zh)
Other versions
CN109934923B (en
Inventor
胡延旭
王赫然
郑雄飞
李松
朱慧轩
王强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Institute of Automation of CAS
Original Assignee
Shenyang Institute of Automation of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenyang Institute of Automation of CAS filed Critical Shenyang Institute of Automation of CAS
Priority to CN201711344975.6A priority Critical patent/CN109934923B/en
Publication of CN109934923A publication Critical patent/CN109934923A/en
Application granted granted Critical
Publication of CN109934923B publication Critical patent/CN109934923B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

The present invention relates to a kind of model layers suitable for biomaterial 3D printing and track fill methods, comprising the following steps: stl data are established three kinds of index data structures: point, side, triangle according to geometry logical construction;According to the topological relation of index data structure set up between points, while while between, be bordered by relationship between dough sheet and dough sheet, obtain continuous slice track data;Slice track is filled.The present invention is based on face the search of side table, it is established that point, side, the triangle index in face.Known triangle concordance list can traverse the index of three adjacent triangles, the index on three sides and the index of three points;Known side concordance list, it will be able to traverse two indexes for being bordered by triangle index and two points.Invention simultaneously has carried out compensation deals to the special circumstances of data scatterplot, provides a kind of simple compensation method of low model accuracy loss amount.

Description

Model layers and track fill method suitable for biomaterial 3D printing
Technical field
The present invention relates to a kind of for biomaterial 3D printing, the reading of stl file format 3D model, slice and rail Mark generation method.
Background technique
Most common 3D printing model file is exactly STL format, it can commonly use soft by CAD, SolidWorks etc. Part directly generates..stl file is in computer graphics application system, for indicating a kind of file format of triangular mesh. Its file format is very simple, and application is very extensive.STL is normative document type applied by most rapid prototyping systems.STL It is that 3D CAD model is showed with triangle gridding.Rapid prototyping, that is, 3D printing technique exactly fills the planar graph, along height side To layer-by-layer superposition, physical model is eventually formed.
Triangle surface grid is distribution at random in stl file, only carries out group to these grids with certain relationship It knits, then finds out the intersection point of cutting plane Yu triangular mesh seamed edge, constitute orderly point set, significant flat edge could be become Boundary.Common stl file dicing method is usually step section under Z height, and then this needs largely computes repeatedly.It is common Optimization algorithm is by establishing triangle surface table so that after having cut a triangular mesh, can utilize and adjoin data-gathering Starting point is finally returned that next triangular mesh to be cut, obtains an orderly cutting point range.But such method is not examined Next net to be cut can not be searched in this case by considering the situation when cutting plane cuts to triangular mesh vertex Lattice will cause Slicing Algorithm to fail.
Summary of the invention
It is insufficient in view of the above technology, it is an object of the invention to provide a kind of model layers suitable for biomaterial 3D printing with And track fill method.This method can quickly be supplied to the shortest mobile route of overhead traveling crane in complicated orbital environment.
The technical solution adopted by the present invention to solve the technical problems is: a kind of model suitable for biomaterial 3D printing Layering and track fill method, comprising the following steps:
1) stl data are established into three kinds of index data structures: point, side, triangle according to geometry logical construction;
2) according to the topological relation of index data structure set up between points, while while between, dough sheet and dough sheet it Between be bordered by relationship, obtain continuous slice track data;
3) slice track is filled.
The step 1) includes:
Data prediction is carried out using de-redundancy algorithm to the stl scatterplot data of reading;
Three scatterplots read successively extract a pair of of scatterplot according to clockwise sequence, and lesser by indexing in two scatterplots The scatterplot for being stored in Edge type side L [k] indexes L [k] .xyindex [0], biggish deposit L [k] .xyindex [1], and by three Triangle v [j] .index where the faceindex [0] on side is assigned a value of;K indicates that side caches array index;
Set type of container SetEdge is arrived in circulation deposit L [k], is judged by find function if existing in SetEdge L [k] .faceindex [1] is then assigned a value of find and returns to the faceindex [0] that iterator is directed toward element by this edge;
Three side L [k] are assigned to three of the triangle data structure v [j] of TRIANGLE type according to clockwise sequence Face side index v [j] .Lineindex [i];It will finally be waited in the side deposit vector container VecEdge in SetEdge container It uses;I indicates that scatterplot caches array index;J indicates that triangle caches array index;
The adjoining triangle index of triangle is generated according to the syntople on the three of triangle sides and side, most throughout one's life At vertex, side, the index dictionary table of triangle.
It is described to carry out data prediction using de-redundancy algorithm specifically:
Three scatterplot coordinates of a triangle are successively read to three XYZ categorical variable P [3], by a scatterplot P [i] It is stored in front of vector container VecTri and is first stored in a set container SetTri, judged in such as SetTri by find function There are identical elements, then only index position, that is, p [i] .index in container and be set to find function return iterator direction element Index number is inserted into VecTri container end if P [i] is a new point and assigns new index number, P [i] .index=SetTri.size ();Three scatterplots are successively stored in the triangle v's [j] of a TRIANGLE type xyzindex[i];Index v [j] .index of triangle is assigned a value of j, is then incremented by j by one new triangle of every reading Add one;J indicates that triangle caches array index.
Modify the boundary condition of de-redundancy algorithm: if calculating less than one fixation of linear distance between any two point Value, then it is assumed that the two points are the same points.
Three kinds of index data structure forms are as follows:
Scatterplot data structure XYZ: including three float type member x, y, z represent three scatterplot coordinates of triangle, include One int type member index, represents triangle index value;
Side data structure EDGE: three scatterplots of int type member's array xyIndex [2] representative edge comprising two elements Index, two sides index of int type member's array faceIndex [2] representative edge comprising two elements, includes an int type Member index, representative edge index value;
Triangle data structure TRIANGLE: int type member's array xyzIndex [3] comprising three elements represents triangle Three scatterplots of shape index;Int type member's array LineIndex [3] comprising three elements represents three sides of a triangle rope Draw;Int type member's array faceIndex [3] comprising three elements represents three adjacent triangle indexes of triangle;Include One int type member index, represents triangle index value.
It, will be with a certain layer of slice when certain scatterplot is equal with layer slice height in index data structure in the step 2) High contour scatterplot is unified to increase a fixed height, and this is highly less than the high half of layer.
The step 3) is specific as follows:
(1) every layer of contour line is found intersection with a direction, that is, Y-direction at equal intervals, guarantees the friendship of each scan line and profile Point is even number;
(2) snakelike lookup algorithm is utilized, every layer of one or more filling lines are obtained;Specifically:
(2.1) a layer height z is selected first, and all scannings are obtained according to this layer and seek the point after handing over, and determine scan line The direction of translation, if scanning direction is fixed as the direction y in step (1);
(2.2) it is as follows to save serpentine path:
The X-coordinate that X is intersection point is defined first, and Y is the Y-coordinate of intersection point, then a scan line intersects with profile, then the scanning All intersection points Y value having the same that line generates;
When number of operations be even-times when, extract a scan line ask hand over result cache in subscript it is the smallest, and not by Two intersection points used, and be stored in the caching container of current serpentine path, mark the two points then to have used;
When number of operations is odd-times, it is incremented by direction along Y, if there is the intersection point of next scan line, extracts one Subscript two intersection points that are the smallest, and being not used by result cache are handed in asking for scan line, and are stored in the slow of current serpentine path It deposits in container, marks the two points then to have used;If there is no next scan line, then it is assumed that this serpentine is It terminates, and is incremented by direction traverse scanning line intersection point along Y, searching Y is the smallest, while the smallest not used two points conduct of X The starting point of next serpentine;
All scan line intersection points in one layer of traversal, until obtaining this layer of all snakelike line tracking.
(2.3) Z coordinate direction is incremented by, and the scan line intersection point of all layers of traversal obtains all layers of snakelike line tracking.
If in snakelike continuous filling track, certain distance between two points judges that this is partially filled with track and is if being less than setting length Short side;If it is determined that short side is longer than the scan line spacing of several times, then ends this continuous snakelike filling line immediately, jump out this Secondary circulation is simultaneously searched new without used section again, obtains whole snakelike filling lines until traversing all sections;It is described Transition track when short side refers to switched scan line, between two filling lines.
The invention has the following beneficial effects and advantage:
1. the present invention is based on face the search of side table, it is established that point, side, the triangle index in face.Known triangle concordance list is just The index of three adjacent triangles can be traversed, the index on three sides and the index of three points;Known side concordance list, energy Enough traverse two indexes for being bordered by triangle index and two points.
2. invention simultaneously has carried out compensation deals to the special circumstances of data scatterplot, a kind of low model accuracy loss is provided The simple compensation method of amount.It invents while providing the high penetration degree fill method for being specially adapted for biomaterial 3D printing, with And track G code generation method, greatly improve biomedical applications value.
Detailed description of the invention
Fig. 1 is class formation figure of the invention;
Fig. 2 is process flow diagram flow chart of the scatterplot around certain axis V rotation A angle;
Fig. 3 is serpentine method flow diagram.
Fig. 4 a is inappropriate transition wire schematic diagram there are track.
Fig. 4 b is the method schematic diagram for solving inappropriate transition wire.
Specific embodiment
The present invention will be further described in detail below with reference to the embodiments.
A kind of model layers and track fill method suitable for biomaterial 3D printing are suitable for high-molecular biologic material Material, such as gelatin, collagen etc..The data topology that method contains model is rebuild, Slicing Algorithm, filling algorithm, machine language G generation Code generating algorithm.
Data topology algorithm for reconstructing is based on point, side, the stringent syntople of triangle.Data topology algorithm for reconstructing provides Model fault-tolerant method is used to provide the robustness of program.The method that data topology algorithm for reconstructing provides de-redundancy is used to letter Change calculation amount.
Slicing Algorithm is the data provided based on data topology algorithm for reconstructing, carries out equal height slice to z-height.Slice is calculated Method is compensated with data prediction.
Filling algorithm includes a snakelike line tracking fill method.The method that filling algorithm solves inappropriate transition wire is When judging serpentine short side, judge that the angle of short side and this filling line is not less than 45 degree, i.e. the length of short side must not be grown In 1.414 times of scan line spacing.The spinning solution of filling algorithm is successively carried out at quaternary number rotation to a certain layer all the points Reason.
Machine language G code generating algorithm, the movement velocity of machine are changed according to moving distance.
The program structure of method, implementation are four classes and corresponding method.
Method is the program that a C++ is realized, class formation figure is as shown in Figure 1.
Step1.STL data topology rebuilds (realization of CTriangulate class)
A stl file is read first into file, by searching for dissipating for vertex text string extracting text type is read Point data;If reading text type failure, scatterplot data are read according to the data storage location of binary system stl file.Sentence The disconnected whether successful method of text file that reads is to judge to read whether the length of scatterplot data buffer storage is 0, for example 0 failure. Stl data are established into three kinds of index data structures: point, side, triangle according to geometry logical construction;
Three kinds of structured data requests:
1. triangle concordance list known to can traverse the index of three adjacent triangles, the index and three on three sides The index of a point;
Side concordance list known to 2., it will be able to traverse two indexes for being bordered by triangle index and two points;Three kinds of data The form of structure are as follows:
Scatterplot data structure XYZ: three scatterplot coordinates of triangle are represented comprising three float type members x, y, z.Include One int type member index, represents triangle index value.
Side data structure EDGE: three scatterplots of int type member's array xyIndex [2] representative edge comprising two elements Index.Two sides of int type member's array faceIndex [2] representative edge comprising two elements index.Include an int type Member index, representative edge index value.
Triangle data structure TRIANGLE: int type member's array xyzIndex [3] comprising three elements represents triangle Three scatterplots of shape index.Int type member's array LineIndex [3] comprising three elements represents three sides of a triangle rope Draw.Int type member's array faceIndex [3] comprising three elements represents three adjacent triangle indexes of triangle.Include One int type member index, represents triangle index value.
The process of one data topology rebuilding are as follows:
Data prediction is carried out using de-redundancy algorithm to the stl scatterplot data of reading, the preprocess method is successively Three scatterplot coordinates of a triangle are read to three XYZ categorical variable P [3], scatterplot P [i] deposit vector is held It is first stored in a set container SetTri before device VecTri, existing identical element in such as SetTri is judged by find function, It then only indexes the position in container and p [i] .index is set to find function and return to the index number that iterator is directed toward element, such as Fruit P [i] is that a new point is then added to container tail and assigns new index number, P [i] .index=SetTri.size ();Successively three scatterplots are stored in the xyzindex [i] of the triangle v [j] of a TRIANGLE type.It is every read one it is new Index v [j] .index of triangle is assigned a value of j by triangle.
Three scatterplots read successively extract a pair of of scatterplot according to clockwise sequence, and lesser by indexing in two scatterplots The scatterplot for being stored in Edge type side L [k] indexes L [k] .xyindex [0], biggish deposit L [k] .xyindex [1], and by three Triangle v [j] .index where the faceindex [0] on side is assigned a value of;
Set type of container SetEdge is arrived in circulation deposit L [k], is judged by find function if existing in SetEdge L [k] .faceindex [1] is then assigned a value of find and returns to the faceindex [0] that iterator is directed toward element by this edge;
Three side L [k] are assigned to triangle data v [j] .Lineindex of TRIANGLE type according to clockwise sequence [i].It is finally that the side deposit deposit vector container VecEdge in SetEdge container is medium to be used.
The adjoining triangle index of triangle is generated according to the syntople on the three of triangle sides and side, most throughout one's life At vertex, side, the index dictionary table of triangle.
Wherein i: expression scatterplot caching array index, k: expression side caching array index, j: expression triangle caching array Subscript.
Topology rebuilding algorithm in the present invention provides the fault-tolerant method of model.Since stl file generated is not rigorous, have very much It is likely to occur not closing for model file, i.e., there is no be bordered by triangle on certain side of some triangle.The present invention passes through modification The boundary condition of de-redundancy algorithm is fault-tolerant to achieve the purpose that.Fault-tolerant boundary condition is during de-redundancy, if meter Calculate less than one adjustable fixed value of linear distance between any two point, such as 0.001mm, then it is assumed that the two, which are put, is The same point.Specific method is the in-less-than symbol of heavy duty set container.The description of the heavy duty less than sign are as follows: define set appearance first Existing scatterplot P1 and scatterplot P2 to be judged in device: a given value tolerance (can be equal to 0.0001) is defined.Then it counts It calculates:
If P1.z < (P2.z-tolerance), true is returned;
If P1.z > (P2.z+tolerance), false is returned;
If P1.y < (P2.y-tolerance), true is returned;
If P1.y > (P2.y+tolerance), false is returned;
If P1.x < (P2.x-tolerance), true is returned;
If P1.x > (P2.x+tolerance), false is returned;
Other situations return to false.
STEP2 Slicing Algorithm (realization of CAllCoutour class)
According to the geometric topo-relationship that the first step generates, the orderly topological relation of available stl file data structure.Root According to this topological relation can easily set up between points, while while between, be bordered by pass between dough sheet and dough sheet System.Then continuous slice track data can be obtained according to certain methods.
This method successively asks friendship according to Z-direction height gain:
By taking the monolayer slices algorithm of a height as an example (realization of COneCoutour class):
1. stating bool array, indicate that all sides are not all cut through;
2. assuming that current tangent plane height is zValue, the side intersected with current tangent plane is found, friendship is asked and marks It is cut through;The side of the intersection is expressed as LINE, and the judgment method about whether intersection is that judgement index is Two the scatterplots Pt1 and Pt2 of LINE.xyIndex [0] and LINE.xyIndex [1], if z value meet Pt1.z < zValue < Or Pt1.z > zValue > Pt2 Pt2., then it is assumed that the side is intersected with tangent plane, intersection point be belong to the straight line of the side two o'clock with should The geometry intersection point of plane.
STL model some scatterplots can exist with layer slice height unanimous circumstances, common algorithm be ignore them, however Doing so will lead to model and sacrifices some geometrical characteristics.The present invention is that unified pretreatment is done to the scatterplot of stl file.It is described pre- Processing is the method for numerical compensation, i.e., the scatterplot unification contour with a certain layer height is sliced is increased the fixed height (height Degree is less than the high half of layer).
3. by establishing side, angle, the geometric topo-relationship of triangle can pass through foreseeable time complexity O (n) Come two triangle surfaces for being quickly found out the vertex for including according to a line and it is bordered by;According to a triangle surface It is quickly found out the side for including and all of it is bordered by triangle;By topological relation traversal this edge, all 2 are bordered by triangle The non-own side of 5 of shape is chosen first effective edge as lower a line by a permanent order (such as clockwise), is so recycled Iteration is until obtaining a Confined outline curve.The non-own Lc when referring to currently in use to Mr. Yu's item, its two adjoinings When six of triangle exclude residue five of Lc in.The judgment basis of the effective edge is not operated, while it is full Intersection condition described in foot;
4. needing to judge whether there is no used side since certain structures are there are cavity, owning until by the layer All friendship is asked to finish in side;
Aforementioned four step is utilized to the Slicing Algorithm of a model, amount of height z is incremented by, all obtains one until every layer A or multiple continuous closed outlines;
Step3 filling algorithm (realization of CPointPath class)
Definition:
1. filling line: referring to the point generated after same scan line cutting profile, connect the closed line segment of generation two-by-two.
2. short side: excessive track when referring to switched scan line, between two filling lines.
It is as follows to fill process:
1. friendship is asked in pair every layer of scanning, it should ensure that the section of each scan line and profile is even number.Method is using pre- place The method of reason.The method of the preprocess method, i.e., will be to the unified translation one of all this layer profile points conllinear with scan line Fixed distance.(half that the distance is less than scan line spacing).
The scanning process carried out to one layer is to select the direction x or the direction y to originate as scanning xyz coordinate system Direction defines the straight line SCAN_LINE for being parallel to scanning prime direction, then according to fixed scan line spacings gap (work Skill parameter, optional 0.16mm) scan line SCAN_LINE is translated, every translation once calculates the SCAN_LINE and scanning slice Contour line intersection point, the profile intersection point that each scan line acquires according to coordinate the ascending preservation of x value.
Simultaneously because biomaterial, requires it to have certain hole, hole has logical especially in biological support Permeability.This is because pore structure directly affects the growth of cell and the diffusion velocity of growth factor.Thus filling track is wanted Asking is close alignment between layers, and such way can make hole have complete permeability.Under this requirement, need Knot fruit is asked to do registration process every layer of scanning.The algorithm of registration process is that each scan line result is taken scan line spacings Integral multiple approximate processing.
Seeking the mode of friendship can be at any angle.The method for realizing any angle filling is all profiles for every layer Point carries out rotation process.The method of the rotation process is that the speed of rotation dot matrix is improved by quaternary counting method.
One scatterplot w=(wx, wy, wz) specifically indicates as shown in Figure 2 around the process of certain axis V rotation A angle.
2. utilizing snakelike lookup algorithm, every layer of one or more filling lines are obtained.Algorithm specifically describes are as follows: selects first One layer height z obtains all scannings according to this layer and seeks friendship treated point, and determines the direction of scan line translation, it is assumed that on One middle direction scanning direction fixed bit y.
A preservation serpentine path is divided into two according to sequence of extraction to be operated:
The X-coordinate that X is intersection point is defined first, and Y is the Y-coordinate of intersection point.Then a scan line intersects with profile, then the scanning All intersection points Y value having the same that line generates.
When number of operations be even-times when, extract a scan line ask hand over result cache in subscript it is the smallest, and not by Two intersection points used, and be stored in the caching container of current serpentine path, mark the two points then to have used.
When number of operations is odd-times, it is incremented by direction along Y, if there is the intersection point of next scan line, extracts one Subscript two intersection points that are the smallest, and being not used by result cache are handed in asking for scan line, and are stored in the slow of current serpentine path It deposits in container, marks the two points then to have used.If there is no next scan line, then it is assumed that this serpentine is It terminates, and is incremented by direction traverse scanning line intersection point along Y, searching Y is the smallest, while the smallest not used two points conduct of X The starting point of next serpentine.
All scan line intersection points in one layer of traversal, until obtaining this layer of all snakelike line tracking.
Z coordinate direction is incremented by, and the scan line intersection point of all layers of traversal obtains all layers of snakelike line tracking.
Snakelike line method is as shown in Figure 3.
Since model structure there may be the presence of cavity, will necessarily go out according to scan line sequence at equal intervals filling process It is now truncated, obtains a plurality of serpentine;Simultaneously because the presence of chamber, it is understood that there may be inappropriate transition wire of track, such as Fig. 4 a It is shown.The method for solving inappropriate transition wire is as shown in Figure 4 b.When judging serpentine short side, judge that short side is filled out with this The angle of line is filled not less than 45 degree, i.e. the length of short side must not be longer than 1.414 times of gap.If it is determined that short side is longer than 1.414 times Scan line spacing, then end this continuous snakelike filling line immediately, jumping out this and recycling and search again new does not make Used section obtains all snakelike filling lines until traversing all sections.
Symbol description gap: scan line spacing
Step4 machine language G code generating algorithm (CGcode class)
A continuous filling line caching is successively extracted .G1 point location is switched to two points P1, P2 continuous in the caching It instructs, wherein G1 instruction type are as follows: F%.4f G1X%.4f Y%.4f Z%.4f E%.4f.
F represents movement velocity, and G1 represents standard G code linear interpolation operation, X, Y, and Z respectively represents the three-dimensional coordinate of movement Target position.E represents the material amount of feeding.
Due to the presence of short side in filling algorithm, the unsuitable bradykinetic of short side, a large number of experiments experience surface will lead to slowly excessively Material stacking.Thus movement velocity F changes according to moving distance dis, specific variation pattern are as follows:
F=vs (if dis is greater than 1.414*gap)
F=a*vs (if dis is less than or equal to 1.414*gap)
Wherein vs is preset speeds,
Wherein a is the empirical data greater than 1.
The formula for wherein calculating distance between two points is as follows:
Dis=sqrt ((P1.x-P2.x) * (P1.x-P2.x)+(P1.y-P2.y) * (P1.y-P2.y))
For different tracks bridging mode: 1cm is raised in the first direction z, then first point of the first motion to next track.
P1.x, P2.x are respectively the x coordinate of two o'clock, and P1.y, P2.y are respectively the y-coordinate of two o'clock.

Claims (8)

1. a kind of model layers and track fill method suitable for biomaterial 3D printing, it is characterised in that including following step It is rapid:
1) stl data are established into three kinds of index data structures: point, side, triangle according to geometry logical construction;
2) according to the topological relation of index data structure set up between points, while while between, between dough sheet and dough sheet It is bordered by relationship, obtains continuous slice track data;
3) slice track is filled.
2. a kind of model layers and track fill method suitable for biomaterial 3D printing according to claim 1, It is characterized in that, the step 1) includes:
Data prediction is carried out using de-redundancy algorithm to the stl scatterplot data of reading;
Three scatterplots read successively extract a pair of of scatterplot according to clockwise sequence, and will index lesser deposit in two scatterplots The scatterplot of Edge type side L [k] indexes L [k] .xyindex [0], biggish deposit L [k] .xyindex [1], and by three sides Faceindex [0] be assigned a value of where triangle v [j] .index;K indicates that side caches array index;
Circulation deposit L [k] arrive set type of container SetEdge, judged by find function if in SetEdge it is existing this L [k] .faceindex [1] is then assigned a value of find and returns to the faceindex [0] that iterator is directed toward element by side;
By three when L [k] faces according to three of triangle data structure v [j] that clockwise sequence assigns TRIANGLE type Index v [j] .Lineindex [i];It is finally that the side deposit vector container VecEdge in SetEdge container is medium to be used; I indicates that scatterplot caches array index;J indicates that triangle caches array index;
The adjoining triangle index that triangle is generated according to the syntople on the three of triangle sides and side, ultimately generates top Point, side, the index dictionary table of triangle.
3. a kind of model layers and track fill method suitable for biomaterial 3D printing according to claim 2, It is characterized in that, described carry out data prediction using de-redundancy algorithm specifically:
Three scatterplot coordinates of a triangle are successively read to three XYZ categorical variable P [3], a scatterplot P [i] is stored in A set container SetTri is first stored in front of vector container VecTri, it is existing such as in SetTri by the judgement of find function Identical element then only indexes position, that is, p [i] .index in container and is set to the index that find function returns to iterator direction element Label is inserted into VecTri container end if P [i] is a new point and assigns new index number, P [i] .index= SetTri.size();Three scatterplots are successively stored in the xyzindex [i] of the triangle v [j] of a TRIANGLE type;Often A new triangle is read, index v [j] .index of triangle is assigned a value of j, then j is incremented by and adds one;J indicates triangle Shape caches array index.
4. a kind of model layers and track fill method suitable for biomaterial 3D printing according to claim 2, It is characterized in that the boundary condition of modification de-redundancy algorithm: if the linear distance calculated between any two point is solid less than one Definite value, then it is assumed that the two points are the same points.
5. a kind of model layers and track fill method suitable for biomaterial 3D printing according to claim 1, It is characterized in that, three kinds of index data structure forms are as follows:
Scatterplot data structure XYZ: representing three scatterplot coordinates of triangle comprising three float type members x, y, z, includes one Int type member index, represents triangle index value;
Side data structure EDGE: three scatterplots index of int type member's array xyIndex [2] representative edge comprising two elements, Two sides of int type member's array faceIndex [2] representative edge comprising two elements index, and include an int type member Index, representative edge index value;
Triangle data structure TRIANGLE: int type member's array xyzIndex [3] comprising three elements represents triangle Three scatterplot indexes;Int type member's array LineIndex [3] comprising three elements represents three sides of a triangle index;Packet Int type member's array faceIndex [3] containing three elements represents three adjacent triangle indexes of triangle;Include one Int type member index, represents triangle index value.
6. a kind of model layers and track fill method suitable for biomaterial 3D printing according to claim 1, It is characterized in that, in the step 2), it, will be a certain with slice when certain scatterplot is equal with layer slice height in index data structure The high contour scatterplot of layer is unified to increase a fixed height, and this is highly less than the high half of layer.
7. a kind of model layers and track fill method suitable for biomaterial 3D printing according to claim 1, It is characterized in that, the step 3) is specific as follows:
(1) every layer of contour line is found intersection with a direction, that is, Y-direction at equal intervals, guarantees that the intersection point of each scan line and profile is Even number;
(2) snakelike lookup algorithm is utilized, every layer of one or more filling lines are obtained;Specifically:
(2.1) a layer height z is selected first, and all scannings are obtained according to this layer and seek the point after handing over, and determine scan line translation Direction, if scanning direction is fixed as the direction y in step (1);
(2.2) it is as follows to save serpentine path:
The X-coordinate that X is intersection point is defined first, and Y is the Y-coordinate of intersection point, then a scan line intersects with profile, then the scan line produces Raw all intersection points Y value having the same;
When number of operations is even-times, extracts asking for a scan line and hand over subscript in result cache the smallest, and be not used by Two intersection points, and be stored in the caching container of current serpentine path, mark the two points then to have used;
When number of operations is odd-times, it is incremented by direction along Y, if there is the intersection point of next scan line, extracts a scanning Subscript two intersection points that are the smallest, and being not used by result cache are handed in asking for line, and the caching for being stored in current serpentine path holds In device, the two points are marked then to have used;If there is no next scan line, then it is assumed that this serpentine is whole Only, and along Y it is incremented by direction traverse scanning line intersection point, it is the smallest finds Y, while under the smallest not used two points conduct of X The starting point of one serpentine;
All scan line intersection points in one layer of traversal, until obtaining this layer of all snakelike line tracking.
(2.3) Z coordinate direction is incremented by, and the scan line intersection point of all layers of traversal obtains all layers of snakelike line tracking.
8. a kind of model layers and track fill method suitable for biomaterial 3D printing according to claim 7, It is characterized in that, if certain distance between two points judges that this is partially filled with rail if being less than setting length in snakelike continuous filling track Mark is short side;If it is determined that short side is longer than the scan line spacing of several times, then ends this continuous snakelike filling line immediately, jump This recycles and searches again new without used section out, obtains whole snakelike filling lines until traversing all sections; Transition track when the short side refers to switched scan line, between two filling lines.
CN201711344975.6A 2017-12-15 2017-12-15 Model layering and track filling method suitable for 3D printing of biological material Active CN109934923B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711344975.6A CN109934923B (en) 2017-12-15 2017-12-15 Model layering and track filling method suitable for 3D printing of biological material

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711344975.6A CN109934923B (en) 2017-12-15 2017-12-15 Model layering and track filling method suitable for 3D printing of biological material

Publications (2)

Publication Number Publication Date
CN109934923A true CN109934923A (en) 2019-06-25
CN109934923B CN109934923B (en) 2022-10-11

Family

ID=66979338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711344975.6A Active CN109934923B (en) 2017-12-15 2017-12-15 Model layering and track filling method suitable for 3D printing of biological material

Country Status (1)

Country Link
CN (1) CN109934923B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110544255A (en) * 2019-07-26 2019-12-06 山东大学 method and system for segmenting triangular mesh holes for 3D printing
CN112846232A (en) * 2020-12-31 2021-05-28 南京英尼格玛工业自动化技术有限公司 Multi-layer and multi-channel arc additive automatic trajectory planning method and system for metal structure
CN114693869A (en) * 2022-03-08 2022-07-01 北京航空航天大学 3D printing solid model generation method based on half-edge and half-surface data structure
CN115157655A (en) * 2022-07-04 2022-10-11 上海酷鹰机器人科技有限公司 Design method of 3D printing overall scheme of large-size special-shaped curved surface sample
AT525686A1 (en) * 2021-12-09 2023-06-15 Mehmet Bugra Akin Process for the additive manufacturing of a workpiece

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102834A (en) * 2002-09-11 2004-04-02 Ricoh Co Ltd Structure of triangular mesh data, method of compressing and expanding triangular mesh data, program, recording medium, and system
CN103838907A (en) * 2013-09-13 2014-06-04 上海大学 Curved surface cutting trajectory obtaining method based on STL model
CN104331555A (en) * 2014-10-31 2015-02-04 河海大学常州校区 Slicing processing method aiming at non-closed STL model with boundaries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102834A (en) * 2002-09-11 2004-04-02 Ricoh Co Ltd Structure of triangular mesh data, method of compressing and expanding triangular mesh data, program, recording medium, and system
CN103838907A (en) * 2013-09-13 2014-06-04 上海大学 Curved surface cutting trajectory obtaining method based on STL model
CN104331555A (en) * 2014-10-31 2015-02-04 河海大学常州校区 Slicing processing method aiming at non-closed STL model with boundaries

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘大伟等: "3D打印中一种快速分层处理算法的研究", 《组合机床与自动化加工技术》 *
石振凌等: "STL文件拓扑关系的建立与新型三角片搜索算法研究", 《新技术新工艺》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110544255A (en) * 2019-07-26 2019-12-06 山东大学 method and system for segmenting triangular mesh holes for 3D printing
CN110544255B (en) * 2019-07-26 2020-05-19 山东大学 Method and system for segmenting triangular mesh holes for 3D printing
CN112846232A (en) * 2020-12-31 2021-05-28 南京英尼格玛工业自动化技术有限公司 Multi-layer and multi-channel arc additive automatic trajectory planning method and system for metal structure
CN112846232B (en) * 2020-12-31 2023-03-03 南京英尼格玛工业自动化技术有限公司 Multi-layer and multi-channel arc additive automatic trajectory planning method and system for metal structure
AT525686A1 (en) * 2021-12-09 2023-06-15 Mehmet Bugra Akin Process for the additive manufacturing of a workpiece
CN114693869A (en) * 2022-03-08 2022-07-01 北京航空航天大学 3D printing solid model generation method based on half-edge and half-surface data structure
CN115157655A (en) * 2022-07-04 2022-10-11 上海酷鹰机器人科技有限公司 Design method of 3D printing overall scheme of large-size special-shaped curved surface sample

Also Published As

Publication number Publication date
CN109934923B (en) 2022-10-11

Similar Documents

Publication Publication Date Title
CN109934923A (en) Model layers and track fill method suitable for biomaterial 3D printing
CN102298795B (en) Three-dimensional segmenting method for STL (Standard Template Library) triangular network model
CN106273496B (en) A kind of complicated break area automatic division method in increasing material manufacturing
CN112140552B (en) In-situ 3D printing curved surface layering and path planning method
CN109325316B (en) STL model efficient parallel layer cutting method based on concurrent welding sequencing
CN110956699B (en) GPU (graphics processing unit) parallel slicing method for triangular mesh model
CN110489778A (en) Pattern dividing method, laser ablation control system towards laser ablation processing
Fok et al. An ACO-based tool-path optimizer for 3-D printing applications
CN108338848B (en) Stripping type laser tooth preparation method, apparatus, equipment and medium
CN106903889A (en) A kind of rapid section algorithm of STL models
CN110033519A (en) Three-dimensional modeling method, device, system and storage medium based on Implicitly function
CN113001551B (en) Fast collision detection method based on octree structure segmentation
CN110232742A (en) 3D printing hierarchical control algorithm
CN109868470A (en) Laser melting coating method for planning track
CN108984827A (en) A kind of high-performance increasing material manufacturing method based on force flow guidance
CN108389263A (en) The IGES surface grids rapid generations calculated are solved towards Element BEM
CN110889903B (en) Three-dimensional model fast voxelization method based on slicing strategy
CN107457981A (en) 3D printing method and system
Tian et al. Research on fast grouping slice algorithm for STL model in rapid prototyping
CN106926465A (en) A kind of fractional scanning path generating method of control increasing material manufacturing stress deformation
CN105117508B (en) Scan path generation method based on selective laser melting technology
Sabourin Adaptive high-precision exterior, high-speed interior, layered manufacturing
Hu et al. A Toolpath Optimization Algorithm for Layered 3D Printings Based on Solving the TSP
CN101510227A (en) Scattered Cloud self-adapting slicing method
CN114193769B (en) Method of defining a staggered path for an additive manufacturing machine

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant