@@ -138,7 +138,17 @@ message Part {
138
138
string name = 1 ;
139
139
GeometryInfo geometry_info = 2 ;
140
140
Material material = 3 ;
141
+ //process strategy used for the in skin (volume) of the part
141
142
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 ;
142
152
143
153
//Metadata related to the geometry of the part
144
154
message GeometryInfo {
@@ -161,16 +171,23 @@ message Part {
161
171
162
172
//Metadata: parameters the job preprocessing program (e.g. Slicer, CAM) used to create the vector data
163
173
message ProcessStrategy {
164
- //universal, vendor independent parameters
165
-
174
+ //universal, vendor independent parameters
175
+
166
176
//start rotation angle of scan patches or layers
167
177
float rot_angle_in_deg = 1 ;
168
178
//Angle increment of scan patches from layer to layer
169
179
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
171
181
float shift_in_mm = 3 ;
172
- //Extension of patches in to each other
182
+ //Extension of patches in to each other. Synonym: overlap distance
173
183
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
+
174
191
//thickness of a layer/workplane
175
192
float layer_thickness_in_mm = 5 ;
176
193
//distance between single material tracks
@@ -186,13 +203,11 @@ message Part {
186
203
int32 number_of_contours = 10 ;
187
204
//distance inbetween multiple contour lines. Only takes effect if number_of_contours > 1.
188
205
float contour_distance_in_mm = 11 ;
189
- //pattern type of the hatches that fill the contours
190
- HatchingPattern hatching_pattern = 12 ;
191
206
192
207
//meta data: custom, human readable name of this process strategy
193
208
string name = 90 ;
194
209
195
- //proprietary parameters, vendor specific
210
+ //proprietary parameters, vendor specific
196
211
197
212
repeated ProprietaryParam additional_parameters = 100 ;
198
213
@@ -204,12 +219,18 @@ message Part {
204
219
}
205
220
206
221
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.
208
223
UNIDIRECTIONAL = 0 ;
209
- //hatch lines alternate directions with short jumps in between
224
+ //single hatch lines that alternate directions with short jumps in between
210
225
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
212
229
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 ;
213
234
}
214
235
}
215
236
}
@@ -273,6 +294,12 @@ message WorkPlane {
273
294
float area_in_mm_2 = 2 ;
274
295
//this closed contours total length in millimeters
275
296
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 ;
276
303
}
277
304
}
278
305
0 commit comments