Merge pull request #4690 from chennes/openscadFixMinorIssuesB

[OpenSCAD] Minor bug fixes in importing CSG
This commit is contained in:
Yorik van Havre
2021-03-30 12:28:03 +02:00
committed by GitHub
2 changed files with 15 additions and 5 deletions

View File

@@ -431,7 +431,17 @@ class Twist:
left_handed = True
else:
left_handed = False
auxiliary_spine = Part.makeHelix(pitch, height, radius, 0.0, left_handed)
# OCC versions before 7.5 had a problem with using a helix as the auxilliary spine, so approximate
# it piecewise
occ_version = Part.OCC_VERSION.split(".")
if int(occ_version[0]) <= 7 and int(occ_version[1]) < 5:
num_points = int(max(3,num_revolutions * 36)) # Every ten degrees is adequate
wire = auxiliary_spine.Wires[0]
points = wire.discretize(Number=num_points)
auxiliary_spine = Part.makePolygon(points)
faces = [lower_face,upper_face]
for wire1,wire2 in zip(lower_face.Wires,upper_face.Wires):

View File

@@ -463,13 +463,14 @@ def p_minkowski_action(p):
def p_resize_action(p):
'''
resize_action : resize LPAREN keywordargument_list RPAREN OBRACE block_list EBRACE '''
import Draft
print(p[3])
new_size = p[3]['newsize']
auto = p[3]['auto']
print(new_size)
print(auto)
p[6][0].recompute()
if p[6][0].Shape.isNull():
doc.recompute()
old_bbox = p[6][0].Shape.BoundBox
print ("Old bounding box: " + str(old_bbox))
old_size = [old_bbox.XLength, old_bbox.YLength, old_bbox.ZLength]
@@ -482,7 +483,6 @@ def p_resize_action(p):
# Calculate a transform matrix from the current bounding box to the new one:
transform_matrix = FreeCAD.Matrix()
#new_part.Shape = part.Shape.transformGeometry(transform_matrix)
scale = FreeCAD.Vector(float(new_size[0])/old_size[0],
float(new_size[1])/old_size[1],
@@ -978,10 +978,10 @@ def p_multmatrix_action(p):
part.ViewObject.hide()
else :
if printverbose: print("Transform Geometry")
# Need to recompute to stop transformGeometry causing a crash
doc.recompute()
part.recompute()
if part.Shape.isNull():
doc.recompute()
new_part = doc.addObject("Part::Feature","Matrix Deformation")
# new_part.Shape = part.Base.Shape.transformGeometry(transform_matrix)
new_part.Shape = part.Shape.transformGeometry(transform_matrix)
if gui:
part.ViewObject.hide()