From dfd683d46451b2a2e00bf2f9a5efff814613764c Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Wed, 17 Mar 2021 12:15:50 -0500 Subject: [PATCH] [OpenSCAD] Add angle & $fn to rotate_extrude(file) --- src/Mod/OpenSCAD/importCSG.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Mod/OpenSCAD/importCSG.py b/src/Mod/OpenSCAD/importCSG.py index 1b52fe0a6e..1cc8ad4845 100644 --- a/src/Mod/OpenSCAD/importCSG.py +++ b/src/Mod/OpenSCAD/importCSG.py @@ -726,9 +726,20 @@ def p_rotate_extrude_action(p): def p_rotate_extrude_file(p): 'rotate_extrude_file : rotate_extrude LPAREN keywordargument_list RPAREN SEMICOL' if printverbose: print("Rotate Extrude File") + angle = 360.0 + if 'angle' in p[3]: + angle = float(p[3]['angle']) filen,ext =p[3]['file'] .rsplit('.',1) obj = process_import_file(filen,ext,p[3]['layer']) - p[0] = [process_rotate_extrude(obj)] + n = int(round(float(p[3]['$fn']))) + fnmax = FreeCAD.ParamGet(\ + "User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetInt('useMaxFN', 16) + + if n < 3 or fnmax != 0 and n > fnmax: + p[0] = [process_rotate_extrude(obj,angle)] + else: + p[0] = [process_rotate_extrude_prism(obj,angle,n)] if printverbose: print("End Rotate Extrude File") def process_linear_extrude(obj,h) :