Skip to content

Commit 2091a7f

Browse files
Merge pull request #13 from Digital-Production-Aachen/hatching_pattern_improvement
Improvements to process strategy definition and closed contours meta data
2 parents b9bf4ee + e782616 commit 2091a7f

File tree

1 file changed

+37
-10
lines changed

1 file changed

+37
-10
lines changed

open_vector_format.proto

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,17 @@ message Part {
138138
string name = 1;
139139
GeometryInfo geometry_info = 2;
140140
Material material = 3;
141+
//process strategy used for the in skin (volume) of the part
141142
ProcessStrategy process_strategy = 4;
143+
//process strategy used for the down skin of the part, if differing
144+
ProcessStrategy up_skin_process_strategy = 5;
145+
//process strategy used for the up skin of the part, if differing
146+
ProcessStrategy down_skin_process_strategy = 6;
147+
148+
//meta data defining the exposure order that was used to order the vector blocks of this part
149+
//the first item gets exposed first, e.g. exposure starts with downskin hatches, followed by inskin hatches
150+
//two LPBFMetadata objects are added with PartArea set to VOLUME in both, SkinType set to DOWN_SKIN in first and IN_SKIN in second
151+
repeated VectorBlock.LPBFMetadata exposure_order = 7;
142152

143153
//Metadata related to the geometry of the part
144154
message GeometryInfo {
@@ -161,16 +171,23 @@ message Part {
161171

162172
//Metadata: parameters the job preprocessing program (e.g. Slicer, CAM) used to create the vector data
163173
message ProcessStrategy {
164-
//universal, vendor independent parameters
165-
174+
//universal, vendor independent parameters
175+
166176
//start rotation angle of scan patches or layers
167177
float rot_angle_in_deg = 1;
168178
//Angle increment of scan patches from layer to layer
169179
float increment_angle_in_deg = 2;
170-
//Shift of patches from layer to layer
180+
//Shift of patches in the pattern from layer to layer
171181
float shift_in_mm = 3;
172-
//Extension of patches in to each other
182+
//Extension of patches in to each other. Synonym: overlap distance
173183
float extend_into_in_mm = 4;
184+
//maximum length of hatches when applying a pattern. Values <= 0 result in no limitation.
185+
//for stripes and checkerboard this controls the size of the groups/patches
186+
//for single tracks (uni- or bidirectional) this does not apply
187+
float pattern_hatch_length_in_mm = 13;
188+
//pattern type of the hatches that fill the contours
189+
HatchingPattern hatching_pattern = 12;
190+
174191
//thickness of a layer/workplane
175192
float layer_thickness_in_mm = 5;
176193
//distance between single material tracks
@@ -186,13 +203,11 @@ message Part {
186203
int32 number_of_contours = 10;
187204
//distance inbetween multiple contour lines. Only takes effect if number_of_contours > 1.
188205
float contour_distance_in_mm = 11;
189-
//pattern type of the hatches that fill the contours
190-
HatchingPattern hatching_pattern = 12;
191206

192207
//meta data: custom, human readable name of this process strategy
193208
string name = 90;
194209

195-
//proprietary parameters, vendor specific
210+
//proprietary parameters, vendor specific
196211

197212
repeated ProprietaryParam additional_parameters = 100;
198213

@@ -204,12 +219,18 @@ message Part {
204219
}
205220

206221
enum HatchingPattern{
207-
//hatch lines follow the same direction. Long jumps are executed back to the start after each line.
222+
//single hatch lines that follow the same direction. Long jumps are executed back to the start after each line.
208223
UNIDIRECTIONAL = 0;
209-
//hatch lines alternate directions with short jumps in between
224+
//single hatch lines that alternate directions with short jumps in between
210225
BIDIRECTIONAL = 1;
211-
//hatches are seperated into groups with perpendicular direction following a checkerboard pattern
226+
//hatches are seperated into patches with perpendicular direction following a checkerboard pattern
227+
//size of each patch is quadratic pattern_hatch_length_in_mm times pattern_hatch_length_in_mm
228+
//patch overlap (size of area with two patches) is of size extend_into_in_mm
212229
CHECKERBOARD = 2;
230+
//hatches are seperated into patches ("stripes"), but opposed to checkerboard only in one direction perpendicular to the marking direction
231+
//size of each patch is pattern_hatch_length_in_mm in marking direction, unrestricted perpendicular to the marking direction
232+
//patch overlap (size of area with two patches) is of size extend_into_in_mm
233+
STRIPES = 3;
213234
}
214235
}
215236
}
@@ -273,6 +294,12 @@ message WorkPlane {
273294
float area_in_mm_2 = 2;
274295
//this closed contours total length in millimeters
275296
float length_in_mm = 3;
297+
//index of the parent (containing) contour in this workplanes' repeated contours field
298+
//if the parent index points to the contour itself, it is one outermost contour
299+
int32 parent_index = 5;
300+
//defines inner/outer contours by specifying the winding number of the contour.
301+
//for standard slices, a winding number of 1 indicates an outer contour while 0 indicates an inner contour.
302+
int32 winding_number = 6;
276303
}
277304
}
278305

0 commit comments

Comments
 (0)