if pocket_contour:pocket parallel offset as o.dist

pull/273/head
abosafia 2024-09-28 07:36:05 +03:00
rodzic 9e39b0e806
commit e5dd559ab6
3 zmienionych plików z 16 dodań i 16 usunięć

Wyświetl plik

@ -52,7 +52,7 @@ def generate_crosshatch(context, angle, distance, offset, pocket_shape, ob = Non
bpy.context.view_layer.objects.active = ob bpy.context.view_layer.objects.active = ob
ob.select_set(True) ob.select_set(True)
if ob.data.splines and ob.data.splines[0].type == 'BEZIER': if ob.data.splines and ob.data.splines[0].type == 'BEZIER':
bpy.ops.object.curve_remove_doubles(merg_distance=0.0001, keep_bezier=True) bpy.ops.object.curve_remove_doubles(merge_distance=0.0001, keep_bezier=True)
else: else:
bpy.ops.object.curve_remove_doubles() bpy.ops.object.curve_remove_doubles()

Wyświetl plik

@ -587,7 +587,7 @@ class CamCurveRemoveDoubles(Operator):
bl_options = {'REGISTER', 'UNDO'} bl_options = {'REGISTER', 'UNDO'}
merg_distance: FloatProperty( merge_distance: FloatProperty(
name="Merge distance", name="Merge distance",
default=0.0001, default=0.0001,
min=0.0, min=0.0,
@ -617,7 +617,7 @@ class CamCurveRemoveDoubles(Operator):
if bpy.context.mode == 'OBJECT': if bpy.context.mode == 'OBJECT':
bpy.ops.object.editmode_toggle() bpy.ops.object.editmode_toggle()
bpy.ops.curve.select_all() bpy.ops.curve.select_all()
bpy.ops.curve.remove_double(distance=self.merg_distance) bpy.ops.curve.remove_double(distance=self.merge_distance)
bpy.ops.object.editmode_toggle() bpy.ops.object.editmode_toggle()
else: else:
if bpy.context.mode == 'EDIT_CURVE': if bpy.context.mode == 'EDIT_CURVE':
@ -625,7 +625,7 @@ class CamCurveRemoveDoubles(Operator):
bpy.ops.object.convert(target='MESH') bpy.ops.object.convert(target='MESH')
bpy.ops.object.editmode_toggle() bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT') bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles(threshold= self.merg_distance) bpy.ops.mesh.remove_doubles(threshold= self.merge_distance)
bpy.ops.object.editmode_toggle() bpy.ops.object.editmode_toggle()
bpy.ops.object.convert(target='CURVE') bpy.ops.object.convert(target='CURVE')
@ -840,7 +840,7 @@ class CamOffsetSilhouete(Operator):
if ob.type == 'CURVE': if ob.type == 'CURVE':
if ob.data.splines and ob.data.splines[0].type == 'BEZIER': if ob.data.splines and ob.data.splines[0].type == 'BEZIER':
bpy.context.object.data.resolution_u = 64 bpy.context.object.data.resolution_u = 64
bpy.ops.object.curve_remove_doubles(merg_distance=0.0001, keep_bezier=True) bpy.ops.object.curve_remove_doubles(merge_distance=0.0001, keep_bezier=True)
else: else:
bpy.ops.object.curve_remove_doubles() bpy.ops.object.curve_remove_doubles()

Wyświetl plik

@ -123,7 +123,7 @@ async def cutout(o):
if ob.type == 'CURVE': if ob.type == 'CURVE':
if ob.data.splines and ob.data.splines[0].type == 'BEZIER': if ob.data.splines and ob.data.splines[0].type == 'BEZIER':
activate(ob) activate(ob)
bpy.ops.object.curve_remove_doubles(distance=0.0001, keep_bezier=True) bpy.ops.object.curve_remove_doubles(merge_distance=0.0001, keep_bezier=True)
else: else:
bpy.ops.object.curve_remove_doubles() bpy.ops.object.curve_remove_doubles()
#make sure all polylines are at least three points long #make sure all polylines are at least three points long
@ -444,30 +444,30 @@ async def pocket(o):
if ob.type == 'CURVE': if ob.type == 'CURVE':
if ob.data.splines and ob.data.splines[0].type == 'BEZIER': if ob.data.splines and ob.data.splines[0].type == 'BEZIER':
activate(ob) activate(ob)
bpy.ops.object.curve_remove_doubles(merg_distance=0.0001, keep_bezier=True) bpy.ops.object.curve_remove_doubles(merge_distance=0.0001, keep_bezier=True)
else: else:
bpy.ops.object.curve_remove_doubles() bpy.ops.object.curve_remove_doubles()
chunksFromCurve = [] chunksFromCurve = []
angle = radians(o.parallelPocketAngle) angle = radians(o.parallelPocketAngle)
distance = o.dist_between_paths distance = o.dist_between_paths
p_l_offset= -c_offset*1.2 offset= -c_offset
pocket_shape = "" pocket_shape = ""
n_angle= angle-pi/2 n_angle= angle-pi/2
if o.pocketType == 'PARALLEL': if o.pocketType == 'PARALLEL':
crosshatch_result = generate_crosshatch(bpy.context, angle, distance, p_l_offset, pocket_shape, c_ob) if o.parallelPocketContour:
offset= -(c_offset+distance)
p = getObjectOutline(c_offset, o, False)
nchunks = shapelyToChunks(p, o.min.z)
chunksFromCurve.extend(nchunks)
crosshatch_result = generate_crosshatch(bpy.context, angle, distance, offset, pocket_shape, c_ob)
nchunks = shapelyToChunks(crosshatch_result, o.min.z) nchunks = shapelyToChunks(crosshatch_result, o.min.z)
chunksFromCurve.extend(nchunks) chunksFromCurve.extend(nchunks)
if o.parallelPocketCrosshatch: if o.parallelPocketCrosshatch:
crosshatch_result = generate_crosshatch(bpy.context, n_angle, distance, p_l_offset, pocket_shape, c_ob) crosshatch_result = generate_crosshatch(bpy.context, n_angle, distance, offset, pocket_shape, c_ob)
nchunks = shapelyToChunks(crosshatch_result, o.min.z) nchunks = shapelyToChunks(crosshatch_result, o.min.z)
chunksFromCurve.extend(nchunks) chunksFromCurve.extend(nchunks)
if o.parallelPocketContour:
p = getObjectOutline(c_offset, o, False)
nchunks = shapelyToChunks(p, o.min.z)
chunksFromCurve.extend(nchunks)
else: else:
p = getObjectOutline(c_offset, o, False) p = getObjectOutline(c_offset, o, False)
approxn = (min(o.max.x - o.min.x, o.max.y - o.min.y) / o.dist_between_paths) / 2 approxn = (min(o.max.x - o.min.x, o.max.y - o.min.y) / o.dist_between_paths) / 2
@ -823,7 +823,7 @@ async def medial_axis(o):
if ob.type == 'CURVE': if ob.type == 'CURVE':
if ob.data.splines and ob.data.splines[0].type == 'BEZIER': if ob.data.splines and ob.data.splines[0].type == 'BEZIER':
activate(ob) activate(ob)
bpy.ops.object.curve_remove_doubles(merg_distance=0.0001, keep_bezier=True) bpy.ops.object.curve_remove_doubles(merge_distance=0.0001, keep_bezier=True)
else: else:
bpy.ops.object.curve_remove_doubles() bpy.ops.object.curve_remove_doubles()