diff --git a/src/pylele/pylele2/body.py b/src/pylele/pylele2/body.py index 9153e68..adc56e5 100644 --- a/src/pylele/pylele2/body.py +++ b/src/pylele/pylele2/body.py @@ -148,7 +148,7 @@ def gen(self) -> Shape: bot <<= (0, 0, joinTol - midTck) bot += self.gourd_flat_extrusion(thickness=-midTck) - elif self.cli.body_type in [LeleBodyType.FLAT, LeleBodyType.TRAVEL]: + elif self.cli.body_type.is_solid(): bot_below = self.gen_flat_body_bottom() diff --git a/src/pylele/pylele2/bottom_assembly.py b/src/pylele/pylele2/bottom_assembly.py index 2061ff8..13d5552 100755 --- a/src/pylele/pylele2/bottom_assembly.py +++ b/src/pylele/pylele2/bottom_assembly.py @@ -77,14 +77,9 @@ def gen(self) -> Shape: body -= LeleNeckJoint(cli=self.cli, isCut=True).mv(-jcTol, 0, jcTol) ## Neck Bend - if self.cli.body_type in [ - LeleBodyType.FLAT, - LeleBodyType.HOLLOW, - LeleBodyType.TRAVEL - ]: - if self.cli.implementation == Implementation.CADQUERY and ( - self.cli.body_type == LeleBodyType.FLAT or - self.cli.body_type == LeleBodyType.HOLLOW): + if self.cli.body_type.is_flat(): + if self.cli.implementation == Implementation.CADQUERY and \ + self.cli.body_type.is_flat(): print('# WARNING: not generating neck bend, because does not work with cadquery and flat body') else: body += LeleNeckBend(cli=self.cli) diff --git a/src/pylele/pylele2/config.py b/src/pylele/pylele2/config.py index 6ea3f5f..fa62c47 100644 --- a/src/pylele/pylele2/config.py +++ b/src/pylele/pylele2/config.py @@ -24,6 +24,14 @@ class LeleBodyType(StringEnum): HOLLOW = 'hollow' TRAVEL = 'travel' + def is_flat(self) -> bool: + """ Is Flat Body """ + return self in [LeleBodyType.FLAT, LeleBodyType.HOLLOW, LeleBodyType.TRAVEL] + + def is_solid(self) -> bool: + """ Is Flat Body """ + return self in [LeleBodyType.FLAT, LeleBodyType.TRAVEL] + WORM_SLIT = ['-wah','-wsl','35'] WORM = ['-t','worm' ,'-e','90'] + WORM_SLIT BIGWORM = ['-t','bigworm','-e','90','-fbt','35'] + WORM_SLIT diff --git a/src/pylele/pylele2/tail.py b/src/pylele/pylele2/tail.py index ae687e4..590e24d 100755 --- a/src/pylele/pylele2/tail.py +++ b/src/pylele/pylele2/tail.py @@ -51,7 +51,7 @@ def gen(self) -> Shape: assert tail_width > 0, f"tail_width too small! {tail_width}, should be larger than 0" ## flat middle section - if self.cli.body_type in [LeleBodyType.FLAT, LeleBodyType.HOLLOW, LeleBodyType.TRAVEL]: + if self.cli.body_type.is_flat(): midBotTck = self.cli.flat_body_thickness else: midBotTck = cfg.extMidBotTck + 2*cutAdj @@ -63,11 +63,10 @@ def gen(self) -> Shape: .mv(tailX -rimWth -tailLen, 0, -midBotTck/2) tail = extTop + inrTop.mv(jcTol, 0, 0) - if self.cli.body_type in [LeleBodyType.FLAT, LeleBodyType.HOLLOW, LeleBodyType.TRAVEL]: + if self.cli.body_type.is_flat(): # flat bodies do not have rounded bottom if self.cli.body_type in [LeleBodyType.TRAVEL]: tail = tail.mv(5,0,0) # for whatever reason... - pass else: # rounded bottom extBot = self.api.cylinder_x(10 if self.isCut else rimWth, endWth/2)\ diff --git a/src/pylele/pylele2/top_assembly.py b/src/pylele/pylele2/top_assembly.py index cea10a6..7225a4e 100755 --- a/src/pylele/pylele2/top_assembly.py +++ b/src/pylele/pylele2/top_assembly.py @@ -71,7 +71,7 @@ def gen(self) -> Shape: if fretbd.has_parts(): self.add_parts(top.parts) - if not self.cli.body_type in [LeleBodyType.FLAT, LeleBodyType.TRAVEL]: + if not self.cli.body_type.is_solid(): # soundhole sh = LeleSoundhole(cli=self.cli, isCut=True) top -= sh @@ -92,7 +92,7 @@ def gen(self) -> Shape: if self.cli.body_type in [LeleBodyType.GOURD, LeleBodyType.TRAVEL]: chm = LeleChamber(cli=self.cli,isCut=True) # cut Brace from chamber - if not self.cli.body_type in [LeleBodyType.FLAT, LeleBodyType.TRAVEL]: + if not self.cli.body_type.is_solid(): chm -= LeleBrace(cli=self.cli) top -= chm